Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Invia metriche utilizzando OpenTelemetry
Puoi pubblicare metriche personalizzate per l' CloudWatch utilizzo del protocollo (OTLP). OpenTelemetry Puoi usare gli SDK OTel (Java, Python, Go, .NET,) Node.js, Otel Collector o qualsiasi client. OTLP-compatible
CloudWatch Endpoint OTLP
Invia le metriche all'endpoint CloudWatch OTLP nella tua regione:
https://monitoring.region.amazonaws.com/v1/metrics
L'autenticazione utilizza la firma SigV4 standard. AWS Il nome del servizio è. monitoring Per ulteriori informazioni sull'endpoint, sulle opzioni di autenticazione e sui limiti, consultaEndpoint OTLP.
Avvio rapido: pubblica la tua prima metrica
Opzione 1: oTel Collector (consigliato per la produzione)
Configura un OTel Collector con l'esportatore HTTP OTLP e l'autenticazione SigV4:
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]
Per istruzioni dettagliate sulla configurazione, vedere. Nozioni di base
Opzione 2: OTel SDK (esempio in Python)
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"})
Opzione 3: OTel SDK (esempio Java)
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" ));
Autorizzazioni IAM richieste
Le metriche di invio delle identità richiedono l'cloudwatch:PutMetricDataautorizzazione. Per l'autenticazione SigV4, allega la seguente politica:
{ "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData" ], "Resource": "*" }
Per l'autenticazione con token al portatore, vedere. Configurazione dell'autenticazione con token al portatore per Metrics
Verifica che le metriche stiano arrivando
Apri la CloudWatch console, accedi a Query Studio ed esegui:
http_requests_total
Le metriche vengono in genere visualizzate entro 1-2 minuti dall'invio del primo punto dati.
Tipi di metriche supportati
La tabella seguente descrive i tipi di metrica Otel CloudWatch supportati e come interrogarli con PromQL.
| Tipo di metrica Otel | Comportamento ProMQL |
|---|---|
| Contatore | Usa rate() o increase() per interrogare |
| Gauge | Interroga direttamente (valore corrente) |
| Istogramma | Usa histogram_quantile() per i percentili |
Best practice
Segui questi consigli quando invii le metriche tramite OTLP:
-
Usa nomi di metriche significativi: segui le convenzioni di denominazione di OTel (ad esempio, o).
http.server.request.durationhttp_request_duration_seconds -
Mantieni ragionevole la cardinalità delle etichette: evita gli ID di richiesta o gli UUID come valori di etichetta.
-
Imposta un intervallo di esportazione appropriato: 60 secondi sono standard. Intervalli più brevi aumentano i costi.
-
Usa gli attributi delle risorse: utilizza gli attributi delle risorse per i metadati statici (nome del servizio, versione, ambiente) anziché etichette per punti dati.