全部产品
Search
文档中心

Managed Service for OpenTelemetry:Panduan Integrasi OpenTelemetry

更新时间:Jul 02, 2025

Managed Service for OpenTelemetry mendukung penerimaan data jejak, metrik, dan log dari aplikasi dengan dua metode pelaporan: langsung atau melalui OpenTelemetry Collector.

Persiapan

  • Untuk melaporkan data log, aktifkan Simple Log Service (SLS), buat Proyek dan Logstore, serta buat pasangan AccessKey.

  • Lihat variabel, tipe data, dan metode pelaporan dalam tabel berikut untuk menyiapkan titik akhir dan informasi otentikasi yang diperlukan. Untuk detail lebih lanjut, lihat Persiapkan Penggunaan Managed Service for OpenTelemetry.

    Skenario

    Nama Variabel

    Deskripsi

    Contoh

    Melaporkan data jejak dan metrik

    Melaporkan melalui gRPC

    ${GRPC_ENDPOINT}

    Titik akhir pelaporan gRPC dari Managed Service for OpenTelemetry, yang mendukung pelaporan data jejak dan metrik.

    Jika layanan Anda diterapkan di Alibaba Cloud dan berada di wilayah yang sama dengan Managed Service for OpenTelemetry, kami sarankan Anda menggunakan alamat jaringan internal Alibaba Cloud. Jika tidak, gunakan alamat jaringan publik.

    • Alamat jaringan internal: http://tracing-analysis-dc-hz-internal.aliyuncs.com:8090

    • Alamat jaringan publik: http://tracing-analysis-dc-hz.aliyuncs.com:8090

    ${GRPC_AUTHENTICATION_TOKEN}

    Token otentikasi yang diperlukan saat menggunakan gRPC untuk melaporkan data ke Managed Service for OpenTelemetry. Untuk informasi tentang cara mendapatkan token, lihat Persiapkan Penggunaan Managed Service for OpenTelemetry.

    abcdef1234@abcdef****56789_abcdef1234@abcdef****56789

    Melaporkan melalui HTTP

    ${HTTP_TRACES_ENDPOINT}

    Titik akhir pelaporan HTTP dari Managed Service for OpenTelemetry, yang mendukung pelaporan data jejak.

    Jika layanan Anda diterapkan di Alibaba Cloud dan berada di wilayah yang sama dengan Managed Service for OpenTelemetry, kami sarankan Anda menggunakan alamat jaringan internal Alibaba Cloud. Jika tidak, gunakan alamat jaringan publik.

    • Alamat jaringan internal: http://tracing-analysis-dc-hz-internal.aliyuncs.com/adapt_***_***/api/otlp/traces

    • Alamat jaringan publik: http://tracing-analysis-dc-hz.aliyuncs.com/adapt_***_***/api/otlp/traces

    ${HTTP_METRICS_ENDPOINT}

    Titik akhir pelaporan HTTP dari Managed Service for OpenTelemetry, yang mendukung pelaporan data metrik.

    Jika layanan Anda diterapkan di Alibaba Cloud dan berada di wilayah yang sama dengan Managed Service for OpenTelemetry, kami sarankan Anda menggunakan alamat jaringan internal Alibaba Cloud. Jika tidak, gunakan alamat jaringan publik.

    • Alamat jaringan internal: http://tracing-analysis-dc-hz-internal.aliyuncs.com/adapt_***_***/api/otlp/metrics

    • Alamat jaringan publik: http://tracing-analysis-dc-hz.aliyuncs.com/adapt_***_***/api/otlp/metrics

    Melaporkan data log

    ${SLS_ENDPOINT}

    Titik akhir proyek SLS. Variabel ini hanya diperlukan jika Anda melaporkan data log. Untuk informasi tentang cara mendapatkan titik akhir, lihat Titik Akhir.

    test-project.cn-hangzhou.log.aliyuncs.com

    ${SLS_PROJECT}

    Nama proyek SLS. Variabel ini hanya diperlukan jika Anda melaporkan data log.

    test-project

    ${SLS_LOGSTORE}

    Nama Logstore SLS. Variabel ini hanya diperlukan jika Anda melaporkan data log.

    test-logstore

    ${ALIYUN_ACCESS_KEY_ID}

    ID AccessKey akun Alibaba Cloud Anda. Variabel ini hanya diperlukan jika Anda melaporkan data log.

    Kami sarankan Anda menggunakan pasangan AccessKey (termasuk ID dan rahasia) dari pengguna RAM yang hanya memiliki izin menulis pada proyek SLS. Untuk informasi tentang cara memberikan izin kepada pengguna RAM untuk menulis data ke proyek tertentu, lihat Contoh Penggunaan Kebijakan Kustom untuk Memberikan Izin kepada Pengguna RAM. Untuk informasi tentang cara mendapatkan pasangan AccessKey, lihat Pasangan AccessKey.

    Tidak ada

    ${ALIYUN_ACCESS_KEY_SECRET}

    Rahasia AccessKey akun Alibaba Cloud Anda. Variabel ini hanya diperlukan jika Anda melaporkan data log.

    Kami sarankan Anda menggunakan pasangan AccessKey (termasuk ID dan rahasia) dari pengguna RAM yang hanya memiliki izin menulis pada proyek SLS.

    Tidak ada

