All Products
Search
Document Center

Application Real-Time Monitoring Service:Integrasi OpenTelemetry

Last Updated:Jul 11, 2026

Managed Service for OpenTelemetry dapat menerima data trace, metric, dan log dari aplikasi Anda. Data tersebut dapat dilaporkan secara langsung atau diteruskan melalui OpenTelemetry Collector.

Persiapan

  • Untuk melaporkan data log, Anda harus terlebih dahulu mengaktifkan Simple Log Service (SLS), membuat Project dan Logstore, serta membuat pasangan AccessKey untuk pelaporan data log.

  • Dapatkan endpoint dan kredensial autentikasi yang diperlukan. Tabel berikut mencantumkan semua variabel konfigurasi yang digunakan dalam topik ini. Siapkan nilainya sesuai dengan tipe data dan metode pelaporan yang Anda gunakan. Untuk informasi selengkapnya, lihat Persiapan.

    Kasus penggunaan

    Parameter

    Deskripsi

    Contoh

    Laporkan data trace dan metric

    Laporkan data melalui gRPC

    ${GRPC_ENDPOINT}

    Endpoint gRPC untuk Managed Service for OpenTelemetry, digunakan untuk melaporkan data trace dan metric.

    Jika layanan Anda diterapkan di Alibaba Cloud pada wilayah yang sama dengan Managed Service for OpenTelemetry, kami menyarankan Anda menggunakan titik akhir internal. Jika tidak, gunakan titik akhir publik.

    • Titik akhir internal: http://tracing-analysis-dc-hz-internal.aliyuncs.com:8090

    • Titik akhir publik: http://tracing-analysis-dc-hz.aliyuncs.com:8090

    ${GRPC_AUTHENTICATION_TOKEN}

    Token autentikasi yang diperlukan untuk melaporkan data ke Managed Service for OpenTelemetry melalui gRPC. Untuk informasi lebih lanjut tentang cara mendapatkan token tersebut, lihat Persiapan.

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

    Laporkan data melalui HTTP

    ${HTTP_TRACES_ENDPOINT}

    Endpoint HTTP untuk Managed Service for OpenTelemetry, digunakan untuk melaporkan data trace.

    Jika layanan Anda diterapkan di Alibaba Cloud pada wilayah yang sama dengan Managed Service for OpenTelemetry, kami menyarankan Anda menggunakan titik akhir internal. Jika tidak, gunakan titik akhir publik.

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

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

    ${HTTP_METRICS_ENDPOINT}

    Endpoint HTTP untuk Managed Service for OpenTelemetry, digunakan untuk melaporkan data metric.

    Jika layanan Anda diterapkan di Alibaba Cloud pada wilayah yang sama dengan Managed Service for OpenTelemetry, kami menyarankan Anda menggunakan titik akhir internal. Jika tidak, gunakan titik akhir publik.

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

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

    Laporkan data log

    ${SLS_ENDPOINT}

    Endpoint Simple Log Service (SLS) Project, hanya diperlukan untuk pelaporan data log. Untuk informasi cara mendapatkan endpoint, lihat Service Endpoints.

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

    ${SLS_PROJECT}

    Nama Project Simple Log Service (SLS), hanya diperlukan untuk pelaporan data log.

    test-project

    ${SLS_LOGSTORE}

    Nama Logstore Simple Log Service (SLS), hanya diperlukan untuk pelaporan data log.

    test-logstore

    ${ALIYUN_ACCESS_KEY_ID}

    ID AccessKey Akun Alibaba Cloud Anda, hanya diperlukan untuk pelaporan data log.

    Kami menyarankan Anda menggunakan pasangan AccessKey milik Pengguna RAM yang hanya memiliki izin menulis pada Project Simple Log Service (SLS). Pasangan AccessKey terdiri dari ID AccessKey dan Rahasia AccessKey. Untuk informasi lebih lanjut tentang cara memberikan izin menulis data ke Project tertentu kepada Pengguna RAM, lihat Contoh kebijakan kustom RAM. Untuk informasi lebih lanjut tentang cara mendapatkan pasangan AccessKey, lihat Pasangan AccessKey.

    N/A

    ${ALIYUN_ACCESS_KEY_SECRET}

    Rahasia AccessKey Akun Alibaba Cloud Anda, hanya diperlukan untuk pelaporan data log.

    Kami menyarankan Anda menggunakan pasangan AccessKey milik Pengguna RAM.

    N/A

Pelaporan langsung

