Grafana Explore 联合查询

Grafana Explore 联合查询
Grafana Explore 是快速调试和临时查询的最佳工具Grafana Explore 工作流│├── 【打开 Explore】│ └── 左侧菜单 → Explore或按 E 键│├── 【切换数据源】│ └── 顶部下拉框选择Prometheus / Loki / Jaeger│├── 【Metrics 查询】│ └── PromQL: rate(http_requests_total[5m])│ └── 切换到 Table/Graph 视图│├── 【Logs 查询】│ └── LogQL: {app“$app”} | “error”│ └── 切换到 Logs 视图展开行查看详情│└── 【Traces 查询】└── Trace ID 搜索或按服务名/操作名筛选└── 点击 Trace ID 展开 span 详情实战技巧快速定位问题Step 1在 Explore 中用 Prometheus 查询发现异常的 P99 延迟突刺Step 2复制该时间点的 traceIDStep 3切换到 Loki 数据源查询 {trace_id“xxx”}Step 4切换到 Jaeger 数据源输入 traceID 查看完整调用链Step 5综合三方面信息定位根因5.6 Annotations 注解联动Grafana Annotations 可以在 Metrics 时间线上标注关键事件配置从 Logs 创建 Annotations{“name”: “Error Logs”,“datasource”: “VictoriaLogs”,“target”: {“expr”: “{level“error”}”,“tagKeys”: “app,level”,“textFormat”: “{{app}}: {{line}}”}}当 Metrics 图表上标注了错误日志位置时可以直接点击标注跳转到对应的日志条目必记闭环逻辑核心考点Grafana 是 VM 家族三产品联合查询的最佳入口。配置三个数据源Prometheus/Loki/Jaeger通过变量联动实现多面板同时筛选通过Data Links实现跨数据源跳转。工作流Metrics 发现异常 → 点击 traceID 跳转 Traces → 查询 Logs 查详情三者通过统一 label 关联。六、VictoriaLogs vs Grafana Loki架构差异思考记忆提示 — 两者查询语法兼容但架构哲学截然不同关联前面章节#10 与其他 TSDB 对比、#11 CNCF 生态、#41 MergeSet vs LSM Tree关联工具VictoriaLogs、Loki、MinIO、Cassandra面试/考试高频提问VictoriaLogs 和 Loki 在存储引擎上有什么本质区别VictoriaLogs 和 Grafana Loki 都属于日志领域的 Prometheus 替代品但两者的架构哲学差异巨大。7.1 VictoriaTraces 架构对比维度 VictoriaLogs Grafana Loki存储引擎 自研 MergeSet基于 VM 核心库 分片 对象存储S3/GCS BoltDB 索引数据存储位置 本地 SSD单二进制无外部依赖 S3/GCS/Azure Blob必须云存储索引存储 本地文件类似 VM indexDB BoltDB单机/ Cortex 模式多租户部署复杂度 单二进制开箱即用 需要 MinIO Cassandra 多个组件查询性能 本地 SSD 高速读取 对象存储 IO 受限压缩比 字典压缩 增量编码VL 官方称 10x Gzip 块压缩约 3-5x运维成本 低无外部依赖 高需要管理 MinIO、Cassandra适用场景 中小规模日志具体阈值参考 VL 官方文档 大规模日志 多租户需求5.2 性能基准对比根据 VictoriaLogs 官方博客VictoriaLogs vs Loki的基准测试具体性能数据请参考官方博客原文VictoriaLogs 和 Loki 在存储引擎上存在架构差异Loki 依赖对象存储做冷数据存储VictoriaLogs 用本地 SSD 跑 MergeSet 引擎。性能对比数字请以官方博客最新发布为准。存储架构VictoriaLogs 单二进制 本地 SSDLoki 多组件 对象存储核心差异存储引擎选择不同导致适用场景不同这些差异的根源是存储引擎的选择——Loki 依赖对象存储做冷数据存储天生受限于 S3/GCS 的 IO 延迟VictoriaLogs 用本地 SSD 跑 MergeSet 引擎。两者各有适用场景详见官方博客完整对比。设计精髓VictoriaLogs 的架构哲学是以 VM 的成功经验复制到日志领域。VM 的核心优势是 MergeSet 引擎 本地 SSD 单二进制部署VL 完全复用这套设计。两者在存储引擎上的差异是VL 用 MergeSet 本地 SSD单二进制、无外部依赖Loki 用分片 对象存储 BoltDB 索引需要 MinIO/Cassandra 多组件。必记闭环逻辑核心考点VictoriaLogs vs Loki 的核心差异是存储引擎VL 用 MergeSet 本地 SSD单二进制、无外部依赖Loki 用分片 对象存储 BoltDB 索引需要 MinIO/Cassandra 多组件。七、VictoriaTraces链路追踪新选择思考记忆提示 — VictoriaTraces 是 VM 家族的链路追踪产品关联产品VictoriaMetricsMetrics、VictoriaLogsLogs、VictoriaTracesTraces关联工具OTLP、Jaeger、Grafana Tempo核心特点与 VM/VL 共用部分核心库单二进制部署VictoriaTraces 是 VictoriaMetrics 公司推出的链路追踪产品与 VictoriaMetrics、VictoriaLogs 共同构成完整的可观测性三支柱解决方案。7.1 VictoriaTraces 架构VictoriaTraces 采用与 VictoriaMetrics 相似的架构哲学单二进制部署所有功能集成在一个可执行文件中本地 SSD 优先数据存储在本地高速磁盘MergeSet 存储引擎复用 VM 核心库的存储逻辑无外部依赖不像 Jaeger 需要 Cassandra/Elasticsearch7.2 OTLP 协议支持VictoriaTraces 支持 OTLPOpenTelemetry Protocol可接收来自任何 OTLP 兼容 SDK 的链路数据启动 VictoriaTraces默认监听 :10428victoria-traces或指定端口victoria-traces -httpListenAddr:8428查看帮助victoria-traces -help7.3 与 Jaeger/Grafana Tempo 的对比对比维度 VictoriaTraces Jaeger Grafana Tempo存储引擎 MergeSet本地 SSD BoltDB/Cassandra/Elasticsearch 对象存储 块索引部署复杂度 单二进制 多组件 单二进制需对象存储外部依赖 无 Cassandra/ES生产 S3/GCS/Azure BlobOTLP 支持 是 是 是Jaeger API 兼容 是 原生 部分运维成本 低 高 中7.4 vmui 中的 Trace 功能vmui 提供了 Trace 页面/#/trace支持JSON 文件导入导入 Jaeger/VictoriaTraces 导出的 JSON trace 文件链路可视化查看 span 层级结构自定义面板集成在 CustomPanel 中展示 Traces实战技巧vmui Trace 页面使用在 Jaeger UI 或 VictoriaTraces 中导出 trace 为 JSON打开 vmui → Trace 页面/#/trace拖拽或上传 JSON 文件查看链路详情结合 Metrics Dashboard 分析性能问题设计精髓VictoriaTraces 延续了 VictoriaMetrics 家族的简单、可靠、高性能理念。与 Jaeger 需要复杂的 Cassandra 集群相比VictoriaTraces 用单二进制就能处理中等规模的链路追踪需求。vmui 的 Trace 页面让用户无需离开 VM 生态即可查看链路数据。必记闭环逻辑核心考点VictoriaTraces 是 VM 家族的链路追踪产品单二进制 MergeSet 本地 SSD无外部依赖。支持 OTLP 协议兼容 Jaeger API。vmui 中通过 /#/trace 页面导入 JSON 查看链路配合 Metrics Dashboard 实现可观测性闭环。八、生产部署最佳实践思考记忆提示 — VictoriaMetrics VictoriaLogs VictoriaTraces 一体化部署的 5 个关键点关联前面章节#95 HA 高可用、#134 k8s 生产部署、#140 安全加固关联工具Helm、Operator、vmagent、vmauth面试/考试高频提问如何部署生产级三产品一体化监控最后给出生产部署的 5 个关键最佳实践确保 MetricsLogsTraces 一体化监控稳定运行。6.1 实践 1vmagent 统一采集vmagent 可同时采集 Metrics、Logs 和 TracesMetrics通过 scrape_configs 抓取Logs通过 -syslog.listenAddr:1514 监听Traces通过 OTLP 接收需要 vmagent 支持统一用 vmagent简化运维。6.2 实践 2label 命名空间统一规划三数据源应使用相同的核心 label方便联合查询推荐的统一 label三产品通用业务标识app: 应用名如 order-serviceenv: 环境prod/staging/devregion: 地域us-east-1/cn-north-1version: 版本号v1.2.3资源标识namespace: k8s 命名空间pod: Pod 名container: 容器名node: 节点名链路标识Traces Logs 共享trace_id: 链路 IDrequest_id: 请求 ID可选高 cardinality6.3 实践 3Grafana 三数据源配置在 Grafana 中添加三个数据源VictoriaMetrics类型 PrometheusURL: http://victoriametrics:8428VictoriaLogs类型 LokiURL: http://victoria-logs:9428VictoriaTraces类型 Tempo 或 JaegerURL: http://victoria-traces:94176.4 实践 4容量规划规模 VM VL VT 存储小规模 1 节点 1 节点 1 节点 1TB SSD中规模 3 节点 3 节点 3 节点 10TB SSD大规模 Cluster HA 部署 集群模式 100TB SSD6.5 实践 5vmui 统一入口vmui 提供统一的 Web 界面/#/exploreExploreMetrics指标发现/#/traceTracePage链路查看/#/custom-panel自定义 Dashboard