View a markdown version of this page

Aktifkan aplikasi Anda di Amazon EC2 - Amazon CloudWatch

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

Aktifkan aplikasi Anda di Amazon EC2

Akti CloudWatch fkan Sinyal Aplikasi di Amazon EC2 dengan menggunakan langkah-langkah pengaturan khusus yang dijelaskan di bagian ini.

Untuk aplikasi yang berjalan di Amazon EC2, Anda menginstal dan mengkonfigurasi CloudWatch agen dan AWS Distro untuk OpenTelemetry diri Anda sendiri. Pada arsitektur ini yang diaktifkan dengan pengaturan Sinyal Aplikasi, Sinyal Aplikasi tidak secara otomatis menemukan nama layanan Anda atau klaster atau host tempat berjalannya. Anda harus menentukan nama-nama ini selama melakukan pengaturan kustom, dan nama yang Anda tentukan adalah apa yang akan ditampilkan pada dasbor Sinyal Aplikasi.

Instruksi di bagian ini adalah untuk aplikasi Java, Python, dan .NET. Langkah-langkah telah diuji pada instans Amazon EC2, tetapi juga diharapkan bekerja pada arsitektur lain yang mendukung AWS Distro untuk. OpenTelemetry

Persyaratan

penting

Jika Anda sudah menggunakan OpenTelemetry dengan aplikasi yang ingin Anda aktifkan untuk Sinyal Aplikasi, lihat Sistem yang didukung sebelum Anda mengaktifkan Sinyal Aplikasi.

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: Unduh dan mulai CloudWatch agen

Untuk menginstal CloudWatch agen sebagai bagian dari mengaktifkan Sinyal Aplikasi di instans Amazon EC2 atau host lokal
  1. Unduh versi terbaru CloudWatch agen ke instance. Jika instans sudah menginstal CloudWatch agen, Anda mungkin perlu memperbaruinya. Hanya versi agen yang dirilis pada 30 November 2023 atau yang lebih baru yang mendukung Sin CloudWatch yal Aplikasi.

  2. Sebelum memulai CloudWatch agen, konfigurasikan untuk mengaktifkan Sinyal Aplikasi. Contoh berikut adalah konfigurasi CloudWatch agen yang mengaktifkan Sinyal Aplikasi untuk metrik dan pelacakan pada host EC2.

    Kami menyarankan Anda menempatkan file ini di /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json pada sistem Linux.

    { "traces": { "traces_collected": { "application_signals": {} } }, "logs": { "metrics_collected": { "application_signals": {} } } }
  3. Lampirkan kebijakan CloudWatchAgentServerPolicy IAM ke peran IAM instans Amazon EC2 Anda. Untuk izin untuk host lokal, lihatIzin untuk server lokal.

    1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di https://console.aws.amazon.com/iam/.

    2. Pilih Peran dan temukan peran yang digunakan oleh instans Amazon EC2 Anda. Kemudian pilih nama dari peran itu.

    3. Pada tab Izin, pilih Tambahkan izin, Lampirkan kebijakan.

    4. Menemukan CloudWatchAgentServerPolicy. Gunakan kotak pencarian, jika diperlukan. Kemudian pilih kotak centang untuk kebijakan tersebut dan kemudian pilih Tambahkan izin.

  4. Mulai CloudWatch agen dengan memasukkan perintah berikut. Ganti agent-config-file-path dengan path ke file konfigurasi CloudWatch agen, seperti./amazon-cloudwatch-agent.json. Anda harus menyertakan awalan file: seperti yang ditunjukkan.

    export CONFIG_FILE_PATH=./amazon-cloudwatch-agent.json
    sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \ -a fetch-config \ -m ec2 -s -c file:agent-config-file-path

Izin untuk server lokal

Untuk host lokal, Anda harus memberikan AWS otorisasi ke perangkat Anda.