Pelaporan Langsung

Dengan mengonfigurasi titik akhir pelaporan dan token otentikasi agen atau SDK OpenTelemetry, Anda dapat mengirim data jejak dan metrik yang dikumpulkan oleh OpenTelemetry langsung ke server Managed Service for OpenTelemetry.

Metode 1: Konfigurasikan pengaturan pelaporan dalam kode

Contoh kode Java berikut menunjukkan cara mengonfigurasi informasi titik akhir Managed Service for OpenTelemetry untuk melaporkan data melalui HTTP dan gRPC. Kunjungi Pusat Integrasi atau lihat Gunakan OpenTelemetry untuk Melaporkan Data Jejak Aplikasi Java untuk melihat kode lengkap dan demo.

Melaporkan melalui HTTP

...

// Laporkan data jejak
SdkTracerProvider sdkTracerProvider = SdkTracerProvider.builder()
        .addSpanProcessor(BatchSpanProcessor.builder(OtlpHttpSpanExporter.builder()
                .setEndpoint("${HTTP_TRACES_ENDPOINT}") // Setel titik akhir HTTP untuk melaporkan data jejak ke Managed Service for OpenTelemetry.
                .build()).build())
        .build();

// Laporkan data metrik
SdkMeterProvider sdkMeterProvider = SdkMeterProvider.builder()
    .registerMetricReader(PeriodicMetricReader.builder(OtlpHttpMetricExporter.builder()
        .setEndpoint("${HTTP_METRICS_ENDPOINT}")  // Setel titik akhir HTTP untuk melaporkan data metrik ke Managed Service for OpenTelemetry.
        .build()).build())
    .build();

...

Melaporkan melalui gRPC

...

// Laporkan data jejak
SdkTracerProvider sdkTracerProvider = SdkTracerProvider.builder()
        .addSpanProcessor(BatchSpanProcessor.builder(OtlpGrpcSpanExporter.builder()
                .setEndpoint("${GRPC_AUTHENTICATION_TOKEN}") // Setel titik akhir gRPC untuk melaporkan data jejak ke Managed Service for OpenTelemetry.
                .addHeader("Authentication","${GRPC_AUTHENTICATION_TOKEN}") // Setel token otentikasi untuk Managed Service for OpenTelemetry.
                .build()).build())
        .setResource(resource)
        .build();

// Laporkan data metrik
SdkMeterProvider sdkMeterProvider = SdkMeterProvider.builder()
    .registerMetricReader(PeriodicMetricReader.builder(OtlpGrpcMetricExporter.builder()
        .setEndpoint("${GRPC_METRICS_ENDPOINT}")  // Setel titik akhir gRPC untuk melaporkan data jejak ke Managed Service for OpenTelemetry.
        .addHeader("Authentication", "${GRPC_AUTHENTICATION_TOKEN}")  // Setel token otentikasi untuk Managed Service for OpenTelemetry.
        .build()).build())
    .setResource(resource)
    .build();

...

Metode 2: Konfigurasikan pengaturan pelaporan melalui variabel lingkungan

OpenTelemetry juga mendukung konfigurasi titik akhir pelaporan melalui variabel lingkungan, seperti tercantum dalam tabel berikut. Untuk variabel lingkungan Protokol OpenTelemetry lainnya, lihat Konfigurasi OTLP Exporter.

Nama variabel lingkungan

Deskripsi

Contoh

OTEL_SERVICE_NAME

Nama aplikasi.

export OTEL_SERVICE_NAME=opentelemetry-demo-service

OTEL_EXPORTER_OTLP_PROTOCOL

Protokol pelaporan.

Pelaporan jejak mendukung protokol berikut: grpc, http/protobuf, dan http/json.

Pelaporan metrik mendukung protokol berikut: grpc dan http/protobuf.

