Mengekspor jejak tanpa kolektor menggunakan AWS Distro for (ADOT) OpenTelemetry SDKs - Amazon CloudWatch

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

Mengekspor jejak tanpa kolektor menggunakan AWS Distro for (ADOT) OpenTelemetry SDKs

Anda dapat menggunakan ADOT SDKs untuk mengurangi kolektor dan mengirim jejak langsung ke titik akhir OTLP (untuk jejak).

catatan

Secara default, Sinyal Aplikasi diaktifkan saat Anda mengaktifkan Pencarian Transaksi. Sinyal Aplikasi tidak didukung di AWS Distro untuk OpenTelemetry dan harus dinonaktifkan.

Prasyarat

Pastikan Transaction Search diaktifkan untuk mengirim rentang ke endpoint X-Ray OTLP. Untuk informasi selengkapnya, lihat Memulai Penelusuran Transaksi.

Menyiapkan izin IAM untuk Amazon EC2

Ikuti langkah-langkah berikut untuk melampirkan kebijakan AWSXrayWriteOnlyPolicy IAM ke peran IAM instans Amazon EC2 Anda:

  1. Buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/.

  2. Pilih Peran dan temukan dan pilih peran yang digunakan oleh EC2 instans Amazon Anda.

  3. Di bawah tab Izin, pilih Tambahkan izin, lalu Lampirkan kebijakan.

  4. Menggunakan kotak pencarian, cari AWSXrayWriteOnlyPolicy kebijakan.

  5. Pilih AWSXrayWriteOnlyPolicy kebijakan dan pilih Tambahkan izin.

Menyiapkan izin IAM untuk host di lokasi

Ikuti langkah-langkah berikut untuk membuat pengguna IAM yang dapat digunakan untuk memberikan izin kepada host lokal Anda.

  1. Buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/.

  2. Pilih Pengguna dan kemudian Buat Pengguna.

  3. Pilih Pengguna, Buat Pengguna.

  4. Di bawah Rincian pengguna, untuk nama Pengguna, masukkan nama untuk pengguna IAM baru. Ini adalah nama masuk untuk AWS yang akan digunakan untuk mengautentikasi host Anda.

  5. Pilih Berikutnya.

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

  7. Dari daftar Kebijakan izin, pilih AWSXrayWriteOnlyPolicy kebijakan yang akan ditambahkan ke pengguna Anda.

  8. Pilih Berikutnya.

  9. Pada halaman Tinjau dan buat, pastikan Anda puas dengan nama pengguna dan AWSXrayWriteOnlyPolicy kebijakan tersebut berada di bawah ringkasan Izin.

  10. Pilih Create user (Buat pengguna).

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

    2. Pada halaman pengguna, pilih tab Security credentials.

    3. Di bawah bagian tombol Akses, pilih Buat kunci akses.

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

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

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

    7. Pilih Selesai.

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

Mengaktifkan ADOT SDKs

Anda dapat mengaktifkan jejak agar aplikasi Anda dikirim langsung ke titik akhir OTLP dari AWS Distro for OpenTelemetry (ADOT) SDK di Java, Node.js, Python, dan .Net.

Java
  1. Unduh versi terbaru dari agen instrumentasi otomatis AWS Distro untuk OpenTelemetry Java. Anda dapat mengunduh versi terbaru dengan menggunakan perintah ini:

    curl -L -O https://github.com/aws-observability/aws-otel-java-instrumentation/releases/latest/download/aws-opentelemetry-agent.jar

    Untuk melihat semua versi yang dirilis, lihat aws-otel-java-instrumentation rilis.

  2. Untuk mengaktifkan eksportir yang secara langsung mengirimkan jejak ke titik akhir jejak X-Ray OTLP dan untuk mengoptimalkan manfaat, gunakan variabel lingkungan untuk memberikan informasi tambahan sebelum Anda memulai aplikasi.

  3. 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. Bila Anda tidak memberikan nilai untuk kunci ini, default dari akan UnknownService digunakan.

    (Opsional) deployment.environment menetapkan lingkungan tempat aplikasi berjalan. Ini akan diputar sebagai lingkungan Hosted In aplikasi Anda. Bila 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

  4. Untuk OTEL_EXPORTER_OTLP_TRACES_ENDPOINT variabel, tentukan titik akhir jejak X-Ray OTLP:. https://xray.[AWSRegion].amazonaws.com/v1/traces Misalnya:

    export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT="https://xray.us-west-2.amazonaws.com/v1/traces"
  5. 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"

    Misalnya:

    export AWS_ADOT_JAVA_INSTRUMENTATION_PATH="./aws-opentelemetry-agent.jar"
  6. Untuk OTEL_METRICS_EXPORTER variabel, disarankan untuk mengatur nilai ke none.

  7. Untuk OTEL_LOGS_EXPORTER variabel, disarankan untuk mengatur nilai ke none.

  8. Untuk OTEL_TRACES_EXPORTER variabel, Anda harus mengatur nilai untuk otlp (ini opsional dan merupakan nilai default jika variabel lingkungan ini tidak disetel).

  9. Untuk OTEL_EXPORTER_OTLP_PROTOCOL variabel, Anda harus mengatur nilainya http/protobuf (ini opsional dan merupakan nilai default jika variabel lingkungan ini tidak disetel). Titik akhir X-Ray OTLP saat ini hanya mendukung protokol HTTP.

  10. Aplikasi Anda sekarang harus berjalan dengan AWS Distro untuk instrumentasi OpenTelemetry Java dan akan menghasilkan rentang. Rentang ini disimpan aws/spans CloudWatch LogsLogGroup di akun Anda. Anda juga dapat melihat jejak dan metrik yang berkorelasi dengan rentang Anda di Konsol CloudWatch Jejak dan Metrik.

  11. Mulai aplikasi Anda dengan variabel lingkungan yang Anda tetapkan. Berikut adalah 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_EXPORTER_OTLP_PROTOCOL=http/protobuf \ OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://xray.us-east-1.amazonaws.com/v1/traces \ OTEL_RESOURCE_ATTRIBUTES="service.name=$YOUR_SVC_NAME" \ java -jar $MY_JAVA_APP.jar