Untuk mengatur izin untuk host lokal
  1. Buat pengguna IAM yang akan digunakan untuk memberikan izin ke host lokal Anda:

    1. Buka konsol IAM di https://console.aws.amazon.com/iam/.

    2. Pilih Pengguna, Buat Pengguna.

    3. Di Detail pengguna, untuk Nama pengguna, masukkan nama untuk pengguna IAM baru. Ini adalah nama login untuk AWS yang akan digunakan untuk mengotentikasi host Anda. Lalu pilih Selanjutnya

    4. Pada halaman Tet apkan izin, di bawah opsi Izin, pilih Lamp irkan kebijakan secara langsung.

    5. Dari daftar Kebijakan Izin, pilih CloudWatchAgentServerPolicy kebijakan yang akan ditambahkan ke pengguna Anda. Lalu pilih Selanjutnya.

    6. Pada halaman T injau dan buat, pastikan Anda puas dengan nama pengguna dan CloudWatchAgentServerPolicy kebijakan tersebut ada di ringkasan Izin.

    7. Pilih Buat pengguna

  2. Buat dan ambil kunci AWS akses dan kunci rahasia Anda:

    1. Di panel navigasi di konsol IAM, pilih Pengguna dan kemudian pilih nama pengguna pengguna yang Anda buat pada langkah sebelumnya.

    2. Pada halaman pengguna, pilih tab Kreden sibilitas keamanan. Kemudian, di bagian tombol akses, pilih Buat kunci akses.

    3. Untuk Buat kunci akses Langkah 1, pilih Command Line Interface (CLI).

    4. Untuk Buat kunci akses Langkah 2, secara opsional masukkan tag dan kemudian pilih Ber ikutnya.

    5. Untuk Buat kunci akses Langkah 3, pilih Unduh file.csv untuk menyimpan file.csv dengan kunci akses pengguna IAM dan kunci akses rahasia. Anda memerlukan informasi ini untuk langkah selanjutnya.

    6. Pilih Selesai.

  3. Konfigurasikan AWS kredensi Anda di host lokal dengan memasukkan perintah berikut. Ganti ACCESS_KEY_ID dan SECRET_ACCESS_ID dengan kunci akses yang baru dibuat dan kunci akses rahasia dari file.csv yang Anda unduh pada langkah sebelumnya.

    $ aws configure AWS Access Key ID [None]: ACCESS_KEY_ID AWS Secret Access Key [None]: SECRET_ACCESS_ID Default region name [None]: MY_REGION Default output format [None]: json

Langkah 3: Menginstrumentasikan aplikasi Anda dan memulainya

Langkah selanjutnya adalah instrumen aplikasi Anda untuk Sin CloudWatch yal Aplikasi.

