新闻详情

新闻详情

首页 / 资讯中心 / 详情

用 OpenTelemetry 给 RustFS 做可观测性:traces/metrics 接入 Prometheus + Grafana

发布时间:2026/9/28 4:50:30来源:尧图网络
用 OpenTelemetry 给 RustFS 做可观测性:traces/metrics 接入 Prometheus + Grafana
一次线上排障对象存储的 PUT 延迟忽然爬升你打开 Prometheus 想看rustfs_*指标结果/metrics返回 404。这不是你配错了它默认根本不在 9000/9001 上吐 Prometheus 文本端点。官方可观测性文档写得很直白这个存储端通过 OTLP 推送指标、追踪和日志不提供原生 Prometheus 抓取端点。要把指标导进 Prometheus必须跑一个 OpenTelemetry Collector由它接收 OTLP 数据再以 Prometheus 格式重新公开。这个设计把暴露什么和往哪发解耦开了代价是标准的scrape_configs直接指存储端抓不到东西。本文把这条链路一次接通。推送式遥测的路由逻辑它的遥测是一条推送式管道指标、追踪、日志都从存储进程里发出来经 OTLP 交给外部的 Collector再由 Collector 分发到 Prometheus、Loki、Tempo 这些后端。路由是环境驱动的启动时定一次运行期行为稳定。日志的去向最能说明这套逻辑没设RUSTFS_OBS_LOG_DIRECTORY时日志走 stdout容器交给日志驱动systemd 主机上 journald 直接可查设成目录就写本地轮换文件轮换行为由RUSTFS_OBS_LOG_FILENAME、RUSTFS_OBS_LOG_ROTATION_SIZE_MB等几个变量控制设成带://的 URL 则发往远程端点。所以监控接不上的第一类原因往往是每个节点都漏设了RUSTFS_OBS_ENDPOINT分布式部署里漏一台Prometheus 里就少那台的指标。日志这条出口还有个要提前算账的点本地落盘和 OTLP 推送是互不干涉的两条路官方可观测性文档专门给过一个同时设RUSTFS_OBS_LOG_DIRECTORY/var/log/rustfs/和RUSTFS_OBS_ENDPOINT的示例标题就写着文件日志加 OTLP 导出。两边同时开磁盘写入和多一次网络传输就是两份开销目录还有RUSTFS_OBS_LOG_MAX_TOTAL_SIZE_BYTES的容量预算管着上线前按日志量估一下比事后清盘省事。配置 OTLP 推送每个节点都要设同一个 OTLP 根端点。官方示例给的是http://otel-collector:4318注释里也交代了端口的来历Collector 的 HTTP 接收器默认端口是 4318gRPC 接收器默认端口是 4317。下面是官方文档给出的核心变量exportRUSTFS_OBS_ENDPOINThttp://otel-collector:4318exportRUSTFS_OBS_METRICS_EXPORT_ENABLEDtrueexportRUSTFS_OBS_TRACES_EXPORT_ENABLEDtrueexportRUSTFS_OBS_LOGS_EXPORT_ENABLEDtrueexportRUSTFS_OBS_METER_INTERVAL15sexportRUSTFS_OBS_SERVICE_NAMErustfs-prodexportRUSTFS_OBS_ENVIRONMENTproduction三个信号各有独立的导出开关RUSTFS_OBS_METER_INTERVAL控制指标导出间隔按抓取节奏调整。如果需要让某个信号走不同的端点官方提供了RUSTFS_OBS_TRACE_ENDPOINT、RUSTFS_OBS_METRIC_ENDPOINT、RUSTFS_OBS_LOG_ENDPOINT三个覆盖变量不设就统一回落到根端点。RUSTFS_OBS_SERVICE_NAME和RUSTFS_OBS_ENVIRONMENT会作为资源属性附加到导出的遥测数据上官方指标参考也提了一句Collector 和 Prometheus 可能再补上service_name之类的资源标签。跑多套集群时如果几套的这两个值取一样的落到 Prometheus 里的曲线就只剩 collector 侧附加的实例标签能分辨定位问题时很难判断某条线来自哪一套所以每套集群给不同的RUSTFS_OBS_SERVICE_NAME成本是一行环境变量。部署 Collector 与 Prometheus/GrafanaCollector 收 4317gRPC/4318HTTP用 prometheus exporter 在 8889 重新暴露应用指标Collector 自己也有 8888 给运维看。端口这块有个容易拧错的地方RUSTFS_OBS_ENDPOINT官方定位就是 OTLP/HTTP 的根端点示例一律写 4318。照着 gRPC 的 4317 填进去请求会打在 gRPC 接收器上HTTP 路径匹配不上指标就出不来。换传输协议得动 Collector 那边的接收器配置改这个数字解决不了。上游仓库docker-compose.yml的 observability profile 提供了完整参考栈otel-collector、Prometheus、Grafana、Loki、Tempo、Jaeger先看看接收端这段结构receivers:otlp:protocols:grpc:{endpoint:0.0.0.0:4317}http:{endpoint:0.0.0.0:4318}exporters:prometheus:endpoint:0.0.0.0:8889service:pipelines:metrics:{receivers:[otlp],exporters:[prometheus]}上面这段是为了省篇幅摘出来的指标链路。官方参考栈里 Collector 的实际配置不止这些traces 经 OTLP 导给 Tempo 和 Jaegerlogs 经otlphttp/loki导给 Loki走到 prometheus exporter 的只有 metrics。三条 pipeline 各自独立少配一条对应信号就断在 Collector 这一跳节点侧不会报错只会什么都没有。要一次把日志和链路都收进来直接取参考栈.docker/observability/下那份完整配置别从这段改着用。Prometheus 抓的是 Collector 的 8889不是 RustFSscrape_configs:-job_name:rustfs-app-metricsstatic_configs:-targets:[otel-collector:8889]-job_name:otel-collectorstatic_configs:-targets:[otel-collector:8888]指标名以rustfs_开头Grafana 直接建面板即可。官方文档给了一份经过源码验证的指标参考和配套的建议告警节点超过 2 分钟未就绪盯rustfs_runtime_readiness_ready重启循环看rustfs_start_total的十分钟增量修复积压盯rustfs_heal_task_running和rustfs_heal_queue_delay_seconds容量水位用rustfs_capacity_current_bytes和你设置的原始容量做比值。照着配不用从零设计。运维要盯的边界第一RustFS 不在 9000/9001 暴露/metricsPrometheus 必须抓 Collector 的 8889直接指存储端会一直 404。如果 Prometheus 里没有rustfs_*序列官方给的排查顺序是确认每个节点都设了RUSTFS_OBS_ENDPOINT、节点能访问 Collector、Prometheus 抓的是 8889。第二每磁盘用量和磁盘在线/离线状态目前经控制台和管理 API 公开而不是走专用 OTLP 指标。要做每磁盘水位告警得自己写导出器轮询管理 API或者直接看控制台仪表板。第三trace 走 W3C Trace Contexttraceparent/tracestate跨服务能串起来但前提是链路里每个服务都注入了 propagator。排障时如果单条 trace 看不到先确认是不是导出开关没开再确认 Collector 的 4318 是否可达别急着怀疑丢数据。第四这条链路是推送式的方向由存储进程主动发起指向 Collector属于出站流量。防火墙只放行 9000/9001 入站是常见的默认4317/4318 的出站方向忘了开Collector 那边收不到任何东西节点侧也不报错。证书这一层要往前挪一步想。官方参考 compose 是为内网测试准备的exporter 一律写tls: insecure: true跳过校验照原样搬进生产等于把遥测明文放在内网里也别拿它对公网收数据。真要启用 TLS先在 Collector 的接收器上配好证书同时确认节点那侧认不认这张证书。可观测性那批环境变量里没有管 OTLP 证书校验的官方给的出站信任开关在 TLS 一节RUSTFS_TRUST_SYSTEM_CA让出站 TLS 连接同时信任操作系统 CA 存储RUSTFS_TRUST_LEAF_CERT_AS_CA把自签的叶证书当 CA 认后者描述里直接写了用于自签名配置两个都默认关闭。Collector 用自签证书而这两个开关没开握手就过不去业务侧依然没有报错只能从 exporter 的日志里翻。第五推送模式的坑压在存活告警上而且就出在这个就绪指标自己身上。rustfs_runtime_readiness_ready报的是节点就绪状态它本身也是经 OTLP 推送出去的。节点进程崩掉或者网络隔离之后这条序列不再更新Prometheus 里留着断线前的最后一次取值于是那条rustfs_runtime_readiness_ready 0的告警规则反而不成立节点完全失联的时候看上去一切正常。存活检测因此不能只压在业务指标上得用从外部主动发起的探测。官方建议告警表把两条并列写出一条盯指标持续两分钟另一条是外部探针GET /health/ready返回非 200。这个端点不是凑出来的RUSTFS_HEALTH_ENDPOINT_ENABLE默认开着作用就是注册/health和/health/ready两个无需鉴权的探测端点就绪结果还带一秒缓存。探针由监控侧主动打不经过推送链路节点失联照样拿得到答案。落这套栈的最小动作给每个节点加RUSTFS_OBS_ENDPOINT指向 Collector 4318用上面的配置起 otel-collectorPrometheus 抓 8889Grafana 按官方告警建议建面板。上线后把三条信号在 Grafana 里关联起来排障时日志、指标、trace 互相跳转比单看任何一个都快。RustFS 已于 2026 年 9 月 16 日发布 1.0.0 正式版本文的变量名与端口均出自官方可观测性文档代码在 GitHub 的 rustfs/rustfs 仓库参考栈的 compose 文件可以直接拉下来跑。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

