このページは、まだ日本語ではご利用いただけません。翻訳中です。
    
  
      
        
            
              
              古いプラグインバージョンのドキュメントを閲覧しています。
            
              
              
            
        
      
      
Kong Gateway integrates with Dynatrace through Kong’s OpenTelemetry, Prometheus, and logging plugins.
This guide shows you how to set up Dynatrace with Kong’s OpenTelemetry plugin.
Kong Gateway’s plugins send signals to the Dynatrace Collector which is responsible for updating the Dynatrace tenant with Kong Gateway traces, metrics, and logs.
This is a Kong Gateway integration and is fully supported by Kong through the existing plugins available in Kong Gateway.
Prerequisites
Set the following parameters in your kong.conf file:
tracing_instrumentations = all
tracing_sampling_rate = 1.0
 
Adjust the {your-environment-id} variable with your own Collector endpoint:
  
  
    
    
      serviceで有効にする
    
  
    
    
      routeで有効にする
    
  
    
    
      consumerで有効にする
    
  
    
    
      グローバルに有効にする
    
  
   
  
  
  
  
    
  
  
    
    
      Kong Admin API
    
  
    
    
      Konnect API
    
  
    
    
      Kubernetes
    
  
    
    
      Declarative (YAML)
    
  
   
  
  
  
  
    
次のリクエストを行います。
curl -X POST http://localhost:8001/services/{serviceName|Id}/plugins \
    --header "accept: application/json" \
    --header "Content-Type: application/json" \
    --data '
    {
  "name": "opentelemetry",
  "config": {
    "traces_endpoint": "https://{your-environment-id}.live.dynatrace.com/api/v2/otlp/v1/traces",
    "logs_endpoint": "https://{your-environment-id}.live.dynatrace.com/api/v2/otlp/v1/logs",
    "resource_attributes": {
      "service.name": "kong-dev"
    }
  }
}
    '
 
  
    
      | SERVICE_NAME | 
      IDを、このプラグイン構成の対象となるサービスの idまたはnameに置き換えてください。 | 
    
  
   
  
  
    
独自のアクセストークン、リージョン、コントロールプレーンID、サービスIDを代入して、次のリクエストを行ってください。
curl -X POST \
https://{us|eu}.api.konghq.com/v2/control-planes/{controlPlaneId}/core-entities/services/{serviceId}/plugins \
    --header "accept: application/json" \
    --header "Content-Type: application/json" \
    --header "Authorization: Bearer TOKEN" \
    --data '{"name":"opentelemetry","config":{"traces_endpoint":"https://{your-environment-id}.live.dynatrace.com/api/v2/otlp/v1/traces","logs_endpoint":"https://{your-environment-id}.live.dynatrace.com/api/v2/otlp/v1/logs","resource_attributes":{"service.name":"kong-dev"}}}'
 
地域固有のURLと個人アクセストークンの詳細については、 Konnect API referenceをご参照ください。
   
  
  
    
まず、KongPlugin
リソースを作成します:
echo "
apiVersion: configuration.konghq.com/v1
kind: KongPlugin
metadata:
  name: opentelemetry-example
plugin: opentelemetry
config:
  traces_endpoint: https://{your-environment-id}.live.dynatrace.com/api/v2/otlp/v1/traces
  logs_endpoint: https://{your-environment-id}.live.dynatrace.com/api/v2/otlp/v1/logs
  resource_attributes:
    service.name: kong-dev
" | kubectl apply -f -
 
次に、次のようにserviceに注釈を付けて、KongPluginリソースをイングレスに適用します。
kubectl annotate service SERVICE_NAME konghq.com/plugins=opentelemetry-example
 
SERVICE_NAMEを、このプラグイン構成が対象とするサービスの名前に置き換えます。
kubectl get serviceを実行すると、利用可能なイングレスを確認できます。
  注:
  KongPluginリソースは一度だけ定義するだけで、ネームスペース内の任意のサービス、コンシューマー、またはルートに適用できます。プラグインをクラスター全体で利用可能にしたい場合は、KongPluginの代わりにKongClusterPluginとしてリソースを作成してください。
   
  
  
    
