Mengumpulkan metrik AWS CloudWatch menggunakan pengekspor Prometheus CloudWatch

Dokumen ini menjelaskan cara menggunakan pengekspor Prometheus CloudWatch open source dan Agen Operasional yang berjalan di instance Compute Engine untuk mengumpulkan metrik AWS CloudWatch dan menyimpannya dalam project Google Cloud. Dokumen ini ditujukan untuk audiens berikut:

  • Developer dan administrator sistem yang perlu mengumpulkan metrik AWS CloudWatch. Dokumen ini menjelaskan cara menyiapkan pengekspor Prometheus CloudWatch untuk mengumpulkan metrik AWS CloudWatch.
  • Pengguna metrik AWS CloudWatch dengan project AWS Connector yang bermigrasi ke pengekspor Prometheus CloudWatch. Dokumen ini juga berisi informasi tentang migrasi dari pengumpulan metrik AWS CloudWatch lama dalam project Connector.

Dengan Cloud Monitoring, Anda dapat melihat metrik AWS dalam konteks yang sama dengan metrik Google Cloud. Misalnya, Anda dapat membuat dasbor dengan diagram yang menampilkan pemakaian CPU untuk instance Amazon EC2 dan instance Compute Engine. Anda juga dapat membuat kebijakan pemberitahuan untuk memantau metrik AWS. Untuk informasi selengkapnya, lihat bagian berikut:

Sebelum memulai

Untuk mengumpulkan metrik AWS CloudWatch menggunakan pengekspor Prometheus CloudWatch, Anda memerlukan hal berikut:

  • Project Google Cloud dengan izin untuk melakukan hal berikut:
    • Membuat VM
    • Menulis log ke Cloud Logging
    • Menulis metrik ke Cloud Monitoring
  • Akun AWS dengan kredensial AWS yang dapat digunakan oleh pengekspor Prometheus untuk mengambil metrik. Untuk mengetahui informasi selengkapnya, lihat Menjalankan pengekspor Prometheus.

Membuat VM Compute Engine

Sebaiknya buat VM Compute Engine Linux yang akan digunakan secara khusus untuk menjalankan Agen Operasional dan pengekspor Prometheus CloudWatch. VM ini berfungsi sebagai situs pengumpulan untuk semua metrik AWS.

  1. Untuk membuat VM Debian Linux bernama aws-exporter-test di zona yang Anda tentukan, jalankan perintah berikut:

    gcloud compute instances create \
      --image-project debian-cloud \
      --image-family debian-11 \
      --zone ZONE \
      aws-exporter-test
    

    Konfigurasikan perintah sebagai berikut:

    • Ganti ZONE dengan zona untuk VM baru Anda
    • Opsional. Ganti aws-exporter-test dengan nama yang berbeda untuk VM Anda.

    Untuk mengetahui informasi selengkapnya tentang perintah ini, baca referensi gcloud compute instances create.

  2. Untuk mengakses VM agar dapat menginstal pengekspor Prometheus CloudWatch dan Agen Operasional, Anda dapat menggunakan perintah berikut:

    gcloud compute ssh --zone ZONE  --project PROJECT_ID  aws-exporter-test
    

    Konfigurasikan perintah sebagai berikut:

    • Ganti ZONE dengan zona tempat Anda membuat VM
    • Ganti PROJECT_ID dengan ID project Google Cloud Anda
    • Ganti aws-exporter-test jika Anda membuat VM dengan nama yang berbeda

    Untuk mengetahui informasi selengkapnya tentang perintah ini, baca referensi gcloud compute ssh.

Menyiapkan pengekspor Prometheus CloudWatch

Bagian berikut menjelaskan prosedur untuk mendownload, menginstal, dan mengonfigurasi pengekspor Prometheus CloudWatch di VM Compute Engine Anda.

Mendownload pengekspor Prometheus dan JRE

