otelcol.connector.spanlogs
otelcol.connector.spanlogs
从其他 otelcol
组件接受跟踪遥测数据,并为每个跨度、根或进程输出日志遥测数据。这允许您自动构建跟踪发现的机制。
注意
otelcol.connector.spanlogs
是一个与 OpenTelemetry Collector 的任何组件都无关的自定义组件。它基于 Grafana Agent 静态中的 跟踪 子系统的automatic_logging
组件。
您可以通过指定不同的标签来指定多个 otelcol.connector.spanlogs
组件。
用法
otelcol.connector.spanlogs "LABEL" {
output {
logs = [...]
}
}
参数
otelcol.connector.spanlogs
支持以下参数
名称 | 类型 | 描述 | 默认值 | 必需的 |
---|---|---|---|---|
spans | 布尔值 | 每跨度一行记录。 | false | no |
roots | 布尔值 | 为每个跟踪的根跨度记录一行。 | false | no |
processes | 布尔值 | 为每个进程记录一行。 | false | no |
span_attributes | 字符串列表 | 要记录的额外跨度属性。 | [] | no |
process_attributes | 字符串列表 | 要记录的额外进程属性。 | [] | no |
labels | 字符串列表 | 将作为标签记录的键的列表。 | [] | no |
labels
列表中的值应该是跨度或进程属性的值。
警告
将spans
设置为true
可能会导致日志量很大。
块
在 otelcol.connector.spanlogs
的定义中支持以下块
层次结构 | 块 | 描述 | 必需的 |
---|---|---|---|
overridess | overridess | 日志体中键的重写。 | no |
output | output | 配置接收到的遥测数据发送位置。 | yes |
overridess 块
overridess
块配置了将记录在日志行体中的键的重写。
以下属性受支持
名称 | 类型 | 描述 | 默认值 | 必需的 |
---|---|---|---|---|
logs_instance_tag | 字符串 | 指示日志行是否为跨度、根或进程。 | traces | no |
service_key | 字符串 | 资源服务名的记录键。 | svc | no |
span_name_key | 字符串 | 跨度的名称的记录键。 | span | no |
status_key | 字符串 | 跨度的状态的记录键。 | status | no |
duration_key | 字符串 | 跨度的持续时间的记录键。 | dur | no |
trace_id_key | 字符串 | 跨度的跟踪 ID 的记录键。 | tid | no |
output 块
输出块配置了一套组件,以便将结果遥测数据转发到。
支持以下参数
名称 | 类型 | 描述 | 默认值 | 必需的 |
---|---|---|---|---|
logs | 列表(otelcol.Consumer) | 要发送日志的消费者列表。 | [] | no |
您必须指定输出块,但其所有参数都是可选的。默认情况下,遥测数据将被丢弃。根据需要配置logs参数,以便将遥测数据发送到其他组件。
导出字段
以下字段将被导出,并可由其他组件引用:
名称 | 类型 | 描述 |
---|---|---|
input | otelcol.Consumer | 其他组件可以使用该值来发送遥测数据。 |
input接受任何遥测信号(指标、日志或跟踪)的otelcol.Consumer
数据。
组件健康状态
仅当配置无效时,otelcol.connector.spanlogs
才报告为不适配状态。
调试信息
otelcol.connector.spanlogs
不公开任何针对特定组件的调试信息。
示例
以下配置将来自跨度跟踪的日志发送到Loki。
此外,otelcol.processor.attributes
已配置一个“提示”,使otelcol.exporter.loki
能够将跨度属性“attribute1”提升为Loki标签。
otelcol.receiver.otlp "default" {
grpc {}
output {
traces = [otelcol.connector.spanlogs.default.input]
}
}
otelcol.connector.spanlogs "default" {
spans = true
roots = true
processes = true
labels = ["attribute1", "res_attribute1"]
span_attributes = ["attribute1"]
process_attributes = ["res_attribute1"]
output {
logs = [otelcol.processor.attributes.default.input]
}
}
otelcol.processor.attributes "default" {
action {
key = "loki.attribute.labels"
action = "insert"
value = "attribute1"
}
output {
logs = [otelcol.exporter.loki.default.input]
}
}
otelcol.exporter.loki "default" {
forward_to = [loki.write.local.receiver]
}
loki.write "local" {
endpoint {
url = "loki:3100"
}
}
对于如下输入跟踪...
{
"resourceSpans": [
{
"resource": {
"attributes": [
{
"key": "service.name",
"value": { "stringValue": "TestSvcName" }
},
{
"key": "res_attribute1",
"value": { "intValue": "78" }
},
{
"key": "unused_res_attribute1",
"value": { "stringValue": "str" }
},
{
"key": "res_account_id",
"value": { "intValue": "2245" }
}
]
},
"scopeSpans": [
{
"spans": [
{
"trace_id": "7bba9f33312b3dbb8b2c2c62bb7abe2d",
"span_id": "086e83747d0e381e",
"name": "TestSpan",
"attributes": [
{
"key": "attribute1",
"value": { "intValue": "78" }
},
{
"key": "unused_attribute1",
"value": { "intValue": "78" }
},
{
"key": "account_id",
"value": { "intValue": "2245" }
}
]
}
]
}
]
}
]
}
...从otelcol.connector.spanlogs
输出的日志将看起来像这样
{
"resourceLogs": [
{
"scopeLogs": [
{
"log_records": [
{
"body": {
"stringValue": "span=TestSpan dur=0ns attribute1=78 svc=TestSvcName res_attribute1=78 tid=7bba9f33312b3dbb8b2c2c62bb7abe2d"
},
"attributes": [
{
"key": "traces",
"value": { "stringValue": "span" }
},
{
"key": "attribute1",
"value": { "intValue": "78" }
},
{
"key": "res_attribute1",
"value": { "intValue": "78" }
}
]
},
{
"body": {
"stringValue": "span=TestSpan dur=0ns attribute1=78 svc=TestSvcName res_attribute1=78 tid=7bba9f33312b3dbb8b2c2c62bb7abe2d"
},
"attributes": [
{
"key": "traces",
"value": { "stringValue": "root" }
},
{
"key": "attribute1",
"value": { "intValue": "78" }
},
{
"key": "res_attribute1",
"value": { "intValue": "78" }
}
]
},
{
"body": {
"stringValue": "svc=TestSvcName res_attribute1=78 tid=7bba9f33312b3dbb8b2c2c62bb7abe2d"
},
"attributes": [
{
"key": "traces",
"value": { "stringValue": "process" }
},
{
"key": "res_attribute1",
"value": { "intValue": "78" }
}
]
}
]
}
]
}
]
}
兼容组件
otelcol.connector.spanlogs
可以接受以下组件的参数
otelcol.connector.spanlogs
能够被以下组件消费:
注意
连接某些组件可能不合理,或者组件可能需要进一步的配置才能正确连接。有关更多详细信息,请参阅相关文档。