Skip to main content

使用 Grafana 处理日志和追踪

在本教程中,我们将使用 Docker Compose 设置一个展示 Quickwit 追踪信息的 Grafana 仪表板。

只需几分钟时间即可让 Grafana 与 Quickwit 配合工作并构建有意义的仪表板。

创建 Docker Compose 配方

让我们添加一个启用了 OTLP 服务的 Quickwit 实例

version: '3.0'
services:
quickwit:
image: quickwit/quickwit
environment:
QW_ENABLE_OPENTELEMETRY_OTLP_EXPORTER: "true"
OTEL_EXPORTER_OTLP_ENDPOINT: "http://localhost:7281"
ports:
- 7280:7280
command: ["run"]

然后我们创建一个带有 Quickwit 数据源插件的 Grafana 服务。

  grafana:
image: grafana/grafana-oss
container_name: grafana
ports:
- "${MAP_HOST_GRAFANA:-127.0.0.1}:3000:3000"
environment:
GF_INSTALL_PLUGINS: https://github.com/quickwit-oss/quickwit-datasource/releases/download/v0.3.1/quickwit-quickwit-datasource-0.3.1.zip;quickwit-quickwit-datasource
GF_AUTH_DISABLE_LOGIN_FORM: "true"
GF_AUTH_ANONYMOUS_ENABLED: "true"
GF_AUTH_ANONYMOUS_ORG_ROLE: Admin

保存并运行配方:

$ docker compose up

您应该能够通过 http://localhost:7280/ 访问 Quickwit 的用户界面,以及通过 http://localhost:3000/ 访问 Grafana 的用户界面。

配置数据源

在 Grafana 中,前往 数据源。如果插件安装正确,您应该能够在列表中找到 Quickwit。

我们将设置一个新的 Quickwit 数据源,用于查看 Quickwit 自身的 OpenTelemetry 追踪信息,让我们使用以下参数配置数据源:

  • URL: http://quickwit:7280/api/v1 这使用了 Docker 服务名称作为主机
  • 索引 ID: otel-traces-v0_7

保存并测试,您应该会收到确认消息,表明数据源已正确设置。

Quickwit Plugin configuration success

您还可以设置一个新的 Quickwit 数据源,用于查看 Quickwit 自身的 OpenTelemetry 日志(或您自己的日志索引),让我们使用以下参数配置数据源:

  • URL: http://quickwit:7280/api/v1 这使用了 Docker 服务名称作为主机
  • 索引 ID: otel-logs-v0_7

创建仪表板

然后您可以 创建一个新的仪表板 并添加可视化组件:在这里您应该可以选择追踪信息的 Quickwit 数据源。

Quickwit 会发送自身的追踪信息,因此您应该已经有数据可供显示。让我们配置一些面板!

  • 一个表格,统计 span_name 的数量
    • Panel type:Table
    • Query
    • Metric:Count
    • Group by:Terms : span_name : 按 Count 排序
  • 一个柱状图,展示每小时 tantivy 搜索的数量:
    • Panel type:Time Series
    • Queryspan_name:tantivy_search
    • Metric:Count
    • Group by:Date Histogram : span_start_timestamp_nanos : 间隔 1 小时
  • 一个柱状图,展示过去 6 小时内每小时 ERROR 日志的数量:
    • Panel type:Bar Chart
    • Queryservice_name:quickwit AND events.event_attributes.level:ERROR
    • Metric:Count
    • Group by:Terms : span_start_timestamp_nanos : 间隔 1 小时
  • 在同一个柱状图上再添加一个查询,展示 WARN 日志的数量

结果

这是您的第一个仪表板可能的样子:

Quickwit Panel in Grafana Dashboard