Untuk menjalankan pengekspor Prometheus CloudWatch, Anda harus mendownload pengekspor dan Java Runtime Environment (JRE), versi 11 atau yang lebih baru.

  1. Untuk mendownload file JAR yang berisi pengekspor Prometheus CloudWatch, jalankan perintah berikut pada instance Compute Engine Anda:

    curl -sSO https://github.com/prometheus/cloudwatch_exporter/releases/download/v0.15.1/cloudwatch_exporter-0.15.1-jar-with-dependencies.jar
    
  2. Untuk menginstal JRE, Anda dapat menggunakan perintah seperti berikut:

    sudo apt install default-jre
    

Mengonfigurasi pengekspor Prometheus

Untuk mengonfigurasi pengekspor Prometheus CloudWatch, buat file konfigurasi untuk layanan atau layanan AWS yang metriknya ingin Anda kumpulkan. Untuk mengetahui informasi umum, lihat dokumentasi konfigurasi pengekspor Prometheus CloudWatch.

  • Memigrasikan pengguna: Jika memigrasikan metrik AWS CloudWatch yang ada ke pengekspor Prometheus CloudWatch, Anda dapat menggunakan file konfigurasi di konfigurasi pengekspor Prometheus CloudWatch untuk migrasi. File konfigurasi ini dirancang untuk mereplikasi metrik yang ada semirip mungkin, tetapi tidak mengumpulkan semua metrik yang tersedia menggunakan pengekspor Prometheus CloudWatch untuk layanan AWS.

  • Pengguna baru: Jika Anda tidak memigrasikan metrik yang sudah ada, sebaiknya jangan menggunakan konfigurasi migrasi. Lihat dokumentasi layanan AWS CloudWatch untuk mendapatkan informasi tentang cara menentukan konfigurasi pengekspor untuk layanan lain. Anda juga dapat menemukan contoh tambahan di repositori GitHub pengekspor Prometheus CloudWatch.

Anda dapat menggabungkan konfigurasi untuk beberapa layanan AWS ke dalam satu file konfigurasi. Contoh dalam dokumen ini mengasumsikan bahwa file konfigurasi Anda bernama config.yml.

Menjalankan pengekspor Prometheus

Sebelum dapat menjalankan pengekspor Prometheus CloudWatch, Anda harus memberikan kredensial dan otorisasi kepada pengekspor. Pengekspor Prometheus CloudWatch menggunakan AWS Java SDK, yang menawarkan cara untuk memberikan kredensial menggunakan variabel lingkungan berikut:

  • AWS_ACCESS_KEY
  • AWS_SECRET_ACCESS_KEY
  • AWS_SESSION_TOKEN, jika Anda menggunakan kredensial sementara

Untuk mengetahui informasi lebih lanjut tentang cara memberikan kredensial ke SDK, lihat AWS SDK untuk Java 2.x.

Anda juga harus memiliki izin untuk menggunakan CloudWatch API untuk mengambil metrik. Anda memerlukan izin CloudWatch AWS IAM berikut:

  • cloudwatch:ListMetrics
  • cloudwatch:GetMetricStatistics
  • cloudwatch:GetMetricData

Penggunaan fitur aws_tag_select juga memerlukan izin IAM AWS tag:GetResources.

Untuk mengetahui informasi selengkapnya tentang pemberian otorisasi akses ke layanan AWS, lihat AWS Identity and Access Management.

