Grafana系列-统一展示-9-Jaeger数据源
系列文章
配置 Jaeger data source
Grafana内置了对Jaeger的支持,它提供了开源的端到端分布式跟踪。本文解释了针对Jaeger数据源的配置和查询。
关键的配置如下:
- URL: Jaeger 实例的 URL, 如:
http://localhost:16686或http://localhost:16686/trace/ - Enable Node Graph: ️. 一旦启用,Grafana会在 trace 视图上方显示 Node Graph (链路拓扑图)。
Span bar
Span bar 设置帮助你在 span 行中显示额外的信息。
你可以从三个选项中选择一个:
| Name | Description |
|---|---|
| None | 啥都不加. |
| Duration | (默认) 在Span 行上显示 span 持续时间。 |
| Tag | 在 span 行上显示 span tag。你还必须指定使用哪个标签键来获取标签值,如span.kind。 |
Trace to logs
Notes:
Trace to logs 功能只支持部分日志解决方案
Grafana Loki 和 Splunk 是支持的, ElasticSearch 是不支持的.

Trace to logs 设置配置了 traces 到 logs 的功能,当你将 Grafana 与 Jaeger 整合时,该功能是可用的。
有两种方法可以配置 trace 到 logs 的功能:
- 使用带有默认查询的简化配置,或
- 配置一个自定义查询,你可以使用模板语言从 trace 或 span 中插入变量。
使用简化配置
- 选择目标数据源。
- 设置开始和结束时间的偏移。由于日志的时间戳可能与 trace 中的 span 的时间戳不完全匹配,可能需要在更大的或移位的时间范围内搜索以找到所需的日志。
- 选择要在日志查询中使用的标签。你配置的标签必须存在于 span 属性或资源中,才能出现 trace 到 logs span 链接。你可以选择为标签配置一个新的名字。如果标签的名称中有圆点,而目标数据源不允许标签中有圆点,这就很有用(如上图)。在这种情况下,你可以,比如说,把
http.status改成http_status。 - 如果你的日志一直包含 trace ID 或 span ID,可以选择打开 Filter by trace ID 和/或 Filter by span ID 的设置来进一步过滤日志。
使用自定义 Query
- 选择目标数据源。
- 设置开始和结束时间的偏移。由于日志的时间戳可能与 trace 中的 span 的时间戳不完全匹配,你可能需要扩大或偏移时间范围以找到所需的日志。
- 可选地,选择要映射的标签。这些标签可以用
${__tags}变量在自定义查询中使用。这个变量将以适当的语法为数据源插值映射的标签,并只包括 span 中存在的标签,省略那些不存在的标签。您可以选择为标签配置一个新的名称。这在标签的名称中有圆点而目标数据源不允许标签中有圆点的情况下很有用。例如,你可以将http.status重新映射为http_status。如果你不在这里映射任何标签,你仍然可以在查询中使用任何标签,比如method="${__span.tags.method}"。 - 跳过 Filter by trace ID 和 Filter by span ID 设置,因为它们不能用于自定义查询。
- 开启 Use custom query。
- 指定一个用于查询日志的自定义查询。你可以使用各种变量来使该查询与当前 span 相关。只有当所有的变量都以非空值插值时,该链接才会出现,以防止创建一个无效的查询。
可以在自定义查询中使用的 Variables
要使用一个变量,你需要用${}来包裹它。例如:${__span.name}。
| Variable name | Description |
|---|---|
| __tags | 该变量使用来自用户界面的标签映射,以特定的数据源语法创建一个标签匹配器字符串。该变量只使用 span 中存在的标签。即使这些标签中只有一个存在于 span 中,链接仍然被创建。如果查询不需要所有的标签,你可以使用这个。 |
| __span.spanId | Span 的 ID |
| __span.traceId | Trace 的 ID |
| __span.duration | Span 的持续时间 |
| __span.name | Span 的名称 |
| __span.tags | span中标签的命名空间。要访问一个名为 "version" 的特定标签,你可以使用${__span.tags.version}。如果标签包含点,你必须以${__span.tags["http.status"]}的方式访问它。 |
| __trace.traceId | Trace 的 ID |
| __trace.duration | Trace 的持续时间 |
| __trace.name | Trace 的名称 |
下表描述了你可以配置 Trace to logs 设置的方式:
| Setting name | Description |
|---|---|
| Data source | 定义目标数据源。你可以只选择Loki或Splunk logs 数据源。 |
| Span start time shift | 根据 span 的开始时间,偏移日志查询的开始时间。你可以使用时间单位,如5s,1m,3h。要把时间延长到过去,则使用一个负值。默认值:0。 |
| Span end time shift | 根据 span 的结束时间,转移日志查询的结束时间。你可以使用时间单位。默认:0。 |
| Tags | 定义了在日志查询中使用的标签。默认:cluster, hostname, namespace, pod。你可以改变标签的名称,例如,如果目标数据源中不允许使用点,可以从名称中删除点。例如,将http.status映射为http_status。 |
| Filter by trace ID | 切换是否在日志查询中附加trace ID。 |
| Filter by span ID | 切换是否将span ID附加到日志查询中。 |
| Use custom query | 切换可以使用插值的自定义查询。 |
| Query | 输入来编写自定义查询。使用变量插值,用 span 的变量来定制它。 |
Trace to metrics
Notes:
需要配置 feature toggle 的traceToMetrics后可见.
Trace to metrics 设置配置了 Grafana 与 Jaeger 集成时可用的 trace 到 metrics 功能。
要配置 trace to metrics:
- 选择目标数据源。
- 创建需要的链接查询。
| Setting name | Description |
|---|---|
| Data source | 定义目标数据源. |
| Tags | 定义了链接查询中使用的标签。键值设置 span 属性名称,可选值设置相应的metric 标签名称。例如,你可以将k8s.pod映射为pod。要把这些标签插进查询中,请使用$__tags关键字。 |
每个链接查询包括:
- Link Label: (可选项) 链接查询的描述性标签。
- Query: 从 trace 跳转到 metric 数据源时运行的查询。使用
$__tags关键字对标签进行插值。例如,当你配置查询requests_total{$__tags}时,标签为k8s.pod=pod和cluster,结果看起来像requests_total{pod="nginx-554b9", cluster="us-east-1"}。
Jaeger 数据源配置示例
Jaeger 数据源配置示例 YAML 如下:
apiVersion: 1
datasources:
- name: Jaeger
type: jaeger
uid: EbPG8fYoz
url: http://localhost: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
spanBar:
type: 'None'
secureJsonData:
basicAuthPassword: my_password
EOF
三人行, 必有我师; 知识共享, 天下为公. 本文由东风微鸣技术博客 EWhisper.cn 编写.
Grafana系列-统一展示-9-Jaeger数据源的更多相关文章
- [系列] go-gin-api 路由中间件 - Jaeger 链路追踪(五)
概述 首先同步下项目概况: 上篇文章分享了,路由中间件 - 捕获异常,这篇文章咱们分享:路由中间件 - Jaeger 链路追踪. 啥是链路追踪? 我理解链路追踪其实是为微服务架构提供服务的,当一个请求 ...
- Grafana 系列文章(一):基于 Grafana 的全栈可观察性 Demo
️Reference: https://github.com/grafana/intro-to-mlt 这是关于 Grafana 中可观察性的三个支柱的一系列演讲的配套资源库. 它以一个自我封闭的 D ...
- Grafana 系列文章(三):Tempo-使用 HTTP 推送 Spans
️URL: https://grafana.com/docs/tempo/latest/api_docs/pushing-spans-with-http/ Description: 有时,使用追踪系统 ...
- Grafana 系列文章(七):Grafana Explore 中的 Tracing
️URL: https://grafana.com/docs/grafana/latest/explore/trace-integration/ Description: Tracing in Exp ...
- Grafana 系列文章(八):Grafana Explore 中的 Inspector
️URL: https://grafana.com/docs/grafana/latest/explore/explore-inspector/ Description: Explore 中的检查器 ...
- Grafana 系列文章(九):开源云原生日志解决方案 Loki 简介
简介 Grafana Labs 简介 Grafana 是用于时序数据的事实上的仪表盘解决方案.它支持近百个数据源. Grafana Labs 想从一个仪表盘解决方案转变成一个可观察性 (observa ...
- Grafana 系列文章(十二):如何使用Loki创建一个用于搜索日志的Grafana仪表板
概述 创建一个简单的 Grafana 仪表板, 以实现对日志的快速搜索. 有经验的直接用 Grafana 的 Explore 功能就可以了. 但是对于没有经验的人, 他们如何能有一个已经预设了简单的标 ...
- 性能测试 CentOS下结合InfluxDB及Grafana图表实时展示JMeter相关性能数据
CentOS下结合InfluxDB及Grafana图表实时展示JMeter相关性能数据 by:授客 QQ:1033553122 实现功能 1 测试环境 1 环境搭建 2 1.安装influxdb ...
- 分布式监控系统Zabbix--使用Grafana进行图形展示
今天介绍一款高颜值监控绘图工具Grafana,在使用Zabbix监控环境中,通常我们会结合Grafana进行图形展示.Grafana默认没有zabbix作为数据源,需要手动给zabbix安装一个插 ...
- 【转载四】Grafana系列教程–Grafana基本概念
在上面几篇文章中,我们介绍了Grafana的安装配置以及运行的方法,本篇文章我们就来介绍下Grafana的基本概念. 有问题欢迎加群讨论,InfluxDB&Grafana技术交流群:58048 ...
随机推荐
- MySql数据库的两大引擎InnoDB和MyIsam的区别
事务方面 InnoDB支持事务,MyISAM不支持事务.MySql的默认存储引擎为InnoDB 外键方面 InnoDB支持外键,MyISAM不支持,对一个包含外键的InnoDB表转为MYISAM会失败 ...
- SpringBoot3.0 + SpringSecurity6.0+JWT
JWT_SpringSecurity SpringBoot3.0 + SpringSecurity6.0+JWT Spring Security 是 Spring 家族中的一个安全管理框架. 一般We ...
- 关于再次报错500--Servlet报出异常
我是根据这样的方法解决的: 本来在前几篇里面,我是将get或者post的没有用到的方法里面自带的super方法直接删除了的,然后今天运行发现,功能实现不了,还报出500的异常错误: 心态直接裂开,然后 ...
- 实践Pytorch中的模型剪枝方法
摘要:所谓模型剪枝,其实是一种从神经网络中移除"不必要"权重或偏差的模型压缩技术. 本文分享自华为云社区<模型压缩-pytorch 中的模型剪枝方法实践>,作者:嵌入式 ...
- 【CS231n assignment 2022】Assignment 2 - Part 2,优化器,批归一化以及层归一化
前言 博客主页:睡晚不猿序程 首发时间:2022.7.23 最近更新时间:2022.7.23 本文由 睡晚不猿序程 原创 作者是蒻蒟本蒟,如果文章里有任何错误或者表述不清,请 tt 我,万分感谢!or ...
- day10-SpringBoot的异常处理
SpringBoot异常处理 1.基本介绍 默认情况下,SpringBoot提供/error处理所有错误的映射,也就是说当出现错误时,SpringBoot底层会请求转发到/error这个映射路径所关联 ...
- IDEA编写JSP无代码提示
网上的版本 网上的版本 网上的我试了 但是未能解决 我自己解决的方法是 File => Poject Struct=>Modules=>"+"=>找到自己系 ...
- MapReduce之简单的数据清洗----课堂测试
今天的课堂测试第一步是做简单的数据清洗,直到现在我才知道只是把文本文件的数据改成相应的格式,而我做的一直是寻找一条数据,并转换成相应的格式,但是呢,我感觉还是很高兴的,虽然没有按时完成任务,但也学到了 ...
- 前端ffmpeg实现视频剪切
利用ffmpeg实现纯前端视频剪切 注意:在新版本Chrome浏览器中由于安全性问题,只能在https或localhost当中才能正常使用 1. 下载ffmpeg npm install @ffmpe ...
- 在ArcGIS Pro中对Revit的bim数据进行地理配准(平移、旋转等)
在ArcGIS Pro中,打开Revit的rvt格式数据,默认是没有坐标系,且位置会放置在原点位置(0,0),在实际使用过程中,需要对rvt数据进行地理配准,包括平移.旋转等操作将bim数据放置在正确 ...