Java
Untuk instrumen aplikasi Java Anda sebagai bagian dari mengaktifkan Sinyal Aplikasi di instans Amazon EC2 atau host lokal
  1. Unduh versi terbaru dari agen instrumentasi otomatis AWS Distro untuk OpenTelemetry Java. Anda dapat mengunduh versi terbaru dengan menggunakan tautan ini. Anda dapat melihat informasi tentang semua versi yang dirilis di Rilis aws-otel-java-instrumentation.

  2. Untuk mengoptimalkan manfaat Sinyal Aplikasi, gunakan variabel lingkungan untuk memberikan informasi tambahan sebelum memulai aplikasi Anda. Informasi ini akan ditampilkan di dasbor Sinyal Aplikasi.

    1. Untuk variabel OTEL_RESOURCE_ATTRIBUTES, tentukan informasi berikut sebagai pasangan nilai kunci:

      • (Opsional) service.name menetapkan nama layanan. Ini akan ditampilkan sebagai nama layanan untuk aplikasi Anda di dasbor Sinyal Aplikasi. Jika Anda tidak memberikan nilai untuk kunci ini, maka UnknownService digunakan sebagai nilai default.

      • (Op deployment.environment sional) mengatur lingkungan tempat aplikasi berjalan. Ini akan diputar sebagai Ditempati Di lingkungan aplikasi Anda di dasbor Sinyal Aplikasi. Jika Anda tidak menentukan ini, salah satu default berikut digunakan:

        • Jika ini adalah instance yang merupakan bagian dari grup Penskalaan Otomatis, itu disetel ke ec2:name-of-Auto-Scaling-group

        • Jika ini adalah instans Amazon EC2 yang bukan bagian dari grup Penskalaan Otomatis, instans tersebut disetel ke ec2:default

        • Jika ini adalah host lokal, itu disetel ke generic:default

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

      • Untuk variabel OTEL_EXPORTER_OTLP_TRACES_ENDPOINT, tentukan URL titik akhir dasar tempat jejak akan diekspor. CloudWatch Agen mengekspos 4316 sebagai port OTLP-nya. Di Amazon EC2, karena aplikasi berkomunikasi dengan CloudWatch agen lokal, Anda harus menetapkan nilai ini ke OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:4316/v1/traces

      • Untuk variabel OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT, tentukan URL titik akhir dasar tempat metrik akan diekspor. CloudWatch Agen mengekspos 4316 sebagai port OTLP-nya. Di Amazon EC2, karena aplikasi berkomunikasi dengan CloudWatch agen lokal, Anda harus menetapkan nilai ini ke OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT=http://localhost:4316/v1/metrics

      • Untuk JAVA_TOOL_OPTIONS variabel, tentukan jalur tempat AWS Distro untuk agen instrumentasi otomatis OpenTelemetry Java disimpan.

        export JAVA_TOOL_OPTIONS=" -javaagent:$AWS_ADOT_JAVA_INSTRUMENTATION_PATH"

        Contoh:

        export AWS_ADOT_JAVA_INSTRUMENTATION_PATH=./aws-opentelemetry-agent.jar
      • Untuk variabel OTEL_METRICS_EXPORTER, kami sarankan Anda menetapkan nilainya menjadi none. Hal ini akan menonaktifkan pengekspor metrik lain sehingga hanya pengekspor Sinyal Aplikasi yang digunakan.

      • Atur OTEL_AWS_APPLICATION_SIGNALS_ENABLED ke true. Ini akan menghasilkan metrik Sinyal Aplikasi dari jejak.

  3. Mulai aplikasi Anda dengan variabel lingkungan yang tercantum pada langkah sebelumnya. Berikut ini adalah sebuah contoh skrip awal.

    catatan

    Konfigurasi berikut hanya mendukung versi 1.32.2 dan yang lebih baru dari AWS Distro untuk agen OpenTelemetry instrumentasi otomatis untuk Java.

    JAVA_TOOL_OPTIONS=" -javaagent:$AWS_ADOT_JAVA_INSTRUMENTATION_PATH" \ OTEL_METRICS_EXPORTER=none \ OTEL_LOGS_EXPORTER=none \ OTEL_AWS_APPLICATION_SIGNALS_ENABLED=true \ OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT=http://localhost:4316/v1/metrics \ OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf \ OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:4316/v1/traces \ OTEL_RESOURCE_ATTRIBUTES="service.name=$YOUR_SVC_NAME" \ java -jar $MY_JAVA_APP.jar
  4. (Opsional) Untuk mengaktifkan korelasi logOTEL_RESOURCE_ATTRIBUTES, di, 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 ini adalah contoh skrip awal yang membantu mengaktifkan korelasi log.

    JAVA_TOOL_OPTIONS=" -javaagent:$AWS_ADOT_JAVA_INSTRUMENTATION_PATH" \ OTEL_METRICS_EXPORTER=none \ OTEL_LOGS_EXPORT=none \ OTEL_AWS_APPLICATION_SIGNALS_ENABLED=true \ OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT=http://localhost:4316/v1/metrics \ OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf \ OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:4316/v1/traces \ OTEL_RESOURCE_ATTRIBUTES="aws.log.group.names=$YOUR_APPLICATION_LOG_GROUP,service.name=$YOUR_SVC_NAME" \ java -jar $MY_JAVA_APP.jar
