24.3 基于文件的服务发现模式
本节重点介绍 :
- 基于文件的服务发现提供了一种配置静态目标的更通用的方法
- 可以摆脱对特定服务发现源的依赖
- 通常的做法是调用内部CMDB的接口获取target数据,打上标签,生成json文件发给prometheus采集
基于文件的服务发现模式
解决的问题
- 之前手动配置了很多个traget
- redis
- mysql
- blackbox
- pushgateway
- 手动配置维护成本高,还容易出错
基于文件的服务发现配置
- 文档地址
特点
- 基于文件的服务发现提供了一种配置静态目标的更通用的方法
- 并充当了插入自定义服务发现机制的接口。
- 摆脱对特定服务发现源的依赖
- 只要能正确给出 json/yaml文件即可
- 和服务树的最好匹配方案
yaml文件类型
- yaml
YAML yaml - targets: [ - '<host>' ] labels: [ <labelname>: <labelvalue> ... ]
- 举例
- targets: - 172.20.70.205:9100- 172.20.70.215:9100labels:account: "aliyun-01" region: "ap-south-1"
json文件类型
json [ { "targets": [ "<host>", ... ], "labels": { "<labelname>": "<labelvalue>", ... } }, ... ]
- 举例
[{"targets": ["172.20.70.205:9100"],"labels": {"account": "aliyun-01","region": "ap-south-1","env": "prod","group": "inf","project": "monitor","stree_gpa": "inf.monitor.prometheus"}},{"targets": ["172.20.70.215:9100"],"labels": {"account": "aliyun-02","region": "ap-south-2","env": "prod","group": "inf","project": "middleware","stree_gpa": "inf.middleware.kafka"}}
]
下面来解读一下
- targets 是一组实例地址的列表
- labels 是这组实例的标签,应用到列表中所有实例
- 如果想每个实例不同的标签,可以将targets列表保留一个实例即可
- 标签可以自定义,下面举几个例子
- account 代表公有云账户,多账户情况
- region 代表区域
- env 代表所属环境 prod代表生产,pre代表预发,test代表测试
- group代表业务大组
- project 代表项目
- stree_gpa 代表服务树三级标签
- 那么prometheus在采集对应target时就会将对应标签打入其metrics中
- 为后续我们按照标签过滤提供方便
配置举例
- files 代表 文件路径 支持通配符
- refresh_interval 代表 文件刷新间隔
- job_name: 'node_exporter'scrape_interval: 30sscrape_timeout: 10smetrics_path: /metricsscheme: httphonor_timestamps: falsefile_sd_configs:- files:- /opt/app/prometheus/sd/node_exporter.jsonrefresh_interval: 5m
改造为服务发现类型
- 将 blackbox-http 和 node_exporter 改为文件发现
- prometheus 配置
- job_name: 'blackbox-http'metrics_path: /probe# 传入的参数params:module: [http_2xx] # Look for a HTTP 200 response.scrape_interval: 15sscrape_timeout: 10sscheme: httphonor_timestamps: falsefile_sd_configs:- files:- /opt/app/prometheus/sd/blackbox_http.jsonrefresh_interval: 2mrelabel_configs:- source_labels: [__address__]target_label: __param_target- source_labels: [__param_target]target_label: instance- target_label: __address__replacement: 172.20.70.205:9115 - job_name: 'node_exporter'# metrics的path 注意不都是/metrics# 传入的参数scrape_interval: 30sscrape_timeout: 10sscheme: httphonor_timestamps: falsefile_sd_configs:- files:- /opt/app/prometheus/sd/node_exporter.jsonrefresh_interval: 2m
- 创建sd目录
mkdir -pv /opt/app/prometheus/sd/
- 写入json文件
cat <<EOF > /opt/app/prometheus/sd/node_exporter.json
[{"targets": ["172.20.70.205:9100"],"labels": {"name": "prome-master01","account": "aliyun-01","region": "ap-south-1","env": "prod","group": "inf","project": "monitor","stree_gpa": "inf.monitor.prometheus"}},{"targets": ["172.20.70.215:9100"],"labels": {"name": "prome-node01","account": "aliyun-02","region": "ap-south-2","env": "prod","group": "inf","project": "middleware","stree_gpa": "inf.middleware.kafka"}}
]
EOFcat <<EOF > /opt/app/prometheus/sd/blackbox_http.json
[{"targets": ["172.20.70.205:9115","http://prometheus.io","http://www.baidu.com","https://www.baidu.com"]}
]
EOF
- reload prometheus
- 观察target页面 和 sd结果页面

