View a markdown version of this page

Kueri PromQL - Amazon CloudWatch

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 met OpenTelemetry rik ke dalam CloudWatch Titik akhir metrik, model data OTLP hierarkis diratakan menjadi PromQL-compatible label. Bagian ini menjelaskan struktur label, sintaks PromQL untuk menanyakan label ini, dan UTF-8 dukungan di PromQL.

catatan

PromQL di Prometheus 3 mendukung UTF-8 karakter lengkap dalam nama metrik dan nama label. Ini sangat penting untuk metrik OTLP, karena konvensi OpenTelemetry semantik menggunakan titik dalam nama atribut sepertiservice.name. Sebelumnya, titik-titik ini diganti dengan garis bawah selama terjemahan, menyebabkan perbedaan antara apa yang didefinisikan dalam konvensi oTel dan apa yang dapat ditanyakan di Prometheus.

Saat menggunakan PromQL di CloudWatch, konvensi @ awalan membedakan OTLP-scoped label dari label Prometheus standar. Bidang dalam setiap lingkup menggunakan aw @ alan ganda (misalnya,@resource.@schema_url), sedangkan atribut menggunakan awalan @ cakupan tunggal, misalnya,@resource.service.name. Atribut Datapoint juga mendukung akses telanjang (tidak diawali) untuk kompatibilitas mundur dengan kueri PromQL standar, misalnya, dan setara. {"http.server.active_requests"} {"@datapoint.@name"="http.server.active_requests"}

Ekspresi PromQL tertutup dalam kurung kurung keriting, menentukan nama metrik dan kumpulan pencocokan label opsional. 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 resource 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 cakupan OTLP:

Lingkup OTLP Awalan bidang Atribut awalan Contoh

Sumber daya

@resource.@

@resource.

@resource.service.name="myservice"

Lingkup Instrumentasi

@instrumentation.@

@instrumentation.

@instrumentation.@name="otel-go/metrics"

Datapoint

@datapoint.@

@datapoint.atau telanjang

cpu="cpu0" atau @datapoint.cpu="cpu0"

AWS-dipesan

N/A

@aws.

@aws.account_id="123456789"

Kueri dijual AWS metrik dengan PromQL

Untuk dapat menanyakan AWS metrik yang dijual di PromQL, Anda harus terlebih dahulu mengaktifkan pengayaan oTEL dari metrik yang dijual. Lihat:AWS metrik yang dijual dalam format OpenTelemetry.

Setelah Anda mengaktifkan pengayaan oTEL, AWS metrik yang dijual dapat dikueri melalui PromQL dengan label tambahan. Nama metrik sama dengan nama CloudWatch metrik asli, dan CloudWatch dimensi asli tersedia sebagai atribut datapoint. Label berikut tersedia (contoh di bawah ini adalah untuk instance EC2):

Label PromQL Deskripsi Contoh

InstanceId

CloudWatch Dimensi asli, sebagai atribut datapoint

i-0123456789abcdef0

"@resource.cloud.resource_id"

ARN penuh sumber daya

arn:aws:ec2:us-east-1:123456789012:instance/i-0123456789abcdef0

"@resource.cloud.provider"

Penyedia cloud

aws

"@resource.cloud.region"

AWS Wilayah tempat metrik ini berasal

us-east-1

"@resource.cloud.account.id"

AWS ID akun tempat metrik ini berasal

123456789012

"@instrumentation.@name"

Nama lingkup instrumentasi mengidentifikasi layanan sumber

cloudwatch.aws/ec2

"@instrumentation.cloudwatch.source"

Pengidentifikasi layanan sumber

aws.ec2

"@instrumentation.cloudwatch.solution"

Pengidentifikasi solusi pengayaan

CloudWatchOTelEnrichment

"@aws.tag.Environment"

AWS tag sumber daya

production

"@aws.account"

AWS akun tempat metrik ini dicerna (label sistem)

123456789012

"@aws.region"

AWS Wilayah tempat metrik ini dicerna (label sistem)

us-east-1

Contoh berikut memilih Invocations untuk fungsi Lambda tertentu:

{Invocations, FunctionName="my-api-handler"}

Contoh berikut memilih Lambda Errors untuk semua fungsi yang ditandai dengan tim tertentu:

{Errors, "@instrumentation.@name"="cloudwatch.aws/lambda", "@aws.tag.Team"="backend"}

Contoh berikut menghitung total Lambda yang Invocations dikelompokkan berdasarkan tim:

sum by ("@aws.tag.Team")( {Invocations, "@instrumentation.@name"="cloudwatch.aws/lambda"} )

Contoh berikut memilih semua deret waktu untuk CPUUtilization metrik EC2. Penggunaannya "@instrumentation.@name"="cloudwatch.aws/ec2" adalah untuk secara eksklusif mencocokkan CPUUtilization dari EC2 dan bukan dari AWS layanan lain seperti Amazon Relational Database Service:

histogram_avg({CPUUtilization, "@instrumentation.@name"="cloudwatch.aws/ec2"})

Kueri dari Grafana

Anda dapat menanyakan data CloudWatch PromQL dari Grafana dengan menambahkan plugin sumber data Amazon Managed Service for Prometheus dan mengarahkannya ke titik akhir pemantauan. CloudWatch Penandatanganan SIGv4 dibangun ke plugin dan selalu diaktifkan, jadi tidak ada sakelar untuk diaktifkan. Plugin ini diterbitkan di grafana. com/grafana/plugins/grafana-amazonprometheus-datasource/; instal dari katalog plugin Grafana sebelum menambahkan sumber data. Plugin AMP v3.0.0 membutuhkan Grafana. >=11.6.11 <12 || >=12.0.10 <12.1 || >=12.1.7 <12.2 || >=12.2.5