Python
catatan

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 sebagai bagian dari mengaktifkan Sinyal Aplikasi pada instans Amazon EC2
  1. Unduh versi terbaru AWS Distro untuk agen instrumentasi otomatis OpenTelemetry Python. Instal dengan menjalankan perintah berikut.

    pip install aws-opentelemetry-distro

    Anda dapat melihat informasi tentang semua versi yang dirilis di AWS Distro untuk instrumentasi OpenTelemetry Python.

  2. Untuk mengoptimalkan manfaat Sinyal Aplikasi, gunakan variabel lingkungan untuk memberikan informasi tambahan sebelum memulai aplikasi Anda. Informasi ini akan ditampilkan di dasbor Sinyal Aplikasi.

    1. Untuk variabel OTEL_RESOURCE_ATTRIBUTES, tentukan informasi berikut sebagai pasangan nilai kunci:

      • 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.environment menetapkan lingkungan tempat aplikasi berjalan. Ini akan diputar sebagai Ditempati Di lingkungan aplikasi Anda di dasbor Sinyal Aplikasi. Jika Anda tidak menentukan ini, salah satu default berikut digunakan:

        • Jika ini adalah instance yang merupakan bagian dari grup Penskalaan Otomatis, itu disetel keec2:name-of-Auto-Scaling-group.

        • Jika ini adalah instans Amazon EC2 yang bukan bagian dari grup Penskalaan Otomatis, instans tersebut disetel ke ec2:default

        • Jika ini adalah host lokal, itu disetel ke generic:default

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

    2. Untuk OTEL_EXPORTER_OTLP_PROTOCOL variabel, tentukan http/protobuf untuk mengekspor data telemetri melalui HTTP ke titik akhir CloudWatch agen yang tercantum dalam langkah-langkah berikut.

    3. Untuk variabel OTEL_EXPORTER_OTLP_TRACES_ENDPOINT, tentukan URL titik akhir dasar tempat jejak akan diekspor. CloudWatch Agen mengekspos 4316 sebagai port OTLP melalui HTTP. Di Amazon EC2, karena aplikasi berkomunikasi dengan CloudWatch agen lokal, Anda harus menetapkan nilai ini ke OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:4316/v1/traces

    4. Untuk variabel OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT, tentukan URL titik akhir dasar tempat metrik akan diekspor. CloudWatch Agen mengekspos 4316 sebagai port OTLP melalui HTTP. Di Amazon EC2, karena aplikasi berkomunikasi dengan CloudWatch agen lokal, Anda harus menetapkan nilai ini ke OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT=http://localhost:4316/v1/metrics

    5. Untuk variabel OTEL_METRICS_EXPORTER, kami sarankan Anda menetapkan nilainya menjadi none. Hal ini akan menonaktifkan pengekspor metrik lain sehingga hanya pengekspor Sinyal Aplikasi yang digunakan.

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

  3. Mulai aplikasi Anda dengan variabel-variabel lingkungan yang dibahas pada langkah sebelumnya. Berikut ini adalah sebuah contoh skrip awal.

    • Ganti $SVC_NAME dengan nama aplikasi Anda. Ini akan ditampilkan sebagai nama aplikasi, di dasbor Sinyal Aplikasi.

    • Ganti $PYTHON_APP dengan lokasi dan nama aplikasi Anda.

    OTEL_METRICS_EXPORTER=none \ OTEL_LOGS_EXPORTER=none \ OTEL_AWS_APPLICATION_SIGNALS_ENABLED=true \ OTEL_PYTHON_DISTRO=aws_distro \ OTEL_PYTHON_CONFIGURATOR=aws_configurator \ OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf \ OTEL_TRACES_SAMPLER=xray \ OTEL_TRACES_SAMPLER_ARG="endpoint=http://localhost:2000" \ OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT=http://localhost:4316/v1/metrics \ OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:4316/v1/traces \ OTEL_RESOURCE_ATTRIBUTES="service.name=$SVC_NAME" \ opentelemetry-instrument python $MY_PYTHON_APP.py

    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.

  4. (Opsional) Untuk mengaktifkan korelasi logOTEL_RESOURCE_ATTRIBUTES, di, atur 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 ini adalah contoh skrip awal yang membantu mengaktifkan korelasi log.

    OTEL_METRICS_EXPORTER=none \ OTEL_LOGS_EXPORTER=none \ OTEL_AWS_APPLICATION_SIGNALS_ENABLED=true \ OTEL_PYTHON_DISTRO=aws_distro \ OTEL_PYTHON_CONFIGURATOR=aws_configurator \ OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf \ OTEL_TRACES_SAMPLER=xray \ OTEL_TRACES_SAMPLER_ARG="endpoint=http://localhost:2000" \ OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT=http://localhost:4316/v1/metrics \ OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:4316/v1/traces \ OTEL_RESOURCE_ATTRIBUTES="aws.log.group.names=$YOUR_APPLICATION_LOG_GROUP,service.name=$YOUR_SVC_NAME" \ java -jar $MY_PYTHON_APP.jar
