
solacecommunity/solace-prometheus-exporter!架构概览
该导出器采用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 | 软件、设备 |
| *** | 是 |




manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务