このセクションを宣言型構成ファイルに追加します。
plugins:
- name: opentelemetry
  service: SERVICE_NAME|ID
  config:
    traces_endpoint: https://{your-environment-id}.live.dynatrace.com/api/v2/otlp/v1/traces
    logs_endpoint: https://{your-environment-id}.live.dynatrace.com/api/v2/otlp/v1/logs
    resource_attributes:
      service.name: kong-dev
 
  
    
      | SERVICE_NAME | 
      IDを、このプラグイン構成の対象となるサービスの idまたはnameに置き換えてください。 | 
    
  
   
   
 
   
  
  
    
  
  
    
    
      Kong Admin API
    
  
    
    
      Konnect API
    
  
    
    
      Kubernetes
    
  
    
    
      Declarative (YAML)
    
  
   
  
  
  
  
    
次のリクエストを行います。
curl -X POST http://localhost:8001/routes/{routeName|Id}/plugins \
    --header "accept: application/json" \
    --header "Content-Type: application/json" \
    --data '
    {
  "name": "opentelemetry",
  "config": {
    "traces_endpoint": "https://{your-environment-id}.live.dynatrace.com/api/v2/otlp/v1/traces",
    "logs_endpoint": "https://{your-environment-id}.live.dynatrace.com/api/v2/otlp/v1/logs",
    "resource_attributes": {
      "service.name": "kong-dev"
    }
  }
}
    '
 
  
    
      | ROUTE_NAME | 
      IDを、このプラグイン構成が対象とするルートのid またはnameに置き換えてください。 | 
    
  
   
  
  
    
独自のアクセストークン、リージョン、コントロールプレーン(CP)ID、ルートIDを代入して、次のリクエストをしてください。
curl -X POST \
https://{us|eu}.api.konghq.com/v2/control-planes/{controlPlaneId}/core-entities/routes/{routeId}/plugins \
    --header "accept: application/json" \
    --header "Content-Type: application/json" \
    --header "Authorization: Bearer TOKEN" \
    --data '{"name":"opentelemetry","config":{"traces_endpoint":"https://{your-environment-id}.live.dynatrace.com/api/v2/otlp/v1/traces","logs_endpoint":"https://{your-environment-id}.live.dynatrace.com/api/v2/otlp/v1/logs","resource_attributes":{"service.name":"kong-dev"}}}'
 
地域固有のURLと個人アクセストークンの詳細については、 Konnect API referenceをご参照ください。
   
  
  
    
まず、KongPlugin
リソースを作成します:
echo "
apiVersion: configuration.konghq.com/v1
kind: KongPlugin
metadata:
  name: opentelemetry-example
plugin: opentelemetry
config:
  traces_endpoint: https://{your-environment-id}.live.dynatrace.com/api/v2/otlp/v1/traces
  logs_endpoint: https://{your-environment-id}.live.dynatrace.com/api/v2/otlp/v1/logs
  resource_attributes:
    service.name: kong-dev
" | kubectl apply -f -
 
次に、次のようにingressに注釈を付けて、KongPluginリソースをイングレスに適用します。
kubectl annotate ingress INGRESS_NAME konghq.com/plugins=opentelemetry-example
 
INGRESS_NAMEを、このプラグイン構成がターゲットとするイングレス名に置き換えます。
kubectl get ingressを実行すると、利用可能なイングレスを確認できます。
  注:
  KongPluginリソースは一度だけ定義するだけで、ネームスペース内の任意のサービス、コンシューマー、またはルートに適用できます。プラグインをクラスター全体で利用可能にしたい場合は、KongPluginの代わりにKongClusterPluginとしてリソースを作成してください。
   
  
  
    