Node.js
  1. Unduh versi terbaru dari AWS Distro untuk agen OpenTelemetry JavaScript instrumentasi otomatis untuk Node.js. Anda dapat menginstal menggunakan perintah:

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

    Untuk melihat informasi tentang semua versi yang dirilis, lihat AWS Distro untuk OpenTelemetry JavaScript instrumentasi.

  2. Untuk mengaktifkan eksportir yang secara langsung mengirimkan jejak ke titik akhir X-Ray OTLP dan untuk mengoptimalkan manfaat, gunakan variabel lingkungan untuk memberikan informasi tambahan sebelum Anda memulai aplikasi.

  3. 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. Bila Anda tidak memberikan nilai untuk kunci ini, default dari akan UnknownService digunakan.

    (Opsional) deployment.environment menetapkan lingkungan tempat aplikasi berjalan. Ini akan diputar sebagai Ditempati Di lingkungan aplikasi Anda di dasbor Sinyal Aplikasi. Bila Anda tidak menentukan variabel 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.

  4. Untuk OTEL_EXPORTER_OTLP_TRACES_ENDPOINT variabel, tentukan titik akhir jejak X-Ray OTLP:. https://xray.[AWSRegion].amazonaws.com/v1/traces

    Misalnya:

    export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT="https://xray.us-west-2.amazonaws.com/v1/traces"
  5. Untuk OTEL_METRICS_EXPORTER variabel, disarankan untuk mengatur nilai ke none. Metrik Sinyal Aplikasi dihasilkan oleh titik akhir OTLP.

  6. Untuk OTEL_LOGS_EXPORTER variabel, disarankan untuk mengatur nilai ke none.

  7. Untuk OTEL_TRACES_EXPORTER variabel, Anda harus mengatur nilai untuk otlp (ini opsional dan merupakan nilai default jika variabel lingkungan ini tidak disetel).

  8. Untuk OTEL_EXPORTER_OTLP_PROTOCOL variabel, Anda harus mengatur nilainya http/protobuf (ini opsional dan merupakan nilai default jika variabel lingkungan ini tidak disetel). Titik akhir X-Ray OTLP saat ini hanya mendukung protokol HTTP.

  9. Aplikasi Anda sekarang harus berjalan dengan AWS Distro untuk instrumentasi OpenTelemetry Java dan akan menghasilkan rentang. Rentang ini disimpan aws/spans CloudWatch LogsLogGroup di akun Anda. Anda juga dapat melihat jejak dan metrik yang berkorelasi dengan rentang Anda di Konsol CloudWatch Jejak dan Metrik.

  10. Mulai aplikasi Anda dengan variabel lingkungan yang Anda tetapkan. Berikut adalah contoh skrip awal.

    (Catatan: Ganti $ SVC_NAME dengan nama aplikasi Anda. Ini ditampilkan sebagai nama aplikasi.

    OTEL_METRICS_EXPORTER=none \ OTEL_LOGS_EXPORTER=none \ OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf \ OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://xray.us-east-1.amazonaws.com/v1/traces \ OTEL_RESOURCE_ATTRIBUTES="service.name=$SVC_NAME" \ node —require '@aws/aws-distro-opentelemetry-node-autoinstrumentation/register' your-application.js
Python
  1. Unduh versi terbaru dari agen instrumentasi AWS otomatis Distro untuk OpenTelemetry Python. Anda dapat menginstal menggunakan perintah:

    pip install aws-opentelemetry-distro
  2. Untuk memungkinkan eksportir mengirim jejak langsung ke titik akhir X-Ray OTLP dan mengoptimalkan manfaat, gunakan variabel lingkungan untuk memberikan informasi tambahan sebelum Anda memulai aplikasi.

  3. 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. Bila Anda tidak memberikan nilai untuk kunci ini, default dari akan UnknownService digunakan.

    (Opsional) deployment.environment menetapkan lingkungan tempat aplikasi berjalan. Ini akan diputar sebagai Ditempati Di lingkungan aplikasi Anda di dasbor Sinyal Aplikasi. Bila 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.

  4. Untuk OTEL_EXPORTER_OTLP_TRACES_ENDPOINT variabel, tentukan titik akhir jejak X-Ray OTLP:. https://xray.[AWSRegion].amazonaws.com/v1/traces

    Misalnya:

    export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT="https://xray.us-west-2.amazonaws.com/v1/traces"
  5. Untuk OTEL_METRICS_EXPORTER variabel, disarankan untuk mengatur nilai ke none. Metrik Sinyal Aplikasi dihasilkan oleh titik akhir OTLP.

  6. Untuk OTEL_LOGS_EXPORTER variabel, disarankan untuk mengatur nilai ke none.

  7. Untuk OTEL_TRACES_EXPORTER variabel, Anda harus mengatur nilai untuk otlp (ini opsional dan merupakan nilai default jika variabel lingkungan ini tidak disetel).

  8. Untuk OTEL_EXPORTER_OTLP_PROTOCOL variabel, Anda harus mengatur nilainya http/protobuf (ini opsional dan merupakan nilai default jika variabel lingkungan ini tidak disetel). Titik akhir X-Ray OTLP saat ini hanya mendukung protokol HTTP.

  9. Aplikasi Anda sekarang harus berjalan dengan AWS Distro untuk instrumentasi OpenTelemetry Java dan akan menghasilkan rentang. Rentang ini disimpan aws/spans CloudWatch LogsLogGroup di akun Anda. Anda juga dapat melihat jejak dan metrik yang berkorelasi dengan rentang Anda di Konsol CloudWatch Jejak dan Metrik.

  10. Mulai aplikasi Anda dengan variabel lingkungan yang Anda tetapkan. Berikut adalah contoh skrip awal.

    (Catatan: Ganti $ SVC_NAME dengan nama aplikasi Anda dan ganti $ PYTHON_APP dengan lokasi dan nama aplikasi Anda.

    OTEL_METRICS_EXPORTER=none \ OTEL_LOGS_EXPORTER=none \ OTEL_PYTHON_DISTRO=aws_distro \ OTEL_PYTHON_CONFIGURATOR=aws_configurator \ OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf \ OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://xray.us-east-1.amazonaws.com/v1/traces \ OTEL_RESOURCE_ATTRIBUTES="service.name=$SVC_NAME" \ opentelemetry-instrument python $MY_PYTHON_APP.py
.Net

Untuk mengaktifkan eksportir yang secara langsung mengirimkan jejak ke titik akhir jejak X-Ray OTLP dan untuk mengoptimalkan manfaat, atur variabel lingkungan untuk memberikan informasi tambahan sebelum Anda memulai aplikasi. Variabel-variabel ini juga diperlukan untuk mengatur instrumentasi .NET.

  1. Ganti dotnet-service-name di variabel OTEL_RESOURCE_ATTRIBUTES lingkungan dengan nama layanan pilihan Anda.

  2. Atur OTEL_TRACES_EXPORTER=none.

  3. Atur OTEL_AWS_SIG_V4_ENABLED=true.

    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_TRACES_EXPORTER=none export OTEL_AWS_SIG_V4_ENABLED=true export OTEL_RESOURCE_ATTRIBUTES=service.name=dotnet-service-name export OTEL_METRICS_EXPORTER=none export OTEL_LOGS_EXPORTER=none export OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://xray.us-east-1.amazonaws.com/v1/traces

    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_TRACES_EXPORTER=none $env:OTEL_AWS_SIG_V4_ENABLED=true $env:OTEL_RESOURCE_ATTRIBUTES=service.name=dotnet-service-name $env:OTEL_METRICS_EXPORTER=none $env:OTEL_LOGS_EXPORTER=none $env:OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf $env:OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://xray.us-east-1.amazonaws.com/v1/traces
  4. Mulai aplikasi Anda dengan variabel lingkungan.

  5. (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.shexport 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 Pastikan untuk memeriksa file README untuk instruksi.