View a markdown version of this page

CloudWatch Solusi Amazon: Prometheus koleksi metrik di Amazon ECS - Amazon CloudWatch

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

CloudWatch Solusi Amazon: Prometheus koleksi metrik di Amazon ECS

Solusi ini membantu Anda mengumpulkan metrik Prometheus yang kompatibel dari tugas Amazon ECS Anda tanpa menjalankan atau menskalakan infrastruktur pengumpulan Anda sendiri. Tugas Anda mengekspos metrik melalui Prometheus eksportir, dan kolektor Prometheus yang CloudWatch dikelola Amazon menemukan tugas di VPC Anda melalui penemuan DNS-based layanan, mengikis /metrics titik akhir mereka, dan mengirimkan metrik ke. CloudWatch Karena tugas Amazon ECS bersifat sementara dan alamat IP-nya berubah, solusi ini menggunakan penemuan layanan AWS Cloud Map sehingga kolektor selalu mengikis rangkaian tugas saat ini. Untuk informasi umum tentang semua solusi CloudWatch pengamatan, lihatCloudWatch solusi pengamatan. Untuk informasi selengkapnya tentang kolektor yang dikelola, lihatAmazon CloudWatch mengelola kolektor Prometheus.

Persyaratan

Solusi ini relevan untuk kondisi berikut:

  • Komputasi: Tugas Amazon ECS (di Amazon EC2 atau AWS Fargate) yang mengekspos metrik yang kompatibel. Prometheus

  • Layanan Amazon ECS yang Anda daftarkan dengan AWS Cloud Map untuk penemuan DNS-based layanan.

  • Amazon VPC dengan DNS diaktifkan, dan setidaknya dua subnet di Zona Ketersediaan yang berbeda untuk kolektor.

  • Grup keamanan yang memungkinkan kolektor untuk mencapai port metrik pada tugas Anda. Jika tugas Anda dan kolektor berbagi grup keamanan, tambahkan aturan masuk referensi mandiri untuk port metrik.

Aktifkan Prometheus pengekspor

Ek Prometheus sportir adalah proses yang mengekspos metrik dalam format Prometheus eksposisi pada /metrics titik akhir HTTP. Di Amazon ECS, Anda biasanya menjalankan eksportir sebagai wadah sidecar dalam definisi tugas yang sama dengan aplikasi Anda, atau instrumen aplikasi untuk mengekspos metrik secara langsung. Eksportir berikut biasanya digunakan:

  • Eksportir Node — metrik Host-level infrastruktur untuk tugas pada jenis peluncuran Amazon EC2 (port default 9100). Untuk informasi selengkapnya, lihat repositori Eksportir Node pada GitHub.

  • JMX Exporter - Metrik aplikasi JVM dan Java untuk beban kerja Java. Untuk informasi selengkapnya, lihat repositori JMX Exporter di GitHub.

  • Eksportir NGINX Prometheus - Server web NGINX dan metrik proxy terbalik. Untuk informasi selengkapnya, lihat repositori NGINX Prometheus Exporter di. GitHub

  • Eksportir DCGM - Metrik GPU NVIDIA untuk beban kerja GPU (port default 9400). Untuk informasi selengkapnya, lihat repositori Eksportir DCGM di GitHub.

  • HAProxy Exporter — Metrik penyeimbang beban HAProxy. Untuk informasi selengkapnya, lihat repositori HAProxy Exporter di GitHub.

  • Apache Exporter - Metrik Server HTTP Apache. Untuk informasi selengkapnya, lihat repositori Apache Exporter di GitHub.

Tambahkan eksportir ke definisi tugas Anda dan buka port metriknya dengan mengikuti dokumentasi resmi eksportir. Untuk katalog lengkap eksportir yang tersedia, lihat Ek sportir dan integrasi dalam Prometheus dokumentasi.

Langkah 1: Siapkan grup keamanan

Konfirmasikan bahwa grup keamanan untuk tugas Amazon ECS Anda mengizinkan lalu lintas masuk dari kolektor pada port metrik. Saat tugas Anda dan kolektor berbagi grup keamanan, tambahkan aturan masuk referensi mandiri sehingga sumber daya dalam grup keamanan yang sama dapat berkomunikasi. Perintah berikut memungkinkan lalu lintas masuk pada port 80 dari grup keamanan yang sama:

aws ec2 authorize-security-group-ingress \ --group-id sg-security-group-id \ --ip-permissions IpProtocol=tcp,FromPort=80,ToPort=80,UserIdGroupPairs='[{GroupId=sg-security-group-id}]'

