すべてのプロダクト
Search
ドキュメントセンター

Managed Service for OpenTelemetry:OpenTelemetry 統合ガイド

最終更新日:Apr 11, 2025

Managed Service for OpenTelemetry は、アプリケーションからのトレース、メトリック、ログデータの受信をサポートし、直接レポートと OpenTelemetry Collector 経由の転送という 2 つのレポート方法を提供します。

準備

  • ログデータをレポートする必要がある場合は、Simple Log Service (SLS) をアクティブ化し、プロジェクトログストアを作成し、事前にAccessKey ペアを作成してください。

  • 次の表にリストされている変数、データ型、およびレポート方法を参照して、必要なエンドポイントと認証情報を準備します。詳細については、「Managed Service for OpenTelemetry の使用準備」をご参照ください。

    シナリオ

    変数名

    説明

    トレースデータとメトリックデータのレポート

    gRPC 経由のレポート

    ${GRPC_ENDPOINT}

    Managed Service for OpenTelemetry の gRPC レポートエンドポイント。トレースデータとメトリックデータのレポートをサポートします。

    サービスが Alibaba Cloud にデプロイされており、Managed Service for OpenTelemetry と同じリージョンにある場合は、Alibaba Cloud 内部ネットワークアドレスを使用することをお勧めします。そうでない場合は、パブリックネットワークアドレスを使用してください。

    • 内部ネットワークアドレス:http://tracing-analysis-dc-hz-internal.aliyuncs.com:8090

    • パブリックネットワークアドレス:http://tracing-analysis-dc-hz.aliyuncs.com:8090

    ${GRPC_AUTHENTICATION_TOKEN}

    gRPC を使用して Managed Service for OpenTelemetry にデータをレポートする場合に必要な認証トークン。トークンの取得方法については、「Managed Service for OpenTelemetry の使用準備」をご参照ください。

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

    HTTP 経由のレポート

    ${HTTP_TRACES_ENDPOINT}

    Managed Service for OpenTelemetry の HTTP レポートエンドポイント。トレースデータのレポートをサポートします。

    サービスが Alibaba Cloud にデプロイされており、Managed Service for OpenTelemetry と同じリージョンにある場合は、Alibaba Cloud 内部ネットワークアドレスを使用することをお勧めします。そうでない場合は、パブリックネットワークアドレスを使用してください。

    • 内部ネットワークアドレス:http://tracing-analysis-dc-hz-internal.aliyuncs.com/adapt_***_***/api/otlp/traces

    • パブリックネットワークアドレス:http://tracing-analysis-dc-hz.aliyuncs.com/adapt_***_***/api/otlp/traces

    ${HTTP_METRICS_ENDPOINT}

    Managed Service for OpenTelemetry の HTTP レポートエンドポイント。メトリックデータのレポートをサポートします。

    サービスが Alibaba Cloud にデプロイされており、Managed Service for OpenTelemetry と同じリージョンにある場合は、Alibaba Cloud 内部ネットワークアドレスを使用することをお勧めします。そうでない場合は、パブリックネットワークアドレスを使用してください。

    • 内部ネットワークアドレス:http://tracing-analysis-dc-hz-internal.aliyuncs.com/adapt_***_***/api/otlp/metrics

    • パブリックネットワークアドレス:http://tracing-analysis-dc-hz.aliyuncs.com/adapt_***_***/api/otlp/metrics

    ログデータのレポート

    ${SLS_ENDPOINT}

    SLS プロジェクトのエンドポイント。この変数は、ログデータをレポートする場合にのみ必要です。エンドポイントの取得方法については、「エンドポイント」をご参照ください。

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

    ${SLS_PROJECT}

    SLS プロジェクトの名前。この変数は、ログデータをレポートする場合にのみ必要です。

    test-project

    ${SLS_LOGSTORE}

    SLS ログストアの名前。この変数は、ログデータをレポートする場合にのみ必要です。

    test-logstore

    ${ALIYUN_ACCESS_KEY_ID}

    Alibaba Cloud アカウントの AccessKey ID。この変数は、ログデータをレポートする場合にのみ必要です。

    SLS プロジェクトへの書き込み権限のみを持つ RAM ユーザーの AccessKey ペア (ID とシークレットを含む) を使用することをお勧めします。RAM ユーザーに特定のプロジェクトにデータを書き込む権限を付与する方法については、「カスタムポリシーを使用して RAM ユーザーに権限を付与する例」をご参照ください。AccessKey ペアの取得方法については、「AccessKey ペア」をご参照ください。

    なし

    ${ALIYUN_ACCESS_KEY_SECRET}

    Alibaba Cloud アカウントの AccessKey シークレット。この変数は、ログデータをレポートする場合にのみ必要です。

    SLS プロジェクトへの書き込み権限のみを持つ RAM ユーザーの AccessKey ペア (ID とシークレットを含む) を使用することをお勧めします。

    なし

