Jaeger 数据源
Grafana 内置支持 Jaeger,这是一个提供开源、端到端分布式追踪的系统。本主题解释了 Jaeger 数据源特定的配置和查询。
有关如何在 Grafana 中添加数据源的说明,请参阅管理文档。只有具有组织管理员角色的用户才能添加数据源。管理员还可以通过 Grafana 的 provisioning 系统使用 YAML 配置数据源。
添加数据源后,您可以配置它,以便 Grafana 实例的用户在构建仪表盘和使用 Explore 时,可以在查询编辑器中创建查询。
您还可以上传 JSON 追踪文件,从日志链接到追踪 ID,以及从指标链接到追踪 ID。
配置数据源
要配置数据源的基本设置,请完成以下步骤:
单击左侧菜单中的Connections。
在 Your connections 下,点击Data sources。
在搜索栏中输入
Jaeger
。选择 Jaeger。
将显示数据源的Settings标签页。
设置数据源的基本配置选项
名称 描述 名称 设置您在面板和查询中引用数据源时使用的名称。 默认 定义此数据源是否为新面板预先选择。 URL 设置 Jaeger 实例的 URL,例如 https://:16686
。基本认证 启用 Jaeger 数据源的基本认证。 用户 定义基本认证的用户名。 密码 定义基本认证的密码。
您还可以配置 Jaeger 数据源特定的设置。这些选项将在下面的章节中描述。
追踪到日志
注意
如果您使用 Grafana Cloud,请在 Cloud Portal 中开启支持工单来访问此功能。
Trace to logs(追踪到日志)设置配置了与 Jaeger 集成时可用的追踪到日志功能。
有两种方式配置追踪到日志功能:
- 使用带有默认查询的简化配置,或
- 配置一个自定义查询,您可以使用模板语言来插入追踪或 span 中的变量。
使用简单配置
从下拉列表中选择目标数据源。
您还可以点击Open advanced data source picker查看更多选项,包括添加数据源。
设置起始和结束时间偏移。由于日志时间戳可能与追踪中的 span 时间戳不完全匹配,因此可能需要在更大或偏移的时间范围内搜索以找到所需的日志。
选择在日志查询中使用的标签。您配置的标签必须存在于 span 属性或资源中,才能显示追踪到日志的 span 链接。您可以选择为标签配置新名称。这对于标签名称中包含点且目标数据源不允许标签中包含点的情况非常有用。在这种情况下,您可以例如将
http.status
重映射到http_status
。(可选)打开Filter by trace ID(按追踪 ID 过滤)和/或Filter by span ID(按 span ID 过滤)设置,以便在您的日志一致包含追踪或 span ID 时进一步过滤日志。
配置自定义查询
从下拉列表中选择目标数据源。
您还可以点击Open advanced data source picker查看更多选项,包括添加数据源。
设置起始和结束时间偏移。由于日志时间戳可能与追踪中的 span 时间戳不完全匹配,您可能需要加宽或偏移时间范围才能找到所需的日志。
(可选)选择要映射的标签。这些标签可以在自定义查询中使用
${__tags}
变量。此变量将以适合目标数据源的语法将映射的标签列表插值进去,并且只会包含 span 中存在的标签,省略不存在的标签。您可以选择为标签配置新名称。这对于标签名称中包含点且目标数据源不允许标签中包含点的情况非常有用。例如,您可以将http.status
重映射到http_status
。如果您在这里不映射任何标签,您仍然可以在查询中使用任何标签,例如method="${__span.tags.method}"
。跳过Filter by trace ID(按追踪 ID 过滤)和Filter by span ID(按 span ID 过滤)设置,因为它们不能与自定义查询一起使用。
开启Use custom query(使用自定义查询)。
指定用于查询日志的自定义查询。您可以使用各种变量来使查询与当前 span 相关。仅当所有变量都插值了非空值时,链接才会出现,以防止创建无效查询。
可在自定义查询中使用的变量
要使用变量,需要将其包含在 ${}
中。例如:${__span.name}
。
变量名 | 描述 |
---|---|
__tags | 此变量使用 UI 中的标签映射创建一个特定数据源语法的标签匹配字符串。变量只使用 span 中存在的标签。即使 span 中只存在其中一个标签,链接仍然会创建。如果查询并非必须包含所有标签才能有用,则可以使用此变量。 |
__span.spanId | Span 的 ID。 |
__span.traceId | 追踪的 ID。 |
__span.duration | Span 的持续时间。 |
__span.name | Span 的名称。 |
__span.tags | Span 中标签的命名空间。要访问名为 version 的特定标签,您将使用 ${__span.tags.version} 。如果标签包含点,您必须像这样访问它:${__span.tags["http.status"]} 。 |
__trace.traceId | 追踪的 ID。 |
__trace.duration | 追踪的持续时间。 |
__trace.name | 追踪的名称。 |
下表描述了配置追踪到日志设置的方式:
设置名称 | 描述 |
---|---|
数据源 | 定义目标数据源。只能选择 Loki 或 Splunk 日志数据源。 |
Span 起始时间偏移 | 基于 span 的起始时间偏移日志查询的起始时间。可以使用时间单位,例如 5s 、1m 、3h 。要将时间范围扩展到过去,请使用负值。默认值:0 。 |
Span 结束时间偏移 | 基于 span 的结束时间偏移日志查询的结束时间。可以使用时间单位。默认值:0 。 |
标签 | 定义日志查询中使用的标签。默认值:cluster , hostname , namespace , pod , service.name , service.namespace 。您可以更改标签名称,例如,如果目标数据源不允许标签名称中包含点,则可以移除点。例如,将 http.status 映射到 http_status 。 |
按追踪 ID 过滤 | 切换是否将追踪 ID 附加到日志查询。 |
按 Span ID 过滤 | 切换是否将 span ID 附加到日志查询。 |
使用自定义查询 | 切换是否使用自定义查询并进行插值。 |
查询 | 输入框,用于编写自定义查询。使用变量插值来自定义,使用 span 中的变量。 |
追踪到指标
Trace to metrics(追踪到指标)设置配置了与 Jaeger 集成时可用的追踪到指标功能。
要配置追踪到指标:
从下拉列表中选择目标数据源。
您还可以点击Open advanced data source picker查看更多选项,包括添加数据源。
创建任何所需的链接查询。
设置名称 | 描述 |
---|---|
数据源 | 定义链接查询中使用的标签。键设置 span 属性名称,可选值设置对应的指标标签名称。例如,您可以将 k8s.pod 映射到 pod 。要将这些标签插值到查询中,请使用 $__tags 关键字。 |
标签 | 定义链接查询中使用的标签。键设置 span 属性名称,可选值设置相应的指标标签名称。例如,您可以将 k8s.pod 映射到 pod 。要在查询中插入这些标签,请使用 $__tags 关键字。 |
每个链接查询包含:
- Link Label: (可选)链接查询的描述性标签。
- Query: 当从追踪导航到指标数据源时运行的查询。使用
$__tags
关键字插值标签。例如,当您配置查询requests_total{$__tags}
并带有标签k8s.pod=pod
和cluster
时,结果类似于requests_total{pod="nginx-554b9", cluster="us-east-1"}
。
节点图
Node Graph(节点图)设置启用了节点图可视化,此功能默认禁用。
启用后,Grafana 会在追踪视图上方显示节点图。
Span 条
Span bar(Span 条)设置有助于在 span 条行中显示额外信息。
您可以选择以下三个选项之一:
名称 | 描述 |
---|---|
无 | 不在 span 条行中添加任何内容。 |
持续时间 | (默认)在 span 条行中显示 span 持续时间。 |
标签 | 在 span 条行中显示 span 标签。您还必须指定使用哪个标签键来获取标签值,例如 component 。 |
供应数据源
您可以将数据源定义和配置在 YAML 文件中,作为 Grafana provisioning 系统的一部分。有关 provisioning 和可用配置选项的更多信息,请参阅供应 Grafana。
供应示例
apiVersion: 1
datasources:
- name: Jaeger
type: jaeger
uid: EbPG8fYoz
url: https://:16686
access: proxy
basicAuth: true
basicAuthUser: my_user
readOnly: false
isDefault: false
jsonData:
tracesToLogsV2:
# Field with an internal link pointing to a logs data source in Grafana.
# datasourceUid value must match the uid value of the logs data source.
datasourceUid: 'loki'
spanStartTimeShift: '1h'
spanEndTimeShift: '-1h'
tags: ['job', 'instance', 'pod', 'namespace']
filterByTraceID: false
filterBySpanID: false
customQuery: true
query: 'method="$${__span.tags.method}"'
tracesToMetrics:
datasourceUid: 'prom'
spanStartTimeShift: '1h'
spanEndTimeShift: '-1h'
tags: [{ key: 'service.name', value: 'service' }, { key: 'job' }]
queries:
- name: 'Sample query'
query: 'sum(rate(traces_spanmetrics_latency_bucket{$$__tags}[5m]))'
nodeGraph:
enabled: true
traceQuery:
timeShiftEnabled: true
spanStartTimeShift: '1h'
spanEndTimeShift: '-1h'
spanBar:
type: 'None'
secureJsonData:
basicAuthPassword: my_password
查询数据源
您可以通过 Explore 查询和显示来自 Jaeger 的追踪。
本主题解释了 Jaeger 数据源特定的配置和查询。有关在 Grafana 中查询数据源的一般文档,请参阅查询和转换数据。
按搜索查询
要搜索追踪:
- 从Query类型选择器中选择Search。
- 填写搜索表单:
名称 | 描述 |
---|---|
服务 | 返回服务列表。 |
操作 | 当您选择一个服务时,会填充相关的操作。选择 All 查询所有操作。 |
标签 | 以 logfmt 格式设置带有值的标签,例如 error=true db.statement="select * from User" 。 |
最小持续时间 | 过滤持续时间高于设定值的所有追踪。可能的值为 1.2s, 100ms, 500us 。 |
最大持续时间 | 过滤持续时间低于设定值的所有追踪。可能的值为 1.2s, 100ms, 500us 。 |
限制 | 限制返回的追踪数量。 |