- 修改文件 blackbox_http.json 新增 https://github.com/ 的探测

cat <<EOF > /opt/app/prometheus/sd/blackbox_http.json
[{"targets": ["172.20.70.205:9115","http://prometheus.io","http://www.baidu.com","https://www.baidu.com","https://github.com/"]}
]
EOFcurl -X POST http://localhost:9090/-/reload
本节重点总结 :
- 基于文件的服务发现提供了一种配置静态目标的更通用的方法
- 可以摆脱对特定服务发现源的依赖
- 通常的做法是调用内部CMDB的接口获取target数据,打上标签,生成json文件发给prometheus采集
相关文章:
24.3 基于文件的服务发现模式
本节重点介绍 : 基于文件的服务发现提供了一种配置静态目标的更通用的方法可以摆脱对特定服务发现源的依赖通常的做法是调用内部CMDB的接口获取target数据,打上标签,生成json文件发给prometheus采集 基于文件的服务发现模式 解决的问题 之前手动配置…...
【Java】面向UDP接口的网络编程
【Java】面向UDP接口的网络编程 一. 基本通信模型二. APIDatagramSocketDatagramPacket 三. 回显服务器/客户端示例服务器客户端总结 一. 基本通信模型 UDP协议是面向数据报的,因此此处要构建数据报(Datagram)在进行发送。 二. API DatagramSocket DatagramSocke…...
SRS服务器搭建
1、配置 listen 1935; max_connections 1000; #srs_log_tank file; #srs_log_file ./objs/srs.log; daemon on; http_api { enabled on; listen 1985; } http_server { enabled on; listen 808…...
iMazing只能苹果电脑吗 Win和Mac上的iMazing功能有区别吗
在当今数字时代,管理和备份手机数据变得越来越重要。无论是转移照片、备份短信,还是管理应用程序,一个强大的工具可以大大简化这些操作。iMazing作为一款备受好评的iOS设备管理软件,已经成为许多用户的选择。但是,许多…...
ChatGPT可以分析股票吗?
结合国庆前大A股市的小波牛市以及今天的股市表现,我从多个角度为你提供一些分析和建议: 一、国庆前的小波牛市分析 国庆前,大A股市出现了一波小幅上涨,市场呈现出一些积极的信号: 政策面利好:政府出台了…...
Dockerfile搭建镜像
Dockerfile搭建镜像的优势与区别 引言 在现代软件开发与运维中,容器化技术日益普及,而Docker作为最流行的容器化平台之一,通过Dockerfile提供了一种灵活、自动化的方式来构建Docker镜像。Dockerfile使得镜像的构建过程可重复、可版本化&…...
Kubernetes-Kind篇-01-kind搭建测试集群
1、Kind 介绍 官方文档地址:https://kind.sigs.k8s.io/ github仓库地址:https://github.com/kubernetes-sigs/kind 国内镜像仓库地址:https://gitcode.com/gh_mirrors/ki/kind/overview kind 是一种使用 Docker 容器 nodes 运行本地 Kubern…...
在UniApp中高效处理大量文件请求的策略
在开发跨平台应用时,尤其是在使用UniApp这样的框架时,我们可能会遇到需要同时请求多个文件的情况。然而,不加节制地同时发起大量请求可能会带来严重的性能问题,如界面卡顿、内存溢出、网络带宽饱和等。本文将探讨如何在UniApp中高…...
docker compose入门4—常用命令
在使用 Docker Compose 管理多容器应用时,常见的命令帮助我们高效地管理容器的生命周期、服务、日志等。以下是一些常用的 Docker Compose 命令及其详细讲解: 1. docker-compose up 这个命令用于启动定义在 docker-compose.yml 文件中的服务。 用法&am…...
wps文本框文字居中对齐
直接点对齐里的水平居中,垂直居中是将文本框水平垂直居中,文字不会居中 将文本框里的文字居中: 垂直居中: 水平居中:...
注册信息页面
知识点: !+Enter 直接生成前端基本框架 1.<h1></h1> (2,3,4,5) 表示各级标题 2.<form></form> 表单建立 3.<input type" "></input> 表格(表单嵌套表格) type属…...
详解Java中的BIO、NIO、AIO
1、 详解Java中的BIO、AIO、NIO 1.1、引言 IO流是Java中比较难理解的一个知识点,但是IO流在实际的开发场景中经常会使用到,比如Dubbo底层就是NIO进行通讯。本文将介绍Java发展过程中出现的三种IO:BIO、NIO以及AIO,重点介绍NIO。…...
CAN和CANFD如何转换和通信
随着科技的发展,汽车电子和工业领域中CAN通信需要承载数据量也越来越大,传统CAN通信有了向CANFD通信过渡的倾向。在实现过渡的过程中可能会出现自己设备是CAN通信,客户设备是CANFD通信的情况,或者自己设备是CANFD通信,…...
QDateTimeEdit Class
Header:#include qmake:QT += widgets Inherits:QAbstractSpinBox Inherited By:QDateEdit and QTimeEdit Public Types enum Section {NoSection, AmPmSection, MSecSection, SecondSection, MinuteSection, …, YearSection } flags SectionsProperties calendarPopu…...
Windows环境安装CentOS7
【注意】安装CentOS需要先安装Vmware虚拟机 【下载前准备】 一、下载CentOS 7镜像文件阿里云镜像开源,点击跳转 二、安装VMware(17): a. 官网,点击跳转 b. 许可证:JU090-6039P-08409-8J0QH-2YR7F 安装V…...
用docker启动mysql步骤
以下是在 Docker 中启动 MySQL 的详细步骤: **一、拉取 MySQL 镜像 ** 1. 打开终端,确保 Docker 服务正在运行。可以使用以下命令检查 Docker 服务状态: sudo systemctl status docker 2. 使用以下命令拉取 MySQL 官方镜像: d…...
[Linux] Linux 初识进程地址空间 (进程地址空间第一弹)
标题:[Linux] Linux初识进程地址空间 个人主页水墨不写bug (图片来源于AI) 目录 一、什么是进程地址空间 二、为什么父子进程相同地址的变量的值不同 三、初识虚拟地址、页表 一、什么是进程地址空间 其实,在很久之前…...
力扣21~25题
21题(简单): 分析: 按要求照做就好了,这种链表基本操作适合用c写,python用起来真的很奇怪 python代码: # Definition for singly-linked list. # class ListNode: # def __init__(self, v…...
04. prometheus 监控 Windows 服务器
prometheus 监控 Windows 服务器 1. 下载安装 Windows_exporter 安装包下载:https://github.com/prometheus-community/windows_exporter/releases 下载 msi 版本,上传至要监控的 Windows 服务器,双击安装即可,exporter 会自动…...
【机器学习】——决策树以及随机森林
文章目录 1. 决策树的基本概念与结构1.1 决策树的构建过程 2. 决策树的划分标准2.1 信息增益(Information Gain)2.2 信息增益比(Information Gain Ratio)2.3 基尼指数(Gini Index)2.4 均方误差(…...
iOS 版本nethack如何更换图形包-iNetHack2
这个iNetHack2这个应该我都没有找到设置按钮。后来无意中在贴吧中看到的。原来它的设置竟然在iOS的系统设置之中,是我少见多怪了,这可能是我见过的App 第1个在系统设置中设置的。UI中的Tileset 设置成Tiles32的界面风格就与nethack官方的UI一致了。...
视频号推客模式系统小程序开发
开发一个基于微信视频号的推客模式系统小程序,需要结合微信生态的开放能力和推客(分销)模式的业务逻辑。以下是关键开发要点:微信小程序与视频号打通通过微信开放平台的JS-SDK实现小程序与视频号的互联互通。调用wx.openChannelsA…...
OLED多级菜单移植与设计实战
1. 低成本嵌入式项目的OLED多级菜单设计 第一次接触OLED多级菜单是在一个智能温控器的DIY项目里。当时为了给设备做个简单的交互界面,我试过各种方案,最后发现0.96寸的OLED屏配上多级菜单是最经济实惠的选择。这种组合特别适合预算有限但又需要基本人机交…...
金仓数据库KingbaseES KSQL命令行工具实战指南:从基础操作到高级调优
1. KSQL命令行工具入门指南 第一次接触金仓数据库的KSQL命令行工具时,我完全被它强大的功能震撼到了。作为DBA日常运维的瑞士军刀,KSQL不仅能完成基本的数据库操作,还能进行深度性能分析和调优。记得刚开始使用时,我还在纠结要不要…...
告别双流!用Vision Transformer (ViT) 搭建单流目标跟踪器OSTrack,实测速度提升40%
单流目标跟踪新范式:ViT驱动的OSTrack实战解析 在计算机视觉领域,目标跟踪技术正经历着从传统双流架构向单流范式的革命性转变。当我们面对复杂场景中的实时跟踪需求时,传统方法的性能瓶颈日益凸显——特征提取与关系建模的割裂处理导致计算冗…...
显卡驱动深度清理指南:用DDU解决驱动残留难题
显卡驱动深度清理指南:用DDU解决驱动残留难题 【免费下载链接】display-drivers-uninstaller Display Driver Uninstaller (DDU) a driver removal utility / cleaner utility 项目地址: https://gitcode.com/gh_mirrors/di/display-drivers-uninstaller 你是…...
Android位置模拟与GPS伪装:基于Xposed模块的场景化解决方案
Android位置模拟与GPS伪装:基于Xposed模块的场景化解决方案 【免费下载链接】FakeLocation Xposed module to mock locations per app. 项目地址: https://gitcode.com/gh_mirrors/fak/FakeLocation 在移动应用开发与隐私保护领域,位置信息的精准…...
DCT-Net人像卡通化效果展示:高清人脸转二次元虚拟形象作品集
DCT-Net人像卡通化效果展示:高清人脸转二次元虚拟形象作品集 一键将真人照片变成二次元虚拟形象,体验AI绘画的神奇魅力 1. 效果惊艳:从真人到二次元的华丽变身 DCT-Net人像卡通化技术能够将普通的人物照片转换成精美的二次元虚拟形象&#x…...
STM32F407实战:基于CubeMX与FreeRTOS的SDIO-FatFs文件系统高效读写方案
1. 环境准备与CubeMX基础配置 第一次接触STM32F407的SD卡存储时,我被各种专业术语搞得晕头转向。后来发现,只要用对工具和方法,实现文件系统读写其实没那么复杂。CubeMX这个图形化配置工具真是开发者的福音,它能帮我们自动生成80%…...
FUTURE POLICE语音模型重装系统后快速恢复部署指南
FUTURE POLICE语音模型重装系统后快速恢复部署指南 重装系统这事儿,对开发者来说,有时候就跟电脑的“大扫除”一样,图个干净利落。但扫除完,看着空空如也的桌面和命令行,要重新把那些吃饭的家伙——比如你正在跑的FUT…...