Untuk menjalankan pengekspor Prometheus CloudWatch, lakukan hal berikut:

  1. Untuk memberikan kredensial bagi pengekspor, tetapkan variabel lingkungan kunci akses:

    export AWS_ACCESS_KEY=YOUR_ACCESS_KEY
    export AWS_SECRET_ACCESS_KEY=YOUR_SECRET_ACCESS_KEY
    export AWS_SESSION_TOKEN=YOUR_SESSION_TOKEN
    

    Ganti variabel YOUR_KEY dengan kunci akses Anda. Anda perlu menetapkan variabel lingkungan AWS_SESSION_TOKEN hanya jika Anda menggunakan kredensial sementara.

  2. Untuk menguji konfigurasi Anda, mulai pengekspor dan muat file konfigurasi Anda, jalankan perintah berikut:

    java -jar cloudwatch_exporter-0.15.1-jar-with-dependencies.jar 9106 config.yml
    

    Ubah nilai port (9106) dan file konfigurasi (config.yml) jika diperlukan.

    Jika Anda mengubah file config.yml saat pengekspor sedang berjalan, Anda dapat memuat ulang pengekspor dengan menjalankan perintah berikut:

    curl -X POST localhost:9106/-/reload
    

    Untuk digunakan dalam lingkungan produksi, Anda dapat mengonfigurasi pengekspor untuk memulai ulang jika VM dimulai ulang. Misalnya, pada sistem Debian, Anda dapat menggunakan pengelola layanan dan sistem, systemd.

Menyiapkan Agen Operasional

Bagian berikut menjelaskan cara menginstal konfigurasi, dan memulai Agen Operasional. Bagian ini memberikan informasi penyiapan minimal bagi Agen Operasional untuk digunakan dengan pengekspor Prometheus CloudWatch. Untuk mengetahui informasi selengkapnya tentang topik ini, lihat Ringkasan Agen Operasional.

Menginstal Agen Operasional

Untuk menginstal Agen Operasional, gunakan perintah berikut untuk mendownload dan menjalankan skrip penginstalan agen:

curl -sSO https://dl.google.com/cloudagents/add-google-cloud-ops-agent-repo.sh
sudo bash add-google-cloud-ops-agent-repo.sh --also-install

Mengonfigurasi Agen Operasional

Untuk mengonfigurasi Agen Operasional, tambahkan elemen konfigurasi ke file konfigurasi pengguna agen. Di Linux, file konfigurasi pengguna adalah /etc/google-cloud-ops-agent/config.yaml.

Saat Anda mengonfigurasi Agen Operasional untuk mengumpulkan metrik AWS dari pengekspor Prometheus CloudWatch, Anda akan menggunakan penerima Prometheus agen. Dokumen ini menjelaskan dua konfigurasi dasar untuk Agen Operasional. Pilih salah satu konfigurasi dan tambahkan ke file konfigurasi pengguna:

sudo vim /etc/google-cloud-ops-agent/config.yaml

Konfigurasi dasar untuk Agen Operasional

Konfigurasi berikut memberikan konfigurasi minimal untuk Agen Operasional. Konfigurasi ini melakukan hal berikut:

  • Membuat penerima bernama aws dari jenis prometheus. Penerima dikonfigurasi untuk menyalin metrik dari tugas aws_exporter. Port yang ditentukan harus cocok dengan port tempat pengekspor Prometheus CloudWatch mengekspor metrik. Baca artikel Menjalankan pengekspor Prometheus.

  • Membuat pipeline bernama aws_pipeline yang menggunakan penerima metrik aws.

metrics:
  receivers:
    aws:
      type: prometheus
      config:
        scrape_configs:
          - job_name: 'aws_exporter'
            scrape_interval: 10s
            static_configs:
              - targets: ['localhost:9106']
  service:
    pipelines:
      aws_pipeline:
        receivers:
          - aws

Konfigurasi yang menghentikan metrik JVM

Konfigurasi berikut melakukan semua fungsi yang dilakukan konfigurasi dasar, tetapi juga menambahkan konfigurasi pelabelan ulang yang menghapus metrik JVM yang dihasilkan oleh pengekspor. Menghapus metrik ini akan mengurangi data metrik yang diserap, tetapi hal ini dapat membuat masalah pengekspor lebih sulit untuk di-debug, karena Anda tidak mendapatkan metrik pengekspor itu sendiri:

