Criação de métricas SageMaker HyperPod de cluster personalizadas - SageMaker IA da Amazon

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Criação de métricas SageMaker HyperPod de cluster personalizadas

O complemento de observabilidade Amazon SageMaker HyperPod (SageMaker HyperPod) fornece centenas de métricas de saúde, desempenho e eficiência. out-of-the-box Além dessas métricas, talvez você precise monitorar métricas personalizadas específicas para seus aplicativos ou necessidades de negócios que não são capturadas pelas métricas padrão, como indicadores de desempenho específicos do modelo, estatísticas de processamento de dados ou medidas específicas do aplicativo. Para atender a essa necessidade, você pode implementar a coleta de métricas personalizadas OpenTelemetry usando a integração de um trecho de código Python ao seu aplicativo.

Para criar métricas personalizadas, primeiro execute o comando shell a seguir para instalar os OpenTelemetry componentes principais necessários para instrumentar aplicativos Python para fins de observabilidade. Essa instalação possibilita que aplicativos Python SageMaker HyperPod executados em clusters emitam dados de telemetria personalizados. Esses dados são coletados pelo OpenTelemetry coletor e encaminhados para a infraestrutura de observabilidade.

pip install opentelemetry-api opentelemetry-sdk opentelemetry-exporter-otlp-proto-grpc

O script de exemplo a seguir configura um pipeline de OpenTelemetry métricas que marca automaticamente as métricas com informações de pod e node, garantindo a atribuição adequada em seu cluster, e envia essas métricas para a pilha de observabilidade SageMaker HyperPod integrada a cada segundo. O script estabelece uma conexão com o coletor de SageMaker HyperPod métricas, configura atributos de recursos apropriados para identificação e fornece uma interface de medidor por meio da qual você pode criar vários tipos de métricas (contadores, medidores ou histogramas) para rastrear qualquer aspecto do desempenho do seu aplicativo. As métricas personalizadas se integram aos painéis SageMaker HyperPod de monitoramento junto com as métricas do sistema. Essa integração permite uma observabilidade abrangente por meio de uma única interface na qual você pode criar alertas, visualizações e relatórios personalizados para monitorar o perfil de desempenho completo da sua carga de trabalho.

import os from opentelemetry import metrics from opentelemetry.exporter.otlp.proto.grpc.metric_exporter import OTLPMetricExporter from opentelemetry.sdk.metrics import MeterProvider from opentelemetry.sdk.metrics.export import PeriodicExportingMetricReader from opentelemetry.sdk.resources import Resource # Get hostname/pod name hostname = os.uname()[1] node_name = os.getenv('NODE_NAME', 'unknown') collector_endpoint = "hyperpod-otel-collector.hyperpod-observability:4317" # Configure the OTLP exporter exporter = OTLPMetricExporter( endpoint=collector_endpoint, insecure=True, timeout=5000 # 5 seconds timeout ) reader = PeriodicExportingMetricReader( exporter, export_interval_millis=1000 ) resource = Resource.create({ "service.name": "metric-test", "pod.name": hostname, "node.name": node_name }) meter_provider = MeterProvider( metric_readers=[reader], resource=resource ) metrics.set_meter_provider(meter_provider) # Create a meter meter = metrics.get_meter("test-meter") # Create a counter counter = meter.create_counter( name="test.counter", description="A test counter" ) counter.add(1, {"pod": hostname, "node": node_name})