View a markdown version of this page

Menyebarkan menggunakan strategi daemon - Amazon CloudWatch

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

Menyebarkan menggunakan strategi daemon

Langkah 1: Mengaktifkan Sinyal Aplikasi di akun Anda

Anda harus terlebih dahulu mengaktifkan Sinyal Aplikasi di akun Anda. Jika belum, lihatAktifkan Sinyal Aplikasi di akun Anda.

Langkah 2: Membuat peran IAM

Anda harus membuat peran IAM. Jika Anda telah 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 Wilayah Anda yang sebenarnya.

aws ssm put-parameter \ --name "ecs-cwagent" \ --type "String" \ --value "`cat /tmp/ecs-cwagent.json`" \ --region "$REGION"

Langkah 4: Menyebarkan CloudWatch layanan daemon agen

Buat definisi tugas berikut dan terapkan ke cluster aplikasi Anda. Ganti $REGION dengan nama Wilayah Anda yang sebenarnya. Ganti $TASK_ROLE_ARN dan $EXECUTION_ROLE_ARN dengan peran IAM yang Anda persiapkan. Langkah 2: Membuat peran IAM Ganti $IMAGE dengan jalur ke gambar CloudWatch kontainer terbaru di Amazon Elastic Container Registry. Untuk informasi selengkapnya, lihat cloudwatch-agent di Amazon ECR.

catatan

Layanan daemon mengekspos dua port pada host, dengan 4316 digunakan sebagai titik akhir untuk menerima metrik dan jejak dan 2000 sebagai titik akhir sampler CloudWatch jejak. Pengaturan ini memungkinkan agen untuk mengumpulkan dan mengirimkan data telemetri dari semua tugas aplikasi yang berjalan di host. Pastikan bahwa port ini tidak digunakan oleh layanan lain di host untuk menghindari konflik.

{ "family": "ecs-cwagent-daemon", "taskRoleArn": "$TASK_ROLE_ARN", "executionRoleArn": "$EXECUTION_ROLE_ARN", "networkMode": "bridge", "containerDefinitions": [ { "name": "ecs-cwagent", "image": "$IMAGE", "essential": true, "portMappings": [ { "containerPort": 4316, "hostPort": 4316 }, { "containerPort": 2000, "hostPort": 2000 } ], "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" } } } ], "requiresCompatibilities": [ "EC2" ], "cpu": "128", "memory": "64" }

Langkah 5: Instrumentasikan aplikasi Anda

Langkah selanjutnya adalah instrumen aplikasi Anda untuk Sinyal Aplikasi.

