【云原生监控】 Grafana/Prometheus/Promtail/Loki/Tempo
Grafana/Prometheus/Promtail/Loki/Tempo监控栈文档Grafana / Prometheus / Promtail / Loki / Tempoloop-agent 的本地可观测性栈链路(trace) 日志(log) 指标(metric)三支柱统一在 Grafana 查询。Jaeger 已下线,由 Tempo 接管链路。1. 组件与职责组件版本职责地址容器内数据目录Grafana11.0.0统一查询/可视化 UI(三种数据源)http://localhost:3000/var/lib/grafanaTempo2.5.0链路(trace)后端,收 OTLP查询 :3200 / OTLP :4317,:4318/var/tempoLoki2.9.8日志(log)后端:3100/lokiPromtail2.9.8日志采集, 推给 Loki(无 UI) :9080/promtailPrometheus2.52.0指标(metric)后端,抓应用指标:9090/prometheusPushgateway1.9.0短命 CLI 批处理任务推指标的中转:9091(无状态)角色一句话Tempo 存链路、Loki 存日志、Prometheus 存指标、Promtail 送日志、Grafana 统一看。2. 数据流图3. 组件如何相互作用应用 → Tempo链路应用用 OpenTelemetry 走 OTLP gRPC 发到localhost:4317OTEL_EXPORTER_OTLP_ENDPOINT。每个 span 带gen_ai.*模型/token/prompt/completion等属性;根 spanturn.N带run_id/session_id/user_id/model。trace_id 带年月日见第 7 节。应用 → trace_archive → Promtail → Loki日志应用把每步事件写成./trace_archive/run_id.jsonl每行一个 JSON 事件。Promtail 挂载该目录、tail 新增行,解析 JSON 后把run_id、etype事件类型提为标签,推到 Loki 的/loki/api/v1/push。Kong → Prometheus指标应用本身不推业务指标;有价值的是 Kong 的/metrics各 key 的请求数/延迟/带宽,按 consumer 拆分。Prometheus 按prometheus.yml抓取。Grafana → 三个数据源Grafana 用 provisioning 预置了 Tempo / Loki / Prometheus 三个数据源(observability/grafana/provisioning/datasources/),开箱即用。trace ↔ log 关联关联键是run_id——它既是 Tempo 里turn.Nspan 的属性,又是 Loki 里日志的标签。Tempo 数据源配了tracesToLogsV2,在一条 trace 的根 span 上点 “Logs for this span” 会自动用{run_id...}跳到 Loki。4. 快速部署前置Docker Desktop。镜像(国内 Docker Hub 常拉不动,用 daocloud 镜像再 retag)for i in grafana/tempo:2.5.0 grafana/loki:2.9.8 grafana/promtail:2.9.8 \ grafana/grafana:11.0.0 prom/prometheus:v2.52.0 prom/pushgateway:v1.9.0; do docker pull docker.m.daocloud.io/$i docker tag docker.m.daocloud.io/$i $i done启动cd repo # 只起监控组件不启动没在用的 kong-dp-ai docker compose up -d tempo loki promtail prometheus grafana # 应用把链路发到 Tempo确认 .env # OTEL_EXPORTER_OTLP_ENDPOINThttp://localhost:4317 # LOOP_TRACE_DIR./trace_archive # 启动应用 uv run --env-file .env python -m service.app验证docker compose ps # 组件是否 Up curl -s http://localhost:3200/ready # Tempo ready curl -s http://localhost:3100/ready # Loki ready curl -s http://localhost:3200/api/search?q%7B%7Dlimit3 # 有没有 trace curl -s -G http://localhost:3100/loki/api/v1/query_range \ --data-urlencode query{servicecatalystm-loop-agent} # 有没有 log停止 / 清理docker compose stop tempo loki promtail prometheus grafana # 停,保留数据 docker compose down -v # 停并删卷(清空数据,谨慎)5. 数据持久化本地当前这套用 docker具名卷落盘,stop/restart不丢数据卷组件存什么保留期tempo-dataTempotrace 块(parquet) WAL48h(block_retention)loki-dataLoki日志 chunks 索引(boltdb-shipper)30 天(retention_period)prometheus-dataPrometheusTSDB 块15 天(默认)grafana-dataGrafanaSQLite(仪表盘/设置)永久promtail-positionsPromtail读取位点(读到哪)—保留期各自在 config 里调:observability/tempo/tempo.yaml、observability/loki/loki-config.yaml、Prometheus 启动参数--storage.tsdb.retention.time。备份某个卷docker run --rm -v catalystm-loop-agent_loki-data:/d -v $PWD/backup:/b \ alpine tar czf /b/loki-data.tgz -C /d .生产上正常怎么存Tempo / Loki把块和索引放对象存储(S3 / GCS / Azure Blob),本地只留 WAL。→ 天然持久、可水平扩展、成本低。Tempo 配storage.trace.backend: s3|gcs|azure;Loki 配storage_configschema_config指向对象存储(新版用 TSDB common.storage.object)。Prometheus数据盘用PV/PVC;长期存储 降采样用remote_write → Thanos / Mimir / Cortex(底层也是对象存储)。Grafana用外部数据库(Postgres/MySQL)替代 SQLite,支持多副本共享;数据源/仪表盘用 provisioning 版本化(本仓库已这么做)。k8s各组件挂 PVC,或直接用官方 Helm chart(Tempo/Loki 的 distributed 版 对象存储 backend)。6. 如何使用Grafana 匿名是 Viewer,看不到 Explore。先右上角Sign in → admin / admin。6.1 查链路 traceExplore → Tempo,TraceQL{ resource.service.name catalystm-loop-agent } # 全部 agent 链路 { span.run_id run-20260717-151046-141652900-20f4b8 } # 某次 run { span.session_id sess-20260717-... } # 某个会话(多轮) { name llm.chat span.gen_ai.request.model gpt-4o } # 某模型的 LLM 调用 { span.gen_ai.usage.output_tokens 500 } # 大输出的调用 { name ~ tool\\..* } # 所有工具检索点开 trace 看瀑布图 → 点llm.chatspan → 右侧看 model / tier / input/output tokens / prompt / completion。6.2 查日志 logExplore → Loki,LogQL{servicecatalystm-loop-agent} # 全部 {run_idrun-20260717-151046-141652900-20f4b8} # 某次 run 全过程 {run_idrun-..., etypedecide} # 只看 decide 事件 {servicecatalystm-loop-agent} | 美妆 # 全文过滤 {servicecatalystm-loop-agent} | json | line_format {{.type}} {{.data}} # 解析 JSON标签run_id(带日期的 run 号)、etype(plan/tool/observe/reflect/decide/…)、service、filename。6.3 查指标 metricExplore → Prometheus,PromQLkong_http_requests_total{servicellm-azure-openai} # 各路由请求数 sum by (consumer) (kong_http_requests_total) # 各 key(consumer)消耗 histogram_quantile(0.95, sum by (le) (rate(kong_request_latency_ms_bucket[5m]))) # p95 延迟6.4 trace ↔ log 互跳trace → logTempo 里打开 trace 的根 spanturn.N(带 run_id)→ “Logs for this span” → 自动{run_id...}跳 Loki。log → traceLoki 日志行里点run_id派生链接,或复制 run_id 去 Tempo 查{ span.run_id ... }。7. trace_id / run_id 约定OTEL trace_idTempo 里显示,32 hex带年月日YYYYMMDD(8)HHMMSS(6)微秒(6)随机(12),如2026071715104614165201d9ff16e960。每会话稳定不变。run_id / session_id业务号,trace_archive 文件名 / Loki 标签run-YYYYMMDD-HHMMSS-ns-rand。三者时间戳一致,可按时间对齐。8. 配置文件位置docker-compose.yml # 所有服务定义 卷 prometheus.yml # Prometheus 抓取配置 observability/ tempo/tempo.yaml # Tempo loki/loki-config.yaml # Loki promtail/promtail-config.yaml # Promtail(采集 ./trace_archive) grafana/provisioning/datasources/{tempo,loki,prometheus}.yml # Grafana 数据源(含关联) dashboards/ # 预置仪表盘(挂载)9. 排查docker compose ps # 谁没起来 docker logs catalystm-loop-agent-promtail-1 # promtail 有没有在推 docker logs catalystm-loop-agent-tempo-1Explore 里没有 Tempo/Loki → 先登录 admin/admin(Viewer 看不到 Explore)。Loki 查不到某次 run → 确认./trace_archive/run.jsonl存在,且LOOP_TRACE_DIR./trace_archive(promtail 挂的就是这个目录)。Tempo 刚跑完查不到 → 等 10–30 秒(ingester 切块后才可搜)。拉不到镜像 → 用docker.m.daocloud.io/image前缀再 retag(Docker Hub 在国内常 EOF)。

