尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
使用 Jsonnet 配置 Grafana Mimir 的 ruler 组件
时序数据库后端数据存储可观测性云原生【免费下载链接】mimirGrafana Mimir provides horizontally scalable, highly available, multi-tenant, long-term storage for Prometheus.项目地址https://gitcode.com/gh_mirrors/mimir/mimir点击查看免费下载本指南讲解如何通过 Grafana Mimir 官方 Jsonnet 配置operations/mimir部署与配置可选组件 ruler从启用开关、对象存储后端选择与本地测试到 internal / remote 两种规则评估运行模式的切换以及实现零停机迁移到远程评估的完整步骤。阅读完本文你将掌握在 Kubernetes 上通过 Jsonnet 安全启用 ruler、为它选择合适的状态存储后端并完成远程评估架构的灰度切换。ruler 是可选组件Jsonnet 默认不部署ruler 负责评估 Prometheus 风格的 recording rules 与 alerting rules是多租户 Mimir 集群中的可选组件。在 Jsonnet 部署模式下它默认不会被部署operations/mimir/config.libsonnet中ruler_enabled的默认值即为false见 config.libsonnet而 ruler.libsonnet 中ruler_deployment、ruler_service、ruler_pdb等资源只有在ruler_enabled为true时才会被渲染。要启用 ruler在_config段中加入以下 Jsonnet 代码{ _config:: { ruler_enabled: true, ruler_storage_bucket_name: ruler-bucket-name, }, }其中ruler_storage_bucket_name是必须配置的项——config.libsonnet中该字段默认值为error must specify the ruler storage bucket name如果只开ruler_enabled而忘记指定 bucketJsonnet 渲染时就会直接报错从而避免部署出配置不完整的集群。ruler 状态存储后端的选择默认继承全局storage_backendruler 会把规则rule groups作为状态写入对象存储。默认情况下它使用的存储后端就是$._config.storage_backend所指定的后端——在 config.libsonnet 中可以看到ruler_storage_backend: $._config.storage_backend的继承关系。如果需要为 ruler 单独指定后端可以覆盖$._config.ruler_storage_backend选项。从源码看rulerStorageConfig会根据所选后端生成对应的 CLI 参数见 config.libsonnetgcs→ruler-storage.gcs.bucket-names3→ruler-storage.s3.bucket-nameazure→ruler-storage.azure.container-namelocal→ruler-storage.local.directoryruler_storage_backend的取值必须是local、azure、gcs或s3之一。当ruler_storage_backend与全局storage_backend不一致时Jsonnet 会自动额外追加ruler-storage.backendbackend参数将 ruler 的存储与全局存储解耦。先用 local 后端做初始测试在正式接入对象存储之前官方推荐使用local后端做快速验证{ _config:: { ruler_enabled: true, ruler_storage_backend: local, ruler_local_directory: /path/to/local/directory, }, }ruler_local_directory会映射为ruler-storage.local.directoryCLI 参数。需要特别注意的是local是只读后端它从本地文件系统读取规则文件每个租户的规则放在directory/TENANT ID目录下不支持通过配置 API 创建和删除规则。在 Kubernetes 场景下通常配合挂载到每个 ruler Pod 的 ConfigMap 来提供统一的规则文件且所有 ruler 副本必须看到相同的规则文件才能正常支持按规则组分片。使用对象存储时必须指定 bucket如果使用对象存储gcs/s3/azure必须把ruler_storage_bucket_name设置为你实际要使用的 bucket 名称例如{ _config:: { ruler_enabled: true, ruler_storage_backend: s3, ruler_storage_bucket_name: mimir-ruler-state, }, }凭据与公共配置不一致时的手动处理注意如果 ruler 对象存储的凭据与公共common配置中定义的不一致你需要通过额外的命令行参数手动提供这些凭据。具体可参考 Grafana Mimir 配置参数中ruler_storage一节configuration-parameters 的ruler_storage部分。这条约束同样适用于 alertmanager 等组件的存储配置Jsonnet 的storageConfig只负责把全局storage_backend的凭据渲染成common.storage.*参数ruler 独立指定后端后并不会自动获得一套新凭据需要运维层面显式补齐。两种运行模式internal 与 remoteruler 有两种规则评估的运行模式internal内部模式默认模式。ruler 进程内部内置了一个 querier直接连接 ingester 和 store-gateway 完成规则表达式求值规则结果通过配置的写路径写入。这种方式不会使用任何查询加速技术如果单次高基数查询的耗时超过评估间隔可能会导致 recording rules 产生数据空洞。remote远程模式ruler 把规则评估委托给 query-frontend从而完整复用 query-frontend 的查询加速能力如 query sharding。通信基于 gRPC可使用dns:///前缀实现客户端侧负载均衡。Jsonnet 默认按 internal 模式部署 ruler。要启用 remote 模式在 Jsonnet 中加入{ _config:: { ruler_remote_evaluation_enabled: true, }, }remote 模式会新增三条独立的查询路径注意为了支撑 remote 运行模式配置会额外生成三个 Kubernetes Deployment作为一套独立的查询路径ruler-query-frontendruler-query-schedulerruler-querier从 ruler-remote-evaluation.libsonnet 的源码可以看到这套独立路径的完整接线ruler → ruler-query-frontendruler 通过ruler.query-frontend.address指向 headless Servicedns:///ruler-query-frontend-headless.namespace.svc.cluster_domain:9095并使用ruler.query-frontend.grpc-client-config.grpc-max-recv-msg-size限制接收的查询响应大小。ruler-query-frontend → ruler-query-schedulerfrontend 通过 scheduler 的 discovery Service 发现 scheduler并挂上专属 ring 前缀ruler-querier/。ruler-querier复用标准 querier 的参数$.querier_args但使用专属的 scheduler 地址、独立的querier.ring.prefixruler-querier/并且GOMAXPROCS不参与动态调整以降低规则评估被延迟的风险。这套路径上的细节值得注意均来自 ruler-remote-evaluation.libsonnetruler-query-frontend关闭了结果缓存query-frontend.cache-results: false因为规则评估场景下结果缓存没有收益但缓存仍可用于存储基数估算。gRPC 并发流上限从默认 100 提升到server.grpc-max-concurrent-streams: 300以容纳大型 query-frontend 评估大量规则时的并发连接。默认的单次查询响应上限为ruler_remote_evaluation_max_query_response_size_bytes: 100 * 1024 * 1024100 MiB该值同时驱动 frontend 的收/发消息大小与 ruler 侧的接收消息大小。如果规则评估结果超出该上限ruler 日志会出现 gRPC received message larger than max 之类的报错此时只需调大这一项详见 mimir-runbooks 中相关的故障处理章节。当启用 ingest-storageKafka时还会依据该上限把 Kafka 生产者最大缓冲字节数钳制在 1 GiB4 GiB 之间见 ruler.libsonnet。在底层实现上pkg/ruler/remotequerier.go见 remotequerier.go注册了ruler.query-frontend.address参数地址必须以dns:///前缀才能启用 gRPC 客户端侧负载均衡且默认以 protobuf 格式ruler.query-frontend.query-result-response-formatprotobuf从 query-frontend 拉取查询结果。零停机迁移到 remote evaluation从 internal 迁移到 remote 规则评估可以做到零停机步骤如下第 1 步以迁移模式启用 remote evaluation部署以下变更开启 remote evaluation 的迁移模式。这一步会让上面提到的三个新 Deploymentruler-query-frontend、ruler-query-scheduler、ruler-querier启动但还不会把 ruler 重新配置为使用它们——旧查询路径照常运行{ _config:: { ruler_remote_evaluation_enabled: true, ruler_remote_evaluation_migration_enabled: true, }, }从源码看迁移模式由 ruler-remote-evaluation.libsonnet 中的useRulerQueryFrontend ruler_remote_evaluation_enabled !ruler_remote_evaluation_migration_enabled控制当迁移模式开启时ruler 不会写入ruler.query-frontend.address参数因此规则评估仍走内部路径但三个新 Deployment 已经全部渲染并启动处于预热就绪状态。仓库中的测试用例 test-ruler-remote-evaluation-migration.jsonnet 以及其生成的清单 test-ruler-remote-evaluation-migration-generated.yaml 可以印证这一点迁移模式下rulerDeployment 的参数中没有ruler.query-frontend.address而ruler-query-frontend、ruler-query-scheduler、ruler-querier三个 Deployment 已存在。第 2 步确认三个新 Deployment 的 Pod 全部就绪在进入下一步之前先检查以下 Deployment 的所有 Pod 都已成功启动ruler-query-frontendruler-query-schedulerruler-querier可以使用kubectl rollout status或观察kubectl get pods -l nameruler-query-frontend等方式确认就绪状态。这一步保证了切换后新的查询路径可以立即承接规则评估流量不出现评估空窗。第 3 步切换 ruler 到远程评估确认就绪后部署以下变更去掉迁移标志正式让 ruler 走远程评估路径{ _config:: { ruler_remote_evaluation_enabled: true, }, }切换后ruler 的参数中会追加ruler.query-frontend.addressdns:///ruler-query-frontend-headless.namespace.svc.cluster_domain:9095ruler 开始把规则查询委托给专属的ruler-query-frontend。由于 ruler 是 Deployment 滚动更新maxSurge: 50%、maxUnavailable: 0见 ruler.libsonnet新配置的 Pod 逐个替换旧 Pod整个过程中规则评估始终可用从而实现零停机迁移。常见配置速查以下 Jsonnet 片段汇总了本文涉及的配置项及说明默认值以 config.libsonnet 为准配置项默认值说明ruler_enabledfalse是否部署 rulerDeployment Service PDBruler_storage_backend继承storage_backendruler 状态存储后端取值local/azure/gcs/s3ruler_storage_bucket_name必填否则报错对象存储 bucket / container 名称ruler_local_directory必填使用 local 时本地规则文件目录映射为ruler-storage.local.directoryruler_remote_evaluation_enabledfalse是否启用远程评估额外部署三个组件ruler_remote_evaluation_migration_enabledfalse迁移模式部署新组件但暂不切换 rulerruler_remote_evaluation_max_query_response_size_bytes100 MiBruler 查询路径单次响应大小上限延伸阅读ruler 组件整体架构与运行模式详解ruler 组件文档部署实现源码ruler.libsonnet、ruler-remote-evaluation.libsonnet、config.libsonnet远程评估的 Jsonnet 测试与生成清单test-ruler-remote-evaluation.jsonnet、test-ruler-remote-evaluation-generated.yaml完整配置参数参考configuration-parameters赞分享时序数据库后端数据存储可观测性云原生【免费下载链接】mimirGrafana Mimir provides horizontally scalable, highly available, multi-tenant, long-term storage for Prometheus.项目地址https://gitcode.com/gh_mirrors/mimir/mimir点击查看免费下载相关推荐Grafana Mimir 使用 Jsonnet 配置对象存储后端S3、Azure 与 GCS 实战Grafana Mimir 使用 Jsonnet 配置对象存储后端S3、Azure 与 GCS 实战 在 Jsonnet 方式部署 Grafana Mimir时序数据库后端数据存储可观测性云原生OpenScreen麦克风设置增益调整与降噪技巧终极指南OpenScreen麦克风设置增益调整与降噪技巧终极指南 OpenScreen是一款强大的开源屏幕录制工具能够创建高质量演示视频完全免费且无水印。本文将详桌面应用音视频视频处理屏幕录制Grafana Mimir 通过 Jsonnet 配置 Ingest Storage 架构与 Kafka 连接参数Grafana Mimir 通过 Jsonnet 配置 Ingest Storage 架构与 Kafka 连接参数 本文以 Mimir 仓库中的官方 Jsonn时序数据库后端数据存储可观测性云原生创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

