

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

# Menggunakan AWS Distro untuk OpenTelemetry sebagai kolektor
<a name="AMP-ingest-with-adot"></a>

Bagian ini menjelaskan cara mengonfigurasi Kolektor AWS Distro for OpenTelemetry (ADOT) untuk mengikis dari aplikasi yang diinstrumentasi Prometheus, dan mengirim metrik ke Amazon Managed Service untuk Prometheus. Untuk informasi selengkapnya tentang Kolektor ADOT, lihat [AWS Distro](https://aws.amazon.com/otel/) untuk. OpenTelemetry

Topik berikut menjelaskan tiga cara berbeda untuk mengatur ADOT sebagai kolektor untuk metrik Anda, berdasarkan apakah metrik Anda berasal dari Amazon EKS, Amazon ECS, atau instans Amazon EC2.

**Topics**
+ [Siapkan konsumsi metrik menggunakan AWS Distro untuk klaster Amazon Elastic OpenTelemetry Kubernetes Service](AMP-onboard-ingest-metrics-OpenTelemetry.md)
+ [Siapkan konsumsi metrik dari Amazon ECS menggunakan AWS Distro untuk Open Telemetry](AMP-onboard-ingest-metrics-OpenTelemetry-ECS.md)
+ [Mengatur konsumsi metrik dari instans Amazon EC2 menggunakan penulisan jarak jauh](AMP-onboard-ingest-metrics-remote-write-EC2.md)

# Siapkan konsumsi metrik menggunakan AWS Distro untuk klaster Amazon Elastic OpenTelemetry Kubernetes Service
<a name="AMP-onboard-ingest-metrics-OpenTelemetry"></a>

Anda dapat menggunakan kolektor AWS Distro for OpenTelemetry (ADOT) untuk mengikis metrik dari aplikasi yang diinstrumentasi Prometheus, dan mengirim metrik ke Amazon Managed Service untuk Prometheus.

**catatan**  
Untuk informasi selengkapnya tentang kolektor ADOT, lihat [AWS Distro](https://aws.amazon.com/otel/) untuk. OpenTelemetry  
Untuk informasi selengkapnya tentang aplikasi yang diinstrumentasi Prometheus, lihat. [Apa itu metrik yang kompatibel dengan Prometheus?](prom-compatible-metrics.md)

Mengumpulkan metrik Prometheus dengan ADOT melibatkan OpenTelemetry tiga komponen: Penerima Prometheus, Eksportir Tulis Jarak Jauh Prometheus, dan Ekstensi Otentikasi Sigv4.

Anda dapat mengonfigurasi Penerima Prometheus menggunakan konfigurasi Prometheus yang ada untuk melakukan penemuan layanan dan pengikisan metrik. Penerima Prometheus menggores metrik dalam format eksposisi Prometheus. Setiap aplikasi atau titik akhir yang ingin Anda kikis harus dikonfigurasi dengan pustaka klien Prometheus. [Penerima Prometheus mendukung set lengkap konfigurasi pengikisan dan pelabelan ulang Prometheus yang dijelaskan dalam Konfigurasi dalam dokumentasi Prometheus.](https://prometheus.io/docs/prometheus/latest/configuration/configuration/) Anda dapat menempelkan konfigurasi ini langsung ke konfigurasi ADOT Collector Anda.

Prometheus Remote Write Exporter menggunakan titik akhir untuk mengirim metrik `remote_write` yang tergores ke ruang kerja portal manajemen Anda. Permintaan HTTP untuk mengekspor data akan ditandatangani dengan AWS SiGv4, AWS protokol untuk otentikasi aman, dengan Ekstensi Otentikasi Sigv4. Untuk informasi selengkapnya, lihat [proses penandatanganan Signature Version 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html). 

[Kolektor secara otomatis menemukan titik akhir metrik Prometheus di Amazon EKS dan menggunakan konfigurasi yang ditemukan di.](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#kubernetes_sd_config) <kubernetes\$1sd\$1config>

 Demo berikut adalah contoh konfigurasi ini pada cluster yang menjalankan Amazon Elastic Kubernetes Service atau Kubernetes yang dikelola sendiri. Untuk melakukan langkah-langkah ini, Anda harus memiliki AWS kredensil dari salah satu opsi potensial dalam rantai AWS kredensi default. Untuk informasi selengkapnya, lihat [Mengonfigurasi AWS SDK](https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html) for Go. Demo ini menggunakan contoh aplikasi yang digunakan untuk pengujian integrasi proses. Aplikasi sampel mengekspos metrik di `/metrics` titik akhir, seperti pustaka klien Prometheus.

## Prasyarat
<a name="AMP-onboard-ingest-metrics-OpenTelemetry-pre"></a>

Sebelum memulai langkah-langkah penyiapan konsumsi berikut, Anda harus menyiapkan peran IAM Anda untuk akun layanan dan kebijakan kepercayaan.

**Untuk mengatur peran IAM untuk akun layanan dan kebijakan kepercayaan**

1. Buat peran IAM untuk akun layanan dengan mengikuti langkah-langkah di[Menyiapkan peran layanan untuk menelan metrik dari kluster Amazon EKS](set-up-irsa.md#set-up-irsa-ingest).

   Kolektor ADOT akan menggunakan peran ini saat menggores dan mengekspor metrik.

1. Selanjutnya, edit kebijakan kepercayaan. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/home).

1. Di panel navigasi kiri, pilih **Peran** dan temukan **amp-iamproxy-ingest-role**yang Anda buat di langkah 1.

1. Pilih tab **Trust relationship** dan pilih **Edit trust relationship**.

1. Dalam kebijakan hubungan kepercayaan JSON, ganti `aws-amp` dengan `adot-col` lalu pilih **Perbarui Kebijakan Kepercayaan**. Kebijakan kepercayaan yang Anda hasilkan akan terlihat seperti berikut:

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Federated": "arn:aws:iam::111122223333:oidc-provider/oidc.eks.us-east-1.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE"
         },
         "Action": "sts:AssumeRoleWithWebIdentity",
         "Condition": {
           "StringEquals": {
             "oidc.eks.us-east-1.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:sub": "system:serviceaccount:adot-col:amp-iamproxy-ingest-service-account",
             "oidc.eks.us-east-1.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:aud": "sts.amazonaws.com"
           }
         }
       }
     ]
   }
   ```

------

1. Pilih tab **Izin** dan pastikan bahwa kebijakan izin berikut dilampirkan ke peran.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "aps:RemoteWrite",
                   "aps:GetSeries",
                   "aps:GetLabels",
                   "aps:GetMetricMetadata"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

## Mengaktifkan koleksi metrik Prometheus
<a name="AMP-onboard-ingest-metrics-OpenTelemetry-steps"></a>

**catatan**  
Saat Anda membuat namespace di Amazon EKS, `alertmanager` dan pengekspor node dinonaktifkan secara default.

**Untuk mengaktifkan koleksi Prometheus di Amazon EKS atau klaster Kubernetes**

1. Fork dan kloning aplikasi sampel dari repositori di. [aws-otel-community](https://github.com/aws-observability/aws-otel-community)

   Kemudian jalankan perintah berikut.

   ```
   cd ./sample-apps/prometheus-sample-app
   docker build . -t prometheus-sample-app:latest
   ```

1. Dorong gambar ini ke registri seperti Amazon ECR atau DockerHub.

1. Terapkan aplikasi sampel di cluster dengan menyalin konfigurasi Kubernetes ini dan menerapkannya. Ubah gambar ke gambar yang baru saja Anda dorong `{{PUBLIC_SAMPLE_APP_IMAGE}}` dengan mengganti `prometheus-sample-app.yaml` file.

   ```
   curl https://raw.githubusercontent.com/aws-observability/aws-otel-collector/main/examples/eks/aws-prometheus/prometheus-sample-app.yaml -o prometheus-sample-app.yaml
   kubectl apply -f prometheus-sample-app.yaml
   ```

1. Masukkan perintah berikut untuk memverifikasi bahwa aplikasi sampel telah dimulai. Dalam output perintah, Anda akan melihat `prometheus-sample-app` di `NAME` kolom.

   ```
   kubectl get all -n aoc-prometheus-pipeline-demo
   ```

1. Mulai contoh default dari ADOT Collector. Untuk melakukannya, pertama-tama masukkan perintah berikut untuk menarik konfigurasi Kubernetes untuk ADOT Collector.

   ```
   curl https://raw.githubusercontent.com/aws-observability/aws-otel-collector/main/examples/eks/aws-prometheus/prometheus-daemonset.yaml -o prometheus-daemonset.yaml
   ```

   Kemudian edit file template, ganti titik akhir **remote\$1write** untuk Layanan Terkelola Amazon Anda untuk ruang kerja Prometheus untuk dan Wilayah Anda. `YOUR_ENDPOINT` `YOUR_REGION` Gunakan endpoint **remote\$1write** yang ditampilkan di Amazon Managed Service untuk konsol Prometheus saat Anda melihat detail ruang kerja Anda.

   Anda juga harus mengubah `YOUR_ACCOUNT_ID` bagian akun layanan konfigurasi Kubernetes ke ID akun Anda AWS .

   Dalam contoh ini, konfigurasi ADOT Collector menggunakan anotasi (`scrape=true`) untuk memberi tahu titik akhir target mana yang akan dikikis. Hal ini memungkinkan Kolektor ADOT untuk membedakan titik akhir aplikasi sampel dari titik akhir kube-system di cluster Anda. Anda dapat menghapus ini dari konfigurasi label ulang jika Anda ingin mengikis aplikasi sampel yang berbeda.

1. Masukkan perintah berikut untuk menyebarkan kolektor ADOT.

   ```
   kubectl apply -f prometheus-daemonset.yaml
   ```

1. Masukkan perintah berikut untuk memverifikasi bahwa kolektor ADOT telah dimulai. Cari `adot-col` di `NAMESPACE` kolom.

   ```
   kubectl get pods -n adot-col
   ```

1. Verifikasi bahwa pipeline berfungsi dengan menggunakan eksportir logging. Contoh template kami sudah terintegrasi dengan eksportir logging. Masukkan perintah berikut.

   ```
   kubectl get pods -A
   kubectl logs -n adot-col name_of_your_adot_collector_pod
   ```

   Beberapa metrik yang tergores dari aplikasi sampel akan terlihat seperti contoh berikut.

   ```
   Resource labels:
        -> service.name: STRING(kubernetes-service-endpoints)
        -> host.name: STRING(192.168.16.238)
        -> port: STRING(8080)
        -> scheme: STRING(http)
   InstrumentationLibraryMetrics #0
   Metric #0
   Descriptor:
        -> Name: test_gauge0
        -> Description: This is my gauge
        -> Unit: 
        -> DataType: DoubleGauge
   DoubleDataPoints #0
   StartTime: 0
   Timestamp: 1606511460471000000
   Value: 0.000000
   ```

1. Untuk menguji apakah Amazon Managed Service untuk Prometheus menerima metrik, gunakan. `awscurl` [Alat ini memungkinkan Anda mengirim permintaan HTTP melalui baris perintah dengan otentikasi AWS Sigv4, jadi Anda harus memiliki AWS kredensyal yang disiapkan secara lokal dengan izin yang benar untuk kueri dari Amazon Managed Service untuk Prometheus Untuk petunjuk tentang penginstalan, lihat awscurl. `awscurl`](https://github.com/okigan/awscurl)

   Dalam perintah berikut, ganti`AMP_REGION`, dan `AMP_ENDPOINT` dengan informasi untuk Amazon Managed Service untuk ruang kerja Prometheus. 

   ```
   awscurl --service="aps" --region="AMP_REGION" "https://AMP_ENDPOINT/api/v1/query?query=adot_test_gauge0"
   {"status":"success","data":{"resultType":"vector","result":[{"metric":{"__name__":"adot_test_gauge0"},"value":[1606512592.493,"16.87214000011479"]}]}}
   ```

   Jika Anda menerima metrik sebagai respons, itu berarti penyiapan pipeline Anda telah berhasil dan metrik telah berhasil disebarkan dari aplikasi sampel ke Amazon Managed Service for Prometheus.

**Membersihkan**

Untuk membersihkan demo ini, masukkan perintah berikut.

```
kubectl delete namespace aoc-prometheus-pipeline-demo
kubectl delete namespace adot-col
```

## Konfigurasi lanjutan
<a name="AMP-otel-advanced"></a>

[Penerima Prometheus mendukung set lengkap konfigurasi pengikisan dan pelabelan ulang Prometheus yang dijelaskan dalam Konfigurasi dalam dokumentasi Prometheus.](https://prometheus.io/docs/prometheus/latest/configuration/configuration/) Anda dapat menempelkan konfigurasi ini langsung ke konfigurasi ADOT Collector Anda. 

Konfigurasi untuk Penerima Prometheus mencakup penemuan layanan Anda, konfigurasi pengikisan, dan konfigurasi pelabelan ulang. Konfigurasi penerima terlihat seperti berikut ini.

```
receivers:
  prometheus:
    config:
      [[Your Prometheus configuration]]
