Logtailを使用してログを収集する場合、processor_otel_traceプラグインを使用して、収集したログをSLSトレースに変換できます。 このトピックでは、processor_otel_traceプラグインのパラメーターについて説明し、プラグインの設定方法の例を示します。
エントリーポイント
Logtailプラグインを使用してログを処理する場合は、Logtail設定を作成または変更するときにLogtailプラグイン設定を追加できます。 詳細については、「データ処理用Logtailプラグインの概要」をご参照ください。
設定の説明
Logtail V1.7.1以降は、processor_otel_traceプラグインをサポートしています。
フォーム設定
プロセッサタイプパラメーターを [Log to Trace] に設定します。 次に、次の表に基づいて他のパラメーターを設定します。
パラメーター
パラメーター
説明
SourceKey
元のフィールドの名前。
Format
変換後のデータの形式。 有効な値:
protobuf
JSON
protojson
NoKeyError
生のログに元のフィールドが含まれていない場合にエラーを報告するかどうかを指定します。 デフォルト値:false
TraceIDNeedDecode
Base64アルゴリズムを使用してトレースIDをデコードするかどうかを指定します。 デフォルト値:false
Formatパラメーターをprotojsonに設定し、トレースIDがBase64アルゴリズムを使用してエンコードされている場合、このパラメーターをtrueに設定する必要があります。 それ以外の場合、変換は失敗します。
SpanIDNeedDecode
Base64アルゴリズムを使用してスパンIDをデコードするかどうかを指定します。 デフォルト値:false
Formatパラメーターをprotojsonに設定し、スパンIDがBase64アルゴリズムを使用してエンコードされている場合、このパラメーターをtrueに設定する必要があります。 それ以外の場合、変換は失敗します。
ParentSpanIDNeedDecode
Base64アルゴリズムを使用して親スパンIDをデコードするかどうかを指定します。 デフォルト値:false
Formatパラメーターをprotojsonに設定し、親スパンIDがBase64アルゴリズムを使用してエンコードされている場合、このパラメーターをtrueに設定する必要があります。 それ以外の場合、変換は失敗します。
設定例
生ログ
INFO OtlpJsonLoggingSpanExporter - {"resource":{"attributes":[]},"scopeSpans":[{"scope":{"name":"io.opentelemetry.spring-webmvc-3.1","version":"1.26.0-alpha","attributes":[]},"spans":[{"traceId":"a7adbcb0921fa4a5b90615d0ad38ef95","spanId":"eecaa7e1b63c9f61","parentSpanId":"fa85fcee7fe0e0e8","name":"HelloWorldController.sayHello","kind":1,"startTimeUnixNano":"1696659118615748056","endTimeUnixNano":"1696659128701715998","attributes":[{"key":"thread.id","value":{"intValue":"48"}},{"key":"thread.name","value":{"stringValue":"http-nio-18080-exec-1"}}],"events":[],"links":[],"status":{}}]},{"scope":{"name":"io.opentelemetry.tomcat-7.0","version":"1.26.0-alpha","attributes":[]},"spans":[{"traceId":"a7adbcb0921fa4a5b90615d0ad38ef95","spanId":"fa85fcee7fe0e0e8","name":"GET /hello","kind":2,"startTimeUnixNano":"1696659118479360000","endTimeUnixNano":"1696659128703706165","attributes":[{"key":"http.status_code","value":{"intValue":"200"}},{"key":"user_agent.original","value":{"stringValue":"curl/7.84.0"}},{"key":"net.host.name","value":{"stringValue":"localhost"}},{"key":"http.response_content_length","value":{"intValue":"12"}},{"key":"http.target","value":{"stringValue":"/hello"}},{"key":"net.sock.peer.addr","value":{"stringValue":"127.0.0.1"}},{"key":"net.host.port","value":{"intValue":"18080"}},{"key":"net.sock.peer.port","value":{"intValue":"53649"}},{"key":"thread.id","value":{"intValue":"48"}},{"key":"thread.name","value":{"stringValue":"http-nio-18080-exec-1"}},{"key":"http.route","value":{"stringValue":"/hello"}},{"key":"net.sock.host.addr","value":{"stringValue":"127.0.0.1"}},{"key":"net.protocol.name","value":{"stringValue":"http"}},{"key":"net.protocol.version","value":{"stringValue":"1.1"}},{"key":"http.scheme","value":{"stringValue":"http"}},{"key":"http.method","value":{"stringValue":"GET"}}],"events":[],"links":[],"status":{}}]}],"schemaUrl":"https://opentelemetry.io/schemas/1.19.0"}
データ処理用のLogtailプラグイン設定
結果
JSONでのエディター設定
typeパラメーターをprocessor_otel_traceに設定します。 次に、次の表に基づいて、detailパラメーターで他のパラメーターを設定します。
パラメーター
パラメーター
データ型
必須
説明
SourceKey
String
課金されます
元のフィールドの名前。
Format
String
課金されます
変換後のデータの形式。 有効な値: protobuf、json、およびprotojson。
NoKeyError
ブール値
課金されません
生のログに元のフィールドが含まれていない場合にエラーを報告するかどうかを指定します。 デフォルト値:false
TraceIDNeedDecode
ブール値
課金されません
Base64アルゴリズムを使用してトレースIDをデコードするかどうかを指定します。 デフォルト値:false
Formatパラメーターをprotojsonに設定し、トレースIDがBase64アルゴリズムを使用してエンコードされている場合、このパラメーターをtrueに設定する必要があります。 それ以外の場合、変換は失敗します。
SpanIDNeedDecode
ブール値
課金されません
Base64アルゴリズムを使用してスパンIDをデコードするかどうかを指定します。 デフォルト値:false
Formatパラメーターをprotojsonに設定し、スパンIDがBase64アルゴリズムを使用してエンコードされている場合、このパラメーターをtrueに設定する必要があります。 それ以外の場合、変換は失敗します。
ParentSpanIDNeedDecode
ブール値
課金されません
Base64アルゴリズムを使用して親スパンIDをデコードするかどうかを指定します。 デフォルト値:false
Formatパラメーターをprotojsonに設定し、親スパンIDがBase64アルゴリズムを使用してエンコードされている場合、このパラメーターをtrueに設定する必要があります。 それ以外の場合、変換は失敗します。
設定例
生ログ
INFO OtlpJsonLoggingSpanExporter - {"resource":{"attributes":[]},"scopeSpans":[{"scope":{"name":"io.opentelemetry.spring-webmvc-3.1","version":"1.26.0-alpha","attributes":[]},"spans":[{"traceId":"a7adbcb0921fa4a5b90615d0ad38ef95","spanId":"eecaa7e1b63c9f61","parentSpanId":"fa85fcee7fe0e0e8","name":"HelloWorldController.sayHello","kind":1,"startTimeUnixNano":"1696659118615748056","endTimeUnixNano":"1696659128701715998","attributes":[{"key":"thread.id","value":{"intValue":"48"}},{"key":"thread.name","value":{"stringValue":"http-nio-18080-exec-1"}}],"events":[],"links":[],"status":{}}]},{"scope":{"name":"io.opentelemetry.tomcat-7.0","version":"1.26.0-alpha","attributes":[]},"spans":[{"traceId":"a7adbcb0921fa4a5b90615d0ad38ef95","spanId":"fa85fcee7fe0e0e8","name":"GET /hello","kind":2,"startTimeUnixNano":"1696659118479360000","endTimeUnixNano":"1696659128703706165","attributes":[{"key":"http.status_code","value":{"intValue":"200"}},{"key":"user_agent.original","value":{"stringValue":"curl/7.84.0"}},{"key":"net.host.name","value":{"stringValue":"localhost"}},{"key":"http.response_content_length","value":{"intValue":"12"}},{"key":"http.target","value":{"stringValue":"/hello"}},{"key":"net.sock.peer.addr","value":{"stringValue":"127.0.0.1"}},{"key":"net.host.port","value":{"intValue":"18080"}},{"key":"net.sock.peer.port","value":{"intValue":"53649"}},{"key":"thread.id","value":{"intValue":"48"}},{"key":"thread.name","value":{"stringValue":"http-nio-18080-exec-1"}},{"key":"http.route","value":{"stringValue":"/hello"}},{"key":"net.sock.host.addr","value":{"stringValue":"127.0.0.1"}},{"key":"net.protocol.name","value":{"stringValue":"http"}},{"key":"net.protocol.version","value":{"stringValue":"1.1"}},{"key":"http.scheme","value":{"stringValue":"http"}},{"key":"http.method","value":{"stringValue":"GET"}}],"events":[],"links":[],"status":{}}]}],"schemaUrl":"https://opentelemetry.io/schemas/1.19.0"}
データ処理用のLogtailプラグイン設定
{ "processors": [ { "type": "processor_split_log_regex", "detail": { "PreserveOthers": true, "SplitKey": "content", "SplitRegex": "INFO\\sOtlpJsonLoggingSpanExporter\\s.+" } }, { "type": "processor_regex", "detail": { "SourceKey": "content", "Regex": "INFO\\sOtlpJsonLoggingSpanExporter\\s-(\\s.+)", "Keys": [ "trace_data" ] } }, { "detail": { "SourceKey": "trace_data", "Format": "protojson", "NoKeyError": true }, "type": "processor_otel_trace" } ] }
結果