LoongSuite
LoongSuite オープンソース版では、Go アプリのトレースデータを OpenTelemetry OTLP プロトコルでコレクタへ送信できます。DataKit は OpenTelemetry コレクタを使って LoongSuite が送信したトレースデータを受信でき、専用コレクタを追加で有効化する必要はありません。
LoongSuite を接続する前に、DataKit で OpenTelemetry コレクタが有効になっていることを確認し、使用する OTLP プロトコルに応じて gRPC か HTTP/protobuf の接続方式を選んでください。
設定¶
DataKit の設定¶
DataKit のインストールディレクトリにある conf.d/samples ディレクトリへ移動し、opentelemetry.conf.sample をコピーして opentelemetry.conf に名前を変更します。gRPC または HTTP の受信設定が有効になっていることを確認してください。
OpenTelemetry コレクタのデフォルト受信アドレスは次のとおりです。
| プロトコル | アドレス |
|---|---|
gRPC |
http://<datakit-host>:4317 |
HTTP/protobuf |
http://<datakit-host>:9529/otel/v1/traces |
設定後、DataKit を再起動 します。
LoongSuite の設定¶
トレースデータの送信には gRPC プロトコルの使用を推奨します。
export OTEL_TRACES_EXPORTER=otlp
export OTEL_EXPORTER_OTLP_PROTOCOL=grpc
export OTEL_EXPORTER_OTLP_ENDPOINT=http://<datakit-host>:4317
export OTEL_SERVICE_NAME=<service-name>
export OTEL_RESOURCE_ATTRIBUTES=deployment.environment=prod,service.version=1.0.0
HTTP/protobuf プロトコルを使用する場合は、Trace endpoint を DataKit OpenTelemetry コレクタのデフォルトパスに明示的に設定する必要があります。
export OTEL_TRACES_EXPORTER=otlp
export OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf
export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://<datakit-host>:9529/otel/v1/traces
export OTEL_SERVICE_NAME=<service-name>
export OTEL_RESOURCE_ATTRIBUTES=deployment.environment=prod,service.version=1.0.0
Warning
DataKit OpenTelemetry コレクタの HTTP Trace のデフォルトパスは /otel/v1/traces です。LoongSuite または OpenTelemetry SDK がデフォルトの OTLP HTTP パス /v1/traces を使用する場合は、LoongSuite 側で endpoint を明示的に調整する必要があります。
フィールド対応¶
LoongSuite が送信する OTLP span attributes は、OpenTelemetry コレクタによって固定のタグ一覧に従って抽出されます。代表的なフィールド対応は次のとおりです。
| 元のフィールド | DataKit フィールド |
|---|---|
db.system |
db_system |
db.system.name |
db_system |
db.operation |
db_operation |
db.operation.name |
db_operation |
db.query.text |
db_statement |
db.namespace |
db_name |
db.collection.name |
db_collection |
http.request.method |
http_method |
http.response.status_code |
http_status_code |
network.protocol.name |
net_protocol_name |
network.protocol.version |
net_protocol_version |
network.local.address |
network_local_address |
network.local.port |
network_local_port |
user_agent.original |
user_agent_original |
messaging.system |
messaging_system |
messaging.operation.name |
messaging_operation |
messaging.operation.type |
messaging_operation_type |
messaging.message.id |
messaging_message_id |
rpc.system.name |
rpc_system |
rpc.method |
rpc_method |
rpc.grpc.status_code |
rpc_grpc_status_code |
LoongSuite が送信するカスタム attributes を抽出したい場合は、opentelemetry.conf で customer_tags を設定できます。customer_tags は正規表現に対応しており、一致したフィールドはタグとして昇格され、フィールド名内の . は _ に置き換えられます。
[[inputs.opentelemetry]]
customer_tags = [
"reg:^db\\.query\\.parameter\\.",
"reg:^kratos\\.service\\.meta\\.",
"reg:^gen_ai\\.other_input\\.",
"reg:^gen_ai\\.other_output\\.",
]
データの確認¶
設定が完了したら、LoongSuite を組み込んだ Go アプリを起動してリクエストを発生させます。トレースデータは DataKit OpenTelemetry コレクタに入り、Guance プラットフォームのトレースビューアーで service.name ごとに表示されます。
トレースが送信されない場合は、次の点を優先して確認してください。
- DataKit OpenTelemetry コレクタが有効になっており、再起動後に反映されているか;
- LoongSuite OTLP exporter のプロトコルと endpoint が DataKit の待受設定と一致しているか;
HTTP/protobufを使用している場合、Trace endpoint が/otel/v1/tracesになっているか;OTEL_SERVICE_NAMEまたはservice.nameが設定されているか。