

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

# Melakukan scraping atas sumber Prometheus tambahan dan mengimpor metrik-metrik tersebut
<a name="ContainerInsights-Prometheus-Setup-configure-ECS"></a>

 CloudWatch Agen dengan pemantauan Prometheus membutuhkan dua konfigurasi untuk mengikis metrik Prometheus. Salah satunya adalah konfigurasi standar Prometheus sebagaimana yang didokumentasikan dalam [<scrape\_config>](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config) dalam dokumentasi Prometheus. Yang lainnya adalah untuk CloudWatch konfigurasi agen.

Untuk klaster-klaster Amazon ECS, konfigurasi diintegrasikan dengan Parameter Store AWS Systems Manager oleh rahasia yang ada dalam penetapan tugas Amazon ECS:
+ `PROMETHEUS_CONFIG_CONTENT` rahasia adalah untuk konfigurasi scraping Prometheus.
+ Rahasianya `CW_CONFIG_CONTENT` adalah untuk konfigurasi CloudWatch agen. 

Untuk mengikis sumber metrik Prometheus tambahan dan mengimpor metrik tersebut, Anda memodifikasi CloudWatch konfigurasi scrape Prometheus dan konfigurasi agen, lalu menerapkan kembali agen dengan konfigurasi yang diperbarui. CloudWatch 

**Persyaratan grup keamanan VPC**

Aturan masuknya kelompok keamanan untuk beban kerja Prometheus harus membuka port CloudWatch Prometheus ke agen untuk mengikis metrik Prometheus oleh IP pribadi.

Aturan keluar dari grup keamanan untuk CloudWatch agen harus memungkinkan agen untuk terhubung ke port CloudWatch beban kerja Prometheus dengan IP pribadi. 

## Konfigurasi scraping Prometheus
<a name="ContainerInsights-Prometheus-Setup-config-global"></a>

 CloudWatch <scrape\_config>Agen mendukung konfigurasi scrape Prometheus standar seperti yang didokumentasikan dalam dokumentasi Prometheus.[https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config) Anda dapat mengedit bagian ini untuk memperbarui konfigurasi yang sudah ada dalam file ini, dan menambahkan target-target scraping Prometheus tambahan. Secara bawaan, file konfigurasi sampel berisi baris-baris konfigurasi global berikut ini:

```
global:
  scrape_interval: 1m
  scrape_timeout: 10s
```
+ **scrape\_interval**— Mendefinisikan seberapa sering scraping akan dilakukan ke target.
+ **scrape\_timeout**— Mendefinisikan berapa lama waktu tunggu sebelum permintaan scraping habis.

Anda juga dapat menentukan nilai-nilai yang berbeda untuk pengaturan ini di level pekerjaan, untuk mengganti konfigurasi global.

### Pekerjaan scraping Prometheus
<a name="ContainerInsights-Prometheus-Setup-config-scrape"></a>

File CloudWatch YAMM agen sudah memiliki beberapa pekerjaan pengikisan default yang dikonfigurasi. Sebagai contoh, dalam file YAML untuk Amazon ECS seperti `cwagent-ecs-prometheus-metric-for-bridge-host.yaml`, pekerjaan scraping bawaan dikonfigurasi di bagian `ecs_service_discovery`.

```
"ecs_service_discovery": {
                  "sd_frequency": "1m",
                  "sd_result_file": "/tmp/cwagent_ecs_auto_sd.yaml",
                  "docker_label": {
                  },
                  "task_definition_list": [
                    {
                      "sd_job_name": "ecs-appmesh-colors",
                      "sd_metrics_ports": "9901",
                      "sd_task_definition_arn_pattern": ".*:task-definition\/.*-ColorTeller-(white):[0-9]+",
                      "sd_metrics_path": "/stats/prometheus"
                    },
                    {
                      "sd_job_name": "ecs-appmesh-gateway",
                      "sd_metrics_ports": "9901",
                      "sd_task_definition_arn_pattern": ".*:task-definition/.*-ColorGateway:[0-9]+",
                      "sd_metrics_path": "/stats/prometheus"
                    }
                  ]
                }
```

Masing-masing target default ini dikikis, dan metrik dikirim ke CloudWatch peristiwa log menggunakan format metrik yang disematkan. Untuk informasi selengkapnya, lihat [Menyematkan metrik dalam log](CloudWatch_Embedded_Metric_Format.md).

Peristiwa log dari kluster Amazon ECS disimpan dalam grup log**///aws/ecs/containerinsights{{cluster\_name}}/prometheus**.

Setiap pekerjaan scraping dimuat dalam log stream yang berbeda di grup log ini.