Laporkan data trace dan metric secara langsung ke Managed Service for OpenTelemetry dengan mengonfigurasi endpoint dan informasi autentikasi di agen atau SDK OpenTelemetry Anda.

Opsi 1: Konfigurasi dalam kode

Contoh Java berikut mengonfigurasi endpoint untuk Managed Service for OpenTelemetry untuk melaporkan data melalui HTTP atau gRPC. Untuk kode integrasi lengkap dan demo, kunjungi Pusat Integrasi atau lihat Laporkan data dari aplikasi Java menggunakan OpenTelemetry.

Pelaporan HTTP

...

// Laporkan data trace
SdkTracerProvider sdkTracerProvider = SdkTracerProvider.builder()
        .addSpanProcessor(BatchSpanProcessor.builder(OtlpHttpSpanExporter.builder()
                .setEndpoint("${HTTP_TRACES_ENDPOINT}") // Tetapkan endpoint traces HTTP untuk melaporkan data trace ke Managed Service for OpenTelemetry.
                .build()).build())
        .build();

// Laporkan data metric
SdkMeterProvider sdkMeterProvider = SdkMeterProvider.builder()
    .registerMetricReader(PeriodicMetricReader.builder(OtlpHttpMetricExporter.builder()
        .setEndpoint("${HTTP_METRICS_ENDPOINT}")  // Tetapkan endpoint metrics HTTP untuk melaporkan data metric ke Managed Service for OpenTelemetry.
        .build()).build())
    .build();

...

Pelaporan gRPC

...

// Laporkan data trace
SdkTracerProvider sdkTracerProvider = SdkTracerProvider.builder()
        .addSpanProcessor(BatchSpanProcessor.builder(OtlpGrpcSpanExporter.builder()
                .setEndpoint("${GRPC_ENDPOINT}") // Tetapkan endpoint gRPC untuk melaporkan data trace ke Managed Service for OpenTelemetry.
                .addHeader("Authentication","${GRPC_AUTHENTICATION_TOKEN}") // Tetapkan token autentikasi untuk Managed Service for OpenTelemetry.
                .build()).build())
        .setResource(resource)
        .build();

// Laporkan data metric
SdkMeterProvider sdkMeterProvider = SdkMeterProvider.builder()
    .registerMetricReader(PeriodicMetricReader.builder(OtlpGrpcMetricExporter.builder()
        .setEndpoint("${GRPC_ENDPOINT}")  // Tetapkan endpoint gRPC untuk melaporkan data metric ke Managed Service for OpenTelemetry.
        .addHeader("Authentication", "${GRPC_AUTHENTICATION_TOKEN}")  // Tetapkan token autentikasi untuk Managed Service for OpenTelemetry.
        .build()).build())
    .setResource(resource)
    .build();

...

Opsi 2: Konfigurasi dengan variabel lingkungan

Anda juga dapat mengonfigurasi endpoint pelaporan data melalui variabel lingkungan. Tabel berikut mencantumkan variabel yang diperlukan untuk melaporkan data ke Managed Service for OpenTelemetry. Untuk informasi selengkapnya, lihat Konfigurasi Eksporter OTLP.

Variabel lingkungan

Deskripsi

Contoh

OTEL_SERVICE_NAME

Nama aplikasi.

export OTEL_SERVICE_NAME=opentelemetry-demo-service

OTEL_EXPORTER_OTLP_PROTOCOL

Protokol untuk pelaporan data.

Trace dapat dilaporkan melalui grpc, http/protobuf, atau http/json.

Metric dapat dilaporkan melalui grpc atau http/protobuf.

Jika Anda memilih endpoint gRPC, atur variabel ini ke grpc. Jika tidak, gunakan http/protobuf atau http/json.

export OTEL_EXPORTER_OTLP_PROTOCOL=grpc

OTEL_EXPORTER_OTLP_TRACES_ENDPOINT

Endpoint untuk melaporkan trace. Endpoint HTTP dan gRPC didukung.

Gunakan nilai ${GRPC_ENDPOINT} atau ${HTTP_TRACES_ENDPOINT} dari bagian Persiapan.

  • Pelaporan melalui HTTP:

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

  • Pelaporan melalui gRPC:

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

OTEL_EXPORTER_OTLP_METRICS_ENDPOINT

Endpoint untuk melaporkan metric. Endpoint HTTP dan gRPC didukung.

Gunakan nilai ${GRPC_ENDPOINT} atau ${HTTP_METRICS_ENDPOINT} dari bagian Persiapan.

  • Pelaporan melalui HTTP:

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

  • Pelaporan melalui gRPC:

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