.NET
Untuk instrumen aplikasi.NET Anda sebagai bagian dari mengaktifkan Sinyal Aplikasi di instans Amazon EC2 atau host lokal
  1. Unduh versi terbaru dari paket instrumentasi otomatis AWS Distro untuk OpenTelemetry .NET. Anda dapat mengunduh versi terbaru di aws-otel-dotnet-instrumentation Releases.

  2. Untuk mengaktifkan Sinyal Aplikasi, atur variabel lingkungan berikut untuk memberikan informasi tambahan sebelum memulai aplikasi. Variabel ini diperlukan untuk mengatur hook startup untuk instrumentasi.NET, sebelum Anda memulai aplikasi.NET Anda. G dotnet-service-name anti variabel OTEL_RESOURCE_ATTRIBUTES lingkungan dengan nama layanan pilihan Anda.

    • Berikut ini adalah contoh untuk Linux.

      export INSTALL_DIR=OpenTelemetryDistribution export CORECLR_ENABLE_PROFILING=1 export CORECLR_PROFILER={918728DD-259F-4A6A-AC2B-B85E1B658318} export CORECLR_PROFILER_PATH=${INSTALL_DIR}/linux-x64/OpenTelemetry.AutoInstrumentation.Native.so export DOTNET_ADDITIONAL_DEPS=${INSTALL_DIR}/AdditionalDeps export DOTNET_SHARED_STORE=${INSTALL_DIR}/store export DOTNET_STARTUP_HOOKS=${INSTALL_DIR}/net/OpenTelemetry.AutoInstrumentation.StartupHook.dll export OTEL_DOTNET_AUTO_HOME=${INSTALL_DIR} export OTEL_DOTNET_AUTO_PLUGINS="AWS.Distro.OpenTelemetry.AutoInstrumentation.Plugin, AWS.Distro.OpenTelemetry.AutoInstrumentation" export OTEL_RESOURCE_ATTRIBUTES=service.name=dotnet-service-name export OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf export OTEL_EXPORTER_OTLP_ENDPOINT=http://127.0.0.1:4316 export OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT=http://127.0.0.1:4316/v1/metrics export OTEL_METRICS_EXPORTER=none export OTEL_AWS_APPLICATION_SIGNALS_ENABLED=true export OTEL_TRACES_SAMPLER=xray export OTEL_TRACES_SAMPLER_ARG=http://127.0.0.1:2000
    • Berikut ini adalah contoh untuk Windows Server.

      $env:INSTALL_DIR = "OpenTelemetryDistribution" $env:CORECLR_ENABLE_PROFILING = 1 $env:CORECLR_PROFILER = "{918728DD-259F-4A6A-AC2B-B85E1B658318}" $env:CORECLR_PROFILER_PATH = Join-Path $env:INSTALL_DIR "win-x64/OpenTelemetry.AutoInstrumentation.Native.dll" $env:DOTNET_ADDITIONAL_DEPS = Join-Path $env:INSTALL_DIR "AdditionalDeps" $env:DOTNET_SHARED_STORE = Join-Path $env:INSTALL_DIR "store" $env:DOTNET_STARTUP_HOOKS = Join-Path $env:INSTALL_DIR "net/OpenTelemetry.AutoInstrumentation.StartupHook.dll" $env:OTEL_DOTNET_AUTO_HOME = $env:INSTALL_DIR $env:OTEL_DOTNET_AUTO_PLUGINS = "AWS.Distro.OpenTelemetry.AutoInstrumentation.Plugin, AWS.Distro.OpenTelemetry.AutoInstrumentation" $env:OTEL_RESOURCE_ATTRIBUTES = "service.name=dotnet-service-name" $env:OTEL_EXPORTER_OTLP_PROTOCOL = "http/protobuf" $env:OTEL_EXPORTER_OTLP_ENDPOINT = "http://127.0.0.1:4316" $env:OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT = "http://127.0.0.1:4316/v1/metrics" $env:OTEL_METRICS_EXPORTER = "none" $env:OTEL_AWS_APPLICATION_SIGNALS_ENABLED = "true" $env:OTEL_TRACES_SAMPLER = "xray" $env:OTEL_TRACES_SAMPLER_ARG = "http://127.0.0.1:2000"
  3. Mulai aplikasi Anda dengan variabel lingkungan yang tercantum pada langkah sebelumnya.

    (Opsional) Atau, Anda dapat menggunakan skrip instalasi yang disediakan untuk membantu instalasi dan pengaturan AWS Distro untuk paket instrumentasi otomatis OpenTelemetry .NET.

    Untuk Linux, unduh dan instal skrip instalasi Bash dari halaman GitHub rilis:

    # Download and Install curl -L -O https://github.com/aws-observability/aws-otel-dotnet-instrumentation/releases/latest/download/aws-otel-dotnet-install.sh chmod +x ./aws-otel-dotnet-install.sh ./aws-otel-dotnet-install.sh # Instrument . $HOME/.otel-dotnet-auto/instrument.sh export OTEL_RESOURCE_ATTRIBUTES=service.name=dotnet-service-name

    Untuk Windows Server, unduh dan instal skrip PowerShell instalasi dari halaman GitHub rilis:

    # Download and Install $module_url = "https://github.com/aws-observability/aws-otel-dotnet-instrumentation/releases/latest/download/AWS.Otel.DotNet.Auto.psm1" $download_path = Join-Path $env:temp "AWS.Otel.DotNet.Auto.psm1" Invoke-WebRequest -Uri $module_url -OutFile $download_path Import-Module $download_path Install-OpenTelemetryCore # Instrument Import-Module $download_path Register-OpenTelemetryForCurrentSession -OTelServiceName "dotnet-service-name" Register-OpenTelemetryForIIS

    Anda dapat menemukan NuGet paket paket AWS Distro untuk OpenTelemetry .NET auto-instrumentasi di repositori resmi. NuGet Pastikan untuk memeriksa file README untuk instruksi.

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 Node.js aplikasi Anda sebagai bagian dari mengaktifkan Sinyal Aplikasi di instans Amazon EC2
  1. Unduh versi terbaru AWS Distro untuk agen OpenTelemetry JavaScript instrumentasi otomatis untuk. Node.js Instal dengan menjalankan perintah berikut.

    npm install @aws/aws-distro-opentelemetry-node-autoinstrumentation

    Anda dapat melihat informasi tentang semua versi yang dirilis di AWS Distro untuk OpenTelemetry JavaScript instrumentasi.

  2. Untuk mengoptimalkan manfaat Sinyal Aplikasi, gunakan variabel lingkungan untuk memberikan informasi tambahan sebelum memulai aplikasi Anda. Informasi ini akan ditampilkan di dasbor Sinyal Aplikasi.

    1. Untuk variabel OTEL_RESOURCE_ATTRIBUTES, tentukan informasi berikut sebagai pasangan nilai kunci:

      • 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.environment menetapkan lingkungan tempat aplikasi berjalan. Ini akan diputar sebagai Ditempati Di lingkungan aplikasi Anda di dasbor Sinyal Aplikasi. Jika Anda tidak menentukan ini, salah satu default berikut digunakan:

        • Jika ini adalah instance yang merupakan bagian dari grup Penskalaan Otomatis, itu disetel keec2:name-of-Auto-Scaling-group.

        • Jika ini adalah instans Amazon EC2 yang bukan bagian dari grup Penskalaan Otomatis, instans tersebut disetel ke ec2:default

        • Jika ini adalah host lokal, itu disetel ke generic:default

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

    2. Untuk OTEL_EXPORTER_OTLP_PROTOCOL variabel, tentukan http/protobuf untuk mengekspor data telemetri melalui HTTP ke titik akhir CloudWatch agen yang tercantum dalam langkah-langkah berikut.

    3. Untuk variabel OTEL_EXPORTER_OTLP_TRACES_ENDPOINT, tentukan URL titik akhir dasar tempat jejak akan diekspor. CloudWatch Agen mengekspos 4316 sebagai port OTLP melalui HTTP. Di Amazon EC2, karena aplikasi berkomunikasi dengan CloudWatch agen lokal, Anda harus menetapkan nilai ini ke OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:4316/v1/traces

    4. Untuk variabel OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT, tentukan URL titik akhir dasar tempat metrik akan diekspor. CloudWatch Agen mengekspos 4316 sebagai port OTLP melalui HTTP. Di Amazon EC2, karena aplikasi berkomunikasi dengan CloudWatch agen lokal, Anda harus menetapkan nilai ini ke OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT=http://localhost:4316/v1/metrics

    5. Untuk variabel OTEL_METRICS_EXPORTER, kami sarankan Anda menetapkan nilainya menjadi none. Hal ini akan menonaktifkan pengekspor metrik lain sehingga hanya pengekspor Sinyal Aplikasi yang digunakan.

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

  3. Mulai aplikasi Anda dengan variabel-variabel lingkungan yang dibahas pada langkah sebelumnya. Berikut ini adalah sebuah contoh skrip awal.

    • Ganti $SVC_NAME dengan nama aplikasi Anda. Ini akan ditampilkan sebagai nama aplikasi, di dasbor Sinyal Aplikasi.

    OTEL_METRICS_EXPORTER=none \ OTEL_LOGS_EXPORTER=none \ OTEL_AWS_APPLICATION_SIGNALS_ENABLED=true \ OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf \ OTEL_TRACES_SAMPLER=xray \ OTEL_TRACES_SAMPLER_ARG="endpoint=http://localhost:2000" \ OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT=http://localhost:4316/v1/metrics \ OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:4316/v1/traces \ OTEL_RESOURCE_ATTRIBUTES="service.name=$SVC_NAME" \ node --require '@aws/aws-distro-opentelemetry-node-autoinstrumentation/register' your-application.js
  4. (Opsional) Untuk mengaktifkan korelasi logOTEL_RESOURCE_ATTRIBUTES, di, atur 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 ini adalah contoh skrip awal yang membantu mengaktifkan korelasi log.

    export OTEL_METRICS_EXPORTER=none \ export OTEL_LOGS_EXPORTER=none \ export OTEL_AWS_APPLICATION_SIGNALS_ENABLED=true \ export OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf \ export OTEL_TRACES_SAMPLER=xray \ export OTEL_TRACES_SAMPLER_ARG=endpoint=http://localhost:2000 \ export OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT=http://localhost:4316/v1/metrics \ export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:4316/v1/traces \ export OTEL_RESOURCE_ATTRIBUTES="aws.log.group.names=$YOUR_APPLICATION_LOG_GROUP,service.name=$SVC_NAME" \ node --require '@aws/aws-distro-opentelemetry-node-autoinstrumentation/register' your-application.js

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 mengaktifkan Sinyal Aplikasi untuk Node.js aplikasi dengan ESM, Anda perlu memodifikasi langkah-langkah dalam prosedur sebelumnya.