```

Berikut ini adalah contoh konfigurasi.

```
receivers:
  prometheus:
    config:
      global:
        scrape_interval: 1m
        scrape_timeout: 10s
        
      scrape_configs:
      - job_name: kubernetes-service-endpoints
        sample_limit: 10000
        kubernetes_sd_configs:
        - role: endpoints
        tls_config:
          ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
          insecure_skip_verify: true
        bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
```

Jika Anda memiliki konfigurasi Prometheus yang ada, Anda harus mengganti `$` karakter `$$` dengan untuk menghindari nilai diganti dengan variabel lingkungan. \$1Ini sangat penting untuk nilai penggantian relabel\$1configurations. Misalnya, jika Anda memulai dengan relabel\$1configuration berikut:

```
relabel_configs:
- source_labels: [__meta_kubernetes_ingress_scheme,__address__,__meta_kubernetes_ingress_path]
  regex: (.+);(.+);(.+)
  replacement: ${1}://${2}${3}
  target_label: __param_target
```

Itu akan menjadi sebagai berikut:

```
relabel_configs:
- source_labels: [__meta_kubernetes_ingress_scheme,__address__,__meta_kubernetes_ingress_path]
  regex: (.+);(.+);(.+)
  replacement: $${1}://${2}${3}
  target_label: __param_target
