Membuat metrik SageMaker HyperPod cluster kustom - Amazon SageMaker AI

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Membuat metrik SageMaker HyperPod cluster kustom

Add-on observabilitas Amazon SageMaker HyperPod (SageMaker HyperPod) menyediakan ratusan metrik kesehatan, kinerja, dan efisiensi. out-of-the-box Selain metrik tersebut, Anda mungkin perlu memantau metrik khusus untuk aplikasi atau kebutuhan bisnis Anda yang tidak ditangkap oleh metrik default, seperti indikator kinerja khusus model, statistik pemrosesan data, atau pengukuran khusus aplikasi. Untuk mengatasi kebutuhan ini, Anda dapat menerapkan koleksi metrik kustom menggunakan OpenTelemetry dengan mengintegrasikan cuplikan kode Python ke dalam aplikasi Anda.

Untuk membuat metrik kustom, pertama jalankan perintah shell berikut untuk menginstal OpenTelemetry komponen inti yang diperlukan untuk instrumen aplikasi Python untuk observabilitas. Instalasi ini memungkinkan aplikasi Python yang berjalan pada SageMaker HyperPod cluster untuk memancarkan data telemetri kustom. Data itu dikumpulkan oleh OpenTelemetry kolektor dan diteruskan ke infrastruktur observabilitas.

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

Contoh skrip berikut mengonfigurasi pipeline OpenTelemetry metrik yang secara otomatis menandai metrik dengan informasi pod dan node, memastikan atribusi yang tepat di dalam klaster Anda, dan mengirimkan metrik ini ke tumpukan observabilitas SageMaker HyperPod bawaan setiap detik. Skrip membuat koneksi ke kolektor SageMaker HyperPod metrik, menyiapkan atribut sumber daya yang sesuai untuk identifikasi, dan menyediakan antarmuka meter di mana Anda dapat membuat berbagai jenis metrik (penghitung, pengukur, atau histogram) untuk melacak aspek kinerja aplikasi Anda. Metrik khusus terintegrasi dengan dasbor SageMaker HyperPod pemantauan bersama metrik sistem. Integrasi ini memungkinkan pengamatan komprehensif melalui satu antarmuka tempat Anda dapat membuat peringatan, visualisasi, dan laporan khusus untuk memantau profil kinerja lengkap beban kerja Anda.

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