Java
Untuk instrumen aplikasi Anda di Amazon ECS dengan agen CloudWatch
  1. 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" } ]
  2. Tambahkan sebuah kontainer baru yang bernama init ke penetapan tugas aplikasi Anda. Ganti $IMAGE dengan gambar terbaru dari repositori gambar AWS Distro for 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 } ] }
  3. Tambahkan ketergantungan pada init wadah untuk memastikan bahwa wadah ini selesai sebelum wadah aplikasi Anda dimulai.

    "dependsOn": [ { "containerName": "init", "condition": "SUCCESS" } ]
  4. 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, maka UnknownService digunakan sebagai nilai default.

    • deployment.environmentparameter menentukan lingkungan runtime aplikasi Anda dan mengontrol Environment dimensi untuk metrik Aplikasi Amazon ECS di CloudWatch. Jika tidak ditentukan, CloudWatch Agen secara otomatis menggunakan nama Amazon ECS Cluster

    Kunci atribut ini hanya digunakan oleh Sinyal Aplikasi, dan diubah menjadi anotasi X-Ray jejak 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, menyetel variabel lingkungan saat ini sudah cukup. Untuk informasi selengkapnya, lihat Aktifkan metrik untuk mencatat korelasi. Untuk mengaktifkan korelasi pelacakan ke log, Anda juga perlu mengubah konfigurasi logging di aplikasi Anda. Untuk informasi selengkapnya, lihat Aktifkan korelasi pelacakan ke log.

    OTEL_AWS_APPLICATION_SIGNALS_ENABLED

    Setel true agar wadah Anda mulai mengirim X-Ray jejak dan CloudWatch metrik 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 pelacakan ke Sinyal Aplikasi menggunakan HTTP.

    OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT

    Mengirim metrik ke wadah CloudWatch daemon.

    • Untuk aplikasi yang berjalan dalam host mode, atur ini kehttp://localhost:4316/v1/metrics.

    • Untuk aplikasi yang berjalan dalam bridge mode atau awsvpc mode, atur ini ke http://CW_CONTAINER_IP: 4316/v1 /metrics, di mana CW_CONTAINER_IP adalah alamat IP pribadi dari instance kontainer EC2. Anda dapat mengambil alamat ini dari Instance Metadata Service (IMDS).

    OTEL_EXPORTER_OTLP_TRACES_ENDPOINT

    Mengirim jejak ke wadah CloudWatch daemon.

    • Untuk aplikasi yang berjalan dalam host mode, atur ini kehttp://localhost:4316/v1/traces.

    • Untuk aplikasi yang berjalan dalam bridge mode atau awsvpc mode, atur ini ke http://CW_CONTAINER_IP: 4316/v1 /tracing, di mana CW_CONTAINER_IP adalah alamat IP pribadi dari instance kontainer EC2. Anda dapat mengambil alamat ini dari Instance Metadata Service (IMDS).

    OTEL_TRACES_SAMPLER

    Setel ini xray untuk diset X-Ray el sebagai sampler jejak.

    OTEL_PROPAGATORS

    Tetapkan xray sebagai salah satu propagator.

    JAVA_TOOL_OPTIONS

    Setel ke AWS_ADOT_JAVA_INSTRUMENTATION_PATH G " -javaagent:$AWS_ADOT_JAVA_INSTRUMENTATION_PATH" anti dengan jalur tempat AWS Distro untuk agen instrumentasi otomatis OpenTelemetry Java disimpan. Sebagai contoh, /otel-auto-instrumentation/javaagent.jar.

  5. 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 berikutnya sebagai gantinya.

    { "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://CW_CONTAINER_IP:4316/v1/metrics" }, { "name": "OTEL_EXPORTER_OTLP_TRACES_ENDPOINT", "value": "http://CW_CONTAINER_IP: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 } ] }
Python

Sebelum Anda mengaktifkan Sinyal Aplikasi untuk aplikasi Python Anda, perhatikan pertimbangan berikut.

  • Dalam beberapa aplikasi kontainer, variabel PYTHONPATH lingkungan yang hilang terkadang dapat menyebabkan aplikasi gagal memulai. Untuk mengatasi masalah ini, pastikan Anda menyetel variabel PYTHONPATH lingkungan ke lokasi direktori kerja aplikasi Anda. Ini karena masalah yang diketahui dengan OpenTelemetry instrumentasi otomatis. Untuk informasi selengkapnya tentang masalah ini, lihat Pengaturan autoinstrumentasi Python PYTHONPATH tidak sesuai.

  • Untuk aplikasi Django, ada konfigurasi tambahan yang diperlukan, yang diuraikan dalam dokument asi OpenTelemetry Python.

    • Gunakan ben --noreload dera untuk mencegah pemuatan ulang otomatis.

    • Atur variabel DJANGO_SETTINGS_MODULE lingkungan ke lokasi settings.py file aplikasi Django Anda. Ini memastikan bahwa OpenTelemetry dapat mengakses dan mengintegrasikan dengan benar dengan pengaturan Django Anda.

  • Jika Anda menggunakan server pre-fork (WSGI atau ASGI) seperti Gunicorn, uWSGI, atau Uvicorn untuk aplikasi Python Anda, selain langkah-langkah berikut di bagian ini, lihat informasi untuk membuat Sinyal Aplikasi berfungsi. Tidak ada data Sinyal Aplikasi untuk aplikasi Python yang menggunakan server pre-fork (WSGI atau ASGI)

Untuk instrumen aplikasi Python Anda di Amazon ECS dengan agen CloudWatch
  1. 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-python" } ]
  2. Tambahkan sebuah kontainer baru yang bernama init ke penetapan tugas aplikasi Anda. Ganti $IMAGE dengan gambar terbaru dari repositori gambar AWS Distro for OpenTelemetry Amazon ECR.

    { "name": "init", "image": "$IMAGE", "essential": false, "command": [ "cp", "-a", "/autoinstrumentation/.", "/otel-auto-instrumentation-python" ], "mountPoints": [ { "sourceVolume": "opentelemetry-auto-instrumentation-python", "containerPath": "/otel-auto-instrumentation-python", "readOnly": false } ] }
  3. Tambahkan ketergantungan pada init wadah untuk memastikan bahwa wadah ini selesai sebelum wadah aplikasi Anda dimulai.

    "dependsOn": [ { "containerName": "init", "condition": "SUCCESS" } ]
  4. Tambahkan variabel lingkungan berikut ke kontainer aplikasi Anda.

    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, maka UnknownService digunakan sebagai nilai default.

    • deployment.environmentparameter menentukan lingkungan runtime aplikasi Anda dan mengontrol Environment dimensi untuk metrik Aplikasi Amazon ECS di CloudWatch. Jika tidak ditentukan, CloudWatch Agen secara otomatis menggunakan nama Amazon ECS Cluster

    Kunci atribut ini hanya digunakan oleh Sinyal Aplikasi, dan diubah menjadi anotasi X-Ray jejak 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, menyetel variabel lingkungan saat ini sudah cukup. Untuk informasi selengkapnya, lihat Aktifkan metrik untuk mencatat korelasi. Untuk mengaktifkan korelasi pelacakan ke log, Anda juga perlu mengubah konfigurasi logging di aplikasi Anda. Untuk informasi selengkapnya, lihat Aktifkan korelasi pelacakan ke log.

    OTEL_AWS_APPLICATION_SIGNALS_ENABLED

    Setel true agar wadah Anda mulai mengirim X-Ray jejak dan CloudWatch metrik ke Sinyal Aplikasi.

    OTEL_METRICS_EXPORTER

    Atur none untuk menonaktifkan pengekspor metrik lainnya.

    OTEL_EXPORTER_OTLP_PROTOCOL

    Setel http/protobuf ke untuk mengirim metrik dan jejak untuk CloudWatch menggunakan HTTP.

    OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT

    Mengirim metrik ke wadah CloudWatch daemon.

    • Untuk aplikasi yang berjalan dalam host mode, atur ini kehttp://localhost:4316/v1/metrics.

    • Untuk aplikasi yang berjalan dalam bridge mode atau awsvpc mode, atur ini ke http://CW_CONTAINER_IP: 4316/v1 /metrics, di mana CW_CONTAINER_IP adalah alamat IP pribadi dari instance kontainer EC2. Anda dapat mengambil alamat ini dari Instance Metadata Service (IMDS).

    OTEL_EXPORTER_OTLP_TRACES_ENDPOINT

    Mengirim jejak ke wadah CloudWatch daemon.

    • Untuk aplikasi yang berjalan dalam host mode, atur ini kehttp://localhost:4316/v1/traces.

    • Untuk aplikasi yang berjalan dalam bridge mode atau awsvpc mode, atur ini ke http://CW_CONTAINER_IP: 4316/v1 /tracing, di mana CW_CONTAINER_IP adalah alamat IP pribadi dari instance kontainer EC2. Anda dapat mengambil alamat ini dari Instance Metadata Service (IMDS).

    OTEL_TRACES_SAMPLER

    Setel ini xray untuk diset X-Ray el sebagai sampler jejak.

    OTEL_TRACES_SAMPLER_ARG

    Menetapkan titik akhir sampler jejak.

    • Untuk aplikasi yang berjalan dalam host mode, atur ini kehttp://localhost:2000.

    • Untuk aplikasi yang berjalan dalam bridge mode atau awsvpc mode, atur ini kehttp://CW_CONTAINER_IP:2000, di CW_CONTAINER_IP mana alamat IP pribadi dari instance kontainer EC2. Anda dapat mengambil alamat ini dari Instance Metadata Service (IMDS).

    OTEL_PROPAGATORS

    Tambahkan xray sebagai salah satu propagator.

    OTEL_PYTHON_DISTRO

    Setel aws_distro untuk menggunakan instrumentasi Python ADOT.

    OTEL_PYTHON_CONFIGURATOR

    Setel aws_configuration untuk menggunakan konfigurasi ADOT Python.

    PYTHONPATH

    Ganti $APP_PATH dengan lokasi direktori kerja aplikasi di dalam wadah. Ini diperlukan agar penerjemah Python menemukan modul aplikasi Anda.

    DJANGO_SETTINGS_MODULE

    Diperlukan hanya untuk aplikasi Django. Setel ke lokasi settings.py file aplikasi Django Anda. Ganti$PATH_TO_SETTINGS.

  5. Pasang volume opentelemetry-auto-instrumentation-python 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 Python. Jika Anda ingin mengaktifkan korelasi log, lihat langkah berikutnya sebagai gantinya.

    { "name": "my-app", ... "environment": [ { "name": "PYTHONPATH", "value": "/otel-auto-instrumentation-python/opentelemetry/instrumentation/auto_instrumentation:$APP_PATH:/otel-auto-instrumentation-python" }, { "name": "OTEL_EXPORTER_OTLP_PROTOCOL", "value": "http/protobuf" }, { "name": "OTEL_TRACES_SAMPLER", "value": "xray" }, { "name": "OTEL_TRACES_SAMPLER_ARG", "value": "endpoint=http://CW_CONTAINER_IP:2000" }, { "name": "OTEL_LOGS_EXPORTER", "value": "none" }, { "name": "OTEL_PYTHON_DISTRO", "value": "aws_distro" }, { "name": "OTEL_PYTHON_CONFIGURATOR", "value": "aws_configurator" }, { "name": "OTEL_EXPORTER_OTLP_TRACES_ENDPOINT", "value": "http://CW_CONTAINER_IP:4316/v1/traces" }, { "name": "OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT", "value": "http://CW_CONTAINER_IP:4316/v1/metrics" }, { "name": "OTEL_METRICS_EXPORTER", "value": "none" }, { "name": "OTEL_AWS_APPLICATION_SIGNALS_ENABLED", "value": "true" }, { "name": "OTEL_RESOURCE_ATTRIBUTES", "value": "service.name=$SVC_NAME" }, { "name": "DJANGO_SETTINGS_MODULE", "value": "$PATH_TO_SETTINGS.settings" } ], "dependsOn": [ { "containerName": "init", "condition": "SUCCESS" } ], "mountPoints": [ { "sourceVolume": "opentelemetry-auto-instrumentation-python", "containerPath": "/otel-auto-instrumentation-python", "readOnly": false } ] }
  6. (Opsional) Untuk mengaktifkan korelasi log, lakukan hal berikut sebelum Anda memasang volume. DiOTEL_RESOURCE_ATTRIBUTES, tetapkan variabel lingkungan tambahan aws.log.group.names untuk grup log aplikasi Anda. Dengan demikian, jejak dan metrik dari aplikasi Anda dapat dikorelasikan dengan entri log yang relevan dari grup log ini. 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, menyetel variabel lingkungan saat ini sudah cukup. Untuk informasi selengkapnya, lihat Aktifkan metrik untuk mencatat korelasi. Untuk mengaktifkan korelasi pelacakan ke log, Anda juga perlu mengubah konfigurasi logging di aplikasi Anda. Untuk informasi selengkapnya, lihat Aktifkan korelasi pelacakan ke log.

    Berikut adalah contohnya. Untuk mengaktifkan korelasi log, gunakan contoh ini saat Anda memasang volume opentelemetry-auto-instrumentation-python yang Anda tentukan pada langkah 1 prosedur ini.

    { "name": "my-app", ... "environment": [ { "name": "PYTHONPATH", "value": "/otel-auto-instrumentation-python/opentelemetry/instrumentation/auto_instrumentation:$APP_PATH:/otel-auto-instrumentation-python" }, { "name": "OTEL_EXPORTER_OTLP_PROTOCOL", "value": "http/protobuf" }, { "name": "OTEL_TRACES_SAMPLER", "value": "xray" }, { "name": "OTEL_TRACES_SAMPLER_ARG", "value": "endpoint=http://CW_CONTAINER_IP:2000" }, { "name": "OTEL_LOGS_EXPORTER", "value": "none" }, { "name": "OTEL_PYTHON_DISTRO", "value": "aws_distro" }, { "name": "OTEL_PYTHON_CONFIGURATOR", "value": "aws_configurator" }, { "name": "OTEL_EXPORTER_OTLP_TRACES_ENDPOINT", "value": "http://CW_CONTAINER_IP:4316/v1/traces" }, { "name": "OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT", "value": "http://CW_CONTAINER_IP:4316/v1/metrics" }, { "name": "OTEL_METRICS_EXPORTER", "value": "none" }, { "name": "OTEL_AWS_APPLICATION_SIGNALS_ENABLED", "value": "true" }, { "name": "OTEL_RESOURCE_ATTRIBUTES", "value": "aws.log.group.names=$YOUR_APPLICATION_LOG_GROUP,service.name=$SVC_NAME" }, { "name": "DJANGO_SETTINGS_MODULE", "value": "$PATH_TO_SETTINGS.settings" } ], "dependsOn": [ { "containerName": "init", "condition": "SUCCESS" } ], "mountPoints": [ { "sourceVolume": "opentelemetry-auto-instrumentation-python", "containerPath": "/otel-auto-instrumentation-python", "readOnly": false } ] }
.NET
Untuk instrumen aplikasi Anda di Amazon ECS dengan agen CloudWatch
  1. 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" } ]
  2. Tambahkan sebuah kontainer baru yang bernama init ke penetapan tugas aplikasi Anda. Ganti $IMAGE dengan gambar terbaru dari repositori gambar AWS Distro for OpenTelemetry Amazon ECR.

    Untuk instance kontainer Linux, gunakan yang berikut ini.

    { "name": "init", "image": "$IMAGE", "essential": false, "command": [ "cp", "-a", "autoinstrumentation/.", "/otel-auto-instrumentation" ], "mountPoints": [ { "sourceVolume": "opentelemetry-auto-instrumentation", "containerPath": "/otel-auto-instrumentation", "readOnly": false } ] }

    Untuk instance kontainer Windows Server, gunakan yang berikut ini.

    { "name": "init", "image": "$IMAGE", "essential": false, "command": [ "CMD", "/c", "xcopy", "/e", "C:\\autoinstrumentation\\*", "C:\\otel-auto-instrumentation", "&&", "icacls", "C:\\otel-auto-instrumentation", "/grant", "*S-1-1-0:R", "/T" ], "mountPoints": [ { "sourceVolume": "opentelemetry-auto-instrumentation", "containerPath": "C:\\otel-auto-instrumentation", "readOnly": false } ] }
  3. Tambahkan ketergantungan pada init wadah untuk memastikan bahwa wadah selesai sebelum wadah aplikasi Anda dimulai.

    "dependsOn": [ { "containerName": "init", "condition": "SUCCESS" } ]
  4. Tambahkan variabel lingkungan berikut ke kontainer aplikasi Anda. Anda harus menggunakan versi 1.1.0 atau yang lebih baru dari AWS Distro untuk agen OpenTelemetry instrumentasi otomatis untuk.NET.

    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, maka UnknownService digunakan sebagai nilai default.

    • deployment.environmentparameter menentukan lingkungan runtime aplikasi Anda dan mengontrol Environment dimensi untuk metrik Aplikasi Amazon ECS di CloudWatch. Jika tidak ditentukan, CloudWatch Agen secara otomatis menggunakan nama Amazon ECS Cluster

    Kunci atribut ini hanya digunakan oleh Sinyal Aplikasi, dan diubah menjadi anotasi X-Ray jejak dan dimensi CloudWatch metrik.

    OTEL_AWS_APPLICATION_SIGNALS_ENABLED

    Setel true agar wadah Anda mulai mengirim X-Ray jejak dan CloudWatch metrik 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 pelacakan ke Sinyal Aplikasi menggunakan HTTP.

    OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT

    Mengirim metrik ke wadah CloudWatch daemon.

    • Untuk aplikasi yang berjalan dalam host mode, atur ini kehttp://localhost:4316/v1/metrics.

    • Untuk aplikasi yang berjalan dalam bridge mode atau awsvpc mode, atur ini ke http://CW_CONTAINER_IP: 4316/v1 /metrics, di mana CW_CONTAINER_IP adalah alamat IP pribadi dari instance container EC2. Anda dapat mengambil alamat ini dari Instance Metadata Service (IMDS).

    OTEL_EXPORTER_OTLP_ENDPOINT

    Mengirim jejak ke wadah CloudWatch daemon.

    • Untuk aplikasi yang berjalan dalam host mode, atur ini kehttp://localhost:4316.

    • Untuk aplikasi yang berjalan dalam bridge mode atau awsvpc mode, atur ini ke http: //:4316CW_CONTAINER_IP, di mana adalah CW_CONTAINER_IP alamat IP pribadi dari instance kontainer EC2. Anda dapat mengambil alamat ini dari Instance Metadata Service (IMDS).

    OTEL_EXPORTER_OTLP_TRACES_ENDPOINT

    Mengirim jejak ke wadah CloudWatch daemon.

    • Untuk aplikasi yang berjalan dalam host mode, atur ini kehttp://localhost:4316/v1/traces.

    • Untuk aplikasi yang berjalan dalam bridge mode atau awsvpc mode, atur ini ke http://CW_CONTAINER_IP: 4316/v1 /tracing, di mana CW_CONTAINER_IP adalah alamat IP pribadi dari instance container EC2. Anda dapat mengambil alamat ini dari Instance Metadata Service (IMDS).

    OTEL_TRACES_SAMPLER_ARG

    Menetapkan titik akhir sampler jejak.

    • Untuk aplikasi yang berjalan dalam host mode, atur ini kehttp://localhost:2000.

    • Untuk aplikasi yang berjalan dalam bridge mode atau awsvpc mode, atur ini kehttp://CW_CONTAINER_IP:2000, di CW_CONTAINER_IP mana alamat IP pribadi dari instance kontainer EC2. Anda dapat mengambil alamat ini dari Instance Metadata Service (IMDS).

    OTEL_DOTNET_AUTO_HOME

    Atur ke lokasi instalasi instrumentasi otomatis ADOT .NET.

    OTEL_DOTNET_AUTO_PLUGINS

    Setel AWS.Distro.OpenTelemetry.AutoInstrumentation.Plugin, AWS.Distro.OpenTelemetry.AutoInstrumentation untuk mengaktifkan plugin Sinyal Aplikasi.

    CORECLR_ENABLE_PROFILING

    Setel 1 untuk mengaktifkan profiler.

    CORECLR_PROFILER

    Setel ke {918728DD-259F-4A6A-AC2B-B85E1B658318} sebagai CLSID dari profiler.

    CORECLR_PROFILER_PATH

    Atur ini ke jalur profiler.

    Di Linux, atur ke ${OTEL_DOTNET_AUTO_HOME}/linux-x64/OpenTelemetry.AutoInstrumentation.Native.so

    Pada Windows Server, atur ke ${OTEL_DOTNET_AUTO_HOME}/win-x64/OpenTelemetry.AutoInstrumentation.Native.dll

    DOTNET_ADDITIONAL_DEPS

    Atur ini ke jalur folder${OTEL_DOTNET_AUTO_HOME}/AdditionalDeps.

    DOTNET_SHARED_STORE

    Atur ini ke jalur folder${OTEL_DOTNET_AUTO_HOME}/store.

    DOTNET_STARTUP_HOOKS

    Atur ini ke jalur perakitan ter ${OTEL_DOTNET_AUTO_HOME}/net/OpenTelemetry.AutoInstrumentation.StartupHook.dll kelola untuk dijalankan sebelum titik masuk aplikasi utama.

  5. Pasang volume opentelemetry-auto-instrumentation yang sudah Anda tentukan pada langkah 1 prosedur ini. Untuk Linux, gunakan yang berikut ini.

    { "name": "my-app", ... "environment": [ { "name": "OTEL_RESOURCE_ATTRIBUTES", "value": "service.name=$SVC_NAME" }, { "name": "CORECLR_ENABLE_PROFILING", "value": "1" }, { "name": "CORECLR_PROFILER", "value": "{918728DD-259F-4A6A-AC2B-B85E1B658318}" }, { "name": "CORECLR_PROFILER_PATH", "value": "/otel-auto-instrumentation/linux-x64/OpenTelemetry.AutoInstrumentation.Native.so" }, { "name": "DOTNET_ADDITIONAL_DEPS", "value": "/otel-auto-instrumentation/AdditionalDeps" }, { "name": "DOTNET_SHARED_STORE", "value": "/otel-auto-instrumentation/store" }, { "name": "DOTNET_STARTUP_HOOKS", "value": "/otel-auto-instrumentation/net/OpenTelemetry.AutoInstrumentation.StartupHook.dll" }, { "name": "OTEL_DOTNET_AUTO_HOME", "value": "/otel-auto-instrumentation" }, { "name": "OTEL_DOTNET_AUTO_PLUGINS", "value": "AWS.Distro.OpenTelemetry.AutoInstrumentation.Plugin, AWS.Distro.OpenTelemetry.AutoInstrumentation" }, { "name": "OTEL_RESOURCE_ATTRIBUTES", "value": "aws.log.group.names=$YOUR_APPLICATION_LOG_GROUP,service.name=dotnet-service-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": "OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT", "value": "http://localhost:4316/v1/metrics" }, { "name": "OTEL_EXPORTER_OTLP_TRACES_ENDPOINT", "value": "http://CW_CONTAINER_IP:4316/v1/traces" }, { "name": "OTEL_EXPORTER_OTLP_ENDPOINT", "value": "http://CW_CONTAINER_IP:4316" }, { "name": "OTEL_TRACES_SAMPLER", "value": "xray" }, { "name": "OTEL_TRACES_SAMPLER_ARG", "value": "endpoint=http://CW_CONTAINER_IP:2000" }, { "name": "OTEL_PROPAGATORS", "value": "tracecontext,baggage,b3,xray" } ], "dependsOn": [ { "containerName": "init", "condition": "SUCCESS" } ], "mountPoints": [ { "sourceVolume": "opentelemetry-auto-instrumentation", "containerPath": "/otel-auto-instrumentation", "readOnly": false } ], "dependsOn": [ { "containerName": "init", "condition": "SUCCESS" } ] }

    Untuk Windows Server, gunakan yang berikut ini.

    { "name": "my-app", ... "environment": [ { "name": "OTEL_RESOURCE_ATTRIBUTES", "value": "service.name=$SVC_NAME" }, { "name": "CORECLR_ENABLE_PROFILING", "value": "1" }, { "name": "CORECLR_PROFILER", "value": "{918728DD-259F-4A6A-AC2B-B85E1B658318}" }, { "name": "CORECLR_PROFILER_PATH", "value": "C:\\otel-auto-instrumentation\\win-x64\\OpenTelemetry.AutoInstrumentation.Native.dll" }, { "name": "DOTNET_ADDITIONAL_DEPS", "value": "C:\\otel-auto-instrumentation\\AdditionalDeps" }, { "name": "DOTNET_SHARED_STORE", "value": "C:\\otel-auto-instrumentation\\store" }, { "name": "DOTNET_STARTUP_HOOKS", "value": "C:\\otel-auto-instrumentation\\net\\OpenTelemetry.AutoInstrumentation.StartupHook.dll" }, { "name": "OTEL_DOTNET_AUTO_HOME", "value": "C:\\otel-auto-instrumentation" }, { "name": "OTEL_DOTNET_AUTO_PLUGINS", "value": "AWS.Distro.OpenTelemetry.AutoInstrumentation.Plugin, AWS.Distro.OpenTelemetry.AutoInstrumentation" }, { "name": "OTEL_RESOURCE_ATTRIBUTES", "value": "aws.log.group.names=$YOUR_APPLICATION_LOG_GROUP,service.name=dotnet-service-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": "OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT", "value": "http://CW_CONTAINER_IP:4316/v1/metrics" }, { "name": "OTEL_EXPORTER_OTLP_TRACES_ENDPOINT", "value": "http://CW_CONTAINER_IP:4316/v1/traces" }, { "name": "OTEL_EXPORTER_OTLP_ENDPOINT", "value": "http://CW_CONTAINER_IP:4316" }, { "name": "OTEL_TRACES_SAMPLER", "value": "xray" }, { "name": "OTEL_TRACES_SAMPLER_ARG", "value": "endpoint=http://CW_CONTAINER_IP:2000" }, { "name": "OTEL_PROPAGATORS", "value": "tracecontext,baggage,b3,xray" } ], "mountPoints": [ { "sourceVolume": "opentelemetry-auto-instrumentation", "containerPath": "C:\\otel-auto-instrumentation", "readOnly": false } ], "dependsOn": [ { "containerName": "init", "condition": "SUCCESS" } ] }
Node.js
catatan

Jika Anda mengaktifkan Sinyal Aplikasi untuk Node.js aplikasi dengan ESM, lihat Setting up a Node.js application with the ESM module format sebelum memulai langkah-langkah ini.

Untuk instrumen aplikasi Anda di Amazon ECS dengan agen CloudWatch
  1. 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-node" } ]
  2. Tambahkan sebuah kontainer baru yang bernama init ke penetapan tugas aplikasi Anda. Ganti $IMAGE dengan gambar terbaru dari repositori gambar AWS Distro for OpenTelemetry Amazon ECR.

    { "name": "init", "image": "$IMAGE", "essential": false, "command": [ "cp", "-a", "/autoinstrumentation/.", "/otel-auto-instrumentation-node" ], "mountPoints": [ { "sourceVolume": "opentelemetry-auto-instrumentation-node", "containerPath": "/otel-auto-instrumentation-node", "readOnly": false } ], }
  3. Tambahkan ketergantungan pada init wadah untuk memastikan bahwa wadah ini selesai sebelum wadah aplikasi Anda dimulai.

    "dependsOn": [ { "containerName": "init", "condition": "SUCCESS" } ]
  4. Tambahkan variabel lingkungan berikut ke kontainer aplikasi Anda.

    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, maka UnknownService digunakan sebagai nilai default.

    • deployment.environmentparameter menentukan lingkungan runtime aplikasi Anda dan mengontrol Environment dimensi untuk metrik Aplikasi Amazon ECS di CloudWatch. Jika tidak ditentukan, CloudWatch Agen secara otomatis menggunakan nama Amazon ECS Cluster

    Kunci atribut ini hanya digunakan oleh Sinyal Aplikasi, dan diubah menjadi anotasi X-Ray jejak 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, menyetel variabel lingkungan saat ini sudah cukup. Untuk informasi selengkapnya, lihat Aktifkan metrik untuk mencatat korelasi. Untuk mengaktifkan korelasi pelacakan ke log, Anda juga perlu mengubah konfigurasi logging di aplikasi Anda. Untuk informasi selengkapnya, lihat Aktifkan korelasi pelacakan ke log.

    OTEL_AWS_APPLICATION_SIGNALS_ENABLED

    Setel true agar wadah Anda mulai mengirim X-Ray jejak dan CloudWatch metrik 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 OTLP/HTTP dan protobuf.

    OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT

    Mengirim metrik ke wadah CloudWatch daemon.

    • Untuk aplikasi yang berjalan dalam host mode, atur ini kehttp://localhost:4316/v1/metrics.

    • Untuk aplikasi yang berjalan dalam bridge mode atau awsvpc mode, atur ini ke http://CW_CONTAINER_IP: 4316/v1 /metrics, di mana CW_CONTAINER_IP adalah alamat IP pribadi dari instance container EC2. Anda dapat mengambil alamat ini dari Instance Metadata Service (IMDS).

    OTEL_EXPORTER_OTLP_TRACES_ENDPOINT

    Mengirim jejak ke wadah CloudWatch daemon.

    • Untuk aplikasi yang berjalan dalam host mode, atur ini kehttp://localhost:4316/v1/traces.

    • Untuk aplikasi yang berjalan dalam bridge mode atau awsvpc mode, atur ini ke http://CW_CONTAINER_IP: 4316/v1 /tracing, di mana CW_CONTAINER_IP adalah alamat IP pribadi dari instance container EC2. Anda dapat mengambil alamat ini dari Instance Metadata Service (IMDS).

    OTEL_TRACES_SAMPLER

    Setel ini xray untuk diset X-Ray el sebagai sampler jejak.

    OTEL_TRACES_SAMPLER_ARG

    Menetapkan titik akhir sampler jejak.

    • Untuk aplikasi yang berjalan dalam host mode, atur ini kehttp://localhost:2000.

    • Untuk aplikasi yang berjalan dalam bridge mode atau awsvpc mode, atur ini kehttp://CW_CONTAINER_IP:2000, di CW_CONTAINER_IP mana alamat IP pribadi dari instance kontainer EC2. Anda dapat mengambil alamat ini dari Instance Metadata Service (IMDS).

    OTEL_PROPAGATORS

    Tetapkan xray sebagai salah satu propagator.

    NODE_OPTIONS

    Setel ke--require AWS_ADOT_NODE_INSTRUMENTATION_PATH. Ganti AWS_ADOT_NODE_INSTRUMENTATION_PATH dengan jalur tempat AWS Distro untuk OpenTelemetry Node.js instrumentasi otomatis disimpan. Sebagai contoh, /otel-auto-instrumentation-node/autoinstrumentation.js.

  5. Pasang volume opentelemetry-auto-instrumentation-node yang sudah Anda tentukan pada langkah 1 prosedur ini. Jika Anda tidak perlu mengaktifkan korelasi log dengan metrik dan pelacakan, gunakan contoh berikut untuk Node.js aplikasi. Jika Anda ingin mengaktifkan korelasi log, lihat langkah berikutnya sebagai gantinya.

    Untuk Container Aplikasi Anda, tambahkan dependensi pada init wadah untuk memastikan bahwa wadah selesai sebelum wadah aplikasi Anda dimulai.

    { "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": "OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT", "value": "http://CW_CONTAINER_IP:4316/v1/metrics" }, { "name": "OTEL_EXPORTER_OTLP_TRACES_ENDPOINT", "value": "http://CW_CONTAINER_IP:4316/v1/traces" }, { "name": "OTEL_TRACES_SAMPLER", "value": "xray" }, { "name": "OTEL_TRACES_SAMPLER_ARG", "value": "endpoint=http://CW_CONTAINER_IP:2000" }, { "name": "NODE_OPTIONS", "value": "--require /otel-auto-instrumentation-node/autoinstrumentation.js" } ], "mountPoints": [ { "sourceVolume": "opentelemetry-auto-instrumentation-node", "containerPath": "/otel-auto-instrumentation-node", "readOnly": false } ], "dependsOn": [ { "containerName": "init", "condition": "SUCCESS" } ] }
  6. (Opsional) Untuk mengaktifkan korelasi log, lakukan hal berikut sebelum Anda memasang volume. DiOTEL_RESOURCE_ATTRIBUTES, tetapkan variabel lingkungan tambahan aws.log.group.names untuk grup log aplikasi Anda. Dengan demikian, jejak dan metrik dari aplikasi Anda dapat dikorelasikan dengan entri log yang relevan dari grup log ini. 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, menyetel variabel lingkungan saat ini sudah cukup. Untuk informasi selengkapnya, lihat Aktifkan metrik untuk mencatat korelasi. Untuk mengaktifkan korelasi pelacakan ke log, Anda juga perlu mengubah konfigurasi logging di aplikasi Anda. Untuk informasi selengkapnya, lihat Aktifkan korelasi pelacakan ke log.

    Berikut adalah contohnya. Gunakan contoh ini untuk mengaktifkan korelasi log saat Anda memasang volume opentelemetry-auto-instrumentation yang Anda tentukan pada langkah 1 prosedur ini.

    { "name": "my-app", ... "environment": [ { "name": "OTEL_RESOURCE_ATTRIBUTES", "value": "aws.log.group.names=$YOUR_APPLICATION_LOG_GROUP,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": "OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT", "value": "http://CW_CONTAINER_IP:4316/v1/metrics" }, { "name": "OTEL_EXPORTER_OTLP_TRACES_ENDPOINT", "value": "http://CW_CONTAINER_IP:4316/v1/traces" }, { "name": "OTEL_TRACES_SAMPLER", "value": "xray" }, { "name": "OTEL_TRACES_SAMPLER_ARG", "value": "endpoint=http://CW_CONTAINER_IP:2000" }, { "name": "NODE_OPTIONS", "value": "--require /otel-auto-instrumentation-node/autoinstrumentation.js" } ], "mountPoints": [ { "sourceVolume": "opentelemetry-auto-instrumentation-node", "containerPath": "/otel-auto-instrumentation-node", "readOnly": false } ], "dependsOn": [ { "containerName": "init", "condition": "SUCCESS" } ] }