Langkah 2: Siapkan konfigurasi scrape

Untuk tugas Amazon ECS yang Anda daftarkan di AWS Cloud Map, gunakan penemuan DNS-based layanan (dns_sd_configs) untuk menemukan dan mengikis tugas Anda secara otomatis saat mulai dan berhenti. dns_sd_configsBagian ini mengarahkan kolektor untuk menanyakan nama DNS AWS Cloud Map dan mengikis semua alamat IP yang dikembalikan. Ketika Amazon ECS menggantikan tugas, kolektor mengambil perubahan pada kueri DNS berikutnya. relabel_configsBagian ini menambahkan label yang konsisten ke metrik Anda sehingga Anda dapat menanyakan dan memfilter di seluruh layanan. Untuk rangkaian lengkap opsi konfigurasi yang didukung, lihatKonfigurasi scraper.

global: scrape_interval: 30s scrape_timeout: 10s scrape_configs: - job_name: 'ecs-payforadoption' dns_sd_configs: - names: ['payforadoption-go.Workshop-space'] type: A port: 80 metrics_path: '/metrics' relabel_configs: - target_label: service_name replacement: 'payforadoption-go' - target_label: cloudmap_namespace replacement: 'Workshop-space' - target_label: environment replacement: 'production' - target_label: compute_platform replacement: 'ecs-fargate'

Langkah 3: Siapkan scraper

Buat kolektor VPC-connected terkelola yang mengikis tugas Amazon ECS Anda dan mengirimkan metrik ke dataset Anda: CloudWatch

Anda dapat menggunakan GetDefaultScraperConfiguration untuk mengambil konfigurasi scraper tujuan umum, atau menyediakan konfigurasi milik Anda sendiri.

AWS API

Gunakan operasi CreateScraper API untuk membuat scraper dengan CloudWatch tujuan. Ganti subnet, grup keamanan, dan informasi dataset dengan nilai Anda sendiri.

POST /scrapers HTTP/1.1 { "alias": "ecs-payforadoption-scraper", "source": { "vpcConfiguration": { "subnetIds": ["subnet-subnet-id-1", "subnet-subnet-id-2"], "securityGroupIds": ["sg-security-group-id"] } }, "destination": { "cloudWatchConfiguration": { "datasetArn": "arn:aws:cloudwatch:us-west-2:123456789012:dataset/default" } }, "scrapeConfiguration": { "configurationBlob": "base64-encoded-blob" } }
AWS CLI

Gunakan create-scraper perintah untuk membuat scraper dengan CloudWatch tujuan. Ganti subnet, grup keamanan, dan informasi dataset dengan nilai Anda sendiri.

aws amp create-scraper \ --alias "ecs-payforadoption-scraper" \ --source '{ "vpcConfiguration": { "subnetIds": ["subnet-subnet-id-1", "subnet-subnet-id-2"], "securityGroupIds": ["sg-security-group-id"] } }' \ --scrape-configuration configurationBlob=$(cat ecs-scraper.yml | base64 -w 0) \ --destination '{ "cloudWatchConfiguration": { "datasetArn": "arn:aws:cloudwatch:us-west-2:123456789012:dataset/default" } }'

Validasi koleksi metrik

Setelah kolektor mulai mengirimkan metrik, jalankan kueri ad-hoc CloudWatch menggunakan Qu ery Studio untuk mengonfirmasi bahwa metrik Anda tiba. Misalnya, kueri berikut mengembalikan permintaan rata-rata per detik ke tugas Amazon ECS selama lima menit terakhir:

rate(payforadoption_requests_total[5m])

Membangun dasbor khusus

Setelah kolektor mulai mengirimkan metrik Amazon ECS Anda ke CloudWatch, Anda dapat membuat CloudWatch dasbor khusus untuk memvisualisasikannya. Dengan dasbor khusus, Anda dapat menggabungkan metrik dari Prometheus eksportir ke dalam widget, menambahkan PromQL-based kueri, dan mengatur widget agar sesuai dengan kebutuhan pemantauan Anda. Untuk informasi selengkapnya, lihat Menggunakan CloudWatch dasbor.

Biaya

Kami mengenakan biaya untuk Prometheus kolektor per jam, dan harga konsumsi CloudWatch OpenTelemetry metrik berlaku. Untuk informasi selengkapnya tentang CloudWatch harga, lihat CloudWatch Harga Amazon.