Pertama, instal @opentelemetry/instrumentation untuk Node.js aplikasi Anda:

npm install @opentelemetry/instrumentation@0.54.0

Kemudian, pada langkah 3 dan 4 dalam prosedur sebelumnya, ubah opsi node dari:

--require '@aws/aws-distro-opentelemetry-node-autoinstrumentation/register'

untuk yang berikut ini:

--import @aws/aws-distro-opentelemetry-node-autoinstrumentation/register --experimental-loader=@opentelemetry/instrumentation/hook.mjs

Aktifkan Sinyal Aplikasi di Amazon EC2 menggunakan Model Context Protocol (MCP)

Anda dapat menggunakan server Appl CloudWatch ication Signals Model Context Protocol (MCP) untuk mengaktifkan Sinyal Aplikasi di instans Amazon EC2 Anda melalui interaksi AI percakapan. Ini menyediakan antarmuka bahasa alami untuk mengatur pemantauan Sinyal Aplikasi.

Server MCP mengotomatiskan proses pengaktifan dengan memahami kebutuhan Anda dan menghasilkan konfigurasi yang sesuai. Alih-alih mengikuti langkah-langkah pengaturan secara manual, Anda cukup menjelaskan apa yang ingin Anda aktifkan.

Prasyarat

Sebelum menggunakan server MCP untuk mengaktifkan Sinyal Aplikasi, pastikan Anda memiliki:

  • Lingkungan Pengembangan yang mendukung MCP (seperti Kiro, Claude Desktop, VSCode dengan ekstensi MCP, atau alat lainnya) MCP-compatible

  • Server MCP Sinyal CloudWatch Aplikasi dikonfigurasi di IDE Anda. Untuk petunjuk penyiapan terperinci, lihat dokumentasi CloudWatch Application Signals MCP Server.

