

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
<a name="CloudWatch-Application-Signals-Enable-EC2Main"></a>

Aktifkan Sinyal CloudWatch 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 mengonfigurasi CloudWatch agen dan AWS Distro untuk Anda sendiri. OpenTelemetry 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.

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

**Persyaratan**
+ Untuk mendapatkan dukungan untuk Sinyal Aplikasi, Anda harus menggunakan versi terbaru dari CloudWatch agen dan AWS Distro untuk OpenTelemetry agen.
+ Anda harus AWS CLI menginstal pada instance. Kami merekomendasikan AWS CLI versi 2, tetapi versi 1 juga harus berfungsi. Untuk informasi selengkapnya tentang [menginstal AWS CLI, lihat Menginstal atau memperbarui versi terbaru AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

**penting**  
Jika Anda sudah menggunakan aplikasi OpenTelemetry yang ingin Anda aktifkan untuk Sinyal Aplikasi, lihat [Sistem yang didukung](CloudWatch-Application-Signals-supportmatrix.md) sebelum Anda mengaktifkan Sinyal Aplikasi.

## Langkah 1: Mengaktifkan Sinyal Aplikasi di akun Anda
<a name="CloudWatch-Application-Signals-EC2-Grant"></a>

Anda harus terlebih dahulu mengaktifkan Sinyal Aplikasi di akun Anda. Jika belum, lihat[Aktifkan Sinyal Aplikasi di akun Anda](CloudWatch-Application-Signals-Enable.md).

## Langkah 2: Unduh dan mulai CloudWatch agen
<a name="CloudWatch-Application-Signals-Enable-Other-agent"></a>

**Untuk menginstal CloudWatch agen sebagai bagian dari mengaktifkan Sinyal Aplikasi di instans Amazon EC2 atau host lokal**

1. Unduh versi terbaru CloudWatch agen ke instans. 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 Sinyal CloudWatch Aplikasi.

1. Sebelum Anda memulai CloudWatch agen, konfigurasikan untuk mengaktifkan Sinyal Aplikasi. Contoh berikut adalah konfigurasi CloudWatch agen yang memungkinkan Sinyal Aplikasi untuk metrik dan jejak pada host EC2.

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

   ```
   {
     "traces": {
       "traces_collected": {
         "application_signals": {}
       }
     },
     "logs": {
       "metrics_collected": {
         "application_signals": {}
       }
     }
   }
   ```

1. Lampirkan kebijakan **CloudWatchAgentServerPolicy**IAM ke peran IAM instans Amazon EC2 Anda. Untuk izin host lokal, lihat. [Izin untuk server lokal](#Enable-OnPremise-Permissions)

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

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

   1. Pada tab **Izin**, pilih **Tambahkan izin**, **Lampirkan kebijakan**.

   1. Temukan **CloudWatchAgentServerPolicy**. Gunakan kotak pencarian, jika diperlukan. Kemudian pilih kotak centang untuk kebijakan tersebut dan kemudian pilih **Tambahkan izin**.

1. 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
<a name="Enable-OnPremise-Permissions"></a>

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

**Untuk menyiapkan 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/](https://console.aws.amazon.com/iam/).

   1. Pilih **Pengguna**, **Buat Pengguna**.

   1. Dalam **detail Pengguna**, untuk **Nama pengguna**, masukkan nama untuk pengguna IAM baru. Ini adalah nama masuk AWS yang akan digunakan untuk mengautentikasi host Anda. Lalu pilih **Selanjutnya**

   1. Pada halaman **Setel izin**, di bawah **opsi Izin**, pilih **Lampirkan kebijakan** secara langsung.

   1. Dari daftar **Kebijakan izin**, pilih **CloudWatchAgentServerPolicy**kebijakan yang akan ditambahkan ke pengguna Anda. Lalu pilih **Selanjutnya**.

   1. Pada halaman **Tinjau dan buat**, pastikan bahwa Anda puas dengan nama pengguna dan **CloudWatchAgentServerPolicy**kebijakan tersebut ada di **ringkasan Izin**.

   1. Pilih **Buat pengguna**

1. 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 di langkah sebelumnya.

   1.  Pada halaman pengguna, pilih tab **Security credentials.** Kemudian, di bagian **Kunci akses**, pilih **Buat kunci akses**.

   1. Untuk **Buat tombol akses Langkah 1**, pilih **Antarmuka Baris Perintah (CLI)**.

   1. Untuk **Buat kunci akses Langkah 2**, secara opsional masukkan tag dan kemudian pilih **Berikutnya**.

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

   1. Pilih **Selesai**.

1. Konfigurasikan AWS kredensional Anda di host lokal Anda 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 di 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
<a name="CloudWatch-Application-Signals-Enable-Other-instrument"></a>

Langkah selanjutnya adalah instrumen aplikasi Anda untuk Sinyal CloudWatch Aplikasi.

------
#### [ Java ]

**Untuk menginstrumentasikan aplikasi Java Anda sebagai bagian dari mengaktifkan Sinyal Aplikasi pada 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](https://github.com/aws-observability/aws-otel-java-instrumentation/releases/latest/download/aws-opentelemetry-agent.jar). Anda dapat melihat informasi tentang semua versi yang dirilis di [ aws-otel-java-instrumentationRilis](https://github.com/aws-observability/aws-otel-java-instrumentation/releases). 

1. 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.
     + (Opsional) `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 Auto Scaling, maka akan diatur ke `ec2:{{name-of-Auto-Scaling-group}}`
       + Jika ini adalah instans Amazon EC2 yang bukan bagian dari grup Auto Scaling, maka akan diatur ke `ec2:default` 
       + Jika ini adalah host lokal, itu diatur ke `generic:default` 

       Variabel lingkungan ini hanya digunakan oleh Sinyal Aplikasi, dan diubah menjadi anotasi jejak X-Ray 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 `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 `OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT=http://localhost:4316/v1/metrics`
     + Untuk `JAVA_TOOL_OPTIONS` variabel, tentukan jalur tempat agen instrumentasi otomatis AWS Distro untuk 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.

1. 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
   ```

1. (Opsional) Untuk mengaktifkan korelasi log, di`OTEL_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, pengaturan variabel lingkungan saat ini sudah cukup. Untuk informasi selengkapnya, lihat [Aktifkan metrik untuk mencatat korelasi](Application-Signals-MetricLogCorrelation.md). Untuk mengaktifkan korelasi trace to log, Anda juga perlu mengubah konfigurasi logging di aplikasi Anda. Untuk informasi selengkapnya, lihat [Aktifkan jejak untuk mencatat korelasi](Application-Signals-TraceLogCorrelation.md). 

   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 WSGI untuk aplikasi Python Anda, selain langkah-langkah berikut di bagian ini, lihat informasi [Tidak ada data Sinyal Aplikasi untuk aplikasi Python yang menggunakan server WSGI](CloudWatch-Application-Signals-Enable-Troubleshoot.md#Application-Signals-troubleshoot-Python-WSGI) untuk membuat Sinyal Aplikasi berfungsi.

**Untuk menginstrumentasikan aplikasi Python Anda sebagai bagian dari mengaktifkan Sinyal Aplikasi pada instans Amazon EC2**

1. Unduh versi terbaru dari agen instrumentasi AWS otomatis Distro untuk 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](https://github.com/aws-observability/aws-otel-python-instrumentation/releases). 

1. 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 Auto Scaling, maka akan diatur ke. `ec2:{{name-of-Auto-Scaling-group}}` 
        + Jika ini adalah instans Amazon EC2 yang bukan bagian dari grup Auto Scaling, maka akan diatur ke `ec2:default` 
        + Jika ini adalah host lokal, itu diatur ke `generic:default` 

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

   1. 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.

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

   1. 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 melalui HTTP. Di Amazon EC2, karena aplikasi berkomunikasi dengan CloudWatch agen lokal, Anda harus menetapkan nilai ini `OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT=http://localhost:4316/v1/metrics`

   1. 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.

   1. Atur `OTEL_AWS_APPLICATION_SIGNALS_ENABLED` variabel agar wadah Anda `true` mulai mengirim jejak dan CloudWatch metrik X-Ray ke Sinyal Aplikasi.

1. 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 hal 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 dari PYTHONPATH](https://github.com/open-telemetry/opentelemetry-operator/issues/2302) tidak sesuai.
   + [Untuk aplikasi Django, ada konfigurasi tambahan yang diperlukan, yang diuraikan dalam dokumentasi Python OpenTelemetry .](https://opentelemetry-python.readthedocs.io/en/latest/examples/django/README.html)
     + Gunakan `--noreload` bendera untuk mencegah pemuatan ulang otomatis.
     + Tetapkan variabel `DJANGO_SETTINGS_MODULE` lingkungan ke lokasi `settings.py` berkas aplikasi Django Anda. Ini memastikan bahwa OpenTelemetry dapat mengakses dan mengintegrasikan dengan benar dengan pengaturan Django Anda. 

1. (Opsional) Untuk mengaktifkan korelasi log, di`OTEL_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, pengaturan variabel lingkungan saat ini sudah cukup. Untuk informasi selengkapnya, lihat [Aktifkan metrik untuk mencatat korelasi](Application-Signals-MetricLogCorrelation.md). Untuk mengaktifkan korelasi trace to log, Anda juga perlu mengubah konfigurasi logging di aplikasi Anda. Untuk informasi selengkapnya, lihat [Aktifkan jejak untuk mencatat korelasi](Application-Signals-TraceLogCorrelation.md). 

   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 menginstrumentasikan aplikasi.NET Anda sebagai bagian dari mengaktifkan Sinyal Aplikasi di instans Amazon EC2 atau host lokal**

1. Unduh versi terbaru paket instrumentasi otomatis AWS Distro for OpenTelemetry .NET. Anda dapat mengunduh versi terbaru di [ aws-otel-dotnet-instrumentationReleases](https://github.com/aws-observability/aws-otel-dotnet-instrumentation/releases). 

1. Untuk mengaktifkan Sinyal Aplikasi, setel variabel lingkungan berikut untuk memberikan informasi tambahan sebelum Anda memulai aplikasi. Variabel-variabel ini diperlukan untuk mengatur hook startup untuk instrumentasi .NET, sebelum Anda memulai aplikasi.NET Anda. Ganti `dotnet-service-name` di 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"
     ```

1. Mulai aplikasi Anda dengan variabel lingkungan yang tercantum pada langkah sebelumnya.

   (Opsional) Atau, Anda dapat menggunakan skrip instalasi yang disediakan untuk membantu instalasi dan penyiapan AWS Distro untuk paket instrumentasi OpenTelemetry otomatis.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 instrumentasi otomatis AWS Distro untuk OpenTelemetry .NET di repositori resmi. NuGet ](https://www.nuget.org/packages/AWS.Distro.OpenTelemetry.AutoInstrumentation) Pastikan untuk memeriksa [file README](https://github.com/aws-observability/aws-otel-dotnet-instrumentation/blob/main/src/AWS.Distro.OpenTelemetry.AutoInstrumentation/nuget-readme.md) untuk instruksi.

------
#### [ Node.js ]

**catatan**  
Jika Anda mengaktifkan Sinyal Aplikasi untuk aplikasi Node.js dengan ESM, lihat [Setting up a Node.js application with the ESM module format](#EC2-NodeJs-ESM) sebelum Anda memulai langkah-langkah ini.

**Untuk menginstrumentasikan aplikasi Node.js Anda sebagai bagian dari mengaktifkan Sinyal Aplikasi pada instans Amazon EC2**

1. Unduh versi terbaru dari 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](https://github.com/aws-observability/aws-otel-js-instrumentation/releases). 

1. 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 Auto Scaling, maka akan diatur ke. `ec2:{{name-of-Auto-Scaling-group}}` 
        + Jika ini adalah instans Amazon EC2 yang bukan bagian dari grup Auto Scaling, maka akan diatur ke `ec2:default` 
        + Jika ini adalah host lokal, itu diatur ke `generic:default` 

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

   1. 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.

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

   1. 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 melalui HTTP. Di Amazon EC2, karena aplikasi berkomunikasi dengan CloudWatch agen lokal, Anda harus menetapkan nilai ini `OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT=http://localhost:4316/v1/metrics`

   1. 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.

   1. Atur `OTEL_AWS_APPLICATION_SIGNALS_ENABLED` variabel agar wadah Anda `true` mulai mengirim jejak dan CloudWatch metrik X-Ray ke Sinyal Aplikasi.

1. 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}}
   ```

1. (Opsional) Untuk mengaktifkan korelasi log, di`OTEL_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, pengaturan variabel lingkungan saat ini sudah cukup. Untuk informasi selengkapnya, lihat [Aktifkan metrik untuk mencatat korelasi](Application-Signals-MetricLogCorrelation.md). Untuk mengaktifkan korelasi trace to log, Anda juga perlu mengubah konfigurasi logging di aplikasi Anda. Untuk informasi selengkapnya, lihat [Aktifkan jejak untuk mencatat korelasi](Application-Signals-TraceLogCorrelation.md). 

   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}}
   ```<a name="EC2-NodeJs-ESM"></a>

**Menyiapkan aplikasi Node.js dengan format modul ESM**

Kami menyediakan dukungan terbatas untuk aplikasi Node.js dengan format modul ESM. Lihat perinciannya di [Keterbatasan yang diketahui tentang Node.js dengan ESM](CloudWatch-Application-Signals-supportmatrix.md#ESM-limitations).

Untuk mengaktifkan Sinyal Aplikasi untuk aplikasi Node.js dengan ESM, Anda perlu memodifikasi langkah-langkah dalam prosedur sebelumnya.

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

```
npm install @opentelemetry/instrumentation@0.54.0
```

Kemudian, pada langkah 3 dan 4 pada prosedur sebelumnya, ubah opsi simpul 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)
<a name="CloudWatch-Application-Signals-EC2-MCP"></a>

Anda dapat menggunakan server CloudWatch Application 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 pemberdayaan 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
<a name="CloudWatch-Application-Signals-EC2-MCP-Prerequisites"></a>

Sebelum menggunakan server MCP untuk mengaktifkan Sinyal Aplikasi, pastikan Anda memiliki:
+ Lingkungan Pengembangan yang mendukung MCP (seperti Kiro, Claude Desktop, dengan ekstensi MCP, atau alat lain yang kompatibel VSCode dengan MCP)
+ Server MCP Sinyal CloudWatch Aplikasi dikonfigurasi dalam IDE Anda. Untuk petunjuk penyiapan terperinci, lihat [Dokumentasi Server MCP Sinyal CloudWatch Aplikasi](https://awslabs.github.io/mcp/servers/cloudwatch-applicationsignals-mcp-server).

### Menggunakan server MCP
<a name="CloudWatch-Application-Signals-EC2-MCP-Usage"></a>

Setelah Anda mengonfigurasi server MCP Sinyal CloudWatch Aplikasi di IDE Anda, Anda dapat meminta panduan pemberdayaan 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"
```

**Petunjuk 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
<a name="CloudWatch-Application-Signals-EC2-MCP-Benefits"></a>

Menggunakan CloudWatch Application Signals MCP server menawarkan beberapa keuntungan:
+ **Antarmuka bahasa alami:** Jelaskan apa yang ingin Anda aktifkan tanpa menghafal perintah atau sintaks konfigurasi
+ **Panduan sadar konteks:** Server MCP memahami lingkungan spesifik Anda dan memberikan rekomendasi yang disesuaikan
+ **Mengurangi kesalahan:** Pembuatan konfigurasi otomatis meminimalkan kesalahan pengetikan manual
+ **Pengaturan lebih cepat:** Dapatkan dari niat ke implementasi lebih cepat
+ **Alat pembelajaran:** Lihat konfigurasi yang dihasilkan dan pahami cara kerja Sinyal Aplikasi

### Sumber daya tambahan
<a name="CloudWatch-Application-Signals-EC2-MCP-MoreInfo"></a>

Untuk informasi selengkapnya tentang mengonfigurasi dan menggunakan server MCP Sinyal CloudWatch Aplikasi, lihat dokumentasi server [MCP](https://awslabs.github.io/mcp/servers/cloudwatch-applicationsignals-mcp-server).

## (Opsional) Pantau kesehatan aplikasi Anda
<a name="CloudWatch-Application-Signals-Monitor-EC2"></a>

Setelah Anda mengaktifkan aplikasi Anda di Amazon EC2, Anda dapat memantau kesehatan aplikasi Anda. Lihat informasi yang lebih lengkap di [Memantau kondisi kesehatan operasional aplikasi Anda dengan Sinyal Aplikasi](Services.md).