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

grafana,系列,统一,展示,jaeger,数据源 · 浏览次数 : 202

小编点评

**Grafana 配置 Jaeger 数据源** **配置步骤:** 1. 在 Grafana 中创建一个新的数据源。 2. 选择 Jaeger 数据源。 3. 在数据源中输入 Jaeger 数据源的 URL。 4. 配置以下选项: - **URL**:Jaeger 实例的 URL,例如 `http://localhost:16686` 或 `http://localhost:16686/trace/Enable Node Graph: ✔️` - **Enable Node Graph**:启用 Node Graph (链路拓扑图) - **Span start time shift** 和 **Span end time shift**:用于调整跨时间范围的偏移时间 - **Tags**:用于在日志查询中使用的标签,例如 `job, instance, pod, namespace` - **Filter by trace ID** 和 **Filter by span ID**:用于在日志查询中筛选基于 trace ID 和 span ID 的记录 - **Custom query**:使用自定义查询来筛选日志记录 **注意:** * 必须确保 Jaeger 数据源已安装并配置。 * 在配置 **Custom query** 时,需要使用变量插值。 **示例配置:** ```yaml apiVersion: 1datasources: - name: Jaeger type: jeger uid: EbPG8fYoz url: http://localhost:16686 access: proxy basicAuth: true basicAuthUser: my_user readOnly: false jsonData: tracesToLogsV2: # Field with an internal link pointing to a logs data source in Grafana. 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' }] nodeGraph: enabled: true spanBar: type: 'None' secureJsonData: basicAuthPassword: my_passwordEOF ``` **使用 Jaeger 数据源** 1. 在 Grafana 中创建一个新的图表。 2. 选择 Jaeger 数据源。 3. 在图表中添加数据。 4. 设置数据格式和标题。 **其他提示:** * 使用变量来定制查询条件。 * 在配置 Node Graph 时,可以选择不同的图形。 * 使用指标来监控应用程序性能。

正文

系列文章

配置 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 行中显示额外的信息。

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

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 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 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 的开始时间,偏移日志查询的开始时间。你可以使用时间单位,如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 toggletraceToMetrics 后可见.

Trace to metrics 设置配置了 Grafana 与 Jaeger 集成时可用的 trace 到 metrics 功能。

要配置 trace to metrics:

  1. 选择目标数据源。
  2. 创建需要的链接查询。
Setting name Description
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 编写.

与Grafana系列-统一展示-9-Jaeger数据源相似的内容:

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

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

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系列-统一展示-10-Explore Jaeger

本文为系列文章-Grafana 统一展示,通过 Grafana Explore 功能探索 Jaeger 数据源中的 trace 信息。