metrics:
  receivers:
    aws:
      type: prometheus
      config:
        scrape_configs:
          - job_name: 'aws_exporter'
            scrape_interval: 10s
            static_configs:
              - targets: ['localhost:9106']
            # Drop the exporter's own JVM metrics to reduce noise.
            metric_relabel_configs:
              - source_labels: [ __name__ ]
                regex: 'jvm_.*'
                action: drop
  service:
    pipelines:
      aws_pipeline:
        receivers:
          - aws

Anda dapat membuat konfigurasi yang jauh lebih kompleks untuk Agen Operasional.

Memulai ulang Agen Operasional

Untuk menerapkan perubahan konfigurasi pada Agen Operasional, Anda harus memulai ulang agen.

  1. Untuk memulai ulang agen, jalankan perintah berikut pada instance Anda:
    sudo service google-cloud-ops-agent restart
    
  2. Untuk mengonfirmasi bahwa agen dimulai ulang, jalankan perintah berikut dan verifikasi bahwa komponen "Metrics Agent" dan "Logging Agent" dimulai:
    sudo systemctl status google-cloud-ops-agent"*"
    

Melihat metrik di Cloud Monitoring

Dalam Cloud Monitoring, Anda dapat membuat kueri metrik AWS CloudWatch dan membuat diagram seperti yang Anda lakukan untuk metrik lainnya. Dari antarmuka Metrics Explorer, Anda dapat menggunakan PromQL, Bahasa Kueri Monitoring (MQL), atau antarmuka pembuat kueri. Untuk informasi selengkapnya, lihat Membuat diagram dengan Metrics Explorer.

Jika telah membuat diagram yang ingin disimpan, Anda dapat menyimpannya ke dasbor kustom. Untuk informasi selengkapnya, lihat Ringkasan dasbor.

Diagram berikut menunjukkan kueri PromQL untuk metrik aws_ec2_cpuutilization_sum untuk VM AWS:

Diagram menunjukkan hasil pengambilan statistik aws_ec2_cpuutilization_sum untuk VM AWS menggunakan PromQL.

Anda dapat membuat kueri metrik apa pun di Cloud Monitoring menggunakan PromQL. Untuk mengetahui informasi selengkapnya, lihat artikel Memetakan metrik Cloud Monitoring ke PromQL.

Anda dapat membuat kueri metrik Prometheus menggunakan PromQL atau menggunakan alat Cloud Monitoring seperti Bahasa Kueri Monitoring (MQL). Saat metrik Prometheus ditransfer ke Cloud Monitoring, setiap metrik ditransformasi menggunakan transformasi OpenTelemetry-to-Prometheus standar dan dipetakan ke jenis resource yang dimonitor prometheus_target Cloud Monitoring. Transformasi ini mencakup perubahan berikut:

  • Nama metrik diawali dengan string prometheus.googleapis.com/.
  • Semua karakter non-alfanumerik, seperti titik (.), dalam nama metrik diganti dengan garis bawah (_).
  • Nama metrik diberi akhiran dengan string yang menunjukkan jenis metrik, seperti /gauge atau /counter.

Untuk membuat kueri metrik aws_ec2_cpuutilization_sum Prometheus menggunakan MQL, lihat metrik sebagai prometheus.googleapis.com/aws_ec2_cpuutilization_sum/gauge, dan tentukan jenis resource yang dimonitor prometheus_target:

fetch prometheus_target :: 'prometheus.googleapis.com/aws_ec2_cpuutilization_sum/gauge'

Diagram berikut menunjukkan hasil kueri MQL untuk metrik aws_ec2_cpuutilization_sum Prometheus:

Diagram menunjukkan hasil pengambilan statistik aws_ec2_cpuutilization_sum untuk VM AWS menggunakan MQL.

Pemberitahuan tentang perilaku metrik

Di Cloud Monitoring, Anda dapat membuat [kebijakan pemberitahuan][alert-intro] untuk memantau metrik AWS CloudWatch dan memberi tahu Anda jika ada lonjakan, penurunan, atau tren dalam nilai metrik.

