Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Metriken senden mit OpenTelemetry
Sie können benutzerdefinierte Metriken zur CloudWatch Verwendung des OpenTelemetry Protokolls (OTLP) veröffentlichen. Sie können oTEL SDKs (Java, Python, Go, .NET Node.js), den oTEL Collector oder einen beliebigen OTLP-compatible Client verwenden.
CloudWatch OTLP-Endpunkt
Senden Sie Metriken an den CloudWatch OTLP-Endpunkt in Ihrer Region:
https://monitoring.region.amazonaws.com/v1/metrics
Die Authentifizierung verwendet die AWS Standard-Sigv4-Signatur. Der Dienstname istmonitoring. Weitere Informationen zum Endpunkt, zu Authentifizierungsoptionen und Grenzwerten finden Sie unterOTLP-Endpunkte.
Schnellstart: Veröffentlichen Sie Ihre erste Metrik
Option 1: oTEL Collector (für die Produktion empfohlen)
Konfigurieren Sie einen OTel Collector mit dem OTLP-HTTP-Exporter und der SigV4-Authentifizierung:
receivers: otlp: protocols: grpc: endpoint: 0.0.0.0:4317 http: endpoint: 0.0.0.0:4318 processors: batch: send_batch_size: 200 timeout: 10s exporters: otlphttp: tls: insecure: false metrics_endpoint: "https://monitoring.us-east-1.amazonaws.com/v1/metrics" auth: authenticator: sigv4auth extensions: sigv4auth: service: "monitoring" region: "us-east-1" service: extensions: [sigv4auth] pipelines: metrics: receivers: [otlp] processors: [batch] exporters: [otlphttp]
Eine ausführliche Anleitung zur Einrichtung finden Sie unter. Erste Schritte
Option 2: oTEL SDK (Python-Beispiel)
from opentelemetry import metrics from opentelemetry.sdk.metrics import MeterProvider from opentelemetry.sdk.metrics.export import PeriodicExportingMetricReader from opentelemetry.exporter.otlp.proto.http.metric_exporter import OTLPMetricExporter # Point at the CloudWatch OTLP endpoint exporter = OTLPMetricExporter( endpoint="https://monitoring.us-east-1.amazonaws.com:443/v1/metrics" ) reader = PeriodicExportingMetricReader(exporter, export_interval_millis=60000) provider = MeterProvider(metric_readers=[reader]) metrics.set_meter_provider(provider) # Create and record a metric meter = metrics.get_meter("my-app") counter = meter.create_counter("http_requests_total", description="Total HTTP requests") counter.add(1, {"method": "GET", "path": "/api/users", "status": "200"})
Option 3: oTEL SDK (Java-Beispiel)
import io.opentelemetry.api.metrics.Meter; import io.opentelemetry.api.metrics.LongCounter; Meter meter = GlobalOpenTelemetry.getMeter("my-app"); LongCounter counter = meter.counterBuilder("http_requests_total") .setDescription("Total HTTP requests") .build(); counter.add(1, Attributes.of( AttributeKey.stringKey("method"), "GET", AttributeKey.stringKey("path"), "/api/users", AttributeKey.stringKey("status"), "200" ));
Erforderliche IAM-Berechtigungen
Für die Metriken zum Senden von Identitäten ist eine cloudwatch:PutMetricData Genehmigung erforderlich. Fügen Sie für die SigV4-Authentifizierung die folgende Richtlinie bei:
{ "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData" ], "Resource": "*" }
Informationen zur Bearer-Token-Authentifizierung finden Sie unter. Einrichtung der Bearer-Token-Authentifizierung für Metrics
Stellen Sie sicher, dass die Metriken
Öffnen Sie die CloudWatch Konsole, navigieren Sie zu Query Studio und führen Sie Folgendes aus:
http_requests_total
Metriken werden in der Regel innerhalb von 1—2 Minuten nach dem Senden des ersten Datenpunkts angezeigt.
Unterstützte Metriktypen
Die folgende Tabelle beschreibt die CloudWatch unterstützten oTEL-Metriktypen und wie man sie mit PromQL abfragt.
| Metriktyp oTEL | Verhalten von PromQL |
|---|---|
| Zähler | Verwenden Sie rate() oder, um abzufragen increase() |
| Messinstrument | Direkt abfragen (aktueller Wert) |
| Histogramm | histogram_quantile()Für Perzentile verwenden |
Best Practices
Folgen Sie diesen Empfehlungen, wenn Sie Metriken über OTLP senden:
-
Verwenden Sie aussagekräftige Metriknamen — Halten Sie sich an die Benennungskonventionen von oTEL (z. B.
http.server.request.durationoderhttp_request_duration_seconds). -
Halten Sie die Label-Kardinalität angemessen — Vermeiden Sie Anforderungs-IDs oder UUIDs als Labelwerte.
-
Stellen Sie ein geeignetes Exportintervall ein — 60 Sekunden sind Standard. Kürzere Intervalle erhöhen die Kosten.
-
Ressourcenattribute verwenden — Verwenden Sie Ressourcenattribute für statische Metadaten (Dienstname, Version, Umgebung) und nicht für Bezeichnungen pro Datenpunkt.