このセクションを宣言型構成ファイルに追加します。
plugins:
- name: opentelemetry
  route: ROUTE_NAME|ID
  config:
    traces_endpoint: https://{your-environment-id}.live.dynatrace.com/api/v2/otlp/v1/traces
    logs_endpoint: https://{your-environment-id}.live.dynatrace.com/api/v2/otlp/v1/logs
    resource_attributes:
      service.name: kong-dev
 
  
    
      | ROUTE_NAME | 
      IDを、このプラグイン構成が対象とするルートのid またはnameに置き換えてください。 | 
    
  
   
   
 
   
  
  
    
  
  
    
    
      Kong Admin API
    
  
    
    
      Konnect API
    
  
    
    
      Kubernetes
    
  
    
    
      Declarative (YAML)
    
  
   
  
  
  
  
    
次のリクエストを行います。
curl -X POST http://localhost:8001/consumers/{consumerName|Id}/plugins \
    --header "accept: application/json" \
    --header "Content-Type: application/json" \
    --data '
    {
  "name": "opentelemetry",
  "config": {
    "traces_endpoint": "https://{your-environment-id}.live.dynatrace.com/api/v2/otlp/v1/traces",
    "logs_endpoint": "https://{your-environment-id}.live.dynatrace.com/api/v2/otlp/v1/logs",
    "resource_attributes": {
      "service.name": "kong-dev"
    }
  }
}
    '
 
  
    
      | CONSUMER_NAME | 
      IDを、このプラグイン構成の対象となるコンシューマのidまたはnameに置き換えてください。 | 
    
  
   
  
  
    
独自のアクセストークン、リージョン、コントロールプレーンID、コンシューマーIDを代入して、次のリクエストをしてください。
curl -X POST \
https://{us|eu}.api.konghq.com/v2/control-planes/{controlPlaneId}/core-entities/consumers/{consumerId}/plugins \
    --header "accept: application/json" \
    --header "Content-Type: application/json" \
    --header "Authorization: Bearer TOKEN" \
    --data '{"name":"opentelemetry","config":{"traces_endpoint":"https://{your-environment-id}.live.dynatrace.com/api/v2/otlp/v1/traces","logs_endpoint":"https://{your-environment-id}.live.dynatrace.com/api/v2/otlp/v1/logs","resource_attributes":{"service.name":"kong-dev"}}}'
 
地域固有のURLと個人アクセストークンの詳細については、 Konnect API referenceをご参照ください。
   
  
  
    
まず、KongPlugin
リソースを作成します:
echo "
apiVersion: configuration.konghq.com/v1
kind: KongPlugin
metadata:
  name: opentelemetry-example
plugin: opentelemetry
config:
  traces_endpoint: https://{your-environment-id}.live.dynatrace.com/api/v2/otlp/v1/traces
  logs_endpoint: https://{your-environment-id}.live.dynatrace.com/api/v2/otlp/v1/logs
  resource_attributes:
    service.name: kong-dev
" | kubectl apply -f -
 
次に、次のようにKongConsumerオブジェクトに注釈を付けて、KongPluginリソースをイングレスに適用します。
kubectl annotate KongConsumer CONSUMER_NAME konghq.com/plugins=opentelemetry-example
 
CONSUMER_NAMEを、このプラグイン構成が対象とするコンシューマーの名前に置き換えます。
kubectl get KongConsumerを実行すると、利用可能なコンシューマを確認できます。
KongConsumerオブジェクトの詳細については、 コンシューマと認証情報のプロビジョニングをご参照ください。
  注:
  KongPluginリソースは一度だけ定義するだけで、ネームスペース内の任意のサービス、コンシューマー、またはルートに適用できます。プラグインをクラスター全体で利用可能にしたい場合は、KongPluginの代わりにKongClusterPluginとしてリソースを作成してください。
   
  
  
    
このセクションを宣言型構成ファイルに追加します。
plugins:
- name: opentelemetry
  consumer: CONSUMER_NAME|ID
  config:
    traces_endpoint: https://{your-environment-id}.live.dynatrace.com/api/v2/otlp/v1/traces
    logs_endpoint: https://{your-environment-id}.live.dynatrace.com/api/v2/otlp/v1/logs
    resource_attributes:
      service.name: kong-dev
 
  
    
      | CONSUMER_NAME | 
      IDを、このプラグイン構成の対象となるコンシューマのidまたはnameに置き換えてください。 | 
    
  
   
   
 
   
  
  
    
  
  
    
    
      Kong Admin API
    
  
    
    
      Konnect API
    
  
    
    
      Kubernetes
    
  
    
    
      Declarative (YAML)
    
  
   
  
  
  
  
    