Memantau beberapa region

Konfigurasi pengekspor Prometheus CloudWatch hanya mendukung penggunaan satu region per file konfigurasi. Jika Anda perlu memantau beberapa region, sebaiknya jalankan beberapa instance pengekspor Prometheus, yang dikonfigurasi untuk setiap region yang ingin dipantau. Anda dapat menjalankan beberapa pengekspor pada satu VM, atau mendistribusikannya di seluruh VM. Image Docker pengekspor Prometheus mungkin berguna dalam situasi ini.

Anda dapat mengonfigurasi Agen Operasional yang berjalan di VM Compute Engine untuk menyalin beberapa endpoint Prometheus. Sebaiknya, saat Anda mengonfigurasi beberapa instance pengekspor Prometheus, gunakan nama job yang berbeda untuk setiap instance, sehingga Anda dapat membedakan instance pengekspor jika perlu memecahkan masalahnya.

Untuk mengetahui informasi tentang cara mengonfigurasi Agen Operasional dan penerima Prometheus, lihat Mengonfigurasi Agen Operasional.

Biaya

Amazon mengenakan biaya untuk setiap permintaan CloudWatch API atau untuk setiap metrik CloudWatch yang Anda minta. Untuk harga saat ini, lihat Harga Amazon CloudWatch. Pengekspor Prometheus CloudWatch memiliki karakteristik kueri berikut, yang dapat memengaruhi biaya Amazon Anda:

  • Saat menggunakan metode GetMetricStatistics (default), setiap metrik memerlukan satu permintaan API. Setiap permintaan dapat menyertakan beberapa statistik.
  • Saat menggunakan aws_dimensions, pengekspor harus melakukan permintaan API untuk menentukan metrik yang akan diminta. Jumlah permintaan dimensi biasanya dapat diabaikan dibandingkan dengan jumlah permintaan metrik.

Cloud Monitoring mengenakan biaya untuk metrik AWS CloudWatch dari pengekspor Prometheus berdasarkan jumlah sampel yang diserap. Untuk mengetahui harga saat ini, lihat Memantau ringkasan harga.

Panduan migrasi

Bagian ini memberikan informasi tambahan untuk pelanggan yang bermigrasi dari metrik AWS CloudWatch lama dengan project AWS Connector ke solusi pengekspor Prometheus CloudWatch.

Jika tidak bermigrasi ke pengekspor Prometheus CloudWatch dari solusi lama, Anda dapat melewati bagian ini.

Memetakan metrik CloudWatch AWS lama ke metrik pengekspor Prometheus CloudWatch

Bagian ini menjelaskan cara metrik AWS CloudWatch lama dipetakan ke metrik yang dikumpulkan oleh pengekspor Prometheus CloudWatch, menggunakan metrik AWS CloudWatch CPUUtilization sebagai contoh.

Metrik CPUUtilization mengukur persentase waktu CPU fisik yang digunakan Amazon EC2 untuk menjalankan instance, termasuk waktu menjalankan kode pengguna dan kode Amazon EC2. Secara umum, nilai metrik adalah jumlah pemakaian CPU tamu dan pemakaian CPU hypervisor.

Solusi lama melaporkan data ini ke Cloud Monitoring menggunakan metrik berikut:

Metrik untuk nilai seperti "average" dan "maximum" mewakili statistik CloudWatch yang bermakna untuk metrik; masing-masing melaporkan agregasi yang berbeda dari metrik CPUUtilization AWS. Metrik ini ditulis berdasarkan jenis resource yang dimonitor aws_ec2_instance, dan nilai label resource instance_id adalah ID untuk instance Amazon EC2 yang menulis metrik.

Saat Anda menggunakan pengekspor Prometheus CloudWatch dan Agen Operasional, metriknya dilaporkan sebagai berikut:

  • aws_ec2_cpuutilization_average
  • aws_ec2_cpuutilization_maximum
  • aws_ec2_cpuutilization_minimum
  • aws_ec2_cpuutilization_samplecount
  • aws_ec2_cpuutilization_sum