```

**Prometheus eksportir tulis jarak jauh dan ekstensi otentikasi Sigv4**

Konfigurasi untuk Prometheus Remote Write Exporter dan Sigv4 Authentication Extension lebih sederhana daripada penerima Prometheus. Pada tahap ini, metrik telah dicerna, dan kami siap untuk mengekspor data ini ke Amazon Managed Service untuk Prometheus. Persyaratan minimum untuk konfigurasi yang berhasil untuk berkomunikasi dengan Amazon Managed Service untuk Prometheus ditampilkan dalam contoh berikut.

```
extensions:
  sigv4auth:
    service: "aps"
    region: "user-region"
exporters:
  prometheusremotewrite:
    endpoint: "https://aws-managed-prometheus-endpoint/api/v1/remote_write"
    auth:
      authenticator: "sigv4auth"
```

Konfigurasi ini mengirimkan permintaan HTTPS yang ditandatangani oleh AWS SigV4 menggunakan AWS kredensil dari rantai kredensil default. AWS Untuk informasi selengkapnya, lihat [Mengonfigurasi AWS SDK untuk Go](https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html). Anda harus menentukan layanan yang akan menjadi`aps`.

Terlepas dari metode penyebaran, kolektor ADOT harus memiliki akses ke salah satu opsi yang tercantum dalam rantai AWS kredensil default. Ekstensi Otentikasi Sigv4 bergantung pada AWS SDK untuk Go dan menggunakannya untuk mengambil kredensyal dan mengautentikasi. Anda harus memastikan bahwa kredensyal ini memiliki izin menulis jarak jauh untuk Amazon Managed Service for Prometheus. 

# Siapkan konsumsi metrik dari Amazon ECS menggunakan AWS Distro untuk Open Telemetry
<a name="AMP-onboard-ingest-metrics-OpenTelemetry-ECS"></a>

Bagian ini menjelaskan cara mengumpulkan metrik dari Amazon Elastic Container Service (Amazon ECS) dan memasukkannya ke dalam Amazon Managed Service untuk Prometheus menggunakan Distro for Open Telemetry (ADOT). AWS Ini juga menjelaskan cara memvisualisasikan metrik Anda di Grafana Terkelola Amazon.

## Prasyarat
<a name="AMP-onboard-ingest-metrics-OpenTelemetry-ECS-prereq"></a>

**penting**  
Sebelum memulai, Anda harus memiliki lingkungan Amazon ECS di AWS Fargate klaster dengan pengaturan default, Layanan Terkelola Amazon untuk ruang kerja Prometheus, dan ruang kerja Grafana yang Dikelola Amazon. Kami berasumsi bahwa Anda terbiasa dengan beban kerja kontainer, Layanan Terkelola Amazon untuk Prometheus, dan Grafana yang Dikelola Amazon.

Untuk informasi selengkapnya, lihat tautan berikut:
+ Untuk informasi tentang cara membuat lingkungan Amazon ECS di klaster Fargate dengan setelan default, [lihat Membuat klaster di Panduan](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create_cluster.html) Pengembang *Amazon ECS*.
+ Untuk informasi tentang cara membuat Layanan Terkelola Amazon untuk ruang kerja Prometheus, lihat [Membuat ruang kerja di Panduan Pengguna Layanan Terkelola](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-onboard-create-workspace.html) *Amazon* untuk Prometheus.
+ Untuk informasi tentang cara membuat ruang kerja Grafana Terkelola Amazon, lihat [Membuat ruang kerja di Panduan Pengguna](https://docs.aws.amazon.com/grafana/latest/userguide/AMG-create-workspace.html) *Grafana Terkelola* Amazon.

## Langkah 1: Tentukan gambar wadah kolektor ADOT khusus
<a name="AMP-onboard-ingest-metrics-OpenTelemetry-ECS-create"></a>

Gunakan file konfigurasi berikut sebagai template untuk menentukan gambar kontainer kolektor ADOT Anda sendiri. Ganti *my-remote-URL* dan *my-region* dengan `region` nilai-nilai `endpoint` dan Anda. Simpan konfigurasi dalam file bernama *adot-config.yaml*.

**catatan**  
Konfigurasi ini menggunakan `sigv4auth` ekstensi untuk mengautentikasi panggilan ke Amazon Managed Service untuk Prometheus. Untuk informasi selengkapnya tentang mengonfigurasi`sigv4auth`, lihat [Authenticator - Sigv4](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/extension/sigv4authextension) on. GitHub

```
receivers:
  prometheus:
    config:
      global:
        scrape_interval: 15s
        scrape_timeout: 10s
      scrape_configs:
      - job_name: "prometheus"
        static_configs:
        - targets: [ 0.0.0.0:9090 ]
  awsecscontainermetrics:
    collection_interval: 10s