Saat Anda memilih titik akhir pelaporan gRPC, setel variabel ini ke grpc. Jika tidak, gunakan http/protobuf atau http/json.

export OTEL_EXPORTER_OTLP_PROTOCOL=grpc

OTEL_EXPORTER_OTLP_TRACES_ENDPOINT

Titik akhir pelaporan jejak. Titik akhir HTTP dan gRPC didukung.

Titik akhir pelaporan adalah nilai ${GRPC_ENDPOINT} atau ${HTTP_TRACES_ENDPOINT} yang diperoleh di Persiapan.

  • Melaporkan melalui HTTP:

    export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://tracing-analysis-dc-hz-internal.aliyuncs.com/adapt_***_***/api/otlp/traces

  • Melaporkan melalui gRPC:

    export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://tracing-analysis-dc-hz-internal.aliyuncs.com:8090

OTEL_EXPORTER_OTLP_METRICS_ENDPOINT

Titik akhir pelaporan metrik. Titik akhir HTTP dan gRPC didukung.

Titik akhir pelaporan adalah nilai ${GRPC_ENDPOINT} atau ${HTTP_METRICS_ENDPOINT} yang diperoleh di Persiapan.

  • Melaporkan melalui HTTP:

    export OTEL_EXPORTER_OTLP_METRICS_ENDPOINT=http://tracing-analysis-dc-hz-internal.aliyuncs.com/adapt_***_***/api/otlp/metrics

  • Melaporkan melalui gRPC:

    export OTEL_EXPORTER_OTLP_METRICS_ENDPOINT=http://tracing-analysis-dc-hz-internal.aliyuncs.com:8090

OTEL_EXPORTER_OTLP_HEADERS

Informasi header permintaan untuk pelaporan gRPC, terutama digunakan untuk otentikasi.

Formatnya adalah Authentication=${GRPC_AUTHENTICATION_TOKEN}, di mana ${GRPC_AUTHENTICATION_TOKEN} adalah token otentikasi yang diperoleh di Persiapan.

export OTEL_EXPORTER_OTLP_HEADERS=Authentication=abcdef1234@abcdef****56789_abcdef1234@abcdef****56789

Pengalihan melalui OpenTelemetry Collector

Informasi latar belakang

  • OpenTelemetry Collector (Core): Mendukung pelaporan data jejak dan metrik.

  • OpenTelemetry Collector (Contrib): Mendukung pelaporan data jejak, metrik, dan log.

Solusi 1: Terapkan OpenTelemetry Collector di klaster ACK melalui ACK Marketplace

Penting

ACK Marketplace saat ini hanya mendukung OpenTelemetry Collector (Core). Jika Anda perlu mengumpulkan log, gunakan Solusi 2.

1. Terapkan Collector
  1. Masuk ke Konsol ACK. Di panel navigasi kiri, pilih Marketplace > Marketplace.

  2. Di halaman Marketplace, cari dan klik opentelemetry-collector, lalu klik Deploy di pojok kanan atas halaman yang muncul.

  3. Di langkah Basic Information, pilih klaster dan namespace (default: otel-collector) tempat Anda ingin menerapkan opentelemetry-collector, lalu klik Next.

  4. Di langkah Parameters, setel parameter mode ke deployment atau daemonset, lalu klik OK.

