

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
<a name="Solution-Prometheus-On-ECS"></a>

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, lihat[CloudWatch solusi pengamatan](Monitoring-Solutions.md). Untuk informasi selengkapnya tentang kolektor yang dikelola, lihat[Amazon CloudWatch mengelola kolektor Prometheus](managed-prometheus-collectors.md).

**Topics**
+ [Persyaratan](#Solution-Prometheus-On-ECS-Requirements)
+ [Aktifkan Prometheus pengekspor](#Solution-Prometheus-On-ECS-Exporters)
+ [Langkah 1: Siapkan grup keamanan](#Solution-Prometheus-On-ECS-Security-Groups)
+ [Langkah 2: Siapkan konfigurasi scrape](#Solution-Prometheus-On-ECS-Scrape-Config)
+ [Langkah 3: Siapkan scraper](#Solution-Prometheus-On-ECS-Create-Scraper)
+ [Validasi koleksi metrik](#Solution-Prometheus-On-ECS-Validate)
+ [Membangun dasbor khusus](#Solution-Prometheus-On-ECS-Dashboards)
+ [Biaya](#Solution-Prometheus-On-ECS-Costs)

## Persyaratan
<a name="Solution-Prometheus-On-ECS-Requirements"></a>

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
<a name="Solution-Prometheus-On-ECS-Exporters"></a>

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 ](https://github.com/prometheus/node_exporter) Eksportir Node pada GitHub.
+ **JMX Exporter ** - Metrik aplikasi JVM dan Java untuk beban kerja Java. Untuk informasi selengkapnya, lihat [ repositori ](https://github.com/prometheus/jmx_exporter) JMX Exporter di GitHub.
+ **Eksportir NGINX Prometheus ** - Server web NGINX dan metrik proxy terbalik. Untuk informasi selengkapnya, lihat [ repositori ](https://github.com/nginx/nginx-prometheus-exporter) NGINX Prometheus Exporter di. GitHub
+ **Eksportir DCGM ** - Metrik GPU NVIDIA untuk beban kerja GPU (port default 9400). Untuk informasi selengkapnya, lihat [ repositori ](https://github.com/NVIDIA/dcgm-exporter) Eksportir DCGM di GitHub.
+ **HAProxy Exporter ** — Metrik penyeimbang beban HAProxy. Untuk informasi selengkapnya, lihat [ repositori ](https://github.com/prometheus/haproxy_exporter) HAProxy Exporter di GitHub.
+ **Apache Exporter ** - Metrik Server HTTP Apache. Untuk informasi selengkapnya, lihat [ repositori ](https://github.com/Lusitaniae/apache_exporter) 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 ](https://prometheus.io/docs/instrumenting/exporters/) dalam Prometheus dokumentasi.

## Langkah 1: Siapkan grup keamanan
<a name="Solution-Prometheus-On-ECS-Security-Groups"></a>

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
<a name="Solution-Prometheus-On-ECS-Scrape-Config"></a>

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_configs`Bagian 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_configs`Bagian ini menambahkan label yang konsisten ke metrik Anda sehingga Anda dapat menanyakan dan memfilter di seluruh layanan. Untuk rangkaian lengkap opsi konfigurasi yang didukung, lihat[Konfigurasi scraper](managed-prometheus-collectors-scraper-configuration.md).

```
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
<a name="Solution-Prometheus-On-ECS-Create-Scraper"></a>

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

Anda dapat menggunakan [GetDefaultScraperConfiguration](https://docs.aws.amazon.com/prometheus/latest/APIReference/API_GetDefaultScraperConfiguration.html) 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
<a name="Solution-Prometheus-On-ECS-Validate"></a>

Setelah kolektor mulai mengirimkan metrik, jalankan kueri ad-hoc CloudWatch menggunakan Qu [ ery Studio ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-PromQL-QueryStudio.html) 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
<a name="Solution-Prometheus-On-ECS-Dashboards"></a>

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](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html).

## Biaya
<a name="Solution-Prometheus-On-ECS-Costs"></a>

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](https://aws.amazon.com/cloudwatch/pricing/).