Prasyarat IAM — prinsipal IAM yang kredensialnya digunakan Grafana harus memiliki keduanya cloudwatch:GetMetricData (diperlukan untuk kueri instan dan rentang) dan cloudwatch:ListMetrics (diperlukan untuk penemuan seri dan label). Lihat perinciannya di Izin IAM untuk PromQL.

Untuk mengkonfigurasi Grafana, selesaikan langkah-langkah berikut.

  1. Instal plugin sumber data Amazon Managed Service for Prometheus dari katalog plugin Grafana.

  2. Di Grafana, buka Kon eksi, Sumber data, pilih Tambahkan sumber data, dan pilih Amazon Managed Service for Pro metheus.

  3. Setel URL sumber data kehttps://monitoring.AWS Region.amazonaws.com.

  4. Atur Wil ayah ke Wil AWS ayah Anda. Pilih penyedia O tentikasi yang sesuai untuk lingkungan Anda (rantai kredensia default, kunci akses, atau peran IAM ruang kerja).

  5. Pilih Simpan & uji.

Menanyakan dari Amazon Managed Grafana

Anda dapat menanyakan data CloudWatch PromQL dari ruang kerja Grafana yang Dikelola Amazon dengan menambahkan sumber data Amazon Managed Service for Prometheus yang menunjuk ke titik akhir pemantauan. CloudWatch Plugin sumber data ini menandatangani permintaan dengan SIGv4 menggunakan peran IAM ruang kerja secara otomatis; SIGv4 selalu diaktifkan, tanpa sakelar untuk dikonfigurasi. Plugin ini tersedia di Amazon Managed Grafana versi 12 dan yang lebih baru. Untuk informasi selengkapnya, lihat Menghubungkan ke Amazon Managed Service untuk sumber data Prometheus di Panduan Pengguna Amazon Managed Grafana.

Prasyarat IAM — peran IAM ruang kerja Grafana yang Dikelola Amazon harus memiliki keduanya cloudwatch:GetMetricData (diperlukan untuk kueri instan dan rentang) dan cloudwatch:ListMetrics (diperlukan untuk penemuan seri dan label). Lihat perinciannya di Izin IAM untuk PromQL.

Untuk mengkonfigurasi sumber data, selesaikan langkah-langkah berikut.

  1. Di ruang kerja Amazon Managed Grafana Anda, tambahkan sumber data Layanan Terkelola Amazon untuk Prometheus.

  2. Setel URL sumber data kehttps://monitoring.AWS Region.amazonaws.com.

  3. Atur Wil ayah ke Wil AWS ayah Anda. Amazon Managed Grafana menyuntikkan kredenSIAL dari peran IAM ruang kerja secara otomatis; Anda tidak perlu mengonfigurasi kunci statis.

  4. Pilih Simpan & uji.

Kueri dengan alat MCP

Server CloudWatch MCP menyediakan alat Model Context Protocol (MCP) yang memungkinkan asisten AI dan alat pengembangan menanyakan data CloudWatch PromQL atas nama Anda. Alat MCP menangani otentikasi dan pemformatan permintaan secara otomatis, sehingga Anda dapat fokus pada penulisan kueri PromQL daripada mengelola permintaan HTTP dan penandatanganan SigV4.

Alat PromQL berikut tersedia di Server CloudWatch MCP:

Alat Deskripsi

execute_promql_query

Menjalankan kueri PromQL instan, mengembalikan nilai metrik pada satu titik waktu.

execute_promql_range_query

Menjalankan kueri rentang PromQL selama jendela waktu, mengembalikan data deret waktu untuk analisis tren dan grafik.

get_promql_label_values

Mengambil nilai untuk label PromQL tertentu, seperti __name__ untuk nama metrik atau @resource.service.name untuk layanan.

get_promql_series

Menemukan pemilih label PromQL yang cocok deret waktu dan mengembalikan set label lengkap dari setiap seri yang cocok.

get_promql_labels

Daftar semua nama label PromQL yang tersedia untuk membantu menemukan struktur label metrik Anda.

Untuk detail lengkap tentang parameter, konfigurasi, dan instruksi penyiapan, lihat Alat untuk CloudWatch PromQL dalam dokumentasi Server CloudWatch MCP.

Kueri dengan HTTP API

Anda juga dapat menanyakan data CloudWatch PromQL secara terprogram dengan memanggil titik akhir HTTP secara langsung. Prometheus-compatible Permintaan harus ditandatangani dengan AWS Tanda T angan monitoring Versi 4 menggunakan nama layanan.

Titik akhir PromQL mengikuti pola. https://monitoring.AWS Region.amazonaws.com/api/v1/operation Misalnya, untuk Wilayah AS Timur (Virginia Utara) (us-east-1), titik akhir untuk kueri instan adalah. https://monitoring.us-east-1.amazonaws.com/api/v1/query

Untuk referensi API lengkap, termasuk operasi yang didukung, parameter permintaan, dan format respons, lihatPrometheus-compatible API. Untuk daftar Wil AWS ayah di mana kueri PromQL tersedia, lihat. Didukung AWS Wilayah Untuk tindakan IAM yang diperlukan untuk setiap operasi, lihatIzin IAM untuk PromQL.