直接レポート

OpenTelemetry エージェントまたは SDK のレポートエンドポイントと認証トークンを構成することにより、OpenTelemetry によって収集されたトレースデータとメトリックデータを Managed Service for OpenTelemetry サーバーに直接送信できます。

方法 1:コードでレポート設定を構成する

次の Java コード例は、HTTP および gRPC 経由でデータをレポートするために Managed Service for OpenTelemetry のエンドポイント情報を構成する方法を示しています。統合センターにアクセスするか、「OpenTelemetry を使用して Java アプリケーションのトレースデータをレポートする」を参照して、完全なコードとデモを確認してください。

HTTP 経由のレポート

...

// トレースデータをレポートする
SdkTracerProvider sdkTracerProvider = SdkTracerProvider.builder()
        .addSpanProcessor(BatchSpanProcessor.builder(OtlpHttpSpanExporter.builder()
                .setEndpoint("${HTTP_TRACES_ENDPOINT}") // トレースデータを Managed Service for OpenTelemetry にレポートするための HTTP エンドポイントを設定します。
                .build()).build())
        .build();

// メトリックデータをレポートする
SdkMeterProvider sdkMeterProvider = SdkMeterProvider.builder()
    .registerMetricReader(PeriodicMetricReader.builder(OtlpHttpMetricExporter.builder()
        .setEndpoint("${HTTP_METRICS_ENDPOINT}")  // メトリックデータを Managed Service for OpenTelemetry にレポートするための HTTP エンドポイントを設定します。
        .build()).build())
    .build();

...

gRPC 経由のレポート

...

// トレースデータをレポートする
SdkTracerProvider sdkTracerProvider = SdkTracerProvider.builder()
        .addSpanProcessor(BatchSpanProcessor.builder(OtlpGrpcSpanExporter.builder()
                .setEndpoint("${GRPC_AUTHENTICATION_TOKEN}") // トレースデータを Managed Service for OpenTelemetry にレポートするための gRPC エンドポイントを設定します。
                .addHeader("Authentication","${GRPC_AUTHENTICATION_TOKEN}") // Managed Service for OpenTelemetry の認証トークンを設定します。
                .build()).build())
        .setResource(resource)
        .build();

// メトリックデータをレポートする
SdkMeterProvider sdkMeterProvider = SdkMeterProvider.builder()
    .registerMetricReader(PeriodicMetricReader.builder(OtlpGrpcMetricExporter.builder()
        .setEndpoint("${GRPC_METRICS_ENDPOINT}")  // トレースデータを Managed Service for OpenTelemetry にレポートするための gRPC エンドポイントを設定します。
        .addHeader("Authentication", "${GRPC_AUTHENTICATION_TOKEN}")  // Managed Service for OpenTelemetry の認証トークンを設定します。
        .build()).build())
    .setResource(resource)
    .build();

...

方法 2:環境変数を使用してレポート設定を構成する

OpenTelemetry は、次の表にリストされている環境変数を使用してレポートエンドポイントを構成することもサポートしています。その他の OpenTelemetry プロトコルの環境変数については、「OTLP エクスポーターの構成」をご参照ください。

環境変数名

説明

OTEL_SERVICE_NAME

アプリケーション名。

export OTEL_SERVICE_NAME=opentelemetry-demo-service

OTEL_EXPORTER_OTLP_PROTOCOL

レポートプロトコル。

トレースレポートは、grpc、http/protobuf、http/json プロトコルをサポートしています。

メトリックレポートは、grpc および http/protobuf プロトコルをサポートしています。

gRPC レポートエンドポイントを選択する場合は、この変数を grpc に設定します。そうでない場合は、http/protobuf または http/json を使用します。

export OTEL_EXPORTER_OTLP_PROTOCOL=grpc

OTEL_EXPORTER_OTLP_TRACES_ENDPOINT

トレースレポートエンドポイント。HTTP エンドポイントと gRPC エンドポイントの両方がサポートされています。

レポートエンドポイントは、準備で取得した ${GRPC_ENDPOINT} または ${HTTP_TRACES_ENDPOINT} の値です。

  • HTTP 経由のレポート:

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

  • gRPC 経由のレポート:

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

OTEL_EXPORTER_OTLP_METRICS_ENDPOINT