按追踪 ID 查询
要查询特定追踪:
- 选择 TraceID 查询类型。
- 在 Trace ID 字段中输入追踪的 ID。

上传 JSON 追踪文件
您可以上传一个包含单个追踪的 JSON 文件并将其可视化。如果文件包含多个追踪,Grafana 将可视化其第一个追踪。

JSON 追踪示例
{
"data": [
{
"traceID": "2ee9739529395e31",
"spans": [
{
"traceID": "2ee9739529395e31",
"spanID": "2ee9739529395e31",
"flags": 1,
"operationName": "CAS",
"references": [],
"startTime": 1616095319593196,
"duration": 1004,
"tags": [
{
"key": "sampler.type",
"type": "string",
"value": "const"
}
],
"logs": [],
"processID": "p1",
"warnings": null
}
],
"processes": {
"p1": {
"serviceName": "loki-all",
"tags": [
{
"key": "jaeger.version",
"type": "string",
"value": "Go-2.25.0"
}
]
}
},
"warnings": null
}
],
"total": 0,
"limit": 0,
"offset": 0,
"errors": null
}
Span 过滤器
使用 span 过滤器,您可以在追踪时间线查看器中过滤您的 span。您添加的过滤器越多,过滤后的 span 就越具体。
您可以添加以下一个或多个过滤器
- 服务名称
- Span 名称
- 持续时间
- 标签(包括标签、进程标签和日志字段)
要仅显示您匹配的 span,您可以按下 仅显示匹配项
开关。
从日志链接到追踪 ID
通过配置内部链接,您可以从 Loki、Elasticsearch、Splunk 和其他日志数据源中的日志链接到 Jaeger 追踪。
要配置此功能,请参阅 Loki 数据源文档的派生字段部分,或 Elasticsearch 或 Splunk 数据源文档的数据链接部分。
从指标链接到追踪 ID
通过配置 exemplar(范例),您可以从 Prometheus 数据源中的指标链接到 Jaeger 追踪。
要配置此功能,请参阅exemplar(范例)简介文档。
可视化依赖关系图
如果在 Jaeger 中提供了服务依赖信息,则可以在 Grafana 中将其可视化。为此,请在节点图面板上使用查询类型为“依赖关系图”的 Jaeger 数据源。