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à.
Interrogazione ProMQL
Quando si inseriscono OpenTelemetry metriche in CloudWatch via OpenTelemetry Protocol (OTLP), il modello di dati OTLP gerarchico viene appiattito in etichette compatibili con ProMQL. Questa sezione descrive la struttura delle etichette, la sintassi PromQL per interrogare queste etichette e il supporto UTF-8 in PromQL.
Nota
ProMQL in Prometheus 3 supporta caratteri UTF-8 completi nei nomi delle metriche e nei nomi delle etichette. Ciò è particolarmente importante per le metriche OTLP, poiché OpenTelemetry le convenzioni semantiche utilizzano punti nei nomi degli attributi come. service.name In precedenza, questi punti venivano sostituiti con caratteri di sottolineatura durante la traduzione, causando discrepanze tra ciò che era definito nelle OTel convenzioni e ciò che era interrogabile in Prometheus.
Quando si utilizza PromQL in CloudWatch, la convenzione dei @ prefissi distingue le etichette con ambito OTLP dalle etichette Prometheus standard. I campi all'interno di ciascun ambito utilizzano un @ prefisso a doppio ambito (ad esempio,@resource.@schema_url), mentre gli attributi utilizzano un prefisso a ambito singolo, ad esempio,. @ @resource.service.name Gli attributi Datapoint supportano anche l'accesso nudo (senza prefisso) per la retrocompatibilità con le query PromQL standard, ad esempio, e sono equivalenti. {"http.server.active_requests"} {"@datapoint.@name"="http.server.active_requests"}
Un'espressione ProMQL è racchiusa tra parentesi graffe e specifica il nome della metrica e un set opzionale di abbinatori di etichette. L'esempio seguente seleziona tutte le serie temporali per la metrica: http.server.active_requests
{"http.server.active_requests"}
L'esempio seguente seleziona tutte le serie temporali per la metrica in http.server.active_requests cui l'attributo resource è uguale a: OpenTelemetry service.name myservice
{"http.server.active_requests", "@resource.service.name"="myservice"}
È possibile combinare più abbinatori di etichette in un'unica query. L'esempio seguente seleziona tutte le serie temporali per la http.server.active_requests metrica in cui l'attributo OpenTelemetry resource è service.name uguale in tutte le regioni degli Stati Uniti: myservice
{"http.server.active_requests", "@resource.service.name"="myservice", "@aws.region"=~"us-.*"}
L'esempio seguente mostra una query con intervallo. Calcola il valore medio di tutti i punti dati all'interno di un intervallo di tempo specificato per ogni serie temporale:
avg_over_time( {"http.server.active_requests", "@resource.service.name"="myservice"}[5m] )
La tabella seguente riassume le convenzioni di prefisso per ogni ambito OTLP:
| Ambito OTLP | Prefisso dei campi | Prefisso degli attributi | Esempio |
|---|---|---|---|
Risorsa |
|
|
|
Ambito della strumentazione |
|
|
|
Punto dati |
|
|
|
AWS-riservato |
N/D |
|
|
Interrogazione delle metriche vendute con PromQL AWS
Per poter interrogare le AWS metriche vendute in PromQL, devi prima abilitare l'arricchimento delle metriche vendute. OTel Consulta Abilitazione delle metriche vendute in ProMQL.
Dopo aver abilitato l' OTel arricchimento, le AWS metriche vendute diventano interrogabili tramite PromQL con etichette aggiuntive. Il nome della metrica è lo stesso del nome della CloudWatch metrica originale e le dimensioni originali sono disponibili come attributi datapoint. CloudWatch Sono disponibili le seguenti etichette (l'esempio seguente è per un'istanza EC2):
| Etichetta ProMQL | Description | Esempio |
|---|---|---|
|
CloudWatch Dimensione originale, come attributo datapoint |
|
|
ARN completo della risorsa |
|
|
Fornitore di servizi cloud |
|
|
AWS Regione in cui ha avuto origine questa metrica |
|
|
AWS ID dell'account da cui ha avuto origine questa metrica |
|
|
Nome dell'ambito della strumentazione che identifica il servizio di origine |
|
|
Identificatore del servizio di origine |
|
|
Identificatore della soluzione di arricchimento |
|
|
AWS tag di risorsa |
|
|
AWS account in cui è stata inserita questa metrica (etichetta di sistema) |
|
|
AWS Regione in cui è stata inserita questa metrica (etichetta di sistema) |
|
L'esempio seguente seleziona Invocations una funzione Lambda specifica:
histogram_sum({Invocations, FunctionName="my-api-handler"})
L'esempio seguente seleziona Errors Lambda per tutte le funzioni etichettate con un team specifico:
histogram_sum( {Errors, "@instrumentation.@name"="cloudwatch.aws/lambda", "@aws.tag.Team"="backend"} )
L'esempio seguente calcola la Invocations Lambda totale raggruppata per team:
sum by ("@aws.tag.Team")( {Invocations, "@instrumentation.@name"="cloudwatch.aws/lambda"} )
L'esempio seguente seleziona tutte le serie temporali per la metrica EC2. CPUUtilization L'utilizzo di "@instrumentation.@name"="cloudwatch.aws/ec2" deve corrispondere esclusivamente all'utilizzo della CPU di EC2 e non di altri AWS servizi come Amazon Relational Database Service:
histogram_avg({CPUUtilization, "@instrumentation.@name"="cloudwatch.aws/ec2"})