相关新闻

Duix.Avatar完整实战指南:零基础掌握免费开源AI数字人克隆神器

Duix.Avatar完整实战指南:零基础掌握免费开源AI数字人克隆神器

Duix.Avatar完整实战指南:零基础掌握免费开源AI数字人克隆神器 【免费下载链接】Duix-Avatar 🚀 Truly open-source AI avatar(digital human) toolkit for offline video generation and digital human cloning. 项目地址: https://gitcode.com/GitHu…

2026/8/8 10:14:34 阅读更多 →
micro-github:3分钟实现GitHub登录集成的终极微服务方案

micro-github:3分钟实现GitHub登录集成的终极微服务方案

micro-github:3分钟实现GitHub登录集成的终极微服务方案 【免费下载链接】micro-github A tiny microservice that makes adding authentication with GitHub to your application easy. 项目地址: https://gitcode.com/gh_mirrors/mi/micro-github micro-gi…

2026/8/11 11:46:17 阅读更多 →
Vibram与Agility Robotics合作:为双足机器人打造智能鞋底,重塑足地交互

Vibram与Agility Robotics合作:为双足机器人打造智能鞋底,重塑足地交互

1. 项目概述:当顶级鞋底科技遇见双足机器人如果你关注过户外徒步或者越野跑,大概率听说过“Vibram”这个牌子——那个黄色八角形的Logo,几乎就是高性能橡胶鞋底的代名词。从登山靴到城市通勤鞋,Vibram的黄金大底以其卓越的抓地力、…

