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

grafana,系列,统一,展示,logs,traces,无缝,跳转 · 浏览次数 : 259

小编点评

**Grafana 系列文章概述** **Introduction** Grafana 是一个用于监控和分析数据的可视化工具。它可以将所有相关的数据进行无缝的可视化和跳转,对于快速根治事件和确定意外系统行为的真正来源非常重要。 **Technology Stack** Grafana 使用以下技术栈: - Loki (日志记录) - Grafana (可视化) - Tempo (追踪) - Mimir (指标) - Prometheus (指标) **技术细节** - Logs -> Traces:基于服务发现和统一 labels - Metrics -> Logs:基于 LogQL 提取 Metric 指标 - Traces -> Logs:基于衍生字段 (fields) 或自动化的日志 traces - Logs -> Traces:基于 Prometheus 的 Exemplars **无缝可视化和跳转** 即使没有采用 Grafana Labs 的解决方案,也可以实现一定程度的无缝跳转。例如: - Logging 使用 EFKTracing 使用 Jaeger 如果日志中也包括 trace_id,可以使用 trace_id 实现 Logs -> Traces 的无缝跳转。 **实战示例** 以下是实现单向跳转的示例: 1. 更新 ES 数据源配置,增加 Data links 相关配置。 2. 选择一个 Trace(Jaeger) 数据源,设置 Query 为 ${__value.raw}。 3. 通过 ES 日志快速搜索仪表板,筛选出 ERROR 日志。 4. 点击展开 details,会发现 trace_id 会带一个跳转链接。 **结论** 通过使用 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 编写.

与Grafana系列-统一展示-11-Logs Traces无缝跳转相似的内容:

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

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

Grafana 系列-统一展示-1-开篇

本文为系列文章-Grafana 统一展示,包括 Metrics、Tracing、Logging,并尽量实现在它们之间相互跳转。通过 Grafana LTM(Loki、Tempo、Mimir)可以实现比较完美的效果,但是即使没有 Grafana LTM, 通过其他 Grafana + 其他工具也能实现相对不错的结果。

Grafana 系列-统一展示-2-Prometheus 数据源

系列文章 Grafana 系列文章 Grafana Prometheus 数据源 Grafana 提供了对 Prometheus 的内置支持。本文会介绍 Grafana Prometheus(也包括 Prometheus 的兼容实现,如 Thanos, Mimir 等) 数据源的部分选项、变量 (V

Grafana 系列-统一展示-3-Prometheus 仪表板

系列文章 Grafana 系列文章 知识储备 Prometheus Template Variables 你可以使用变量来代替硬编码的细节,如 server、app 和 pod_name 在 metric 查询中。Grafana 在仪表盘顶部的下拉选择框中列出这些变量,帮助你改变仪表盘中显示的数据。

Grafana 系列-统一展示-4-AWS Cloudwatch 数据源

本文为系列文章-Grafana 统一展示,添加 AWS Cloudwatch 数据源。

Grafana 系列-统一展示-5-AWS Cloudwatch 仪表板

本文为系列文章-Grafana 统一展示,添加 AWS Cloudwatch 仪表板的变量和细节。

Grafana系列-统一展示-6-Zabbix仪表板

系列文章 Grafana 系列文章 📝Notes: 关于 Grafana系列-统一展示-6-Zabbix 数据源, 其实已经在之前的文章: 使用 Grafana 统一监控展示 - 对接 Zabbix 里详细介绍过了, 感兴趣的请移步阅读. 知识储备 一个图表上的多个 Items 我们可以在 met

Grafana系列-统一展示-7-ElasticSearch数据源

系列文章 Grafana 系列文章 ElasticSearch 数据源 Grafana内置了对Elasticsearch的支持。你可以进行多种类型的查询,以可视化存储在Elasticsearch中的日志或指标,并使用存储在Elasticsearch中的日志事件对图表进行注释。 配置 ES 数据源 关

Grafana系列-统一展示-8-ElasticSearch日志快速搜索仪表板

系列文章 Grafana 系列文章 概述 我们是基于这篇文章: Grafana 系列文章(十二):如何使用 Loki 创建一个用于搜索日志的 Grafana 仪表板, 创建一个类似的, 但是基于 ElasticSearch 的日志快速搜索仪表板. 最终完整效果如下: 📝Notes: 其实我基于 E

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

系列文章 Grafana 系列文章 配置 Jaeger data source Grafana内置了对Jaeger的支持,它提供了开源的端到端分布式跟踪。本文解释了针对Jaeger数据源的配置和查询。 关键的配置如下: URL: Jaeger 实例的 URL, 如: http://localhost