2. Konfigurasikan parameter Collector
  1. Di halaman Clusters Konsol ACK, klik klaster ACK.

  2. Di panel navigasi kiri, pilih Configurations > ConfigMaps.

  3. Pilih namespace tempat opentelemetry-collector berada (default: otel-collector).

  4. Di halaman ConfigMap, temukan opentelemetry-collector, lalu klik Edit YAML di kolom Actions.

  5. Lihat file YAML berikut untuk mengonfigurasi bagian berikut: exporters, processors, receivers, dan service, lalu klik OK.

    Konfigurasi opentelemetry-collector (melaporkan melalui gRPC)

    exporters:
      otlp:
        endpoint: "${GRPC_ENDPOINT}"
        headers:
          Authentication: "${GRPC_AUTHENTICATION_TOKEN}"
        tls:
          insecure: true
    
    processors:
      batch: {}
      memory_limiter:
        check_interval: 5s # Interval untuk memeriksa penggunaan memori. Sesuaikan jika diperlukan.
        limit_percentage: 80 # Persentase maksimum penggunaan memori. Sesuaikan jika diperlukan.
        spike_limit_percentage: 25 # Persentase tambahan memori yang diizinkan untuk lonjakan. Sesuaikan jika diperlukan.
    
    receivers:
      otlp:
        protocols:
          grpc:
            endpoint: ${env:MY_POD_IP}:4317
          http:
            endpoint: ${env:MY_POD_IP}:4318
    
    service:
      pipelines:
        traces:
          exporters: [otlp]
          processors: [memory_limiter, batch]
          receivers: [otlp]
        metrics:
          exporters: [otlp]
          processors: [memory_limiter, batch]
          receivers: [otlp]

    Konfigurasi opentelemetry-collector (melaporkan melalui HTTP)

    exporters:
      otlphttp:
        traces_endpoint: "${HTTP_TRACES_ENDPOINT}"
        metrics_endpoint: "${HTTP_METRICS_ENDPOINT}"
        tls:
          insecure: true
        timeout: 5s # Durasi batas waktu. Nilai default: 5s. Sesuaikan jika diperlukan.
    
    processors:
      batch: {}
      memory_limiter:
        check_interval: 5s # Interval untuk memeriksa penggunaan memori. Sesuaikan jika diperlukan.
        limit_percentage: 80 # Persentase maksimum penggunaan memori. Sesuaikan jika diperlukan.
        spike_limit_percentage: 25 # Persentase tambahan memori yang diizinkan untuk lonjakan. Sesuaikan jika diperlukan.
    
    receivers:
      otlp:
        protocols:
          grpc:
            endpoint: ${env:MY_POD_IP}:4317
          http:
            endpoint: ${env:MY_POD_IP}:4318
    
    service:
      pipelines:
        traces:
          exporters: [otlphttp]
          processors: [memory_limiter, batch]
          receivers: [otlp]
        metrics:
          exporters: [otlphttp]
          processors: [memory_limiter, batch]
          receivers: [otlp]
  6. Setelah konfigurasi selesai, mulai ulang opentelemetry-collector secara manual.

Solusi 2: Terapkan OpenTelemetry Collector menggunakan Docker

1. Tarik gambar

OpenTelemetry Collector (Core)

Untuk menentukan versi gambar, kunjungi https://hub.docker.com/r/otel/opentelemetry-collector/tags.

docker pull otel/opentelemetry-collector:latest

OpenTelemetry Collector (Contrib)

Untuk menentukan versi gambar, kunjungi https://hub.docker.com/r/otel/opentelemetry-collector-contrib/tags.

docker pull otel/opentelemetry-collector-contrib:latest
2. Siapkan file konfigurasi

Buat file config.yaml dan konfigurasikan parameter terkait.

Konfigurasi OpenTelemetry Collector (Core) (melaporkan melalui gRPC)

# config.yaml
exporters:
  otlp:
    endpoint: "${GRPC_ENDPOINT}"
    headers:
      Authentication: "${GRPC_AUTHENTICATION_TOKEN}"
    tls:
      insecure: true

processors:
  batch: {}
  memory_limiter:
    check_interval: 5s # Interval untuk memeriksa penggunaan memori. Sesuaikan jika diperlukan.
    limit_percentage: 80 # Persentase maksimum penggunaan memori. Sesuaikan jika diperlukan.
    spike_limit_percentage: 25 # Persentase tambahan memori yang diizinkan untuk lonjakan. Sesuaikan jika diperlukan.

receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317 # Nilai default adalah localhost:4317. Sesuaikan jika diperlukan.
      http:
        endpoint: 0.0.0.0:4318 # Nilai default adalah localhost:4318. Sesuaikan jika diperlukan.

service:
  pipelines:
    traces:
      exporters: [otlp]
      processors: [memory_limiter, batch]
      receivers: [otlp]
    metrics:
      exporters: [otlp]
      processors: [memory_limiter, batch]
      receivers: [otlp]

Konfigurasi OpenTelemetry Collector (Core) (melaporkan melalui HTTP)

# config.yaml
exporters:
  otlphttp:
    traces_endpoint: "${HTTP_TRACES_ENDPOINT}"
    metrics_endpoint: "${HTTP_METRICS_ENDPOINT}"
    tls:
      insecure: true
    timeout: 5s # Durasi batas waktu. Nilai default: 5s. Sesuaikan jika diperlukan.

processors:
  batch: {}
  memory_limiter:
    check_interval: 5s # Interval untuk memeriksa penggunaan memori. Sesuaikan jika diperlukan.
    limit_percentage: 80 # Persentase maksimum penggunaan memori. Sesuaikan jika diperlukan.
    spike_limit_percentage: 25 # Persentase tambahan memori yang diizinkan untuk lonjakan. Sesuaikan jika diperlukan.

receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317 # Nilai default adalah localhost:4317. Sesuaikan jika diperlukan.
      http:
        endpoint: 0.0.0.0:4318 # Nilai default adalah localhost:4318. Sesuaikan jika diperlukan.

service:
  pipelines:
    traces:
      exporters: [otlphttp]
      processors: [memory_limiter, batch]
      receivers: [otlp]
    metrics:
      exporters: [otlphttp]
      processors: [memory_limiter, batch]
      receivers: [otlp]

Konfigurasi OpenTelemetry Collector (Contrib) (melaporkan melalui gRPC)

# config.yaml
exporters:
  otlp:
    endpoint: "${GRPC_ENDPOINT}"
    headers:
      Authentication: "${GRPC_AUTHENTICATION_TOKEN}"
    tls:
      insecure: true
  # Konfigurasi ekspor log (opsional)
  alibabacloud_logservice/logs:
    endpoint: "${SLS_ENDPOINT}"
    project: "${SLS_PROJECT}"
    logstore: "${SLS_LOGSTORE}"
    access_key_id: "${ALIYUN_ACCESS_KEY_ID}"
    access_key_secret: "${ALIYUN_ACCESS_KEY_SECRET}"

processors:
  batch: {}
  memory_limiter:
    check_interval: 5s # Interval untuk memeriksa penggunaan memori. Sesuaikan jika diperlukan.
    limit_percentage: 80 # Persentase maksimum penggunaan memori. Sesuaikan jika diperlukan.
    spike_limit_percentage: 25 # Persentase tambahan memori yang diizinkan untuk lonjakan. Sesuaikan jika diperlukan.

receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317 # Nilai default adalah localhost:4317. Sesuaikan jika diperlukan.
      http:
        endpoint: 0.0.0.0:4318 # Nilai default adalah localhost:4318. Sesuaikan jika diperlukan.

service:
  pipelines:
    traces:
      exporters: [otlp]
      processors: [memory_limiter, batch]
      receivers: [otlp]
    metrics:
      exporters: [otlp]
      processors: [memory_limiter, batch]
      receivers: [otlp]
    # Alur pemrosesan data log (opsional)
    logs:
      exporters: [alibabacloud_logservice/logs]
      processors: [memory_limiter, batch]
      receivers: [otlp]

Konfigurasi OpenTelemetry Collector (Contrib) (melaporkan melalui HTTP)

# config.yaml
exporters:
  otlphttp:
    traces_endpoint: "${HTTP_TRACES_ENDPOINT}"
    metrics_endpoint: "${HTTP_METRICS_ENDPOINT}"
    tls:
      insecure: true
    timeout: 5s # Durasi batas waktu. Nilai default: 5s. Sesuaikan jika diperlukan.
    
  # Konfigurasi ekspor log (opsional)
  alibabacloud_logservice/logs:
    endpoint: "${SLS_ENDPOINT}"
    project: "${SLS_PROJECT}"
    logstore: "${SLS_LOGSTORE}"
    access_key_id: "${ALIYUN_ACCESS_KEY_ID}"
    access_key_secret: "${ALIYUN_ACCESS_KEY_SECRET}"

processors:
  batch: {}
  memory_limiter:
    check_interval: 5s # Interval untuk memeriksa penggunaan memori. Sesuaikan jika diperlukan.
    limit_percentage: 80 # Persentase maksimum penggunaan memori. Sesuaikan jika diperlukan.
    spike_limit_percentage: 25 # Persentase tambahan memori yang diizinkan untuk lonjakan. Sesuaikan jika diperlukan.

receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317 # Nilai default adalah localhost:4317. Sesuaikan jika diperlukan.
      http:
        endpoint: 0.0.0.0:4318 # Nilai default adalah localhost:4318. Sesuaikan jika diperlukan.

service:
  pipelines:
    traces:
      exporters: [otlphttp]
      processors: [memory_limiter, batch]
      receivers: [otlp]
    metrics:
      exporters: [otlphttp]
      processors: [memory_limiter, batch]
      receivers: [otlp]
    # Alur pemrosesan data log (opsional)
    logs:
      exporters: [alibabacloud_logservice/logs]
      processors: [memory_limiter, batch]
      receivers: [otlp]
3. Pasang dan jalankan file konfigurasi

OpenTelemetry Collector (Core)

docker run -v $(pwd)/config.yaml:/etc/otelcol/config.yaml otel/opentelemetry-collector:latest

OpenTelemetry Collector (Contrib)

docker run -v $(pwd)/config.yaml:/etc/otelcol-contrib/config.yaml otel/opentelemetry-collector-contrib:latest

Solusi lainnya

Referensi