View a markdown version of this page

Metriken senden mit OpenTelemetry - Amazon CloudWatch

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.duration oderhttp_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.