Metrik ini sesuai dengan metrik aws.googleapis.com/EC2/CPUUtilization/Statistic yang dikumpulkan oleh solusi lama. Metrik ini ditulis berdasarkan jenis resource yang dimonitor prometheus-target.

Nilai label pada resource prometheus-target mencerminkan VM Compute Engine tempat pengekspor Prometheus CloudWatch dijalankan, bukan milik instance Amazon EC2. Nilai label pada metrik ditetapkan oleh pengekspor Prometheus. Metrik aws_ec2_cpuutilization_statistic mempertahankan ID Instance instance Amazon EC2 di label metrik instance_id. Screenshot berikut menunjukkan kueri PromQL yang membuat diagram metrik aws_ec2_cpuutilization_sum; tabel menampilkan nilai label yang dipilih:

Tabel menunjukkan nilai label `intance_id` untuk metrik EC2.

Jika menggunakan salah satu konfigurasi pengekspor Prometheus CloudWatch untuk migrasi yang disediakan, tetapi ingin mengumpulkan dimensi atau statistik tambahan untuk metrik, Anda dapat mengubah konfigurasi. Untuk mengetahui informasi selengkapnya, lihat dokumentasi pengekspor Prometheus CloudWatch.

Membuat ulang dasbor dan kebijakan pemberitahuan

Dasbor dan kebijakan pemberitahuan yang ada yang menggunakan metrik AWS CloudWatch lama tidak akan berfungsi untuk metrik yang diserap menggunakan pengekspor Prometheus CloudWatch. Ini adalah perubahan yang dapat menyebabkan gangguan.

Untuk mendapatkan kemampuan observasi yang sama ke dalam sistem AWS, Anda harus membangun ulang dasbor dan kebijakan pemberitahuan untuk menggunakan metrik yang dikumpulkan oleh pengekspor Prometheus.

Kehilangan metadata

Selain mengumpulkan metrik AWS CloudWatch, solusi lama tersebut juga mengumpulkan metadata dari agen Monitoring lama dan Agen Logging lama yang berjalan di instance Amazon Elastic Compute Cloud (Amazon EC2). Metadata resource tersebut digabungkan dengan metrik di Cloud Monitoring dan muncul sebagai label metadata pengguna atau sistem seperti Nama Instance, Zona Ketersediaan, Jenis Mesin, dan lainnya.

Pengekspor Prometheus CloudWatch mungkin tidak mengumpulkan metadata yang sama. Jika Anda menggunakan salah satu agen lama di instance VM Amazon EC2, bagian berikut menjelaskan cara menggunakan pengekspor Prometheus untuk mengumpulkan metadata yang hilang dan menggabungkannya dengan metrik yang dikumpulkan oleh pengekspor Prometheus:

Setelah 21 Agustus 2024, ketika penghentian solusi AWS CloudWatch lama selesai, label metadata ini tidak akan tersedia lagi. Label resource metrik dan aws_ec2_instance tidak terpengaruh.

Untuk pengguna agen Monitoring lama pada instance Amazon EC2

Jika Anda menggunakan metadata AWS dalam diagram dan kueri serta ingin mengelolanya, Anda dapat mengumpulkannya menggunakan pengekspor Prometheus CloudWatch. Buat VM Compute Engine, lalu siapkan pengekspor Prometheus CloudWatch dan Agen Operasional seperti yang dijelaskan dalam dokumen ini. Gunakan file konfigurasi ec2.yml saat mengonfigurasi pengekspor Prometheus CloudWatch,

File konfigurasi ec2.yml menggunakan fitur aws_tag_select. Saat fitur aws_tag_select digunakan dalam konfigurasi, pengekspor Prometheus CloudWatch akan mengekspor metrik yang disebut aws_resource_info. Metrik aws_resource_info melaporkan deret waktu dengan metadata resource AWS dalam label metrik. Metadata ini mencakup semua tag instance Amazon EC2, termasuk Nama Instance, dalam label tag_Name.