2026/8/9 11:37:44 阅读更多 →

最新新闻

解决Qt/MSVC项目LNK2019链接错误:从编译原理到第三方库配置实战

解决Qt/MSVC项目LNK2019链接错误:从编译原理到第三方库配置实战

1. 项目概述与问题定位最近在接手一个遗留的Qt/VS C混合工程时,遇到了一个非常典型的链接错误,相信不少在Windows平台下做C开发的朋友都踩过这个坑。错误信息是DataCollector.obj:-1: error: LNK2019: 无法解析的外部符号 “bool __cdecl bSpcMInitCardB…

2026/8/11 15:32:49 阅读更多 →
QQ空间导出助手:三步永久备份你的青春记忆,简单免费教程

QQ空间导出助手:三步永久备份你的青春记忆,简单免费教程

QQ空间导出助手:三步永久备份你的青春记忆,简单免费教程 【免费下载链接】QZoneExport QQ空间导出助手,用于备份QQ空间的说说、日志、私密日记、相册、视频、留言板、QQ好友、收藏夹、分享、最近访客为文件,便于迁移与保存 项目…

2026/8/11 15:32:49 阅读更多 →
大模型对话前端第一版:先跑通流式响应和取消

大模型对话前端第一版:先跑通流式响应和取消

大模型对话前端第一版:先跑通流式响应和取消 第一版大模型对话界面先验证一条主链路:接收流式响应、正确解码、可取消地渲染,并在异常时给出可恢复的提示。本文以流式 Markdown 的前端实现为例,讨论这条链路的最小边界。 fetch 与…

2026/8/11 15:32:49 阅读更多 →
PostgreSQL动态分区裁剪技术:查询性能优化解析

PostgreSQL动态分区裁剪技术:查询性能优化解析

摘要在海量时序数据、业务流水日志、订单交易记录等大表业务场景中,PostgreSQL分区表是解决单表数据量过大、查询延迟攀升、运维成本过高的核心方案。分区裁剪作为分区表查询的核心优化技术,可精准过滤无关分区、避免全分区扫描,大幅缩减IO开…

2026/8/11 15:32:49 阅读更多 →
UTS集群调度系统架构与数据库任务优化实践

UTS集群调度系统架构与数据库任务优化实践

1. UTS集群调度系统的架构演进 UTS(Unified Task Scheduler)作为新一代分布式任务调度平台,其核心架构经历了三次重大迭代。最新版本采用混合调度策略,将中心化调度与分布式调度有机结合,形成了独特的双层调度体系。 …

2026/8/11 15:32:49 阅读更多 →
Unity3D RPG开发实战:从Dungeon Breaker Starter Kit学习商业级游戏架构

Unity3D RPG开发实战:从Dungeon Breaker Starter Kit学习商业级游戏架构

1. 项目概述与核心价值如果你正在寻找一个能让你快速上手Unity3D RPG游戏开发,并且希望深入理解一个商业级项目是如何从零到一构建起来的,那么Dungeon Breaker Starter Kit(以下简称DBSK)绝对是一个不可多得的宝藏。这不仅仅是一套…

2026/8/11 15:31:49 阅读更多 →

日新闻

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南 【免费下载链接】video2x A machine learning-based video super resolution and frame interpolation framework. Est. Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trending/vi/v…

2026/8/11 0:00:02 阅读更多 →
前后端分离项目中控制台与接口工具数据差异排查指南

前后端分离项目中控制台与接口工具数据差异排查指南

1. 问题现象解析:控制台与Apifox的数据差异 最近在调试一个前后端分离项目时,遇到了一个典型问题:后端服务在本地开发环境控制台能正常输出查询数据,但通过Apifox测试时却返回空结果。这种"控制台有数据,接口工具…

2026/8/11 0:00:03 阅读更多 →
AI编程实战:从Claude Code踩坑到游戏开发入门

AI编程实战:从Claude Code踩坑到游戏开发入门

1. 从“AI能帮我做游戏”到“AI让我重新学编程”最近身边不少朋友,尤其是一些非技术背景、但对游戏开发有浓厚兴趣的朋友,都在问我同一个问题:“听说现在用Claude Code这种AI编程工具,小白也能做游戏了,是真的吗&#…

2026/8/11 0:00:03 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/11 1:08:05 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/11 1:08:05 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/11 1:08:05 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/10 17:07:33 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/11 1:08:06 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/10 17:07:33 阅读更多 →