Menggunakan server MCP

Setelah Anda mengonfigurasi server MCP Sinyal CloudWatch Aplikasi di IDE Anda, Anda dapat meminta panduan pengaktifan menggunakan petunjuk bahasa alami. Meskipun asisten pengkodean dapat menyimpulkan konteks dari struktur proyek Anda, memberikan detail spesifik dalam petunjuk Anda membantu memastikan panduan yang lebih akurat dan relevan. Sertakan informasi seperti bahasa aplikasi, detail instans, dan jalur absolut ke infrastruktur dan kode aplikasi Anda.

Petunjuk praktik terbaik (spesifik dan lengkap):

"Enable Application Signals for my Python service running on EC2. My app code is in /home/ec2-user/flask-api and IaC is in /home/ec2-user/flask-api/terraform" "I want to add observability to my Java application on EC2. The application code is at /opt/apps/checkout-service and the infrastructure code is at /opt/apps/checkout-service/cloudformation" "Help me instrument my Node.js application on EC2 with Application Signals. Application directory: /home/ubuntu/payment-api Terraform code: /home/ubuntu/payment-api/terraform"

Prompt yang kurang efektif:

"Enable monitoring for my app" → Missing: platform, language, paths "Enable Application Signals. My code is in ./src and IaC is in ./infrastructure" → Problem: Relative paths instead of absolute paths "Enable Application Signals for my EC2 service at /home/user/myapp" → Missing: programming language