Jika ingin mengumpulkan metadata tambahan, Anda dapat menambahkan metadata tersebut menggunakan tag instance pada instance Amazon EC2. Baca bagian Menambahkan atau menghapus tag instance EC2. Metrik aws_resource_info yang dilaporkan oleh pengekspor Prometheus menyertakan metadata tambahan.

Anda kemudian dapat menggabungkan label metadata dari metrik aws_resource_info dengan metrik mandiri dari agen Monitoring lama atau metrik Amazon EC2 menggunakan MQL untuk PromQL.

Penggabungan MQL

Misalnya, kueri MQL berikut menggabungkan metrik mandiri agen agent.googleapis.com/agent/uptime, yang ditulis berdasarkan jenis resource aws_ec2_instance, dengan metrik pengekspor Prometheus CloudWatch aws_resource_info, ditulis berdasarkan jenis resource prometheus-target:

{
    aws_ec2_instance :: 'agent.googleapis.com/agent/uptime'
    | align next_older()
    | group_by [instance_id: resource.instance_id, resource.project_id, resource.region, resource.aws_account, metric.version]
    ;
    prometheus_target :: 'prometheus.googleapis.com/aws_resource_info/gauge'
    | align next_older()
    | group_by [instance_id: metric.instance_id, resource.project_id, aws_account: re_extract(metric.arn, "arn:aws:ec2:[^:]+:([^:]+):instance/.*"), region: concatenate("aws:", re_extract(metric.arn, "arn:aws:ec2:([^:]+):[^:]+:instance/.*")), name: metric.tag_Name]
}
| join
| val(0)

Kedua metrik ini digabungkan pada label instance_id, sehingga nama VM—nilai label metric.tag_Name dalam metrik aws_resource_info—dapat ditambahkan ke hasil gabungan. Metrik mandiri uptime agen mencakup label resource region; penggabungan dengan label region berfungsi karena AWS tidak menentukan apakah ID instance harus unik secara regional atau global.

Untuk informasi selengkapnya tentang MQL, lihat Ringkasan Bahasa Kueri Monitoring.

Gabungan PromQL

Contoh berikut menunjukkan kueri PromQL yang menggabungkan metrik aws_ec2_cpuutilization_average dari pengekspor Prometheus CloudWatch. Contoh berikut menunjukkan kueri PromQL yang menggabungkan metrik aws_ec2_cpuutilization_average dari pengekspor Prometheus CloudWatch dengan metrik metadata aws_resource_info. Metrik digabungkan pada label instance_id, untuk menambahkan nama VM, dari label tag_Name metrik metadata ke hasil kueri.

  aws_ec2_cpuutilization_average
* on(instance_id) group_left(tag_Name)
  aws_resource_info

Untuk pengguna agen Logging lama pada instance Amazon EC2

Agen Logging lama, google-fluentd, melaporkan metadatanya langsung ke Cloud Logging, sehingga penghentian solusi metrik AWS CloudWatch yang menggunakan agen Monitoring lama tidak berpengaruh pada log yang dikumpulkan oleh agen Logging.

Namun, agen Logging lama melaporkan beberapa metrik tentang dirinya sendiri. Jika Anda ingin menambahkan metadata ke metrik mandiri tersebut, Anda dapat membuat VM Compute Engine, serta menyiapkan pengekspor Prometheus CloudWatch dan Agen Operasional seperti yang dijelaskan dalam dokumen ini. Gunakan file konfigurasi ec2.yml saat mengonfigurasi pengekspor Prometheus CloudWatch,

Anda mungkin juga perlu mengubah konfigurasi agen Logging lama. Plugin output untuk agen Logging lama mendukung opsi use_aws_availability_zone untuk AWS. Opsi ini harus ditetapkan ke false agar agen menulis label region, bukan label availability_zone. Untuk mengetahui informasi tentang lokasi file konfigurasi plugin, lihat Konfigurasi plugin output fluentd Google Cloud.