processors:
  filter:
    metrics:
      include:
        match_type: strict
        metric_names:
          - ecs.task.memory.utilized
          - ecs.task.memory.reserved
          - ecs.task.cpu.utilized
          - ecs.task.cpu.reserved
          - ecs.task.network.rate.rx
          - ecs.task.network.rate.tx
          - ecs.task.storage.read_bytes
          - ecs.task.storage.write_bytes
exporters:
  prometheusremotewrite:
    endpoint: my-remote-URL
    auth:
      authenticator: sigv4auth
  logging:
    loglevel: info
extensions:
  health_check:
  pprof:
    endpoint: :1888
  zpages:
    endpoint: :55679
  sigv4auth:
    region: my-region
    service: aps
service:
  extensions: [pprof, zpages, health_check, sigv4auth]
  pipelines:
    metrics:
      receivers: [prometheus]
      exporters: [logging, prometheusremotewrite]
    metrics/ecs:
      receivers: [awsecscontainermetrics]
      processors: [filter]
      exporters: [logging, prometheusremotewrite]
```

## Langkah 2: Dorong gambar kontainer kolektor ADOT Anda ke repositori Amazon ECR
<a name="AMP-onboard-ingest-metrics-OpenTelemetry-ECS-push"></a>

Gunakan Dockerfile untuk membuat dan mendorong image container Anda ke repositori Amazon Elastic Container Registry (ECR).

1. Bangun Dockerfile untuk menyalin dan menambahkan gambar kontainer Anda ke gambar OTEL Docker.

   ```
   FROM public.ecr.aws/aws-observability/aws-otel-collector:latest
   COPY adot-config.yaml /etc/ecs/otel-config.yaml
   CMD ["--config=/etc/ecs/otel-config.yaml"]
   ```

1. Buat repositori Amazon ECR.

   ```
   # create repo:
   COLLECTOR_REPOSITORY=$(aws ecr create-repository --repository aws-otel-collector \ 
                                  --query repository.repositoryUri --output text)
   ```

1. Buat gambar kontainer Anda.

   ```
   # build ADOT collector image:
   docker build -t $COLLECTOR_REPOSITORY:ecs .
   ```
**catatan**  
Ini mengasumsikan Anda sedang membangun wadah Anda di lingkungan yang sama dengan yang akan dijalankan. Jika tidak, Anda mungkin perlu menggunakan `--platform` parameter saat membangun gambar.

1. Masuk ke repositori Amazon ECR. Ganti *my-region* dengan `region` nilai Anda.

   ```
   # sign in to repo:
   aws ecr get-login-password --region my-region | \
           docker login --username AWS --password-stdin $COLLECTOR_REPOSITORY
   ```

1. Dorong gambar kontainer Anda.

   ```
   # push ADOT collector image:
   docker push $COLLECTOR_REPOSITORY:ecs
   ```

## Langkah 3: Buat definisi tugas Amazon ECS untuk mengikis Layanan Terkelola Amazon untuk Prometheus
<a name="AMP-onboard-ingest-metrics-OpenTelemetry-ECS-task"></a>

Buat definisi tugas Amazon ECS untuk mengikis Layanan Terkelola Amazon untuk Prometheus. Definisi tugas Anda harus menyertakan wadah bernama `adot-collector` dan wadah bernama`prometheus`. `prometheus`menghasilkan metrik, dan `adot-collector` goresan`prometheus`.

**catatan**  
Layanan Terkelola Amazon untuk Prometheus berjalan sebagai layanan, mengumpulkan metrik dari kontainer. Kontainer dalam hal ini menjalankan Prometheus secara lokal, dalam mode Agen, yang mengirim metrik lokal ke Amazon Managed Service untuk Prometheus.

**Contoh: Definisi tugas**

Berikut ini adalah contoh bagaimana definisi tugas Anda mungkin terlihat. Anda dapat menggunakan contoh ini sebagai template untuk membuat definisi tugas Anda sendiri. Ganti `image` nilai `adot-collector` dengan URL repositori dan tag gambar ()`$COLLECTOR_REPOSITORY:ecs`. Ganti `region` nilai `adot-collector` dan `prometheus` dengan `region` nilai-nilai Anda.

```
{
  "family": "adot-prom",
  "networkMode": "awsvpc",
  "containerDefinitions": [
    {
      "name": "adot-collector",
      "image": "account_id.dkr.ecr.region.amazonaws.com/image-tag",
      "essential": true,
      "logConfiguration": {
        "logDriver": "awslogs",
        "options": {
          "awslogs-group": "/ecs/ecs-adot-collector",
          "awslogs-region": "my-region",
          "awslogs-stream-prefix": "ecs",
          "awslogs-create-group": "True"
        }
      }
    },
    {
      "name": "prometheus",
      "image": "prom/prometheus:main",
      "logConfiguration": {
        "logDriver": "awslogs",
        "options": {
          "awslogs-group": "/ecs/ecs-prom",
          "awslogs-region": "my-region",
          "awslogs-stream-prefix": "ecs",
          "awslogs-create-group": "True"
        }
      }
    }
  ],
  "requiresCompatibilities": [
    "FARGATE"
  ],
  "cpu": "1024"
}
```

## Langkah 4: Berikan izin tugas Anda untuk mengakses Amazon Managed Service untuk Prometheus
<a name="AMP-onboard-ingest-metrics-OpenTelemetry-ECS-attach"></a>

Untuk mengirim metrik yang tergores ke Amazon Managed Service for Prometheus, tugas Amazon ECS Anda harus memiliki izin yang benar untuk memanggil operasi API untuk Anda. AWS Anda harus membuat peran IAM untuk tugas-tugas Anda dan melampirkan `AmazonPrometheusRemoteWriteAccess` kebijakan untuk itu. Untuk informasi selengkapnya tentang membuat peran ini dan melampirkan kebijakan, lihat [Membuat peran dan kebijakan IAM untuk tugas Anda](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html#create_task_iam_policy_and_role).

Setelah Anda melampirkan `AmazonPrometheusRemoteWriteAccess` ke peran IAM Anda, dan menggunakan peran itu untuk tugas Anda, Amazon ECS dapat mengirim metrik yang digores ke Amazon Managed Service for Prometheus.

## Langkah 5: Visualisasikan metrik Anda di Amazon Managed Grafana
<a name="AMP-onboard-ingest-metrics-OpenTelemetry-ECS-vis"></a>

**penting**  
Sebelum memulai, Anda harus menjalankan tugas Fargate pada definisi tugas Amazon ECS Anda. Jika tidak, Layanan Terkelola Amazon untuk Prometheus tidak dapat menggunakan metrik Anda.

1. Dari panel navigasi di ruang kerja Grafana Terkelola Amazon Anda, **pilih Sumber data** di bawah ikon. AWS 

1. **Pada tab **Sumber data**, untuk **Layanan, pilih Amazon Managed Service** **for Prometheus** dan pilih Wilayah Default Anda.**

1. Pilih **Tambahkan sumber data**.

1. Gunakan `prometheus` awalan `ecs` dan untuk menanyakan dan melihat metrik Anda.

# Mengatur konsumsi metrik dari instans Amazon EC2 menggunakan penulisan jarak jauh
<a name="AMP-onboard-ingest-metrics-remote-write-EC2"></a>

Bagian ini menjelaskan cara menjalankan server Prometheus dengan penulisan jarak jauh di instance Amazon Elastic Compute Cloud (Amazon EC2). Ini menjelaskan cara mengumpulkan metrik dari aplikasi demo yang ditulis dalam Go dan mengirimkannya ke Layanan Terkelola Amazon untuk ruang kerja Prometheus.

## Prasyarat
<a name="AMP-onboard-ingest-metrics-remote-write-EC2-prereq"></a>

**penting**  
Sebelum Anda mulai, Anda harus menginstal Prometheus v2.26 atau yang lebih baru. Kami berasumsi bahwa Anda sudah familiar dengan Prometheus, Amazon EC2, dan Amazon Managed Service untuk Prometheus. Untuk informasi tentang cara menginstal Prometheus, lihat [Memulai](https://prometheus.io/docs/prometheus/latest/getting_started/) di situs web Prometheus.

Jika Anda tidak terbiasa dengan Amazon EC2 atau Amazon Managed Service untuk Prometheus, kami sarankan Anda memulai dengan membaca bagian berikut:
+ [Apa itu Amazon Elastic Compute Cloud?](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html)
+ [Apa itu Amazon Managed Service for Prometheus?](https://docs.aws.amazon.com/prometheus/latest/userguide/what-is-Amazon-Managed-Service-Prometheus.html)

## Buat peran IAM untuk Amazon EC2
<a name="AMP-onboard-ingest-metrics-remote-write-EC2-IAM"></a>

Untuk mengalirkan metrik, Anda harus terlebih dahulu membuat peran IAM dengan kebijakan AWS terkelola. **AmazonPrometheusRemoteWriteAccess** Kemudian, Anda dapat meluncurkan instance dengan metrik peran dan streaming ke ruang kerja Amazon Managed Service for Prometheus.

1. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Dari panel navigasi, pilih **Peran**, lalu pilih **Buat peran**.

1. Untuk jenis entitas tepercaya, pilih **AWS layanan**. Untuk kasus penggunaan, pilih **EC2**. Pilih **Berikutnya: Izin**.

1. Di bilah pencarian, masukkan **AmazonPrometheusRemoteWriteAccess**. Untuk **nama Kebijakan**, pilih **AmazonPrometheusRemoteWriteAccess**, lalu pilih **Lampirkan kebijakan**. Pilih **Selanjutnya: Tag**.

1. (Opsional) Buat tag IAM untuk peran IAM Anda. Pilih **Berikutnya: Tinjauan**.

1. Masukkan nama untuk peran Anda. Pilih **Buat kebijakan**.

## Luncurkan instans Amazon EC2
<a name="AMP-onboard-ingest-metrics-remote-write-EC2-instance"></a>

Untuk meluncurkan instans Amazon EC2, ikuti petunjuk di [Luncurkan instans](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#launch-instance-with-role) di *Panduan Pengguna Amazon Elastic Compute Cloud untuk* Instans Linux.

## Jalankan aplikasi demo
<a name="AMP-onboard-ingest-metrics-remote-write-EC2-demo"></a>

Setelah membuat peran IAM Anda, dan meluncurkan instans EC2 dengan peran tersebut, Anda dapat menjalankan aplikasi demo untuk melihatnya berfungsi.

**Untuk menjalankan aplikasi demo dan menguji metrik**

1. Gunakan template berikut untuk membuat file Go bernama`main.go`.

   ```
   package main
   
   import (
       "github.com/prometheus/client_golang/prometheus/promhttp"
       "net/http"
   )
   
   func main() {
       http.Handle("/metrics", promhttp.Handler())
   
       http.ListenAndServe(":8000", nil)
   }
   ```

1. Jalankan perintah berikut untuk menginstal dependensi yang benar.

   ```
   sudo yum update -y
   sudo yum install -y golang
   go get github.com/prometheus/client_golang/prometheus/promhttp
   ```

1. Jalankan aplikasi demo.

   ```
   go run main.go
   ```

   Aplikasi demo harus berjalan di port 8000 dan menampilkan semua metrik Prometheus yang terbuka. Berikut ini adalah contoh metrik ini.

   ```
   curl -s http://localhost:8000/metrics 
   ...
   process_max_fds 4096# HELP process_open_fds Number of open file descriptors.# TYPE process_open_fds gauge
   process_open_fds 10# HELP process_resident_memory_bytes Resident memory size in bytes.# TYPE process_resident_memory_bytes gauge
   process_resident_memory_bytes 1.0657792e+07# HELP process_start_time_seconds Start time of the process since unix epoch in seconds.# TYPE process_start_time_seconds gauge
   process_start_time_seconds 1.61131955899e+09# HELP process_virtual_memory_bytes Virtual memory size in bytes.# TYPE process_virtual_memory_bytes gauge
   process_virtual_memory_bytes 7.77281536e+08# HELP process_virtual_memory_max_bytes Maximum amount of virtual memory available in bytes.# TYPE process_virtual_memory_max_bytes gauge
   process_virtual_memory_max_bytes -1# HELP promhttp_metric_handler_requests_in_flight Current number of scrapes being served.# TYPE promhttp_metric_handler_requests_in_flight gauge
   promhttp_metric_handler_requests_in_flight 1# HELP promhttp_metric_handler_requests_total Total number of scrapes by HTTP status code.# TYPE promhttp_metric_handler_requests_total counter
   promhttp_metric_handler_requests_total{code="200"} 1
   promhttp_metric_handler_requests_total{code="500"} 0
   promhttp_metric_handler_requests_total{code="503"} 0
   ```

## Buat Layanan Terkelola Amazon untuk ruang kerja Prometheus
<a name="AMP-onboard-ingest-metrics-remote-write-EC2-workspace"></a>

[Untuk membuat Amazon Managed Service untuk ruang kerja Prometheus, ikuti petunjuk di Buat ruang kerja.](AMP-create-workspace.md)

## Jalankan server Prometheus
<a name="AMP-onboard-ingest-metrics-remote-write-EC2-server"></a>

1. Gunakan contoh berikut file YAMAL sebagai template untuk membuat file baru bernama`prometheus.yaml`. Untuk`url`, ganti *my-region* dengan nilai Wilayah Anda dan *my-workspace-id* dengan ID ruang kerja yang dihasilkan Amazon Managed Service untuk Prometheus untuk Anda. Untuk`region`, ganti *my-region* dengan nilai Wilayah Anda.

   **Contoh: file YAMM**

   ```
   global:
     scrape_interval: 15s
     external_labels:
       monitor: 'prometheus'
   
   scrape_configs:
     - job_name: 'prometheus'
       static_configs:
         - targets: ['localhost:8000']
   
   remote_write:
     -
       url: https://aps-workspaces.my-region.amazonaws.com/workspaces/my-workspace-id/api/v1/remote_write
       queue_config:
           max_samples_per_send: 1000
           max_shards: 200
           capacity: 2500
       sigv4:
            region: my-region
   ```

1. Jalankan server Prometheus untuk mengirim metrik aplikasi demo ke Layanan Terkelola Amazon Anda untuk ruang kerja Prometheus.

   ```
   prometheus --config.file=prometheus.yaml
   ```

Server Prometheus sekarang harus mengirim metrik aplikasi demo ke Layanan Terkelola Amazon Anda untuk ruang kerja Prometheus.