OTEL_EXPORTER_OTLP_HEADERS

Header permintaan untuk pelaporan gRPC, yang terutama digunakan untuk autentikasi.

Gunakan format Authentication=${GRPC_AUTHENTICATION_TOKEN}. ${GRPC_AUTHENTICATION_TOKEN} adalah token autentikasi yang Anda peroleh di bagian Persiapan.

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

Meneruskan data melalui OpenTelemetry Collector

Edisi Collector

  • OpenTelemetry Collector (Core): Melaporkan data trace dan metric.

  • OpenTelemetry Collector (Contrib): Melaporkan data trace, metric, dan log.

Opsi 1: Terapkan dari ACK Marketplace

Penting

ACK Marketplace hanya menyediakan edisi OpenTelemetry Collector (Core), bukan edisi Contrib. Jika Anda perlu mengumpulkan data log, gunakan metode penerapan lain.

Langkah 1: Terapkan collector
  1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Marketplace > Marketplace.

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

  3. Di halaman Create , pilih kluster dan namespace untuk menerapkan opentelemetry-collector, lalu klik Next. Namespace default adalah otel-collector.

  4. Di halaman Parameter Configurations, atur parameter mode menjadi deployment atau daemonset, lalu klik OK.

Langkah 2: Konfigurasi parameter collector
  1. Di halaman Clusters, klik kluster target.

  2. Di panel navigasi kiri, pilih Configuration Management > Configuration Item.

  3. Pilih namespace tempat opentelemetry-collector berada. Nilai default adalah otel-collector.

  4. Di halaman Configuration Item, temukan opentelemetry-collector dan klik YAML.

  5. Konfigurasikan bagian exporters, processors, receivers, dan service seperti pada contoh YAML berikut, lalu klik OK.

    Pelaporan gRPC

    exporters:
      otlp:
        endpoint: "${GRPC_ENDPOINT}"
        headers:
          Authentication: "${GRPC_AUTHENTICATION_TOKEN}"
        tls:
          insecure: true
    
    processors:
      batch: {}
      memory_limiter:
        check_interval: 5s # Interval pemeriksaan penggunaan memori. Anda dapat mengubah nilainya sesuai kebutuhan.
        limit_percentage: 80 # Penggunaan memori maksimum dalam persentase. Anda dapat mengubah nilainya sesuai kebutuhan.
        spike_limit_percentage: 25 # Tambahan memori dalam persentase yang diizinkan saat lonjakan. Anda dapat mengubah nilainya sesuai kebutuhan.
    
    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]

    Pelaporan HTTP

    exporters:
      otlphttp:
        traces_endpoint: "${HTTP_TRACES_ENDPOINT}"
        metrics_endpoint: "${HTTP_METRICS_ENDPOINT}"
        tls:
          insecure: true
        timeout: 5s # Periode timeout. Nilai default adalah 5s. Anda dapat mengubah nilainya sesuai kebutuhan.
    
    processors:
      batch: {}
      memory_limiter:
        check_interval: 5s # Interval pemeriksaan penggunaan memori. Anda dapat mengubah nilainya sesuai kebutuhan.
        limit_percentage: 80 # Penggunaan memori maksimum dalam persentase. Anda dapat mengubah nilainya sesuai kebutuhan.
        spike_limit_percentage: 25 # Tambahan memori dalam persentase yang diizinkan saat lonjakan. Anda dapat mengubah nilainya sesuai kebutuhan.
    
    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, restart pod opentelemetry-collector secara manual.

Opsi 2: Terapkan dengan Docker

Langkah 1: Tarik gambar

OpenTelemetry Collector (Core)

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

docker pull otel/opentelemetry-collector:latest

OpenTelemetry Collector (Contrib)

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

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

Buat file config.yaml dan tambahkan konfigurasi yang diperlukan.

Pelaporan gRPC (Core)

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

processors:
  batch: {}
  memory_limiter:
    check_interval: 5s # Interval pemeriksaan penggunaan memori. Anda dapat mengubah nilainya sesuai kebutuhan.
    limit_percentage: 80 # Penggunaan memori maksimum dalam persentase. Anda dapat mengubah nilainya sesuai kebutuhan.
    spike_limit_percentage: 25 # Tambahan memori dalam persentase yang diizinkan saat lonjakan. Anda dapat mengubah nilainya sesuai kebutuhan.

receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317 # Nilai default adalah localhost:4317. Anda dapat mengubah nilainya sesuai kebutuhan.
      http:
        endpoint: 0.0.0.0:4318 # Nilai default adalah localhost:4318. Anda dapat mengubah nilainya sesuai kebutuhan.

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

