Crear métricas de clúster personalizadas SageMaker HyperPod - Amazon SageMaker AI

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Crear métricas de clúster personalizadas SageMaker HyperPod

El complemento de observabilidad Amazon SageMaker HyperPod (SageMaker HyperPod) proporciona cientos de métricas out-of-the-box de salud, rendimiento y eficiencia. Además de esas métricas, es posible que necesite monitorear las métricas personalizadas específicas de sus aplicaciones o necesidades empresariales que no se recopilan en las métricas predeterminadas, como los indicadores de rendimiento específicos del modelo, las estadísticas de procesamiento de datos o las mediciones específicas de las aplicaciones. Para abordar esta necesidad, puede implementar una recopilación de métricas personalizada OpenTelemetry mediante la integración de un fragmento de código de Python en su aplicación.

Para crear métricas personalizadas, primero ejecute el siguiente comando de shell para instalar los OpenTelemetry componentes principales necesarios para instrumentar las aplicaciones de Python para la observabilidad. Esta instalación hace posible que las aplicaciones de Python que se ejecutan en SageMaker HyperPod clústeres emitan datos de telemetría personalizados. El OpenTelemetry recopilador recopila esos datos y los envía a la infraestructura de observabilidad.

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

El siguiente script de ejemplo configura una canalización de OpenTelemetry métricas que etiqueta automáticamente las métricas con la información de los nodos y los nodos, lo que garantiza una atribución adecuada dentro del clúster, y envía estas métricas a la pila de observabilidad SageMaker HyperPod integrada cada segundo. El script establece una conexión con el recopilador de SageMaker HyperPod métricas, configura los atributos de recursos adecuados para su identificación y proporciona una interfaz de medición a través de la cual se pueden crear varios tipos de métricas (contadores, indicadores o histogramas) para realizar un seguimiento de cualquier aspecto del rendimiento de la aplicación. Las métricas personalizadas se integran en los paneles de SageMaker HyperPod control junto con las métricas del sistema. Esta integración permite una observabilidad completa a través de una única interfaz en la que puede crear alertas, visualizaciones e informes personalizados para supervisar el perfil de rendimiento completo de su carga de trabajo.

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})