Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengekspor metrik aplikasi ke Amazon CloudWatch
Amazon ECS on Fargate mendukung ekspor metrik aplikasi khusus Anda ke Amazon CloudWatch sebagai metrik khusus. Ini dilakukan dengan menambahkanAWS Distro untuk kontainer OpenTelemetry sidecar ke definisi tugas Anda. Pengalaman konsol Amazon ECS yang baru menyederhanakan proses ini dengan menambahkan opsi Gunakan koleksi metrik saat membuat definisi tugas baru. Untuk informasi selengkapnya, lihat Membuat definisi tugas menggunakan konsol.
Metrik aplikasi diekspor ke CloudWatch Log dengan nama grup log/aws/ecs/application/metrics
dan metrik dapat dilihat diECS/AWSOTel/Application
ruang nama. Aplikasi Anda harus diinstrumentasi dengan OpenTelemetry SDK. Untuk informasi lebih lanjut, lihat PengantarAWS Distro untuk OpenTelemetry
Pertimbangan-pertimbangan
Berikut ini harus dipertimbangkan saat menggunakan integrasi Amazon ECS on Fargate denganAWS Distro OpenTelemetry untuk mengirim metrik aplikasi ke Amazon CloudWatch.
-
Integrasi ini hanya mengirimkan metrik aplikasi khusus Anda ke CloudWatch. Jika Anda menginginkan metrik tingkat tugas, Anda dapat mengaktifkan Container Insights dalam konfigurasi klaster Amazon ECS. Untuk informasi selengkapnya, lihat CloudWatch Wawasan Amazon ECS.
-
AWSDistro untuk OpenTelemetry integrasi didukung untuk beban kerja Amazon ECS yang dihosting di Fargate dan beban kerja Amazon ECS yang dihosting di instans Amazon EC2. Instans eksternal saat ini tidak didukung.
-
CloudWatch mendukung maksimum 30 dimensi per metrik. Secara default, Amazon ECS secara default menyertakan
TaskARN
,ClusterARN
,LaunchType
,TaskDefinitionFamily
, danTaskDefinitionRevision
dimensi ke metrik. Sisanya 25 dimensi dapat didefinisikan oleh aplikasi Anda. Jika lebih dari 30 dimensi dikonfigurasi, tidak CloudWatch dapat menampilkannya. Ketika ini terjadi, metrik aplikasi akan muncul di namespaceECS/AWSOTel/Application
CloudWatch metrik tetapi tanpa dimensi apa pun. Anda dapat instrumen aplikasi Anda untuk menambahkan dimensi tambahan. Untuk informasi selengkapnya, lihat Menggunakan CloudWatch metrik denganAWS Distro untuk OpenTelemetrydiAWS Distro untuk OpenTelemetry dokumentasi.
Izin IAM yang diperlukan untukAWS Distro untuk OpenTelemetry integrasi dengan Amazon CloudWatch
Integrasi Amazon ECS denganAWS Distro untuk OpenTelemetry mengharuskan Anda membuat peran IAM tugas dan menentukan peran dalam definisi tugas Anda. SebaiknyaAWS Distro untuk OpenTelemetry sidecar juga dikonfigurasi untuk merutekan log kontainer ke CloudWatch Log yang memerlukan eksekusi tugas peran IAM dibuat dan ditentukan dalam definisi tugas Anda juga. Pengalaman konsol Amazon ECS yang baru menangani peran IAM eksekusi tugas atas nama Anda, tetapi peran IAM tugas harus dibuat secara manual dan ditambahkan ke definisi tugas Anda. Untuk informasi selengkapnya tentang peran IAM eksekusi tugas, lihatPeran IAM eksekusi tugas ECS.
Jika Anda juga mengumpulkan data pelacakan aplikasi menggunakanAWS Distro untuk OpenTelemetry integrasi, pastikan peran IAM tugas Anda juga berisi izin yang diperlukan untuk integrasi tersebut. Untuk informasi selengkapnya, lihat Mengumpulkan data pelacakan aplikasi.
Untuk membuat peran IAM tugas untukAWS Distro untuk OpenTelemetry integrasi dengan CloudWatch
Buka konsol IAM di https://console.aws.amazon.com/iam/
. -
Di panel navigasi, pilih Kebijakan, Buat kebijakan.
-
Pada halaman Buat kebijakan, beralih ke tab JSON, salin dan tempel JSON kebijakan IAM berikut ke bidang, lalu pilih Berikutnya: Tag.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:PutLogEvents", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:DescribeLogGroups", "cloudwatch:PutMetricData" ], "Resource": "*" } ] }
catatan Jika aplikasi Anda memerlukan izin tambahan, Anda harus menambahkannya ke kebijakan ini. Setiap definisi tugas hanya dapat menentukan satu peran IAM tugas. Misalnya, jika Anda menggunakan file konfigurasi khusus yang disimpan di Systems Manager, Anda harus menambahkan
ssm:GetParameters
izin ke kebijakan IAM ini. -
(Opsional) Tambahkan satu tag atau lebih ke kebijakan, lalu pilih Berikutnya: Tinjau.
-
Untuk Nama, tentukan
AWSDistroOpenTelemetryPolicyForCloudWatch
. -
Untuk Deskripsi, tentukan deskripsi opsional, lalu pilih Buat kebijakan.
-
Dalam panel navigasi, pilih Roles (Peran), lalu Create role (Buat peran).
-
Di bagian Pilih tipe entitas tepercaya, pilih Layanan AWS, Elastic Container Service.
-
Untuk Pilih kasus penggunaan Anda, pilih Tugas Elastic Container Service, lalu pilih Berikutnya: Izin.
-
Di bagian Lampirkan kebijakan izin, cari AWSDistroOpenTelemetryPolicyForCloudWatch, pilih kebijakan, lalu pilih Berikutnya: Tag.
-
Untuk Tambahkan tanda (opsional), tentukan setiap tanda kustom untuk mengaitkan dengan kebijakan dan kemudian pilih Selanjutnya: Tinjauan.
-
Untuk Nama peran, tentukan
AmazonECS_OpenTelemetryCloudWatchRole
dan pilih Buat peran.
MenentukanAWS Distro untuk OpenTelemetry sidecar dalam definisi tugas Anda
Pengalaman konsol Amazon ECS yang baru menyederhanakan pengalaman membuat wadahAWS Distro untuk OpenTelemetry sidecar dengan menggunakan opsi Gunakan koleksi metrik. Untuk informasi selengkapnya, lihat Membuat definisi tugas menggunakan konsol.
Jika Anda tidak menggunakan konsol Amazon ECS, Anda dapat menambahkan ContainerAWS Distro for OpenTelemetry sidecar ke definisi tugas Anda secara manual. Contoh definisi tugas berikut menunjukkan definisi kontainer untuk menambahkanAWS Distro untuk OpenTelemetry sidecar untuk CloudWatch integrasi Amazon.
{ "family": "otel-using-cloudwatch", "taskRoleArn": "arn:aws:iam::111122223333:role/
AmazonECS_OpenTelemetryCloudWatchRole
", "executionRoleArn": "arn:aws:iam::111122223333:role/ecsTaskExecutionRole
", "containerDefinitions": [{ "name": "aws-otel-emitter
", "image": "application-image
", "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-create-group": "true", "awslogs-group": "/ecs/aws-otel-emitter", "awslogs-region": "us-east-1
", "awslogs-stream-prefix": "ecs" } }, "dependsOn": [{ "containerName": "aws-otel-collector", "condition": "START" }] }, { "name": "aws-otel-collector", "image": "public.ecr.aws/aws-observability/aws-otel-collector:v0.26.1", "essential": true, "command": [ "--config=/etc/ecs/ecs-cloudwatch.yaml" ], "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-create-group": "True", "awslogs-group": "/ecs/ecs-aws-otel-sidecar-collector", "awslogs-region": "us-east-1
", "awslogs-stream-prefix": "ecs" } } } ], "networkMode": "awsvpc", "requiresCompatibilities": [ "FARGATE" ], "cpu": "1024", "memory": "3072" }