次のリクエストを行います。
curl -X POST http://localhost:8001/plugins/ \
    --header "accept: application/json" \
    --header "Content-Type: application/json" \
    --data '
    {
  "name": "opentelemetry",
  "config": {
    "traces_endpoint": "https://{your-environment-id}.live.dynatrace.com/api/v2/otlp/v1/traces",
    "logs_endpoint": "https://{your-environment-id}.live.dynatrace.com/api/v2/otlp/v1/logs",
    "resource_attributes": {
      "service.name": "kong-dev"
    }
  }
}
    '
 
   
  
  
    
独自のアクセストークン、リージョン、コントロールプレーン(CP)IDを代入して、次のリクエストをしてください。
curl -X POST \
https://{us|eu}.api.konghq.com/v2/control-planes/{controlPlaneId}/core-entities/plugins/ \
    --header "accept: application/json" \
    --header "Content-Type: application/json" \
    --header "Authorization: Bearer TOKEN" \
    --data '{"name":"opentelemetry","config":{"traces_endpoint":"https://{your-environment-id}.live.dynatrace.com/api/v2/otlp/v1/traces","logs_endpoint":"https://{your-environment-id}.live.dynatrace.com/api/v2/otlp/v1/logs","resource_attributes":{"service.name":"kong-dev"}}}'
 
地域固有のURLと個人アクセストークンの詳細については、 Konnect API referenceをご参照ください。
   
  
  
    
KongClusterPlugin作成する
リソースを作成し、グローバルとしてラベル付けします。
apiVersion: configuration.konghq.com/v1
kind: KongClusterPlugin
metadata:
  name: <global-opentelemetry>
  annotations:
    kubernetes.io/ingress.class: kong
  labels:
    global: "true"
config:
  traces_endpoint: https://{your-environment-id}.live.dynatrace.com/api/v2/otlp/v1/traces
  logs_endpoint: https://{your-environment-id}.live.dynatrace.com/api/v2/otlp/v1/logs
  resource_attributes:
    service.name: kong-dev
plugin: opentelemetry
 
   
  
  
    
宣言型構成ファイルにpluginsエントリを追加します。
plugins:
- name: opentelemetry
  config:
    traces_endpoint: https://{your-environment-id}.live.dynatrace.com/api/v2/otlp/v1/traces
    logs_endpoint: https://{your-environment-id}.live.dynatrace.com/api/v2/otlp/v1/logs
    resource_attributes:
      service.name: kong-dev
 
   
   
 
   
   
 
Configure your Dynatrace OpenTelemetry Collector to send data to the Dynatrace environment.
The following example OpenTelemetry configuration shows how to export traces and logs:
receivers:
  otlp:
    protocols:
      http:
        endpoint: 0.0.0.0:4318
exporters:
  otlphttp:
    endpoint: "https://{your-environment-id}.live.dynatrace.com/api/v2/otlp"
    headers: 
      "Authorization": "Api-Token <your-api-token>"
service:
  pipelines:
    traces:
      receivers: [otlp]
      processors: []
      exporters: [otlphttp]
    logs:
      receivers: [otlp]
      processors: []
      exporters: [otlphttp]
 
Export application span metrics
Kong relies on the OpenTelemetry Collector to calculate the metrics based on the traces the OpenTelemetry plugin generates.
To include span metrics for application traces, configure the collector exporters section of 
the OpenTelemetry Collector configuration file:
connectors:
  spanmetrics:
    dimensions:
      - name: http.method
        default: GET
      - name: http.status_code
      - name: http.route
    exclude_dimensions:
      - status.code
    metrics_flush_interval: 15s
    histogram:
      disable: false
service:
  pipelines:
    traces:
      receivers: [otlp]
      processors: []
      exporters: [spanmetrics]
    metrics:
      receivers: [spanmetrics]
      processors: []
      exporters: [otlphttp]