File konfigurasi ec2.yml menggunakan fitur aws_tag_select. Saat fitur aws_tag_select digunakan dalam konfigurasi, pengekspor Prometheus CloudWatch akan mengekspor metrik yang disebut aws_resource_info. Metrik aws_resource_info melaporkan deret waktu dengan metadata resource AWS dalam label metrik. Metadata ini mencakup semua tag instance Amazon EC2, termasuk Nama Instance, dalam label tag_Name.

Jika ingin mengumpulkan metadata tambahan, Anda dapat menambahkan metadata tersebut menggunakan tag instance pada instance Amazon EC2. Baca bagian Menambahkan atau menghapus tag instance EC2. Metrik aws_resource_info yang dilaporkan oleh pengekspor Prometheus menyertakan metadata tambahan.

Anda kemudian dapat menggabungkan label metadata dari metrik aws_resource_info dengan metrik mandiri dari agen Logging lama menggunakan MQL. Misalnya, kueri MQL berikut menggabungkan metrik mandiri agen agent.googleapis.com/agent/uptime, yang ditulis berdasarkan jenis resource aws_ec2_instance, dengan metrik pengekspor Prometheus CloudWatch aws_resource_info, ditulis berdasarkan jenis resource prometheus-target:

{
    aws_ec2_instance :: 'agent.googleapis.com/agent/uptime'
    | align next_older()
    | group_by [instance_id: resource.instance_id, resource.project_id, resource.region, resource.aws_account, metric.version]
    ;
    prometheus_target :: 'prometheus.googleapis.com/aws_resource_info/gauge'
    | align next_older()
    | group_by [instance_id: metric.instance_id, resource.project_id, aws_account: re_extract(metric.arn, "arn:aws:ec2:[^:]+:([^:]+):instance/.*"), region: concatenate("aws:", re_extract(metric.arn, "arn:aws:ec2:([^:]+):[^:]+:instance/.*")), name: metric.tag_Name]
}
| join
| val(0)

Kedua metrik ini digabungkan pada label instance_id, sehingga nama VM—nilai label metric.tag_Name dalam metrik aws_resource_info—dapat ditambahkan ke hasil gabungan. Metrik mandiri uptime agen mencakup label resource region; penggabungan dengan label region berfungsi karena AWS tidak menentukan apakah ID instance harus unik secara regional atau global.

Untuk informasi selengkapnya tentang MQL, lihat Ringkasan Bahasa Kueri Monitoring.

Menonaktifkan metrik lama di akun AWS Anda

Saat membuat project AWS Connector di project Google Cloud, Anda membuat peran AWS IAM yang memberi Google Cloud akses hanya baca ke akun AWS Anda. Untuk menonaktifkan metrik AWS CloudWatch lama di konsol AWS Anda, hapus peran ini. Untuk mengetahui informasi selengkapnya, lihat Menghapus peran IAM (konsol).

Konfigurasi pengekspor Prometheus CloudWatch untuk migrasi

Bagian ini menyediakan konfigurasi yang mereplikasi, semirip mungkin, metrik layanan AWS yang didokumentasikan dalam daftar metrik AWS. File konfigurasi ini ditujukan untuk digunakan oleh pelanggan yang bermigrasi ke pengekspor Prometheus CloudWatch dari solusi lama. Jika Anda menyiapkan pengekspor Prometheus CloudWatch sebagai pengguna baru, bukan pengguna yang bermigrasi, dan Anda menggunakan konfigurasi ini, berarti Anda tidak mengumpulkan semua metrik AWS yang disediakan oleh pengekspor Prometheus CloudWatch.

Untuk melihat contoh file konfigurasi untuk metrik AWS CloudWatch, luaskan salah satu bagian berikut.