Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Kueri PromQL
Saat Anda memasukkan OpenTelemetry metrik ke dalam CloudWatch via OpenTelemetry Protocol (OTLP), model data OTLP hierarkis diratakan menjadi label yang kompatibel dengan PROMQL. Bagian ini menjelaskan struktur label, sintaks promQL untuk menanyakan label ini, dan dukungan UTF-8 di PromQL.
catatan
PromQL di Prometheus 3 mendukung karakter UTF-8 penuh dalam nama metrik dan nama label. Ini sangat penting untuk metrik OTLP, karena konvensi OpenTelemetry semantik menggunakan titik dalam nama atribut seperti. service.name Sebelumnya, titik-titik ini diganti dengan garis bawah selama penerjemahan, menyebabkan perbedaan antara apa yang didefinisikan dalam OTel konvensi dan apa yang dapat ditanyakan di Prometheus.
Saat menggunakan PromQL in CloudWatch, konvensi @ awalan membedakan label cakupan OTLP dari label Prometheus standar. Bidang dalam setiap lingkup menggunakan @ awalan ganda (misalnya,@resource.@schema_url), sementara atribut menggunakan awalan @ lingkup tunggal, misalnya,. @resource.service.name Atribut titik data juga mendukung akses kosong (tidak diawali) untuk kompatibilitas mundur dengan kueri promQL standar, misalnya, dan setara. {"http.server.active_requests"} {"@datapoint.@name"="http.server.active_requests"}
Ekspresi promQL terlampir dalam kurawal kurawal, menentukan nama metrik dan satu set opsional pencocokan label. Contoh berikut memilih semua deret waktu untuk http.server.active_requests metrik:
{"http.server.active_requests"}
Contoh berikut memilih semua deret waktu untuk metrik di http.server.active_requests mana atribut OpenTelemetry sumber daya service.name samamyservice:
{"http.server.active_requests", "@resource.service.name"="myservice"}
Anda dapat menggabungkan beberapa pencocokan label dalam satu kueri. Contoh berikut memilih semua deret waktu untuk http.server.active_requests metrik di mana atribut OpenTelemetry resource service.name sama myservice di semua wilayah AS:
{"http.server.active_requests", "@resource.service.name"="myservice", "@aws.region"=~"us-.*"}
Contoh berikut menunjukkan kueri rentang. Ini menghitung nilai rata-rata semua titik data dalam rentang waktu tertentu untuk setiap deret waktu:
avg_over_time( {"http.server.active_requests", "@resource.service.name"="myservice"}[5m] )
Tabel berikut merangkum konvensi awalan untuk setiap lingkup OTLP:
| Ruang lingkup OTLP | Awalan bidang | Atribut awalan | Contoh |
|---|---|---|---|
Sumber daya |
|
|
|
Lingkup Instrumentasi |
|
|
|
Datapoint |
|
|
|
AWS-dipesan |
N/A |
|
|
Menanyakan AWS metrik yang dijual dengan PromQL
Untuk dapat menanyakan AWS metrik yang dijual di PromQL, Anda harus terlebih dahulu mengaktifkan OTel pengayaan metrik yang dijual. Lihat:Mengaktifkan metrik vended di PromQL.
Setelah Anda mengaktifkan OTel pengayaan, AWS metrik vended menjadi dapat ditanyakan melalui PromQL dengan label tambahan. Nama metrik sama dengan nama CloudWatch metrik asli, dan CloudWatch dimensi asli tersedia sebagai atribut titik data. Label berikut tersedia (contoh di bawah ini adalah untuk instance EC2):
| Label PromQL | Deskripsi | Contoh |
|---|---|---|
|
CloudWatch Dimensi asli, sebagai atribut titik data |
|
|
ARN penuh sumber daya |
|
|
Penyedia cloud |
|
|
AWS Wilayah tempat metrik ini berasal |
|
|
AWS ID akun tempat metrik ini berasal |
|
|
Nama lingkup instrumentasi mengidentifikasi layanan sumber |
|
|
Pengidentifikasi layanan sumber |
|
|
Pengidentifikasi solusi pengayaan |
|
|
AWS tag sumber daya |
|
|
AWS akun tempat metrik ini dicerna (label sistem) |
|
|
AWS Wilayah tempat metrik ini dicerna (label sistem) |
|
Contoh berikut memilih Invocations untuk fungsi Lambda tertentu:
histogram_sum({Invocations, FunctionName="my-api-handler"})
Contoh berikut memilih Errors Lambda untuk semua fungsi yang ditandai dengan tim tertentu:
histogram_sum( {Errors, "@instrumentation.@name"="cloudwatch.aws/lambda", "@aws.tag.Team"="backend"} )
Contoh berikut menghitung total Invocations Lambda yang dikelompokkan berdasarkan tim:
sum by ("@aws.tag.Team")( {Invocations, "@instrumentation.@name"="cloudwatch.aws/lambda"} )
Contoh berikut memilih semua deret waktu untuk metrik EC2CPUUtilization. Penggunaan "@instrumentation.@name"="cloudwatch.aws/ec2" is untuk secara eksklusif mencocokkan CPUUutilization dari EC2 dan bukan dari AWS layanan lain seperti Amazon Relational Database Service:
histogram_avg({CPUUtilization, "@instrumentation.@name"="cloudwatch.aws/ec2"})