深入探索 Prometheus:自定义服务发现与扩展
1. 自定义服务发现的必要性与方案
在使用 Prometheus 时,尽管有许多可用的服务发现选项,但仍有大量系统或服务提供商无法直接支持。针对这种情况,有以下几种选择:
- 向 Prometheus 提出特性请求,期望社区或维护者实现对特定服务发现的支持。
- 自行在 Prometheus 中实现服务发现集成,可选择维护一个分支或将其贡献回项目。
- 找到一种方法,以最小的维护工作和时间成本将所需目标导入 Prometheus 实例,而不依赖 Prometheus 的路线图。
前两种选择存在不足,要么超出我们的控制范围,要么维护起来繁琐。而且,在没有足够兴趣和社区支持的情况下,向 Prometheus 添加额外的服务发现集成会给维护者带来不必要的负担,目前维护者也不接受新的集成。幸运的是,有一种方法可以轻松集成任何类型的服务或实例目录,无需维护昂贵的分支或进行复杂的修改。
1.1 自定义服务发现基础
推荐的自定义服务发现集成方式是基于文件的服务发现(file_sd)。实现这种集成的方式是让一个进程(本地或远程、定时或永久运行)查询数据源(目录、API、数据库、配置管理数据库等),然后将所有目标及其相应标签以 JSON 或 YAML 格式写入 Prometheus 可访问的路径下的文件。Prometheus 会通过磁盘监控自动读取该文件,或者按计划读取,从而实现动态更新可抓取的目标。
下面是自定义服务发现的工作流程:
graph LR
A[进程查询数据源] --&
超级会员免费看
订阅专栏 解锁全文
9221

被折叠的 条评论
为什么被折叠?