Pelaporan HTTP (Core)

# config.yaml
exporters:
  otlphttp:
    traces_endpoint: "${HTTP_TRACES_ENDPOINT}"
    metrics_endpoint: "${HTTP_METRICS_ENDPOINT}"
    tls:
      insecure: true
    timeout: 5s # Periode timeout. Nilai default adalah 5s. Anda dapat mengubah nilainya sesuai kebutuhan.

processors:
  batch: {}
  memory_limiter:
    check_interval: 5s # Interval pemeriksaan penggunaan memori. Anda dapat mengubah nilainya sesuai kebutuhan.
    limit_percentage: 80 # Penggunaan memori maksimum dalam persentase. Anda dapat mengubah nilainya sesuai kebutuhan.
    spike_limit_percentage: 25 # Tambahan memori dalam persentase yang diizinkan saat lonjakan. Anda dapat mengubah nilainya sesuai kebutuhan.

receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317 # Nilai default adalah localhost:4317. Anda dapat mengubah nilainya sesuai kebutuhan.
      http:
        endpoint: 0.0.0.0:4318 # Nilai default adalah localhost:4318. Anda dapat mengubah nilainya sesuai kebutuhan.

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

Pelaporan gRPC (Contrib)

# config.yaml
exporters:
  otlp:
    endpoint: "${GRPC_ENDPOINT}"
    headers:
      Authentication: "${GRPC_AUTHENTICATION_TOKEN}"
    tls:
      insecure: true
  # Opsional: Konfigurasi eksporter log.
  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 pemeriksaan penggunaan memori. Anda dapat mengubah nilainya sesuai kebutuhan.
    limit_percentage: 80 # Penggunaan memori maksimum dalam persentase. Anda dapat mengubah nilainya sesuai kebutuhan.
    spike_limit_percentage: 25 # Tambahan memori dalam persentase yang diizinkan saat lonjakan. Anda dapat mengubah nilainya sesuai kebutuhan.

receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317 # Nilai default adalah localhost:4317. Anda dapat mengubah nilainya sesuai kebutuhan.
      http:
        endpoint: 0.0.0.0:4318 # Nilai default adalah localhost:4318. Anda dapat mengubah nilainya sesuai kebutuhan.

service:
  pipelines:
    traces:
      exporters: [otlp]
      processors: [memory_limiter, batch]
      receivers: [otlp]
    metrics:
      exporters: [otlp]
      processors: [memory_limiter, batch]
      receivers: [otlp]
    # Opsional: Konfigurasi pipeline pemrosesan data log.
    logs:
      exporters: [alibabacloud_logservice/logs]
      processors: [memory_limiter, batch]
      receivers: [otlp]

Pelaporan HTTP (Contrib)

# config.yaml
exporters:
  otlphttp:
    traces_endpoint: "${HTTP_TRACES_ENDPOINT}"
    metrics_endpoint: "${HTTP_METRICS_ENDPOINT}"
    tls:
      insecure: true
    timeout: 5s # Periode timeout. Nilai default adalah 5s. Anda dapat mengubah nilainya sesuai kebutuhan.
    
  # Opsional: Konfigurasi eksporter log.
  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 pemeriksaan penggunaan memori. Anda dapat mengubah nilainya sesuai kebutuhan.
    limit_percentage: 80 # Penggunaan memori maksimum dalam persentase. Anda dapat mengubah nilainya sesuai kebutuhan.
    spike_limit_percentage: 25 # Tambahan memori dalam persentase yang diizinkan saat lonjakan. Anda dapat mengubah nilainya sesuai kebutuhan.

receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317 # Nilai default adalah localhost:4317. Anda dapat mengubah nilainya sesuai kebutuhan.
      http:
        endpoint: 0.0.0.0:4318 # Nilai default adalah localhost:4318. Anda dapat mengubah nilainya sesuai kebutuhan.

service:
  pipelines:
    traces:
      exporters: [otlphttp]
      processors: [memory_limiter, batch]
      receivers: [otlp]
    metrics:
      exporters: [otlphttp]
      processors: [memory_limiter, batch]
      receivers: [otlp]
    # Opsional: Konfigurasi pipeline pemrosesan data log.
    logs:
      exporters: [alibabacloud_logservice/logs]
      processors: [memory_limiter, batch]
      receivers: [otlp]
Langkah 3: Mount konfigurasi dan jalankan

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

Metode penerapan lainnya

Referensi