基本网络架构图报价单:3种档位拆解,帮你省下30%预算 2026/9/28 5:57:49

基本网络架构图报价单:3种档位拆解,帮你省下30%预算

基本网络架构图报价单:3种档位拆解,帮你省下30%预算 手里有代码基础却卡在部署环节,想自己搞定网站却总被服务器配置劝退?别慌,这种“半路出家”的纠结太常见了。很多从设计转前端的朋友,或者自学编程的创业者,最容易在“基本网络架构图”这一环掉…

阅读更多 →
高校固定资产管理系统:SpringBoot+Vue全生命周期管理实战 2026/9/28 5:57:49

高校固定资产管理系统:SpringBoot+Vue全生命周期管理实战

1. 高校固定资产到底难在哪:先想清楚系统要解决什么问题我见过太多人拿到"固定资产管理系统"这个题目,上来就建表、写CRUD,结果代码写了一堆,答辩时被老师问"你这个系统解决了什么实际问题"就卡壳了。其实这类…

阅读更多 →
一口气讲清楚 Agent、RAG、Skill、MCP:用 TaoToken 统一 Key 打通四层能力 2026/9/28 5:57:49

一口气讲清楚 Agent、RAG、Skill、MCP:用 TaoToken 统一 Key 打通四层能力

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
OpenClaw接入飞书全指南:Linux+Docker从零搭建智能体机器人 2026/9/28 5:57:49

