Création de métriques SageMaker HyperPod de cluster personnalisées - Amazon SageMaker AI

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Création de métriques SageMaker HyperPod de cluster personnalisées

Le module complémentaire d'observabilité Amazon SageMaker HyperPod (SageMaker HyperPod) fournit des centaines de mesures out-of-the-box de santé, de performance et d'efficacité. Outre ces indicateurs, vous devrez peut-être surveiller des indicateurs personnalisés spécifiques à vos applications ou aux besoins de votre entreprise qui ne sont pas capturés par défaut, tels que les indicateurs de performance spécifiques au modèle, les statistiques de traitement des données ou les mesures spécifiques aux applications. Pour répondre à ce besoin, vous pouvez implémenter une collecte de métriques personnalisée OpenTelemetry en intégrant un extrait de code Python dans votre application.

Pour créer des métriques personnalisées, exécutez d'abord la commande shell suivante pour installer les OpenTelemetry composants principaux nécessaires pour instrumenter les applications Python à des fins d'observabilité. Cette installation permet aux applications Python qui s'exécutent sur des SageMaker HyperPod clusters d'émettre des données de télémétrie personnalisées. Ces données sont collectées par le OpenTelemetry collecteur et transmises à l'infrastructure d'observabilité.

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

L'exemple de script suivant configure un pipeline de OpenTelemetry métriques qui balise automatiquement les métriques avec des informations sur les pods et les nœuds, garantissant ainsi une attribution correcte au sein de votre cluster, et envoie ces métriques à la pile d'observabilité SageMaker HyperPod intégrée chaque seconde. Le script établit une connexion avec le collecteur de SageMaker HyperPod mesures, définit les attributs de ressources appropriés pour l'identification et fournit une interface de mesure grâce à laquelle vous pouvez créer différents types de mesures (compteurs, jauges ou histogrammes) pour suivre tous les aspects des performances de votre application. Les métriques personnalisées s'intègrent aux tableaux de bord SageMaker HyperPod de surveillance aux côtés des métriques du système. Cette intégration permet une observabilité complète via une interface unique dans laquelle vous pouvez créer des alertes, des visualisations et des rapports personnalisés pour surveiller le profil de performance complet de votre charge de travail.

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