Grafana系列-统一展示-9-Jaeger数据源

news2024/11/30 8:50:45

系列文章

  • Grafana 系列文章

配置 Jaeger data source

Grafana内置了对Jaeger的支持,它提供了开源的端到端分布式跟踪。本文解释了针对Jaeger数据源的配置和查询。

关键的配置如下:

  • URL: Jaeger 实例的 URL, 如: http://localhost:16686http://localhost:16686/trace/
  • Enable Node Graph: ✔️. 一旦启用,Grafana会在 trace 视图上方显示 Node Graph (链路拓扑图)。

Span bar

Span bar 设置帮助你在 span 行中显示额外的信息。

你可以从三个选项中选择一个:

NameDescription
None啥都不加.
Duration(默认) 在Span 行上显示 span 持续时间。
Tag在 span 行上显示 span tag。你还必须指定使用哪个标签键来获取标签值,如span.kind

Trace to logs

📝Notes:

Trace to logs 功能只支持部分日志解决方案 Grafana Loki 和 Splunk 是支持的, ElasticSearch 是不支持的.

Trace to logs settings

Trace to logs 设置配置了 traces 到 logs 的功能,当你将 Grafana 与 Jaeger 整合时,该功能是可用的。

有两种方法可以配置 trace 到 logs 的功能:

  • 使用带有默认查询的简化配置,或
  • 配置一个自定义查询,你可以使用模板语言从 trace 或 span 中插入变量。

使用简化配置

  1. 选择目标数据源。
  2. 设置开始和结束时间的偏移。由于日志的时间戳可能与 trace 中的 span 的时间戳不完全匹配,可能需要在更大的或移位的时间范围内搜索以找到所需的日志。
  3. 选择要在日志查询中使用的标签。你配置的标签必须存在于 span 属性或资源中,才能出现 trace 到 logs span 链接。你可以选择为标签配置一个新的名字。如果标签的名称中有圆点,而目标数据源不允许标签中有圆点,这就很有用(如上图)。在这种情况下,你可以,比如说,把http.status改成http_status
  4. 如果你的日志一直包含 trace ID 或 span ID,可以选择打开 Filter by trace ID 和/或 Filter by span ID 的设置来进一步过滤日志。

使用自定义 Query

  1. 选择目标数据源。
  2. 设置开始和结束时间的偏移。由于日志的时间戳可能与 trace 中的 span 的时间戳不完全匹配,你可能需要扩大或偏移时间范围以找到所需的日志。
  3. 可选地,选择要映射的标签。这些标签可以用 ${__tags} 变量在自定义查询中使用。这个变量将以适当的语法为数据源插值映射的标签,并只包括 span 中存在的标签,省略那些不存在的标签。您可以选择为标签配置一个新的名称。这在标签的名称中有圆点而目标数据源不允许标签中有圆点的情况下很有用。例如,你可以将 http.status 重新映射为 http_status。如果你不在这里映射任何标签,你仍然可以在查询中使用任何标签,比如method="${__span.tags.method}"
  4. 跳过 Filter by trace IDFilter by span ID 设置,因为它们不能用于自定义查询。
  5. 开启 Use custom query
  6. 指定一个用于查询日志的自定义查询。你可以使用各种变量来使该查询与当前 span 相关。只有当所有的变量都以非空值插值时,该链接才会出现,以防止创建一个无效的查询。
可以在自定义查询中使用的 Variables

要使用一个变量,你需要用${}来包裹它。例如:${__span.name}

Variable nameDescription
__tags该变量使用来自用户界面的标签映射,以特定的数据源语法创建一个标签匹配器字符串。该变量只使用 span 中存在的标签。即使这些标签中只有一个存在于 span 中,链接仍然被创建。如果查询不需要所有的标签,你可以使用这个。
__span.spanIdSpan 的 ID
__span.traceIdTrace 的 ID
__span.durationSpan 的持续时间
__span.nameSpan 的名称
__span.tagsspan中标签的命名空间。要访问一个名为 "version" 的特定标签,你可以使用${__span.tags.version}。如果标签包含点,你必须以${__span.tags["http.status"]}的方式访问它。
__trace.traceIdTrace 的 ID
__trace.durationTrace 的持续时间
__trace.nameTrace 的名称

