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

Alibaba Cloud Service Mesh:ASMExtensionProvider CRD の説明

最終更新日:Mar 01, 2025

ASMExtensionProvider は、Alibaba Cloud Service Mesh(ASM)の機能を強化および構成するために設計されたコンポーネントであり、トレース分析やアクセスログなど、主要な機能の柔軟な統合とカスタム構成を可能にします。このトピックでは、ASMExtensionProvider の構成方法と特定のフィールドについて説明します。

サンプル構成

Zipkin を使用したトレース分析の構成

次のサンプルコードは、Zipkin を使用してトレース分析をレポートする方法の例を示しています。

apiVersion: istio.alibabacloud.com/v1
kind: ASMExtensionProvider
metadata:
  name: zipkin
spec:
  zipkin:
    port: 8090
    service: zipkin.istio-system.svc.cluster.local

Envoy プロキシによって生成されるアクセスログのフォーマットの構成

次のサンプルコードは、Envoy アクセスログフォーマットを構成する方法の例を示しています。

apiVersion: istio.alibabacloud.com/v1
kind: ASMExtensionProvider
metadata:
  name: envoy
spec:
  envoyFileAccessLog:
    logFormat:
      text: '{"bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","downstream_local_address":"%DOWNSTREAM_LOCAL_ADDRESS%","downstream_remote_address":"%DOWNSTREAM_REMOTE_ADDRESS%","duration":"%DURATION%","istio_policy_status":"%DYNAMIC_METADATA(istio.mixer:status)%","method":"%REQ(:METHOD)%","path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","protocol":"%PROTOCOL%","request_id":"%REQ(X-REQUEST-ID)%","requested_server_name":"%REQUESTED_SERVER_NAME%","response_code":"%RESPONSE_CODE%","response_flags":"%RESPONSE_FLAGS%","route_name":"%ROUTE_NAME%","start_time":"%START_TIME%","trace_id":"%REQ(X-B3-TRACEID)%","upstream_cluster":"%UPSTREAM_CLUSTER%","upstream_host":"%UPSTREAM_HOST%","upstream_local_address":"%UPSTREAM_LOCAL_ADDRESS%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_response_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_transport_failure_reason":"%UPSTREAM_TRANSPORT_FAILURE_REASON%","user_agent":"%REQ(USER-AGENT)%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","authority_for":"%REQ(:AUTHORITY)%"}'
    path: /dev/stdout

異なるクラスタのトレースデータレポート方法の構成

次のサンプルコードは、集約プロバイダーの構成例を示しています。ここで、cluster-a は Zipkin を使用してトレースデータを送信し、他のクラスタは OpenTelemetry を使用します。

重要

バージョン 1.22.6.89 以降の ASM のみがサポートされています。

apiVersion: istio.alibabacloud.com/v1
kind: ASMExtensionProvider
metadata:
  name: aggregate-provider
spec:
  aggregate:
    defaultProvider:
      name: opentelemetry
    uniqueProviders:
    - clusters:
      - id: cluster-a
        region: cn-hangzhou
      provider:
        name: zipkin
---
apiVersion: istio.alibabacloud.com/v1
kind: ASMExtensionProvider
metadata:
  name: zipkin
spec:
  zipkin:
    port: 8090
    service: zipkin.istio-system.svc.cluster.local
---
apiVersion: istio.alibabacloud.com/v1
kind: ASMExtensionProvider
metadata:
  name: opentelemetry
spec:
  opentelemetry:
    port: 8090
    service: otel.istio-system.svc.cluster.local

Telemetry CRD でのプロバイダーのインポート

apiVersion: telemetry.istio.io/v1
kind: Telemetry
metadata:
  name: default
  namespace: istio-system
spec:
  accessLogging:
  - disabled: false
    providers:
    - name: envoy
  tracing:
  - providers:
    - name: zipkin

構成項目

ASMExtensionProvider

構成項目

タイプ

必須

説明

zipkin

ZipkinTracingProvider

いいえ

Zipkin のトレース分析を構成します。

lightstep

LightstepTracingProvider

いいえ

Lightstep のトレース分析を構成します。

datadog

DatadogTracingProvider

いいえ

Datadog のトレース分析を構成します。

stackdriver

StackdriverProvider

いいえ

Stackdriver のトレース分析を構成します。

opencensus

OpenCensusAgentTracingProvider

いいえ

OpenCensus のトレース分析を構成します。

skywalking

SkywalkingTracingProvider

いいえ

Skywalking のトレース分析を構成します。

opentelemetry

OpenTelemetryProvider

いいえ

OpenTelemetry のトレース分析を構成します。

envoyFileAccesslog

EnvoyFileAccessLogProvider

いいえ

Envoy プロキシのアクセスログを構成します。

aggregate

AggregateProvider

いいえ

異なるクラスタに異なるプロバイダーを構成するための集約プロバイダーです。

重要

トレースプロバイダーを構成する前に、プロバイダーの名前が ASM 内のサービスに対応していることを確認してください。外部サービスの場合は、ServiceEntry を介して登録する必要があります。詳細については、「Service Entry」をご参照ください。

