Topik ini menjelaskan cara mengimpor data jejak dari aplikasi Ruby ke Layanan Log Sederhana menggunakan OpenTelemetry SDK untuk Ruby.
Prasyarat
Sebuah instance jejak telah dibuat. Untuk informasi lebih lanjut, lihat Buat Instance Jejak.
Lingkungan pengembangan Ruby telah disiapkan dengan versi Ruby 2.0 atau yang lebih baru.
OpenTelemetry SDK untuk Ruby telah diinstal.
Jika OpenTelemetry SDK untuk Ruby belum diinstal, Anda dapat menjalankan perintah berikut untuk menginstal SDK:
gem install opentelemetry-api gem install opentelemetry-sdk gem install opentelemetry-exporter-otlp
Prosedur
Konfigurasikan variabel lingkungan.
Ganti variabel dalam kode berikut dengan nilai sebenarnya. Untuk informasi lebih lanjut tentang variabel, lihat Variabel.
export OTEL_RESOURCE_ATTRIBUTES=sls.otel.project=${project},sls.otel.instanceid=${instance},sls.otel.akid=${akid},sls.otel.aksecret=${aksecret},service.name=${service},service.version=${version},host.name=${host}export OTEL_RESOURCE_ATTRIBUTES=sls.otel.project=${project},sls.otel.instanceid=${instance},sls.otel.akid=${akid},sls.otel.aksecret=${aksecret},service.namespace=${service.namespace},service.name=${service},service.version=${version},host.name=${host}Tabel 1. Variabel
Variabel
Deskripsi
Contoh
${service}
Nama layanan. Tentukan nilai berdasarkan kebutuhan bisnis Anda.
payment
${version}
Versi layanan. Kami merekomendasikan Anda menentukan versi dalam format va.b.c.
v0.1.2
${service.namespace}
Namespace tempat layanan berada.
order
${project}
Nama proyek Layanan Log Sederhana.
test-project
${instance}
ID instance jejak. Untuk informasi lebih lanjut, lihat Buat instance jejak.
test-traces
${akid}
ID AccessKey akun Alibaba Cloud Anda.
Kami merekomendasikan Anda menggunakan pasangan AccessKey dari pengguna RAM yang hanya memiliki izin tulis pada proyek Layanan Log Sederhana. Pasangan AccessKey terdiri dari ID AccessKey dan Rahasia AccessKey. Untuk informasi lebih lanjut tentang cara memberikan izin tulis pada proyek tertentu kepada pengguna RAM, lihat Gunakan kebijakan kustom untuk memberikan izin kepada pengguna RAM. Untuk informasi lebih lanjut tentang cara mendapatkan pasangan AccessKey, lihat Pasangan AccessKey.
Tidak ada
${aksecret}
Rahasia AccessKey akun Alibaba Cloud Anda.
Kami merekomendasikan Anda menggunakan pasangan AccessKey dari pengguna RAM yang hanya memiliki izin tulis pada proyek Layanan Log Sederhana.
Tidak ada
${host}
Nama host.
localhost
Konfigurasikan instrumentasi.
Ganti variabel ${endpoint} dalam kode berikut dengan nilai sebenarnya. Untuk informasi lebih lanjut tentang variabel, lihat Variabel. Untuk detail contoh kode, lihat opentelemetry-ruby.
require 'opentelemetry/sdk' require 'opentelemetry-exporter-otlp' # Konfigurasikan sdk dengan format ekspor default dan propagasi konteks # lihat SDK#configure untuk menyesuaikan setup OpenTelemetry::SDK.configure do |c| c.add_span_processor( OpenTelemetry::SDK::Trace::Export::BatchSpanProcessor.new( OpenTelemetry::Exporter::OTLP::Exporter.new( endpoint: 'https://${endpoint}/opentelemetry/v1/traces' ) ) ) end # Untuk memulai jejak, Anda perlu mendapatkan Tracer dari TracerProvider tracer = OpenTelemetry.tracer_provider.tracer('my_app_or_gem', '0.1.0') tracer.in_span('foo') do |span| # set atribut span.set_attribute('tform', 'osx') # tambahkan event span.add_event('event in bar') # buat bar sebagai anak dari foo tracer.in_span('bar') do |child_span| # inspeksi rentang pp child_span end end sleep 10Tabel 2. Variabel
Variabel
Deskripsi
Contoh
${endpoint}
Titik akhir proyek Layanan Log Sederhana. Format: ${project}.${region-endpoint}.
${project}: nama proyek Layanan Log Sederhana.
${region-endpoint}: titik akhir Layanan Log Sederhana untuk wilayah tempat proyek berada. Anda dapat mengakses Layanan Log Sederhana menggunakan titik akhir internal atau publik. Titik akhir internal dapat diakses melalui jaringan klasik atau virtual private cloud (VPC). Titik akhir publik dapat diakses melalui Internet. Untuk informasi lebih lanjut, lihat Titik Akhir.
https://test-project.cn-hangzhou.log.aliyuncs.com