Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Aktifkan Sinyal Aplikasi di Amazon EC2
Untuk aplikasi yang berjalan di Amazon EC2 atau jenis instans lainnya, Anda menginstal dan mengonfigurasi CloudWatch agen dan AWS Distro untuk OpenTelemetry dirimu 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.
Petunjuk di bagian ini adalah untuk Java, Python, dan. NETaplikasi. Langkah-langkah telah diuji pada EC2 instans Amazon, tetapi juga diharapkan untuk bekerja pada arsitektur lain yang mendukung AWS Distro untuk OpenTelemetry.
Persyaratan
Untuk mendapatkan dukungan untuk Sinyal Aplikasi, Anda harus menggunakan versi terbaru dari CloudWatch agen dan AWS Distro untuk OpenTelemetry agen.
Anda harus memiliki AWS CLI diinstal pada instance. Kami merekomendasikan AWS CLI versi 2, tetapi versi 1 juga harus berfungsi. Untuk informasi lebih lanjut tentang menginstal AWS CLI, lihat Menginstal atau memperbarui versi terbaru AWS CLI.
Langkah 1: Mengaktifkan Sinyal Aplikasi di akun Anda
Jika Anda belum mengaktifkan Sinyal Aplikasi di akun ini, Anda harus memberikan izin yang diperlukan Sinyal Aplikasi untuk menemukan layanan Anda. Untuk melakukan hal itu, lakukan hal berikut. Anda perlu melakukan ini sekali untuk akun Anda.
Untuk mengaktifkan Sinyal Aplikasi untuk aplikasi-aplikasi Anda
Buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/.
Pada panel navigasi, silakan pilih Layanan.
Pilih Mulai menemukan Layanan Anda.
Pilih kotak centang dan pilih Mulai menemukan Layanan Anda.
Saat Anda menyelesaikan langkah ini untuk pertama kalinya di akun Anda, Application Signals membuat peran AWSServiceRoleForCloudWatchApplicationSignalsterkait layanan. Peran ini akan memberi Sinyal Aplikasi izin-izin berikut:
-
xray:GetServiceGraph
-
logs:StartQuery
-
logs:GetQueryResults
-
cloudwatch:GetMetricData
-
cloudwatch:ListMetrics
-
tag:GetResources
Untuk informasi selengkapnya tentang peran ini, silakan lihat Izin peran terkait layanan untuk Sinyal Aplikasi CloudWatch .
Langkah 2: Unduh dan mulai CloudWatch agen
Untuk menginstal CloudWatch agen sebagai bagian dari mengaktifkan Sinyal Aplikasi di EC2 instans Amazon atau host lokal
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.
Untuk informasi tentang mengunduh CloudWatch agen, lihatUnduh paket CloudWatch agen.
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 EC2 host.
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": {}
}
}
}
Lampirkan CloudWatchAgentServerPolicyIAMkebijakan ke IAM peran EC2 instans Amazon Anda. Untuk izin untuk host lokal, lihat. Izin untuk server lokal
Masuk ke AWS Management Console dan buka IAM konsol di https://console.aws.amazon.com/iam/.
Pilih Peran dan temukan peran yang digunakan oleh EC2 instans Amazon Anda. Kemudian pilih nama dari peran itu.
Pada tab Izin, pilih Tambahkan izin, Lampirkan kebijakan.
Temukan CloudWatchAgentServerPolicy. Gunakan kotak pencarian, jika diperlukan. Kemudian pilih kotak centang untuk kebijakan tersebut dan kemudian pilih Tambahkan izin.
Mulai CloudWatch agen dengan memasukkan perintah berikut. Ganti agent-config-file-path
dengan jalur 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 menyediakan AWS otorisasi ke perangkat Anda.
Untuk menyiapkan izin untuk host lokal
Buat IAM pengguna yang akan digunakan untuk memberikan izin ke host lokal Anda:
Buka IAM konsol di https://console.aws.amazon.com/iam/.
Pilih Pengguna, Buat Pengguna.
Dalam detail Pengguna, untuk Nama pengguna, masukkan nama untuk IAM pengguna baru. Ini adalah nama masuk untuk AWS yang akan digunakan untuk mengautentikasi host Anda. Lalu pilih Selanjutnya
Pada halaman Setel izin, di bawah opsi Izin, pilih Lampirkan kebijakan secara langsung.
Dari daftar Kebijakan izin, pilih CloudWatchAgentServerPolicykebijakan yang akan ditambahkan ke pengguna Anda. Lalu pilih Berikutnya.
Pada halaman Tinjau dan buat, pastikan bahwa Anda puas dengan nama pengguna dan CloudWatchAgentServerPolicykebijakan tersebut ada di ringkasan Izin.
Pilih Buat pengguna
Buat dan ambil kembali AWS kunci akses dan kunci rahasia:
Di panel navigasi di IAM konsol, pilih Pengguna lalu pilih nama pengguna pengguna yang Anda buat di langkah sebelumnya.
Pada halaman pengguna, pilih tab Security credentials. Kemudian, di bagian Kunci akses, pilih Buat kunci akses.
Untuk Buat tombol akses Langkah 1, pilih Antarmuka Baris Perintah (CLI).
Untuk Buat kunci akses Langkah 2, secara opsional masukkan tag dan kemudian pilih Berikutnya.
Untuk Buat kunci akses Langkah 3, pilih Unduh file.csv untuk menyimpan file.csv dengan kunci akses IAM pengguna dan kunci akses rahasia. Anda memerlukan informasi ini untuk langkah selanjutnya.
Pilih Selesai.
Konfigurasikan Anda AWS kredensi di host lokal Anda dengan memasukkan perintah berikut. Ganti ACCESS_KEY_ID
and 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
Langkah selanjutnya adalah instrumen aplikasi Anda untuk Sinyal CloudWatch Aplikasi.
- Java
-
Untuk menginstrumentasikan aplikasi Java Anda sebagai bagian dari mengaktifkan Sinyal Aplikasi pada EC2 instans Amazon atau host lokal
Unduh versi terbaru dari AWS Distro untuk agen instrumentasi otomatis OpenTelemetry Java. Anda dapat mengunduh versi terbaru dengan menggunakan tautan ini. Anda dapat melihat informasi tentang semua versi yang dirilis di aws-otel-java-instrumentation Rilis.
Untuk mengoptimalkan manfaat Sinyal Aplikasi, gunakan variabel lingkungan untuk memberikan informasi tambahan sebelum memulai aplikasi Anda. Informasi ini akan ditampilkan di dasbor Sinyal Aplikasi.
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 EC2 instance Amazon 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 OTEL_EXPORTER_OTLP_TRACES_ENDPOINT
variabel, tentukan titik akhir dasar URL tempat jejak akan diekspor. CloudWatch Agen mengekspos 4316 sebagai portnyaOTLP. Di AmazonEC2, karena aplikasi berkomunikasi dengan CloudWatch agen lokal, Anda harus menetapkan nilai ini OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:4316/v1/traces
Untuk OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT
variabel, tentukan titik akhir dasar URL tempat metrik akan diekspor. CloudWatch Agen mengekspos 4316 sebagai portnyaOTLP. Di AmazonEC2, 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 di mana AWS Distro untuk agen instrumentasi otomatis OpenTelemetry Java disimpan.
export JAVA_TOOL_OPTIONS=" -javaagent:$AWS_ADOT_JAVA_INSTRUMENTATION_PATH
"
Sebagai 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.
Mulai aplikasi Anda dengan variabel lingkungan yang tercantum pada langkah sebelumnya. Berikut ini adalah sebuah contoh skrip awal.
Konfigurasi berikut hanya mendukung versi 1.32.2 dan yang lebih baru AWS Distro untuk agen OpenTelemetry instrumentasi otomatis untuk Java.
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="service.name=$YOUR_SVC_NAME
" \
java -jar $MY_JAVA_APP.jar
(Opsional) Untuk mengaktifkan korelasi log, 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, pengaturan variabel lingkungan saat ini sudah cukup. Untuk informasi selengkapnya, lihat Aktifkan metrik untuk mencatat korelasi. Untuk mengaktifkan korelasi trace to log, Anda juga perlu mengubah konfigurasi logging di aplikasi Anda. Untuk informasi selengkapnya, lihat Aktifkan jejak untuk mencatat korelasi.
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
-
Untuk menginstrumentasikan aplikasi Python Anda sebagai bagian dari mengaktifkan Sinyal Aplikasi pada instans Amazon EC2
Unduh versi terbaru dari AWS Distro untuk agen OpenTelemetry instrumentasi otomatis 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.
Untuk mengoptimalkan manfaat Sinyal Aplikasi, gunakan variabel lingkungan untuk memberikan informasi tambahan sebelum memulai aplikasi Anda. Informasi ini akan ditampilkan di dasbor Sinyal Aplikasi.
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 EC2 instance Amazon 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.
Untuk OTEL_EXPORTER_OTLP_PROTOCOL
variabel, tentukan http/protobuf
untuk mengekspor data telemetri HTTP ke titik akhir CloudWatch agen yang tercantum dalam langkah-langkah berikut.
Untuk OTEL_EXPORTER_OTLP_TRACES_ENDPOINT
variabel, tentukan titik akhir dasar URL tempat jejak akan diekspor. CloudWatch Agen mengekspos 4316 saat OTLP pelabuhannya berakhir. HTTP Di AmazonEC2, karena aplikasi berkomunikasi dengan CloudWatch agen lokal, Anda harus menetapkan nilai ini OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:4316/v1/traces
Untuk OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT
variabel, tentukan titik akhir dasar URL tempat metrik akan diekspor. CloudWatch Agen mengekspos 4316 saat OTLP pelabuhannya berakhir. HTTP Di AmazonEC2, karena aplikasi berkomunikasi dengan CloudWatch agen lokal, Anda harus menetapkan nilai ini OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT=http://localhost:4316/v1/metrics
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
variabel agar wadah Anda true
mulai mengirim jejak dan CloudWatch metrik X-Ray ke Sinyal Aplikasi.
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 mengatur 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 tidak sesuai.
Untuk aplikasi Django, ada konfigurasi tambahan yang diperlukan, yang diuraikan dalam dokumentasi Python OpenTelemetry .
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.
-
(Opsional) Untuk mengaktifkan korelasi log, 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, pengaturan variabel lingkungan saat ini sudah cukup. Untuk informasi selengkapnya, lihat Aktifkan metrik untuk mencatat korelasi. Untuk mengaktifkan korelasi trace to log, Anda juga perlu mengubah konfigurasi logging di aplikasi Anda. Untuk informasi selengkapnya, lihat Aktifkan jejak untuk mencatat korelasi.
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 (Preview)
-
Untuk instrumen Anda. NETaplikasi sebagai bagian dari mengaktifkan Sinyal Aplikasi di EC2 instans Amazon atau host lokal
Unduh versi terbaru dari AWS Distro untuk OpenTelemetry . NETpaket instrumentasi otomatis. Anda dapat mengunduh versi terbaru di aws-otel-dotnet-instrumentation Releases.
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. NETinstrumentasi, sebelum Anda memulai. NETaplikasi.
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=aws-otel-integ-test
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=aws-otel-integ-test"
$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"
Mulai aplikasi Anda dengan variabel lingkungan yang tercantum pada langkah sebelumnya.
- Node.js (Preview)
-
Untuk menginstruksikan aplikasi Node.js Anda sebagai bagian dari mengaktifkan Sinyal Aplikasi pada instans Amazon EC2
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.
Untuk mengoptimalkan manfaat Sinyal Aplikasi, gunakan variabel lingkungan untuk memberikan informasi tambahan sebelum memulai aplikasi Anda. Informasi ini akan ditampilkan di dasbor Sinyal Aplikasi.
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 EC2 instance Amazon 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.
Untuk OTEL_EXPORTER_OTLP_PROTOCOL
variabel, tentukan http/protobuf
untuk mengekspor data telemetri HTTP ke titik akhir CloudWatch agen yang tercantum dalam langkah-langkah berikut.
Untuk OTEL_EXPORTER_OTLP_TRACES_ENDPOINT
variabel, tentukan titik akhir dasar URL tempat jejak akan diekspor. CloudWatch Agen mengekspos 4316 saat OTLP pelabuhannya berakhir. HTTP Di AmazonEC2, karena aplikasi berkomunikasi dengan CloudWatch agen lokal, Anda harus menetapkan nilai ini OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:4316/v1/traces
Untuk OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT
variabel, tentukan titik akhir dasar URL tempat metrik akan diekspor. CloudWatch Agen mengekspos 4316 saat OTLP pelabuhannya berakhir. HTTP Di AmazonEC2, karena aplikasi berkomunikasi dengan CloudWatch agen lokal, Anda harus menetapkan nilai ini OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT=http://localhost:4316/v1/metrics
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
variabel agar wadah Anda true
mulai mengirim jejak dan CloudWatch metrik X-Ray ke Sinyal Aplikasi.
Mulai aplikasi Anda dengan variabel-variabel lingkungan yang dibahas pada langkah sebelumnya. Berikut ini adalah sebuah contoh skrip awal.
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
-
(Opsional) Untuk mengaktifkan korelasi log, 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, pengaturan variabel lingkungan saat ini sudah cukup. Untuk informasi selengkapnya, lihat Aktifkan metrik untuk mencatat korelasi. Untuk mengaktifkan korelasi trace to log, Anda juga perlu mengubah konfigurasi logging di aplikasi Anda. Untuk informasi selengkapnya, lihat Aktifkan jejak untuk mencatat korelasi.
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