メトリックレポートエンドポイント。HTTP エンドポイントと gRPC エンドポイントの両方がサポートされています。

レポートエンドポイントは、準備で取得した ${GRPC_ENDPOINT} または ${HTTP_METRICS_ENDPOINT} の値です。

  • HTTP 経由のレポート:

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

  • gRPC 経由のレポート:

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

OTEL_EXPORTER_OTLP_HEADERS

gRPC レポートのリクエストヘッダー情報。主に認証に使用されます。

フォーマットは Authentication=${GRPC_AUTHENTICATION_TOKEN} です。ここで、${GRPC_AUTHENTICATION_TOKEN} は 準備で取得した認証トークンです。

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

OpenTelemetry Collector 経由の転送

背景情報

  • OpenTelemetry Collector (Core):トレースデータとメトリックデータのレポートをサポートします。

  • OpenTelemetry Collector (Contrib):トレースデータ、メトリックデータ、ログデータのレポートをサポートします。

ソリューション 1:ACK Marketplace を使用して ACK クラスタに OpenTelemetry Collector をデプロイするACK Marketplace を介した ACK クラスタ

重要

ACK Marketplace は現在、OpenTelemetry Collector (Core) のみをサポートしています。ログを収集する必要がある場合は、ソリューション 2 に進んでください。

1. Collector をデプロイする
  1. ACK コンソールにログインします。左側のナビゲーションウィンドウで、[マーケットプレイス] > [マーケットプレイス] を選択します。

  2. [マーケットプレイス] ページで、opentelemetry-collector を検索してクリックし、表示されるページの右上隅にある [デプロイ] をクリックします。

  3. [基本情報] ステップで、opentelemetry-collector をデプロイするクラスタと名前空間 (デフォルト: otel-collector) を選択し、[次へ] をクリックします。

  4. [パラメーター] ステップで、mode パラメーターを deployment または daemonset に設定し、[OK] をクリックします。

2. Collector パラメーターを構成する
  1. ACK コンソールの [クラスタ] ページで、ACK クラスタをクリックします。

  2. 左側のナビゲーションウィンドウで、[構成] > [ConfigMap] を選択します

  3. opentelemetry-collector が配置されている名前空間 (デフォルト: otel-collector) を選択します。

  4. [ConfigMap] ページで、opentelemetry-collector を見つけ、[アクション] 列の [YAML を編集] をクリックします。

  5. 次の YAML ファイルを参照して、exporters、processors、receivers、service の各セクションを構成し、[OK] をクリックします。

    Opentelemetry-collector 構成 (gRPC 経由のレポート)

    exporters:
      otlp:
        endpoint: "${GRPC_ENDPOINT}"
        headers:
          Authentication: "${GRPC_AUTHENTICATION_TOKEN}"
        tls:
          insecure: true
    
    processors:
      batch: {}
      memory_limiter:
        check_interval: 5s # メモリ使用量を確認する間隔。必要に応じて調整してください。
        limit_percentage: 80 # メモリ使用量の最大割合。必要に応じて調整してください。
        spike_limit_percentage: 25 # スパイクで許容されるメモリ使用量の追加割合。必要に応じて調整してください。
    
    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]

    Opentelemetry-collector 構成 (HTTP 経由のレポート)

    exporters:
      otlphttp:
        traces_endpoint: "${HTTP_TRACES_ENDPOINT}"
        metrics_endpoint: "${HTTP_METRICS_ENDPOINT}"
        tls:
          insecure: true
        timeout: 5s # タイムアウト期間。デフォルト値:5 秒。必要に応じて調整してください。
    
    processors:
      batch: {}
      memory_limiter:
        check_interval: 5s # メモリ使用量を確認する間隔。必要に応じて調整してください。
        limit_percentage: 80 # メモリ使用量の最大割合。必要に応じて調整してください。
        spike_limit_percentage: 25 # スパイクで許容されるメモリ使用量の追加割合。必要に応じて調整してください。
    
    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. 構成が完了したら、opentelemetry-collector を手動で再起動します。

ソリューション 2:Docker を使用して OpenTelemetry Collector をデプロイするDocker

1. イメージをプルする

OpenTelemetry Collector (Core)

イメージバージョンを指定するには、 https://hub.docker.com/r/otel/opentelemetry-collector/tags にアクセスしてください。

docker pull otel/opentelemetry-collector:latest

OpenTelemetry Collector (Contrib)

イメージバージョンを指定するには、https://hub.docker.com/r/otel/opentelemetry-collector-contrib/tags にアクセスしてください。

docker pull otel/opentelemetry-collector-contrib:latest
2. 構成ファイルを準備する

