Grafana系列-统一展示-11-Logs Traces无缝跳转

news2024/12/25 9:14:47

系列文章

  • Grafana 系列文章

概述

如前文 Grafana 系列 - 统一展示 -1- 开篇所述, Grafana 可以了解所有相关的数据--以及它们之间的关系--对于尽快根治事件和确定意外系统行为的真正来源非常重要。Grafana 允许团队在一个地方对所有的数据进行无缝的可视化和跳转。

最典型的就是 Grafana Labs 的 LGTM 技术栈,包括:

  • Loki(Logging)
  • Grafana(可视化)
  • Tempo(Tracing)
  • Mimir(Metrics)

LGTM

通过如下的技术细节,可以实现 Logging、Tracing、Metrics 的无缝可视化和跳转:

  • Metrics -> Logs: 基于服务发现和统一 labels
  • Logs -> Metrics: 基于 LogQL 提取 Metric 指标
  • Logs -> Traces: 基于衍生字段 (fields) 或自动化的日志
  • Traces -> Logs: 基于 labels
  • Traces -> Metrics: 基于来自 spans 的 Metric 指标
  • Metrics -> Traces: 基于 Prometheus 的 Exemplars.

具体如下图:

LTM Seamless Moving

即使没有采用 Grafana Labs 的解决方案,也仍然能实现一定程度的无缝跳转。

如:

  • Logging 使用 EFK
  • Tracing 使用 Jaeger

如果日志中也包括 trace_id, Name 至少可以通过 trace_id, 实现 Logs -> Traces 的无缝跳转。

🐾Notes:

前提是: 日志中包括 trace_id 相关字段. 当然, 日志中就包含 trace_id 字段, 属于开发对日志格式规划地比较好了. 这使得运维侧配置跳转逻辑简单了很多. 更多情况下, 是要结合 cluster namespace app pod 等字段/label 进行查询. (而非直接通过 trace_id 直接定位.)

实战 Logs(ElasticSearch) To Traces(Jaeger)

📝Notes:

实战场景: 针对报错日志, 定位到出错的 Trace.

首先, 更新 ES 数据源配置, 增加 Data links 相关配置:

  • Field: trace_id (根据实际情况配置, 也可能是 traceId 等)
  • Internal link: ✔️, 并选择一个 Trace(Jaeger) 数据源
  • Query: ${__value.raw}

之后, 可以通过ES 日志快速搜索仪表板, 筛选出ERROR 日志, 点击展开 details, 会发现 trace_id 会带一个跳转链接, 如下图:

Error Log -> trace_id link

点击后, 会直接跳转到 Explore -> Jaeger 页面, 并带有出错的 trace_id, 同时显示链路拓扑和 trace 瀑布图, 如下图:

Trace Node Graph

Error Log Trace View

🎉🎉🎉

总结

至此, 我们完成了一个非常简单的, 从 Logs(ElasticSearch) 到 Trace(Jaeger) 的单向跳转. 但已经会为我们分析问题提供较大的便利了.

如果需要实现 Metrics, Logs, Traces 三者的双向跳转, 那么在这三者的解决方案需要是特定的方案, 另外这三者的数据源、Dashboard 和 Query 中都需要有更多精细的配置。包括不限于:

  • 上文提到的三者之间的联动配置
  • 各个数据源上配置 Data link、Derived fields、Exemplars、Trace to logs、Trace to Metrics 等
  • 在 Dashboard 上添加 Text 等 Panel,并结合 Variable 用于更友好地跳转
  • 在 Panel 配置 panel link 用于更友好地跳转
  • ...

以此抛砖引玉,希望读者可以做出更精美、实用的监控统一展示和无缝跳转方案。

三人行, 必有我师; 知识共享, 天下为公. 本文由东风微鸣技术博客 EWhisper.cn 编写.

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

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

相关文章

MySQL8.0 优化器介绍(四)

GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。GreatSQL是MySQL的国产分支版本,使用上与MySQL一致。作者: 奥特曼爱小怪兽文章来源:GreatSQL社区原创 往期回顾 MySQL8.0 优化器介绍(一&#x…

Midjourney|文心一格prompt教程[基础篇]:注册使用教程、风格设置、参数介绍、隐私模式等

Midjourney|文心一格prompt教程[基础篇]:注册使用教程、风格设置、参数介绍、隐私模式等 开头讲一下为什么选择Midjourney和文心一格,首先Midjourney功能效果好不多阐述;其次文心一格再多次迭代优化后效果也不错,重点也免费&…

【Kubernetes】| K8s基础组件分析

目录 一. 🦁 前言二. 🦁 K8s vs Docker三. 🦁 K8s基础组件3.1 Master组件3.1.1 api server3.1.2 controller manager3.1.3 scheduler3.1.4 etcd 3.2 Node组件3.2.1 kublet3.2.2 kube-proxy 四. 🦁 最后 一. 🦁 前言 Ku…

antd-vue-admin——通过链接跳过登录页直接进入系统内部——基础积累

最近在写后台管理系统,遇到一个需求,就是从系统A带参数可以直接进入到系统B内部。不通过系统B的登录页面进行登录。 一般系统的登录,都需要用户名和密码等参数,然后获取到token信息,最后进入到系统内部。 下面介绍具…

5-16SQL每日一题

如下两张表,G0516A和G0516B 要求G0516B按顺序与G0516A的第一个WEEK1依次有序的组合,直到依次组合完毕,预计结果如下: 测试数据: CREATE TABLE G0516A ( WEEKS VARCHAR(10) ) INSERT INTO G0516A VALUES (‘WEEK1…

Socket请求和Http请求区别和场景

我们在开发过程中遇到http请求和socket请求。大部分前后交互都是通过http请求的方式,那socket请求怎么使用,什么情况下使用呢? 基本概念 http请求:基于http协议的soap协议,常见的http数据请求方式有get和post&#xf…

OpenCV实现图像的缩放几何变换,图像金字塔,高斯不同

1.前言 实现图像的放大(zoom in)和缩小(zoom out)主要通过两种途径: 几何变换。图像金字塔。 2.几何变换 通过几何变换实现图像放大和缩小功能主要是通过OpenCV的resize函数: 1 2 3 4 5 6 7 8void resi…

二.深度学习yolov5 比特家异构计算 训练与转模型01

(备份笔记 仅记录) 走国产化路上 要离开老黄的NVIDIA了,现在摸索下比特家的异构计算 yolo还停在v3的阶段 因为之前v3就已经够产品化去用了。这次也走下yolov5吧! 1.yolov5环境搭建 2.yolov5模型训练 3.yolov5模型测试 4.模型做truck 5.模型转换为…

【六袆 - Design Pattern】Strategy Pattern;策略模式;

JDK8源码使用的策略模式列举 java.util.comparator接口用于对对象进行排序。Comparator接口的compare()方法将两个对象作为参数,并返回一个整数值,表示这两个对象的相对顺序。比较器接口有许多不同的实现,每个实现都有不同的排序算法。例如&a…

OpenPCDet系列 | 5.4 PointPillars算法——AnchorHeadSingle模型预测头模块

文章目录 AnchorHeadTemplate模块1. AnchorGenerator2. ResidualCoder3. AxisAlignedTargetAssigner AnchorHeadSingle模块1. AnchorHeadSingle初始化2. AnchorHeadSingle训练前向传播3. AnchorHeadSingle测试前向传播 OpenPCDet的整个结构图: PointPillars算法属…

人人可用的开源数据可视化分析工具

大家好,我是互联网架构师! 在互联网数据大爆炸的这几年,各类数据处理、数据可视化的需求使得 GitHub 上诞生了一大批高质量的 BI 工具。 借助这些 BI 工具,我们能够大幅提升数据分析效率、生成更高质量的项目报告,让用…

UE4/5中DataTable数据表的使用

我们在UE中经常要对配置数据进行编辑,用好UE自己的DataTable自然对日常使用有所帮助。 1.蓝图使用流程 1.1 DataTable创建 使用数据表首先得创建自定义结构体,这样才好定义每一行的格式,例如这里创建如下: 然后右键选择创建Da…

LiveGBS流媒体平台GB/T28181功能-NVR硬件下级平台级联上来的通道如何过滤过滤通道类型

LiveGBS流媒体平台GB/T28181功能-NVR硬件下级平台级联上来的通道如何过滤过滤通道类型 1、上来的通道多了怎么办?2、过滤通道类型2.1、设备单独过滤2.2、全局过滤通道类型 3、过滤指定通道国标编号4、搭建GB28181视频直播平台 1、上来的通道多了怎么办? 下级平台或是NVR设备…

个人黄金投资好做吗?黄金投资交易优势体现在哪些方面

黄金的高保值性深受市场喜爱,它兼具商品和货币的双重属性。不仅实物黄金备受青睐,就连黄金投资交易也受到市场喜爱。黄金投资交易优势主要有哪些要点呢? 黄金投资交易优势一、稀有性 黄金的价值是固有的、内在的,具有千年不朽的稳…

跟庄买股票得新技巧(2023.05.16)(第二弹)

北向资金(也叫聪明的钱),它如何潜伏的(上周) 设么,你投诉大叔不写代码?好吧给你北向资金的代码 { 选股条件: 北向资金流入是昨天的两倍以上 } 百分比:REF(GPJYVALUE(6,1,1),1)>…

HttpClient5如何设置代理

文章目录 说明原始HttpClient代理HttpClient总结 说明 在这篇文章中会对HttpClient5如何进行代理进行说明,我的HttpClient版本是5.2.1。在进行代理之前请先准备好代理服务器。 原始HttpClient 下面是没有进行代理设置的代码,尝试去访问openai接口 Tes…

监控室值班人员脱岗睡岗识别算法 yolov7

监控室值班人员脱岗睡岗识别算法基于Yolov7深度学习神经网络算法,监控室值班人员脱岗睡岗识别算法模型可以7*24小时不间断自动人员是否在工位上(脱岗睡岗玩手机),若人员没有在工位,系统则立即抓拍告警,算法…

GBASE南大通用携手长亮科技 重磅推出金融数据仓库联合解决方案

随着数字化转型进程深入,金融企业对数据赋能的需求更加迫切,如何融合内外部业务数据,实现数据纵向贯通、横向穿透,让数据资源真正成为业务发展的新引擎;同时,信创浪潮风起云涌,数据库作为底层软…

深度学习语义分割篇——FCN源码解析篇

🍊作者简介:秃头小苏,致力于用最通俗的语言描述问题 🍊往期回顾:深度学习语义分割篇——FCN原理详解篇 🍊近期目标:写好专栏的每一篇文章 🍊支持小苏:点赞👍&…

分享Python采集66个菜单导航,总有一款适合您

分享Python采集66个菜单导航,总有一款适合您 Python采集的66个菜单导航下载链接:https://pan.baidu.com/s/11ElCiEa6OesmPxY6U9320w?pwdvdok 提取码:vdok jQuery手风琴滑动下拉菜单展开收缩代码 JS树形结构下拉列表菜单选择代码 简单的…