下表描述了你可以配置 Trace to logs 设置的方式:

Setting nameDescription
Data source定义目标数据源。你可以只选择Loki或Splunk logs 数据源。
Span start time shift根据 span 的开始时间,偏移日志查询的开始时间。你可以使用时间单位,如5s1m3h。要把时间延长到过去,则使用一个负值。默认值: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:

  1. 选择目标数据源。
  2. 创建需要的链接查询。
Setting nameDescription
Data source定义目标数据源.
Tags定义了链接查询中使用的标签。键值设置 span 属性名称,可选值设置相应的metric 标签名称。例如,你可以将k8s.pod映射为pod。要把这些标签插进查询中,请使用$__tags关键字。

每个链接查询包括:

  • Link Label: (可选项) 链接查询的描述性标签。
  • Query: 从 trace 跳转到 metric 数据源时运行的查询。使用 $__tags 关键字对标签进行插值。例如,当你配置查询 requests_total{$__tags} 时,标签为k8s.pod=podcluster,结果看起来像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 编写.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/523439.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PPT技能之新手入门,零基础光速进阶的宝藏

不会PPT只是借口,懒惰才是你的心里话。只要现在开始学习,不出三个月,华丽蜕变成PPT大神!你的进步,我的功劳! 你的关注,是我最大的动力!你的转发,我的10W!茫茫…

维京人的秘密:残暴背后的真相,敬畏神灵死后进入英灵殿

维京人,一个充满神秘色彩的名字,勾起了人们对于古代北欧残暴战士的想象。然而,维京人究竟是如何形成这样的形象,他们的传统和习俗又是如何塑造了他们的一生呢? 首先,我们要了解维京人的生活背景。维京人生活…

Linux线程同步(5)——互斥锁or自旋锁?

自旋锁概述 自旋锁与互斥锁很相似,从本质上说也是一把锁,在访问共享资源之前对自旋锁进行上锁,在访问完成后释放自旋锁(解锁);事实上,从实现方式上来说,互斥锁是基于自旋锁…

shell脚本之“sort“、“uniq“、“tr“、“cut“、“split“、“paste“以及“eval“命令详解

文章目录 sort命令uniq命令tr命令cut命令split命令paste命令eval命令总结 sort命令 以行为单位对文件内容进行排序,也可以根据不同的数据类型来排序. 比较原则:从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出. 语法…

Chrome和edge报STATUS_STACK_BUFFER_OVERRUN错误的处理办法

Chrome和edge突然就报STATUS_STACK_BUFFER_OVERRUN错误,原因未知。 解决方案: Chrome 卸载本地的chrome访问https://www.chromedownloads.net/chrome64win/(windows64)https://www.chromedownloads.net/chrome32win/&#xff0…

母亲节到了,写一个简单的C++代码给老妈送上一个爱心祝福

🍎 博客主页:🌙披星戴月的贾维斯 🍎 欢迎关注:👍点赞🍃收藏🔥留言 🍇系列专栏:🌙 C/C专栏 🌙请不要相信胜利就像山坡上的蒲公英一样唾…

快速上手Arthas

目录 基本概述 安装方式 基础指令 jvm相关指令 class/classloader相关指令 monitor/watch/trace相关指令 其他 基本概述 jconsole等工具都必须在服务端项目进程中配置相关的监控参数,然后工具通过远程连接到项目进程,获取相关的数据。这样就会带…

快速查询的秘籍——B+树索引

页和记录的关系示意图 InnoDB根据主键查找数据的过程是什么? 没有索引的查找是什么?索引查找和通过主键查找有什么关系? 索引是解决什么问题的? 索引是解决定位数据页的,而不是定位一个页中的数据的,定位…

MATLAB绘制动画(一)质点动画

