Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Langkah 1: Mengaktifkan Sinyal Aplikasi di akun Anda
Jika Anda belum mengaktifkan Sinyal Aplikasi di akun ini, Anda harus memberikan izin yang diperlukan Sinyal Aplikasi untuk menemukan layanan Anda. Untuk melakukan hal itu, lakukan hal berikut. Anda perlu melakukan ini sekali untuk akun Anda.
Untuk mengaktifkan Sinyal Aplikasi untuk aplikasi-aplikasi Anda
Buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/
. Pada panel navigasi, silakan pilih Layanan.
Pilih Mulai menemukan Layanan Anda.
Pilih kotak centang kemudian pilih Mulai menemukan Layanan.
Menyelesaikan langkah ini untuk pertama kalinya di akun Anda akan membuat peran AWSServiceRoleForCloudWatchApplicationSignalsterkait layanan. Peran ini akan memberi Sinyal Aplikasi izin-izin berikut:
-
xray:GetServiceGraph
-
logs:StartQuery
-
logs:GetQueryResults
-
cloudwatch:GetMetricData
-
cloudwatch:ListMetrics
-
tag:GetResources
Untuk informasi selengkapnya tentang peran ini, silakan lihat Izin peran terkait layanan untuk Sinyal Aplikasi CloudWatch .
-
Langkah 2: Membuat peran IAM
Anda harus membuat peran IAM. Jika Anda sudah membuat peran ini, Anda mungkin perlu menambahkan izin untuk itu.
-
Peran tugas ECS— Kontainer menggunakan peran ini untuk beroperasi. Izin harus apa pun yang dibutuhkan aplikasi Anda, plus CloudWatchAgentServerPolicy.
Untuk informasi selengkapnya tentang membuat peran IAM, silakan lihat Membuat Peran IAM.
Langkah 3: Siapkan konfigurasi CloudWatch agen
Pertama, siapkan konfigurasi agen dengan Sinyal Aplikasi yang diaktifkan. Untuk melakukan hal ini, buat file lokal bernama /tmp/ecs-cwagent.json
.
{
"traces": {
"traces_collected": {
"application_signals": {}
}
},
"logs": {
"metrics_collected": {
"application_signals": {}
}
}
}
Kemudian unggah konfigurasi ini ke SSM Parameter Store. Untuk melakukan hal ini, masukkan perintah berikut. Dalam file, ganti $REGION
dengan nama Region Anda yang sebenarnya.
aws ssm put-parameter \ --name "ecs-cwagent" \ --type "String" \ --value "`cat /tmp/ecs-cwagent.json`" \ --region "
$REGION
"
Langkah 4: Instrumentasikan aplikasi Anda dengan CloudWatch agen
Langkah selanjutnya adalah instrumen aplikasi Anda untuk Sinyal CloudWatch Aplikasi.
Untuk instrumen aplikasi Anda di Amazon ECS dengan agen CloudWatch
Pertama, tentukan bind mount. Volume akan digunakan untuk berbagi file di seluruh kontainer pada langkah-langkah selanjutnya. Anda akan menggunakan bind mount ini nanti dalam prosedur ini.
"volumes": [ { "name": "opentelemetry-auto-instrumentation" } ]
Tambahkan definisi sespan CloudWatch agen. Untuk melakukan hal ini, tambahkan sebuah kontainer baru yang bernama
ecs-cwagent
ke definisi tugas aplikasi Anda. Ganti$REGION
dengan nama Region Anda yang sebenarnya. Ganti$IMAGE
dengan jalur ke gambar CloudWatch kontainer terbaru di Amazon Elastic Container Registry. Untuk informasi selengkapnya, silakan lihat cloudwatch-agentdi Amazon ECR. Jika Anda ingin mengaktifkan CloudWatch agen dengan strategi daemon sebagai gantinya, lihat instruksi di. Terapkan menggunakan strategi daemon
{ "name": "ecs-cwagent", "image": "
$IMAGE
", "essential": true, "secrets": [ { "name": "CW_CONFIG_CONTENT", "valueFrom": "ecs-cwagent" } ], "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-create-group": "true", "awslogs-group": "/ecs/ecs-cwagent", "awslogs-region": "$REGION
", "awslogs-stream-prefix": "ecs" } } }Tambahkan sebuah kontainer baru yang bernama
init
ke penetapan tugas aplikasi Anda. Ganti$IMAGE
dengan gambar terbaru dari repositori gambar AWS Distro untuk OpenTelemetry Amazon ECR. { "name": "init", "image": "
$IMAGE
", "essential": false, "command": [ "cp", "/javaagent.jar", "/otel-auto-instrumentation/javaagent.jar" ], "mountPoints": [ { "sourceVolume": "opentelemetry-auto-instrumentation", "containerPath": "/otel-auto-instrumentation", "readOnly": false } ] }Tambahkan dependensi pada
init
wadah untuk memastikan bahwa wadah ini selesai sebelum wadah aplikasi Anda dimulai."dependsOn": [ { "containerName": "init", "condition": "SUCCESS" } ]
Tambahkan variabel lingkungan berikut ke kontainer aplikasi Anda. Anda harus menggunakan versi 1.32.2 atau yang lebih baru dari AWS Distro untuk agen OpenTelemetry instrumentasi otomatis
untuk Java. Variabel Lingkungan Pengaturan untuk mengaktifkan Sinyal Aplikasi OTEL_RESOURCE_ATTRIBUTES
Tentukan informasi berikut sebagai pasangan kunci-nilai:
service.name
menetapkan nama layanan. Ini akan diputar sebagai nama layanan di dasbor Sinyal Aplikasi Anda. Jika Anda tidak memberikan nilai untuk kunci ini, makaUnknownService
digunakan sebagai nilai default.deployment.environment
menetapkan lingkungan tempat aplikasi berjalan. Ini akan diputar sebagai Ditempati Di lingkungan aplikasi Anda di dasbor Sinyal Aplikasi. Jika Anda tidak menentukan ini, default darigeneric:default
digunakan.
Kunci atribut ini hanya digunakan oleh Sinyal Aplikasi, dan diubah menjadi anotasi jejak X-Ray dan dimensi CloudWatch metrik.
(Opsional) Untuk mengaktifkan korelasi log untuk Sinyal Aplikasi, tetapkan variabel
aws.log.group.names
lingkungan tambahan menjadi nama grup log untuk log aplikasi Anda. Dengan demikian, jejak dan metrik dari aplikasi Anda dapat dikorelasikan dengan entri log yang relevan dari grup log. Untuk variabel ini, ganti$YOUR_APPLICATION_LOG_GROUP
dengan nama grup log untuk aplikasi Anda. Jika Anda memiliki beberapa grup log, Anda dapat menggunakan ampersand (&
) untuk memisahkannya seperti dalam contoh ini:.aws.log.group.names=log-group-1&log-group-2
Untuk mengaktifkan metrik untuk mencatat korelasi, pengaturan variabel lingkungan saat ini sudah cukup. Untuk informasi selengkapnya, lihat Aktifkan metrik untuk mencatat korelasi. Untuk mengaktifkan korelasi trace to log, Anda juga perlu mengubah konfigurasi logging di aplikasi Anda. Untuk informasi selengkapnya, lihat Aktifkan jejak untuk mencatat korelasi.OTEL_AWS_APPLICATION_SIGNALS_ENABLED
Atur
true
agar wadah Anda mulai mengirim jejak dan CloudWatch metrik X-Ray ke Sinyal Aplikasi.OTEL_METRICS_EXPORTER
Atur
none
untuk menonaktifkan pengekspor metrik lainnya.OTEL_LOGS_EXPORTER
Setel
none
untuk menonaktifkan eksportir log lainnya.OTEL_EXPORTER_OTLP_PROTOCOL
Setel
http/protobuf
untuk mengirim metrik dan jejak ke Sinyal Aplikasi menggunakan HTTP.OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT
Setel
http://localhost:4316/v1/metrics
untuk mengirim metrik ke CloudWatch sespan.OTEL_EXPORTER_OTLP_TRACES_ENDPOINT
Setel
http://localhost:4316/v1/traces
untuk mengirim jejak ke CloudWatch sespan.OTEL_TRACES_SAMPLER
Setel ini
xray
untuk mengatur X-Ray sebagai sampler jejak.OTEL_PROPAGATORS
Ditetapkan
xray
sebagai salah satu propagator.JAVA_TOOL_OPTIONS
Setel ke
" -javaagent:$
GantiAWS_ADOT_JAVA_INSTRUMENTATION_PATH
"AWS_ADOT_JAVA_INSTRUMENTATION_PATH
dengan jalur tempat agen instrumentasi otomatis AWS Distro untuk OpenTelemetry Java disimpan. Sebagai contoh,/otel-auto-instrumentation/javaagent.jar
.Pasang volume
opentelemetry-auto-instrumentation
yang sudah Anda tentukan pada langkah 1 prosedur ini. Jika Anda tidak perlu mengaktifkan korelasi log dengan metrik dan jejak, gunakan contoh berikut untuk aplikasi Java. Jika Anda ingin mengaktifkan korelasi log, lihat langkah selanjutnya.{ "name": "
my-app
", ... "environment": [ { "name": "OTEL_RESOURCE_ATTRIBUTES", "value": "service.name=$SVC_NAME
" }, { "name": "OTEL_LOGS_EXPORTER", "value": "none" }, { "name": "OTEL_METRICS_EXPORTER", "value": "none" }, { "name": "OTEL_EXPORTER_OTLP_PROTOCOL", "value": "http/protobuf" }, { "name": "OTEL_AWS_APPLICATION_SIGNALS_ENABLED", "value": "true" }, { "name": "JAVA_TOOL_OPTIONS", "value": " -javaagent:/otel-auto-instrumentation/javaagent.jar" }, { "name": "OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT", "value": "http://localhost:4316/v1/metrics" }, { "name": "OTEL_EXPORTER_OTLP_TRACES_ENDPOINT", "value": "http://localhost:4316/v1/traces" }, { "name": "OTEL_TRACES_SAMPLER", "value": "xray" }, { "name": "OTEL_PROPAGATORS", "value": "tracecontext,baggage,b3,xray" } ], "dependsOn": [ { "containerName": "init", "condition": "SUCCESS" } ], "mountPoints": [ { "sourceVolume": "opentelemetry-auto-instrumentation", "containerPath": "/otel-auto-instrumentation", "readOnly": false } ] }
Langkah 5: Menerapkan aplikasi Anda
Buat revisi baru penetapan tugas Anda dan terapkan ke klaster aplikasi Anda. Anda akan melihat tiga kontainer dalam tugas yang baru saja Anda buat:
init
— Wadah yang diperlukan untuk menginisialisasi Sinyal Aplikasi.ecs-cwagent
— Sebuah wadah yang menjalankan CloudWatch agen
— Ini adalah contoh wadah aplikasi dalam dokumentasi kami. Dalam beban kerja Anda yang sebenarnya, penampung khusus ini mungkin tidak ada atau mungkin diganti dengan kontainer layanan Anda sendiri.my-app