OpenClaw接入飞书全指南:Linux+Docker从零搭建智能体机器人

很多人第一次听说 OpenClaw 是在某个技术群里,看到有人发了一张飞书对话框里 AI 自动回复的截图,第一反应是“又是什么花活”,第二反应就是“这东西怎么跑起来的”。我最初也是这么入坑的,花了差不多两个晚上才把 Linux 服务器上的…

阅读更多 →
医学图像2D分割数据集构建:冠状面与矢状面切片策略 2026/9/28 5:57:49

医学图像2D分割数据集构建:冠状面与矢状面切片策略

简介:本资源是面向医学图像分割初学者与算法工程师的高质量2D脾脏分割数据集,源自公开3D脾脏分割数据,在冠状面与矢状面两个解剖视角下精细抽取并严格筛选(剔除前景占比低于0.1%的样本),专用于训练和验证轻…

阅读更多 →
莆田seo全网营销图解步骤:3步搞定零代码建站 2026/9/28 5:57:43

莆田seo全网营销图解步骤:3步搞定零代码建站

莆田seo全网营销图解步骤:3步搞定零代码建站 很多老板问我,自己不会代码,想做网站搞莆田seo全网营销,是不是得花大价钱请团队?其实不然。我见过太多企业因为不懂技术,被外包坑得底裤都不剩。今天用 图解步骤…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