Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menyiapkan konsumsi metrik dari Amazon ECS menggunakan AWS Distro untuk Telemetri Terbuka
Bagian ini menjelaskan cara mengumpulkan metrik dari Amazon Elastic Container Service (Amazon ECS) dan memasukkannya ke dalam Amazon Managed Service for Prometheus menggunakan AWS Distro for Open Telemetry (ADOT). Ini juga menjelaskan cara memvisualisasikan metrik Anda di Amazon Managed Grafana.
Prasyarat
penting
Sebelum memulai, Anda harus memiliki lingkungan Amazon ECS di AWS Fargate cluster dengan pengaturan default, ruang kerja Amazon Managed Service for Prometheus, dan ruang kerja Grafana yang Dikelola Amazon. Kami berasumsi bahwa Anda terbiasa dengan beban kerja kontainer, Amazon Managed Service for Prometheus, dan Amazon Managed Grafana.
Untuk informasi selengkapnya, lihat tautan berikut:
-
Untuk informasi tentang cara membuat lingkungan Amazon ECS di cluster Fargate dengan pengaturan default, lihat Membuat cluster di Panduan Pengembang Amazon ECS.
-
Untuk informasi tentang cara membuat ruang kerja Layanan Terkelola Amazon untuk Prometheus, lihat Membuat ruang kerja di Panduan Pengguna Layanan Terkelola Amazon untuk Prometheus.
-
Untuk informasi tentang cara membuat ruang kerja Grafana yang Dikelola Amazon, lihat Membuat ruang kerja di Panduan Pengguna Grafana Terkelola Amazon.
Langkah 1: Tentukan gambar wadah kolektor ADOT khusus
Gunakan file konfigurasi berikut sebagai template untuk menentukan gambar wadah kolektor ADOT Anda sendiri. Ganti my-remote-URL dan my-region dengan region nilai-nilai Andaendpoint. Simpan konfigurasi dalam file bernama adot- config.yaml.
catatan
Konfigurasi ini menggunakan sigv4auth ekstensi untuk mengotentikasi panggilan ke Amazon Managed Service for Prometheus. Untuk informasi selengkapnya tentang mengonfigurasisigv4auth, lihat Authenticator - Sigv4 aktif
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-URLauth: authenticator: sigv4auth logging: loglevel: info extensions: health_check: pprof: endpoint: :1888 zpages: endpoint: :55679 sigv4auth: region:my-regionservice: 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 wadah kolektor ADOT Anda ke repositori Amazon ECR
Gunakan Dockerfile untuk membuat dan mendorong image kontainer Anda ke repositori Amazon Elastic Container Registry (ECR).
-
Bangun Dockerfile untuk menyalin dan menambahkan image container Anda ke image 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"] -
Buat repositori Amazon ECR.
# create repo: COLLECTOR_REPOSITORY=$(aws ecr create-repository --repository aws-otel-collector \ --query repository.repositoryUri --output text) -
Buat gambar wadah Anda.
# build ADOT collector image: docker build -t $COLLECTOR_REPOSITORY:ecs .catatan
Ini mengasumsikan Anda sedang membangun wadah Anda di lingkungan yang sama di mana ia akan berjalan. Jika tidak, Anda mungkin perlu menggunakan
--platformparameter saat membangun gambar. -
Masuk ke repositori Amazon ECR. Ganti
my-regiondenganregionnilai Anda.# sign in to repo: aws ecr get-login-password --regionmy-region| \ docker login --username AWS --password-stdin $COLLECTOR_REPOSITORY -
Dorong gambar wadah Anda.
# push ADOT collector image: docker push $COLLECTOR_REPOSITORY:ecs
Langkah 3: Buat definisi tugas Amazon ECS untuk mengikis Amazon Managed Service for Prometheus
Buat definisi tugas Amazon ECS untuk mengikis Layanan Terkelola Amazon untuk Prometheus. Definisi tugas Anda harus menyertakan wadah bernama adot-collector dan wadah bernamaprometheus. prometheusmenghasilkan metrik, dan go adot-collector resan. prometheus
catatan
Amazon Managed Service for Prometheus berjalan sebagai layanan, mengumpulkan metrik dari wadah. Kontainer dalam hal ini menjalankan Prometheus secara lokal, dalam mode Agen, yang mengirimkan metrik lokal ke Amazon Managed Service for 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 Anda dan tag gambar ($COLLECTOR_REPOSITORY:ecs). Ganti nil region ai-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 Layanan Terkelola Amazon untuk Prometheus
Untuk mengirim metrik 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 Anda dan melampirkan AmazonPrometheusRemoteWriteAccess kebijakan ke dalamnya. Untuk informasi selengkapnya tentang membuat peran ini dan melampirkan kebijakan, lihat Membuat peran dan kebijakan IAM untuk tugas Anda.
Setelah Anda melampirkan AmazonPrometheusRemoteWriteAccess ke peran IAM Anda, dan menggunakan peran itu untuk tugas Anda, Amazon ECS dapat mengirim metrik yang Anda gores ke Amazon Managed Service for Prometheus.
Langkah 5: Visualisasikan metrik Anda di Amazon Managed Grafana
penting
Sebelum memulai, Anda harus menjalankan tugas Fargate pada definisi tugas Amazon ECS Anda. Jika tidak, Amazon Managed Service for Prometheus tidak dapat menggunakan metrik Anda.
-
Dari panel navigasi di ruang kerja Amazon Managed Grafana Anda, pilih Sumber data di bawah AWS ikon.
-
Pada tab Sumber data, untuk Layanan, pilih Amazon Managed Service for Prometheus dan pilih Wilayah Default Anda.
-
Pilih Tambahkan sumber data.
-
Gunakan awalan
ecsdanprometheusuntuk menanyakan dan melihat metrik Anda.