ZipkinTracingProvider

構成項目

タイプ

必須

説明

service

string

はい

Zipkin サービスの名前です。

path

string

はい

Zipkin サービスのリクエストパスです。

port

uint32

いいえ

Zipkin サービスのポートです。

maxTagLength

uint32

いいえ

各タグの最大文字長です。デフォルト値は 256 です。

LightstepTracingProvider

構成項目

タイプ

必須

説明

service

string

はい

Lightstep サービスの名前です。

port

uint32

はい

Lightstep サービスのポートです。

accesstoken

string

いいえ

Lightstep サービスのアクセストークンです。

maxTagLength

uint32

いいえ

各タグの最大文字長です。デフォルト値は 256 です。

DatadogTracingProvider

構成項目

タイプ

必須

説明

service

string

はい

Datadog サービスの名前です。

port

uint32

はい

Datadog サービスのポートです。

maxTagLength

uint32

いいえ

各タグの最大文字長です。デフォルト値は 256 です。

StackdriverProvider

構成項目

タイプ

必須

説明

maxTagLength

uint32

いいえ

各タグの最大文字長です。デフォルト値は 256 です。

logging

StackdriverProvider_Logging

いいえ

Stackdriver のロギングです。

OpenCensusAgentTracingProvider

構成項目

タイプ

必須

説明

service

string

はい

OpenCensusAgent サービスの名前です。

port

uint32

はい

OpenCensusAgent サービスのポートです。

context

[]string

いいえ

分散トレーシングに使用されるヘッダー伝播を指定します。デフォルトは ["W3C_TRACE_CONTEXT"] です。

maxTagLength

uint32

いいえ

各タグの最大文字長です。デフォルト値は 256 です。

SkywalkingTracingProvider

構成項目

タイプ

必須

説明

service

string

はい

Skywalking サービスの名前です。

port

uint32

はい

Skywalking サービスのポートです。

OpenTelemetryProvider

構成項目

タイプ

必須

説明

service

string

はい

OpenTelemetry サービス名です。

port

uint32

はい

OpenTelemetry サービスポートです。

maxTagLength

uint32

いいえ

各タグの最大文字長です。デフォルト値は 256 です。

grpc

OpenTelemetryProvider_GrpcService

いいえ

gRPC プロトコルレポート構成です。

http

OpenTelemetryProvider_HttpService

いいえ

HTTP プロトコルレポート構成です。指定しない場合、デフォルトではレポートに gRPC プロトコルが使用されます。

EnvoyFileAccessLogProvider

構成項目

タイプ

必須

説明

path

string

いいえ

ログが出力されるパスです。

logFormat

EnvoyFileAccessLogProvider_LogFormat

いいえ

ログに構成されたフォーマットです。text または labels のいずれかです。

AggregateProvider

構成項目

タイプ

必須

説明

defaultProvider

ProviderRef

はい

使用されるデフォルトのプロバイダーです。

uniqueProviders

[]UniqueProvider

いいえ

異なるクラスタに構成されたプロバイダーです。

UniqueProvider

構成項目

タイプ

必須

説明

provider

ProviderRef

いいえ

参照用のプロバイダーです。

clusters

[]ClusterRef

いいえ

参照用のクラスタです。

StackdriverProvider_Logging

構成項目

タイプ

必須

説明

labels

map[string]string

いいえ

ログエントリに含める label 名と式です。例: path: request.url_path

OpenTelemetryProvider_HttpService

構成項目

タイプ

必須

説明

path

string

はい

サービスのパスを設定します。

timeout

string

いいえ

HTTP リクエストのタイムアウト期間です。

headers

[]HeaderValue

いいえ

各 HTTP リクエストに追加されるカスタム HTTP リクエストヘッダーです。

OpenTelemetryProvider_GrpcService

構成項目

タイプ

必須

説明

timeout

string

いいえ

gRPC リクエストが応答されるタイムアウト期間です。

initialMetaData

[]HeaderValue

いいえ

各 gRPC リクエストに追加されるカスタムリクエストヘッダーです。

HeaderValue

構成項目

タイプ

必須

説明

name

string

はい

リクエストヘッダーの名前です。

value

string

はい

リクエストヘッダーの値です。

EnvoyFileAccessLogProvider_LogFormat

構成項目

タイプ

必須

説明

text

string

いいえ

テキスト入力のログフォーマットです。例: text: "%LOCAL_REPLY_BODY%:%RESPONSE_CODE%:path=%REQ(:path)%"

labels

map[string]string

いいえ

JSON 構造化出力の Envoy ログフォーマットを構成します。例:

labels:
  status: "%RESPONSE_CODE%"
  message: "%LOCAL_REPLY_BODY%"

ProviderRef

構成項目

タイプ

必須

説明

name

string

いいえ

プロバイダーの名前です。

ClusterRef

構成項目

タイプ

必須

説明

region

string

いいえ

クラスタが配置されているリージョンです。

name

string

いいえ

クラスタの名前です。

id

string

はい

クラスタの ID です。