config.yaml ファイルを作成し、関連パラメーターを構成します。

OpenTelemetry Collector (Core) 構成 (gRPC 経由のレポート)

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

processors:
  batch: {}
  memory_limiter:
    check_interval: 5s # メモリ使用量を確認する間隔。必要に応じて調整してください。
    limit_percentage: 80 # メモリ使用量の最大割合。必要に応じて調整してください。
    spike_limit_percentage: 25 # スパイクで許容されるメモリ使用量の追加割合。必要に応じて調整してください。

receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317 # デフォルト値は localhost:4317 です。必要に応じて調整してください。
      http:
        endpoint: 0.0.0.0:4318 # デフォルト値は localhost:4318 です。必要に応じて調整してください。

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

OpenTelemetry Collector (Core) 構成 (HTTP 経由のレポート)

# config.yaml
exporters:
  otlphttp:
    traces_endpoint: "${HTTP_TRACES_ENDPOINT}"
    metrics_endpoint: "${HTTP_METRICS_ENDPOINT}"
    tls:
      insecure: true
    timeout: 5s # タイムアウト期間。デフォルト値:5 秒。必要に応じて調整してください。

processors:
  batch: {}
  memory_limiter:
    check_interval: 5s # メモリ使用量を確認する間隔。必要に応じて調整してください。
    limit_percentage: 80 # メモリ使用量の最大割合。必要に応じて調整してください。
    spike_limit_percentage: 25 # スパイクで許容されるメモリ使用量の追加割合。必要に応じて調整してください。

receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317 # デフォルト値は localhost:4317 です。必要に応じて調整してください。
      http:
        endpoint: 0.0.0.0:4318 # デフォルト値は localhost:4318 です。必要に応じて調整してください。

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

OpenTelemetry Collector (Contrib) 構成 (gRPC 経由のレポート)

# config.yaml
exporters:
  otlp:
    endpoint: "${GRPC_ENDPOINT}"
    headers:
      Authentication: "${GRPC_AUTHENTICATION_TOKEN}"
    tls:
      insecure: true
  # ログエクスポーターの構成 (オプション)
  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 # メモリ使用量を確認する間隔。必要に応じて調整してください。
    limit_percentage: 80 # メモリ使用量の最大割合。必要に応じて調整してください。
    spike_limit_percentage: 25 # スパイクで許容されるメモリ使用量の追加割合。必要に応じて調整してください。

receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317 # デフォルト値は localhost:4317 です。必要に応じて調整してください。
      http:
        endpoint: 0.0.0.0:4318 # デフォルト値は localhost:4318 です。必要に応じて調整してください。

service:
  pipelines:
    traces:
      exporters: [otlp]
      processors: [memory_limiter, batch]
      receivers: [otlp]
    metrics:
      exporters: [otlp]
      processors: [memory_limiter, batch]
      receivers: [otlp]
    # ログデータ処理フロー (オプション)
    logs:
      exporters: [alibabacloud_logservice/logs]
      processors: [memory_limiter, batch]
      receivers: [otlp]

OpenTelemetry Collector (Contrib) 構成 (HTTP 経由のレポート)

# config.yaml
exporters:
  otlphttp:
    traces_endpoint: "${HTTP_TRACES_ENDPOINT}"
    metrics_endpoint: "${HTTP_METRICS_ENDPOINT}"
    tls:
      insecure: true
    timeout: 5s # タイムアウト期間。デフォルト値:5 秒。必要に応じて調整してください。
    
  # ログエクスポーターの構成 (オプション)
  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 # メモリ使用量を確認する間隔。必要に応じて調整してください。
    limit_percentage: 80 # メモリ使用量の最大割合。必要に応じて調整してください。
    spike_limit_percentage: 25 # スパイクで許容されるメモリ使用量の追加割合。必要に応じて調整してください。

receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317 # デフォルト値は localhost:4317 です。必要に応じて調整してください。
      http:
        endpoint: 0.0.0.0:4318 # デフォルト値は localhost:4318 です。必要に応じて調整してください。

service:
  pipelines:
    traces:
      exporters: [otlphttp]
      processors: [memory_limiter, batch]
      receivers: [otlp]
    metrics:
      exporters: [otlphttp]
      processors: [memory_limiter, batch]
      receivers: [otlp]
    # ログデータ処理フロー (オプション)
    logs:
      exporters: [alibabacloud_logservice/logs]
      processors: [memory_limiter, batch]
      receivers: [otlp]
3. 構成ファイルをマウントして実行する

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

その他のソリューション

参考資料