Menyiapkan Node.js aplikasi dengan format modul ESM

Kami menyediakan dukungan terbatas untuk Node.js aplikasi dengan format modul ESM. Lihat perinciannya di Keterbatasan yang diketahui tentang Node.js ESM.

Untuk format modul ESM, menggunakan init wadah untuk menyuntikkan SDK Node.js instrumentasi tidak berlaku. Untuk mengaktifkan Sinyal Aplikasi Node.js dengan ESM, lewati langkah 1 dan 2 dari prosedur sebelumnya, dan lakukan hal berikut sebagai gantinya.

Untuk mengaktifkan Sinyal Aplikasi untuk Node.js aplikasi dengan ESM
  1. Instal dependensi yang relevan ke Node.js aplikasi Anda untuk autoinstrumentasi:

    npm install @aws/aws-distro-opentelemetry-node-autoinstrumentation npm install @opentelemetry/instrumentation@0.54.0
  2. Pada langkah 4 dan 5 dalam prosedur sebelumnya, lepaskan pemasangan volumeopentelemetry-auto-instrumentation-node:

    "mountPoints": [ { "sourceVolume": "opentelemetry-auto-instrumentation-node", "containerPath": "/otel-auto-instrumentation-node", "readOnly": false } ]

    Ganti opsi simpul dengan yang berikut ini.

    { "name": "NODE_OPTIONS", "value": "--import @aws/aws-distro-opentelemetry-node-autoinstrumentation/register --experimental-loader=@opentelemetry/instrumentation/hook.mjs" }

Langkah 6: Terapkan aplikasi Anda

Buat revisi baru penetapan tugas Anda dan terapkan ke klaster aplikasi Anda. Anda akan melihat dua wadah dalam tugas yang baru dibuat:

  • init- Wadah yang diperlukan untuk menginisialisasi Sinyal Aplikasi

  • my-app— Ini adalah contoh wadah aplikasi dalam dokumentasi kami. Dalam beban kerja Anda yang sebenarnya, wadah khusus ini mungkin tidak ada atau mungkin diganti dengan wadah layanan Anda sendiri.

(Opsional) Langkah 7: Pantau kesehatan aplikasi Anda

Setelah mengaktifkan aplikasi di Amazon ECS, Anda dapat memantau kesehatan aplikasi Anda. Untuk informasi selengkapnya, lihat Memantau kondisi kesehatan operasional aplikasi Anda dengan Sinyal Aplikasi.