!架构概览
该导出器采用Go语言编写,基于Solace Legacy SEMP协议,通过SEMP v1抓取指标并提供Prometheus友好的HTTP端点。
视频介绍可在***观看:Integrating Prometheus and Grafana with Solace PubSub+ | Solace Community Lightning Talk
实现了以下端点:
http://<host>:<port>/ 文档页面,显示端点列表 http://<host>:<port>/metrics Golang和标准Prometheus指标 http://<host>:<port>/solace-std 传统端点(需配置):系统和***级别的Solace指标 http://<host>:<port>/solace-det 传统端点(需配置):消息客户端和队列的Solace指标 http://<host>:<port>/solace-broker-std 传统端点(需配置):仅Broker的标准指标(系统级) http://<host>:<port>/solace-***-std 传统端点(需配置):仅***的标准指标(***级),非全局管理员可访问 http://<host>:<port>/solace-***-stats 传统端点(需配置):仅***的统计指标(***级),非全局管理员可访问 http://<host>:<port>/solace-***-det 传统端点(需配置):仅***的详细指标(***级),非全局管理员可访问 http://<host>:<port>/solace 模块化端点
通过HTTP GET参数配置所需数据。
键始终以m.为前缀,后跟抓取目标。
值包含两部分,用竖线|分隔:
并非所有抓取目标都支持两种过滤器,详见抓取目标。两种过滤器均支持多个星号*作为任意字符通配符。
每个抓取目标可多次使用,以实现"或"条件过滤。
获取与传统solace-det端点相同的结果:
[***]|*&m.***Stats=*|*&m.BridgeStats=*|*&m.QueueRates=*|*&m.QueueDetails=*|*
仅从*** my***获取传统solace-det端点的结果:
[***]|*&m.***Stats=my***|*&m.BridgeStats=my***|*&m.QueueRates=my***|*&m.QueueDetails=my***|*
获取名称以BRAVO或ARBON开头且属于名称含my的***的所有队列信息:
[***]|ARBON*&m.QueueStats=*my*|BRAVO*&m.QueueDetails=*my*|ARBON*&m.QueueDetails=*my*|BRAVO*
从特定broker获取传统solace-det端点的结果:
[***]|*&m.***Stats=*|*&m.BridgeStats=*|*&m.QueueRates=*|*&m.QueueDetails=*|*&scrapeURI=[***]
| 抓取目标 | 支持***过滤器 | 支持项目过滤器 | 性能影响 | 对应CLI命令 | 支持类型 |
|---|---|---|---|---|---|
| Version | 否 | 否 | 不影响broker | show version | 软件、设备 |
| Health | 否 | 否 | 不影响broker | show system health | 软件 |
| Spool | 否 | 否 | 不影响broker | show message-spool | 软件、设备 |
| Redundancy(仅HA broker) | 否 | 否 | 不影响broker | show redundancy | 软件、设备 |
| ConfigSyncRouter(仅HA broker) | 否 | 否 | 不影响broker | show config-sync database router | 软件、设备 |
| *** | 是 | 否 | 不影响broker | show message-*** ***Filter | 软件、设备 |
| ***Replication | 是 | 否 | 不影响broker | show message-*** ***Filter replication | 软件、设备 |
| ConfigSync***(仅HA broker) | 是 | 否 | 不影响broker | show config-sync database message-*** ***Filter | 软件、设备 |
| Bridge | 是 | 是 | 不影响broker | show bridge itemFilter message-*** ***Filter | 软件、设备 |
| ***Spool | 是 | 否 | 不影响broker | show message-spool message-*** ***Filter | 软件、设备 |
| ClientStats | 是 | 否 | 客户端数量多时可能影响broker | show client itemFilter stats count 100 (分页) | 软件、设备 |
| ***Stats | 是 | 否 | 性能影响极小 | show message-*** ***Filter stats | 软件、设备 |
| BridgeStats | 是 | 是 | 性能影响极小 | show bridge itemFilter message-*** ***Filter stats | 软件、设备 |
| QueueRates | 是 | 是 | 已弃用:队列数量多时可能影响broker | show queue itemFilter message-*** ***Filter rates count 100 (分页) | 软件、设备 |
| QueueStats | 是 | 是 | 队列数量多时可能影响broker | show queue itemFilter message-*** ***Filter rates count 100 (分页) | 软件、设备 |
| QueueDetails | 是 | 是 | 队列数量多时可能影响broker | show queue itemFilter message-*** ***Filter detail count 100 (分页) | 软件、设备 |
若需缩短端点URL,可通过ini文件配置端点:
ini[endpoint.solace-det] ClientStats=*|* ***Stats=*|* BridgeStats=*|* QueueRates=*|* QueueDetails=*|*
这将创建新端点:[***],与[***]|*&m.***Stats=*|*&m.BridgeStats=*|*&m.QueueRates=*|*&m.QueueDetails=*|*效果相同。
Solace的注册默认端口为9628。
solace_prometheus_exporter -h usage: solace_prometheus_exporter [<flags>] Flags: -h, --help 显示上下文相关帮助(也可尝试--help-long和--help-man)。 --log.level=info 仅记录指定级别及以上的日志。选项:[debug, info, warn, error] --log.format=logfmt 日志输出格式。选项:[logfmt, json] --config-file=CONFIG-FILE 配置文件的路径和名称。详见示例文件solace_prometheus_exporter.ini。
配置参数可通过配置文件、环境变量或URL指定。使用Docker时,建议优先使用环境变量(见下文)。若通过配置文件启动,配置文件参数优先级高于环境变量。若参数未在URL、配置文件或环境变量中找到,导出器将退出并报错。
bashsolace_prometheus_exporter --config-file /path/to/config/file.ini
示例配置文件:
ini[solace] # Web界面和遥测的监听地址。 listenAddr=0.0.0.0:9628 # 抓取Solace broker的基础URI。 scrapeUri=[***] # 注意:可通过浏览器访问该URI,应显示broker登录页面,可在此测试下方的用户名和密码。 # 用于向Solace broker发送HTTP抓取请求的基本认证用户名。 username=admin # 用于向Solace broker发送HTTP抓取请求的基本认证密码。 password=admin # 向Solace broker发送HTTP抓取请求的超时时间。 timeout=5s # 启用抓取URI的SSL证书验证的标志。 sslVerify=false
示例环境变量:
bashSOLACE_LISTEN_ADDR=0.0.0.0:9628 SOLACE_SCRAPE_URI=[***] SOLACE_USERNAME=admin SOLACE_PASSWORD=admin SOLACE_TIMEOUT=5s SOLACE_SSL_VERIFY=false
可调用:
[***]|*&m.***Stats=*|*&scrapeURI=https%3A%2F%2Fyour-broker%3A943&username=monitoring&password=monitoring&timeout=10s
该服务通过SEMP v1抓取指标并提供Prometheus友好的HTTP端点,支持通过URL覆盖ini配置文件/环境变量中的以下参数:
这允许单个导出器监控所有本地broker。
安全注意事项:使用此功能时必须启用HTTPS。
prometheus- job_name: 'solace-std' scrape_interval: 15s metrics_path: /solace-std static_configs: - targets: - [***] - [***] - [***] relabel_configs: - source_labels: [__address__] target_label: __param_target - source_labels: [__param_target] target_label: instance - target_label: __address__ replacement: solace-exporter:9628
bashcd <some-directory>/solace-prometheus-exporter go build
仓库中包含构建Dockerfile,用于自动构建并推送最新镜像至Dockerhub仓库solacecommunity/solace-prometheus-exporter。
建议通过环境变量参数化Docker中的导出器。在本地主机创建环境变量文件(如env.txt),内容如下:
bashSOLACE_LISTEN_ADDR=0.0.0.0:9628 SOLACE_SCRAPE_URI=[***] SOLACE_USERNAME=admin SOLACE_PASSWORD=admin SOLACE_TIMEOUT=5s SOLACE_SSL_VERIFY=false
然后运行:
bashdocker run -d \ -p 9628:9628 \ --env-file env.txt \ --name solace-exporter \ solacecommunity/solace-prometheus-exporter
testfiles子目录包含一些curl命令示例及其输出,仅供参考,无需用于构建。
请确保仅在安全网络中运行此应用或通过代理保护。它可能会泄露不希望公开的应用信息。若使用通过HTTP请求体/头传递broker凭据的功能,必须在Kubernetes/OpenShift等环境中运行以添加HTTPS层。
更多信息请参考以下资源:
请阅读CONTRIBUTING.md了解我们的行为准则和提交拉取请求的流程。
详见参与此项目的贡献者列表。
详见LICENSE文件。===SHORT_DESC=== solace-prometheus-exporter是基于Solace Legacy SEMP协议的Prometheus导出器,用Go编写,通过HTTP端点提供Solace消息broker的系统、***、客户端和队列等指标,支持模块化配置和多种过滤方式,便于Prometheus监控。 ===FULL_DESC===# solace-prometheus-exporter:Solace消息Broker的Prometheus导出器
!架构概览
该导出器采用Go语言编写,基于Solace Legacy SEMP协议,通过SEMP v1抓取指标并提供Prometheus友好的HTTP端点。
视频介绍可在***观看:Integrating Prometheus and Grafana with Solace PubSub+ | Solace Community Lightning Talk
实现了以下端点:
http://<host>:<port>/ 文档页面,显示端点列表 http://<host>:<port>/metrics Golang和标准Prometheus指标 http://<host>:<port>/solace-std 传统端点(需配置):系统和***级别的Solace指标 http://<host>:<port>/solace-det 传统端点(需配置):消息客户端和队列的Solace指标 http://<host>:<port>/solace-broker-std 传统端点(需配置):仅Broker的标准指标(系统级) http://<host>:<port>/solace-***-std 传统端点(需配置):仅***的标准指标(***级),非全局管理员可访问 http://<host>:<port>/solace-***-stats 传统端点(需配置):仅***的统计指标(***级),非全局管理员可访问 http://<host>:<port>/solace-***-det 传统端点(需配置):仅***的详细指标(***级),非全局管理员可访问 http://<host>:<port>/solace 模块化端点
通过HTTP GET参数配置所需数据。
键始终以m.为前缀,后跟抓取目标。
值包含两部分,用竖线|分隔:
并非所有抓取目标都支持两种过滤器,详见抓取目标。两种过滤器均支持多个星号*作为任意字符通配符。
每个抓取目标可多次使用,以实现"或"条件过滤。
获取与传统solace-det端点相同的结果:
[***]|*&m.***Stats=*|*&m.BridgeStats=*|*&m.QueueRates=*|*&m.QueueDetails=*|*
仅从*** my***获取传统solace-det端点的结果:
[***]|*&m.***Stats=my***|*&m.BridgeStats=my***|*&m.QueueRates=my***|*&m.QueueDetails=my***|*
从特定broker获取传统solace-det端点的结果:
[***]|*&m.***Stats=*|*&m.BridgeStats=*|*&m.QueueRates=*|*&m.QueueDetails=*|*&scrapeURI=[***]
| 抓取目标 | 支持***过滤器 | 支持项目过滤器 | 性能影响 | 对应CLI命令 | 支持类型 |
|---|---|---|---|---|---|
| Version | 否 | 否 | 不影响broker | show version | 软件、设备 |
| Health | 否 | 否 | 不影响broker | show system health | 软件 |
| Spool | 否 | 否 | 不影响broker | show message-spool | 软件、设备 |
| Redundancy(仅HA broker) | 否 | 否 | 不影响broker | show redundancy | 软件、设备 |
| ConfigSyncRouter(仅HA broker) | 否 | 否 | 不影响broker | show config-sync database router | 软件、设备 |
| *** | 是 |
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429