建立自訂 SageMaker HyperPod 叢集指標 - Amazon SageMaker AI

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

建立自訂 SageMaker HyperPod 叢集指標

Amazon SageMaker HyperPod (SageMaker HyperPod) 可觀測性附加元件提供數百種out-of-the-box運作狀態、效能和效率指標。除了這些指標之外,您可能需要監控應用程式特定的自訂指標,或是預設指標未擷取的業務需求,例如模型特定的效能指標、資料處理統計資料或應用程式特定的測量。若要解決此需求,您可以使用 OpenTelemetry 實作自訂指標集合,方法是將 Python 程式碼片段整合到您的應用程式。

若要建立自訂指標,請先執行下列 shell 命令,安裝檢測 Python 應用程式以提供可觀測性所需的核心 OpenTelemetry 元件。此安裝可讓在 SageMaker HyperPod 叢集上執行的 Python 應用程式發出自訂遙測資料。該資料由 OpenTelemetry 收集器收集並轉送至可觀測性基礎設施。

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

下列範例指令碼會設定 OpenTelemetry 指標管道,自動使用 Pod 和節點資訊標記指標,確保叢集內的適當屬性,並每秒將這些指標傳送至 SageMaker HyperPod 內建可觀測性堆疊。指令碼會建立與 SageMaker HyperPod 指標收集器的連線、設定適當的資源屬性以進行識別,並提供計量介面,可讓您建立各種類型的指標 (計數器、量測計或長條圖),以追蹤應用程式效能的任何層面。自訂指標與 SageMaker HyperPod 監控儀表板以及系統指標整合。此整合允許透過單一界面提供全方位的可觀測性,您可以在其中建立自訂警示、視覺化和報告,以監控工作負載的完整效能設定檔。

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