vx 100*cos(1/3*pi); vy 100*sin(1/3*pi); t 0:0.005:18; x vx*t; y vy*-9.8*t.^2/2; comet(x,y) 这里只是截取了最后的画面,正常运行时,可以看到从最高点向下落的动作。 想要了解这段代码,我们要知道comet函数的意义 这个函数可以沿着…

ChatGPT 发布重磅更新,插件系统即将上线!

公众号关注 “GitHubDaily” 设为 “星标”,每天带你逛 GitHub! 昨天凌晨,ChatGPT 为诸多 Plus 会员陆续开放了插件系统内测权限,申请比较早的用户,现在应该都能体验上最新的插件系统了。 为了让风暴来得更为猛烈&…

SQL在线刷题

牛客网学习SQL在线编程,牛客网在线编程,一共82道 用于实践的网站,在线运行SQL 目前43道,刷不动了,剩下的之后找机会搞 只记录有疑问的题目 简单 SQL196 查倒数第三 查找入职员工时间排名倒数第三的员工所有信息 …

js堆和栈

目录 关键句提取: 一、认识堆和栈 1、内存操作场景 2、数据结构场景 二、堆和栈的优缺点 1.栈(stack) 2.堆(heap) 3.总结: 三、堆和栈的溢出 四、 传值和传址 五、为什么会有栈内存和堆内存之分? 垃圾回收 标记清理 引用…

品牌控价的好处有哪些、品牌控价方法有哪些

今天和大家聊聊【品牌控价】,他们常会说到自己的产品有多好,经销商们体验完也说产品效果非常不错,价格在业内也是有很大优势,但是客户购买量和预期效果确有很大差距,难道我产品性价比这个高,还不能打动顾客…

一种不需要注册没有魔法使用ChatGPT的方法

关于我:关注AIGC、读书、成长和自媒体。加我微信:keeepdance,备注:chatgpt。进ChatGPT交流群。 如果你还没有使用过ChatGPT,那你来对了地方。文章结尾,我将提供一种能不需要梯子、不需要注册,无…

【数据结构.C】顺序表和单链表的增删查改

宝子,你不点个赞吗?不评个论吗?不收个藏吗? 最后的最后,关注我,关注我,关注我,你会看到更多有趣的博客哦!!! 喵喵喵,你对我真的很重要…

干货! CVPR:基于VDB的高效神经辐射渲染场

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 作者介绍 严 涵 上海交通大学2019级人工智能专业本科生,研究兴趣主要是与NeRF相关的三维重建算法。 报告题目 基于VDB高效神经辐射渲染场 内容简介 01 NeRF NeRF的提出起初主要是为了解决新视⻆生成…

shell脚本常用的命令

管理文件内容的使用 一、sort命令二、uniq命令三、tr命令四、cut命令五、split命令六、paste命令七、eval命令 一、sort命令 sort命令是以行为单位对文件内容进行排序,也可以根据不同的数据类型来排序,比较原则是从首字符向后,依次按ASCII码…

尚硅谷Vue配套资源

1.gitee地址: https://gitee.com/coderPatrickStar/Vue/tree/master/%E5%B0%9A%E7%A1%85%E8%B0%B7Vue%E9%85%8D%E5%A5%97%E8%B5%84%E6%BA%90 2.

Linux常用命令——id命令

在线Linux命令查询工具 id 显示用户的ID以及所属群组的ID 补充说明 id命令可以显示真实有效的用户ID(UID)和组ID(GID)。UID 是对一个用户的单一身份标识。组ID(GID)则对应多个UID。id命令已经默认预装在大多数Linux系统中。要使用它,只需…

编译一个开源软件遇到的问题总结

一、开源软件Supra 需要编译一个开源的软件Supra,它需要的前置条件是: 1、cmake ≥ 3.4 2、gcc ≥ 4.8 or min. Visual Studio 2015 (Compiler needs to be supported by CUDA! For that, see the CUDA installation instructions.) 3、QT ≥ 5.5 4、TB…