Template cepat:

"Enable Application Signals for my [LANGUAGE] service on EC2. App code: [ABSOLUTE_PATH_TO_APP] IaC code: [ABSOLUTE_PATH_TO_IAC]"

Manfaat menggunakan server MCP

Menggunakan server Appl CloudWatch ication Signals MCP menawarkan beberapa keuntungan:

  • Antarmuka bahasa alami: J elaskan apa yang ingin Anda aktifkan tanpa menghafal perintah atau sintaks konfigurasi

  • Context-aware panduan: Server MCP memahami lingkungan spesifik Anda dan memberikan rekomendasi yang disesuaikan

  • Mengurangi kesalahan: Pembuatan konfigurasi otomatis meminimalkan kesalahan pengetikan manual

  • Pengaturan lebih cepat: Mulai dari niat ke implementasi dengan lebih cepat

  • Alat pembelajaran: Lihat konfigurasi yang dihasilkan dan pahami cara kerja Sinyal Aplikasi

Sumber daya tambahan

Untuk informasi selengkapnya tentang mengkonfigurasi dan menggunakan server MCP Sinyal CloudWatch Aplikasi, lihat dokumentasi server MCP.

(Opsional) Pantau kesehatan aplikasi Anda

Setelah mengaktifkan aplikasi di Amazon EC2, Anda dapat memantau kesehatan aplikasi Anda. Lihat informasi yang lebih lengkap di Memantau kondisi kesehatan operasional aplikasi Anda dengan Sinyal Aplikasi.