10个SketchForge效率技巧:视角切换、网格吸附与快速建模,你应该掌握的实战细节

10个SketchForge效率技巧:视角切换、网格吸附与快速建模,你应该掌握的实战细节

【免费下载链接】SketchForge-3D A local-first browser 3D design editor for building, cutting, importing STL files, and exporting models. 项目地址: https://gitcode.com/gh_mirrors/sk/SketchForge-3D 点击查看 免费下载 SketchForge 是一款 local-first …

📅 2026/10/15 16:48:33
UCGUI矢量字库移植:TrueType解析与动态缩放渲染实践

UCGUI矢量字库移植:TrueType解析与动态缩放渲染实践

简介:面向嵌入式GUI开发者的ucGUI矢量字库支持包,专注于解决资源受限环境下无法直接使用TrueType(TTF)矢量字体的痛点,适用于需要多语言、多字号及抗锯齿文本显示的小型交互设备。资源围绕字体解析、点阵生成、内存管理…

📅 2026/10/15 16:48:33
税制变更前的影子账套回归:代账 pipeline 怎么在规则上线前先跑一遍

税制变更前的影子账套回归:代账 pipeline 怎么在规则上线前先跑一遍

作者按:前几篇把 bookkeeping pipeline 拆到供给架构、failure mode、数电票/四流、ERP 对接、observability、WORM、可移植性、PII/RBAC、incident response、多租户隔离、票据 pipeline、规则引擎版本化。这一篇接规则版本化往下挖一层——规则改完不是 merge 就完…

