このページは、まだ日本語ではご利用いただけません。翻訳中です。
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]