Untuk menambahkan sebuah target scraping baru, Anda harus menambahkan sebuah entri baru di bagian `task_definition_list` pada bagian `ecs_service_discovery` file YAML, dan kemudian mulai ulang agen tersebut. Untuk contoh proses ini, silakan lihat [Tutorial untuk menambahkan sebuah target scraping Prometheus baru: metrik Server API Prometheus](ContainerInsights-Prometheus-Setup-configure.md#ContainerInsights-Prometheus-Setup-new-exporters).

## CloudWatch konfigurasi agen untuk Prometheus
<a name="ContainerInsights-Prometheus-Setup-cw-agent-config"></a>

File konfigurasi CloudWatch agen memiliki `prometheus` bagian di bawah `metrics_collected` untuk konfigurasi pengikisan Prometheus. File konfigurasi tersebut mencakup opsi-opsi konfigurasi berikut:
+ **cluster\_name**— menentukan nama klaster yang akan ditambahkan sebagai label pada peristiwa log. Bidang ini bersifat opsional. Jika Anda menghilangkannya, maka agen akan dapat mendeteksi nama klaster Amazon ECS.
+ **log\_group\_name**— menentukan nama grup log untuk metrik-metrik Prometheus yang di-scraping. Bidang ini bersifat opsional. Jika Anda menghilangkannya, CloudWatch gunakan**/aws/ecs/containerinsights/{{cluster\_name}}/prometheus untuk** log dari cluster Amazon ECS.
+ **prometheus\_config\_path**— menentukan jalur file konfigurasi scraping Prometheus. Jika nilai bidang ini dimulai dengan `env:`, maka konten file konfigurasi Prometheus scraping akan diambil dari variabel lingkungan kontainer. Jangan ubah bidang ini.
+ **ecs\_service\_discovery**— adalah bagian untuk menentukan konfigurasi fungsi penemuan otomatis target Amazon ECS Prometheus. Dua mode didukung untuk menemukan target-target Prometheus: penemuan berdasarkan label docker kontainer atau penemuan berdasarkan ekspresi reguler ARN penetapan tugas Amazon ECS. Anda dapat menggunakan dua mode sekaligus dan CloudWatch agen akan men-de-duplikasikan target yang ditemukan berdasarkan: *{private\_ip}:{port}/{metrics\_path}*.

  Bagian `ecs_service_discovery` dapat berisi bidang-bidang berikut:
  + `sd_frequency` adalah frekuensi untuk menemukan pengekspor Prometheus. Tentukan sebuah angka dan sebuah akhiran unit. Sebagai contoh, `1m` satu kali per menit atau `30s` satu kali per 30 detik. Akhiran unit yang valid adalah `ns`, `us`, `ms`, `s`, `m`, dan `h`.

    Bidang ini bersifat opsional. Bawaannya adalah 60 detik (1 menit).
  + `sd_target_cluster` adalah nama klaster Amazon ECS target untuk penemuan otomatis. Bidang ini bersifat opsional. Defaultnya adalah nama cluster Amazon ECS tempat CloudWatch agen diinstal. 
  + `sd_cluster_region` adalah Wilayah klaster Amazon ECS target. Bidang ini bersifat opsional. Bawaan adalah Wilayah klaster ECS Amazon tempat CloudWatch agen terpasang.
  + `sd_result_file` adalah jalur file YAML untuk hasil-hasil target Prometheus. Konfigurasi scraping Prometheus akan merujuk pada file ini.
  + `docker_label` adalah sebuah bagian opsional yang dapat Anda gunakan untuk menentukan konfigurasi untuk penemuan layanan berbasis label docker. Jika Anda menghilangkan bagian ini, maka penemuan berbasis label docker tidak akan digunakan. Bagian ini dapat berisi bidang-bidang berikut:
    + `sd_port_label` adalah nama label docker dari kontainer yang menentukan port kontainer untuk metrik-metrik Prometheus. Nilai bawaannya adalah `ECS_PROMETHEUS_EXPORTER_PORT`. Jika wadah tidak memiliki label docker ini, CloudWatch agen akan melewatkannya.
    + `sd_metrics_path_label` adalah nama label docker dari kontainer yang menentukan jalur metrik-metrik Prometheus. Nilai bawaannya adalah `ECS_PROMETHEUS_METRICS_PATH`. Jika kontainer tidak memiliki label docker ini, maka agen akan mengasumsikan jalur default `/metrics`.
    + `sd_job_name_label` adalah nama label docker dari kontainer yang menentukan nama pekerjaan scraping Prometheus. Nilai bawaannya adalah `job`. Jika wadah tidak memiliki label docker ini, CloudWatch agen menggunakan nama pekerjaan dalam konfigurasi scrape Prometheus.
  + `task_definition_list` adalah sebuah bagian opsional yang dapat Anda gunakan untuk menentukan konfigurasi penemuan layanan berbasis penetapan tugas. Jika Anda menghilangkan bagian ini, maka penemuan berbasis penetapan tugas tidak akan digunakan. Bagian ini dapat berisi bidang-bidang berikut:
    + `sd_task_definition_arn_pattern` adalah pola yang akan digunakan untuk menentukan penetapan tugas Amazon ECS yang harus ditemukan. Ini adalah ekspresi biasa.
    + `sd_metrics_ports` mencantumkan containerPort untuk metrik-metrik Prometheus. Pisahkan containerPorts dengan titik koma.
    + `sd_container_name_pattern` menentukan nama-nama kontainer tugas Amazon ECS. Ini adalah ekspresi biasa.
    + `sd_metrics_path` menentukan jalur metrik Prometheus. Jika Anda menghilangkannya, maka agen tersebut akan mengasumsikan jalur bawaan `/metrics`
    + `sd_job_name` menyebutkan nama pekerjaan scraping Prometheus. Jika Anda menghilangkan bidang ini, CloudWatch agen menggunakan nama pekerjaan dalam konfigurasi scrape Prometheus.
  + `service_name_list_for_tasks` adalah sebuah bagian opsional yang dapat Anda gunakan untuk menentukan konfigurasi penemuan berbasis nama layanan. Jika Anda menghilangkan bagian ini, maka penemuan berbasis nama layanan tidak akan digunakan. Bagian ini dapat berisi bidang-bidang berikut:
    + `sd_service_name_pattern` adalah pola yang digunakan untuk menentukan layanan Amazon ECS tempat di mana tugas ditemukan. Ini adalah ekspresi biasa.
    + `sd_metrics_ports` Mencantumkan `containerPort` untuk metrik-metrik Prometheus. Pisahkan beberapa `containerPorts` dengan titik koma.
    + `sd_container_name_pattern` menentukan nama-nama kontainer tugas Amazon ECS. Ini adalah ekspresi biasa.
    + `sd_metrics_path` menentukan jalur metrik-metrik Prometheus. Jika Anda menghilangkannya, maka agen tersebut akan mengasumsikan jalur bawaannya adalah `/metrics`
    + `sd_job_name` menyebutkan nama pekerjaan scraping Prometheus. Jika Anda menghilangkan bidang ini, CloudWatch agen menggunakan nama pekerjaan dalam konfigurasi scrape Prometheus. 
+ **metric\_declaration**— adalah bagian-bagian yang menentukan larik log dengan format metrik tersemat yang akan dihasilkan. Ada `metric_declaration` bagian untuk setiap sumber Prometheus bahwa CloudWatch impor agen dari secara default. Masing-masing bagian ini mencakup bidang-bidang berikut:
  + `label_matcher` adalah ekspresi reguler yang memeriksa nilai dari label-label yang tercantum dalam `source_labels`. Metrik yang cocok diaktifkan untuk dimasukkan dalam format metrik tertanam yang dikirim ke CloudWatch. 

    Jika Anda memiliki beberapa label yang ditentukan dalam `source_labels`, maka kami menyarankan Anda untuk tidak menggunakan karakter `^` atau `$` dalam ekspresi reguler untuk `label_matcher`.
  + `source_labels` menentukan nilai dari label-label yang diperiksa oleh baris `label_matcher`.
  + `label_separator` menentukan pemisah yang akan digunakan dalam baris ` label_matcher` jika ada beberapa `source_labels` yang ditetapkan. Nilai default-nya `;`. Anda dapat melihat nilai-nilai bawaan ini digunakan di `label_matcher` dalam contoh berikut.
  + `metric_selectors` adalah ekspresi reguler yang menentukan metrik yang akan dikumpulkan dan dikirim ke CloudWatch.
  + `dimensions` adalah daftar label yang akan digunakan sebagai CloudWatch dimensi untuk setiap metrik yang dipilih.

Lihat contoh `metric_declaration` berikut ini.

```
"metric_declaration": [
  {
     "source_labels":[ "Service", "Namespace"],
     "label_matcher":"(.*node-exporter.*|.*kube-dns.*);kube-system$",
     "dimensions":[
        ["Service", "Namespace"]
     ],
     "metric_selectors":[
        "^coredns_dns_request_type_count_total$"
     ]
  }
]
```

Contoh ini mengonfigurasikan sebuah bagian format metrik tersemat yang akan dikirim sebagai sebuah peristiwa log jika kondisi-kondisi berikut dipenuhi:
+ Nilai dari `Service` berisi `node-exporter` atau `kube-dns`.
+ Nilai dari `Namespace` adalah `kube-system`.
+ Metrik Prometheus `coredns_dns_request_type_count_total` memuat label `Service` dan `Namespace`.

Peristiwa log yang dikirim mencakup bagian yang disorot berikut ini:

```
{
   "CloudWatchMetrics":[
      {
         "Metrics":[
            {
               "Name":"coredns_dns_request_type_count_total"
            }
         ],
         "Dimensions":[
            [
               "Namespace",
               "Service"
            ]
         ],
         "Namespace":"ContainerInsights/Prometheus"
      }
   ],
   "Namespace":"kube-system",
   "Service":"kube-dns",
   "coredns_dns_request_type_count_total":2562,
   "eks_amazonaws_com_component":"kube-dns",
   "instance":"192.168.61.254:9153",
   "job":"kubernetes-service-endpoints",
   ...
}
```