📅 2026/10/15 16:43:31
MORE NEWS

更多资讯

📰

恶意软件分类数据集实战:从特征工程到模型训练避坑指南

简介:面向恶意软件检测与机器学习研究的数据集资源,适合安全分析人员、算法工程师及高校学生用于恶意软件分类模型训练与特征工程实践。压缩包共25个文件,约19.12MB,涵盖9个CSV特征表与标签文件、6个Python脚本、2个ASM汇编与2个B…

📰

DDS核心原理与QoS配置:分布式实时通信中间件实践指南

搞过机器人、自动驾驶或者工业控制这类分布式系统的人,大概率绕不开DDS这个名字。DDS全称是Data Distribution Service,数据分发服务,是一套面向分布式实时通信的中间件技术标准。它能解决的核心问题很直白:在几十个甚至上百个节点…

📰

CLRS 红黑树删除详解:RB-DELETE 与 RB-DELETE-FIXUP 全案例解析(《算法导论》第 3 版 13.4 节习题全解)

文档教程教育 【免费下载链接】CLRS 📚 Solutions to Introduction to Algorithms Third Edition 项目地址: https://gitcode.com/gh_mirrors/clr/CLRS 点击查看 免费下载 本文围绕《算法导论》第 3 版(Introduction to Algorithms, Third E…

📰

SoC低功耗设计核心:UPF电源意图建模与RTL编码铁律

简介:本资源是《Low Power Methodology Manual For System-On-Chip Design》权威英文原版手册的完整中文翻译,面向IC设计工程师、低功耗SoC架构师及高校微电子/集成电路方向高年级学生与研究生,系统解决深亚微米工艺下芯片功耗激增带来的封装…

📰

自适应模糊控制器设计:量化因子调整与工程实现全解析

简介:资源围绕模糊控制及自适应模糊器设计,面向自动化、智能控制方向的初学者与工程师,帮助理解模糊逻辑处理非线性系统的不确定性,并掌握MATLAB Simulink环境下的实现方法。包体共426个文件,涵盖MATLAB数据文件(mat)、…

📰

重言式判别程序课程设计:从语法树到真值表算法的Python实现

简介:重言式判别程序课程设计是面向数据结构课程实践的小型项目资料,适合计算机及相关专业学生参考布尔表达式与二叉树算法。资源围绕重言式(逻辑恒等式)判别问题,讲解如何用二叉树表示逻辑表达式,并以后序…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