
!https://raw.githubusercontent.com/solacecommunity/solace-prometheus-exporter/master/doc/architecture_001.png
该导出器采用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 传统端点(需配置):系统和VPN级别的Solace指标 http://<host>:<port>/solace-det 传统端点(需配置):消息客户端和队列的Solace指标 http://<host>:<port>/solace-broker-std 传统端点(需配置):仅Broker的标准指标(系统级) http://<host>:<port>/solace-vpn-std 传统端点(需配置):仅VPN的标准指标(VPN级),非全局管理员可访问 http://<host>:<port>/solace-vpn-stats 传统端点(需配置):仅VPN的统计指标(VPN级),非全局管理员可访问 http://<host>:<port>/solace-vpn-det 传统端点(需配置):仅VPN的详细指标(VPN级),非全局管理员可访问 http://<host>:<port>/solace 模块化端点
通过HTTP GET参数配置所需数据。
键始终以m.为前缀,后跟抓取目标。
值包含两部分,用竖线|分隔:
并非所有抓取目标都支持两种过滤器,详见抓取目标。两种过滤器均支持多个星号*作为任意字符通配符。
每个抓取目标可多次使用,以实现"或"条件过滤。
示例
获取与传统solace-det端点相同的结果:
http://your-exporter:9628/solace?m.ClientStats=*|*&m.VpnStats=*|*&m.BridgeStats=*|*&m.QueueRates=*|*&m.QueueDetails=*|*
仅从*** myVpn获取传统solace-det端点的结果:
http://your-exporter:9628/solace?m.ClientStats=myVpn|*&m.VpnStats=myVpn|*&m.BridgeStats=myVpn|*&m.QueueRates=myVpn|*&m.QueueDetails=myVpn|*
获取名称以BRAVO或ARBON开头且属于名称含my的***的所有队列信息:
http://your-exporter:9628/solace?m.QueueStats=*my*|ARBON*&m.QueueStats=*my*|BRAVO*&m.QueueDetails=*my*|ARBON*&m.QueueDetails=*my*|BRAVO*
从特定broker获取传统solace-det端点的结果:
http://your-exporter:9628/solace?m.ClientStats=*|*&m.VpnStats=*|*&m.BridgeStats=*|*&m.QueueRates=*|*&m.QueueDetails=*|*&scrapeURI=http://your-broker-url:8080
抓取目标
| 抓取目标 | 支持***过滤器 | 支持项目过滤器 | 性能影响 | 对应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=*|* VpnStats=*|* BridgeStats=*|* QueueRates=*|* QueueDetails=*|*
这将创建新端点:http://your-exporter:9628/solace-det,与http://your-exporter:9628/solace?m.ClientStats=*|*&m.VpnStats=*|*&m.BridgeStats=*|*&m.QueueRates=*|*&m.QueueDetails=*|*效果相同。
Solace的https://github.com/prometheus/prometheus/wiki/Default-port-allocations%E9%BB%98%E8%AE%A4%E7%AB%AF%E5%8F%A3%E4%B8%BA9628%E3%80%82
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=http://your-exporter:8080 # 注意:可通过浏览器访问该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=http://your-broker:8080 SOLACE_USERNAME=admin SOLACE_PASSWORD=admin SOLACE_TIMEOUT=5s SOLACE_SSL_VERIFY=false
可调用:
https://your-exporter:9628/solace?m.ClientStats=*|*&m.VpnStats=*|*&scrapeURI=https%3A%2F%2Fyour-broker%3A943&username=monitoring&password=monitoring&timeout=10s
该服务通过SEMP v1抓取指标并提供Prometheus友好的HTTP端点,支持通过URL覆盖ini配置文件/环境变量中的以下参数:
这允许单个导出器监控所有本地broker。
安全注意事项:使用此功能时必须启用HTTPS。
Prometheus配置示例
prometheus- job_name: 'solace-std' scrape_interval: 15s metrics_path: /solace-std static_configs: - targets: - https://USER:PASSWORD@first-broker:943 - https://USER:PASSWORD@second-broker:943 - https://USER:PASSWORD@third-broker:943 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仓库https://hub.docker.com/r/solacecommunity/solace-prometheus-exporter%E3%80%82
建议通过环境变量参数化Docker中的导出器。在本地主机创建环境变量文件(如env.txt),内容如下:
bashSOLACE_LISTEN_ADDR=0.0.0.0:9628 SOLACE_SCRAPE_URI=http://your-broker:8080 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了解我们的行为准则和提交拉取请求的流程。
详见参与此项目的https://github.com/solacecommunity/solace-prometheus-exporter/graphs/contributors%E5%88%97%E8%A1%A8%E3%80%82
详见LICENSE文件。===SHORT_DESC=== solace-prometheus-exporter是基于Solace Legacy SEMP协议的Prometheus导出器,用Go编写,通过HTTP端点提供Solace消息broker的系统、***、客户端和队列等指标,支持模块化配置和多种过滤方式,便于Prometheus监控。 ===FULL_DESC===# solace-prometheus-exporter:Solace消息Broker的Prometheus导出器
!https://raw.githubusercontent.com/solacecommunity/solace-prometheus-exporter/master/doc/architecture_001.png
该导出器采用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 传统端点(需配置):系统和VPN级别的Solace指标 http://<host>:<port>/solace-det 传统端点(需配置):消息客户端和队列的Solace指标 http://<host>:<port>/solace-broker-std 传统端点(需配置):仅Broker的标准指标(系统级) http://<host>:<port>/solace-vpn-std 传统端点(需配置):仅VPN的标准指标(VPN级),非全局管理员可访问 http://<host>:<port>/solace-vpn-stats 传统端点(需配置):仅VPN的统计指标(VPN级),非全局管理员可访问 http://<host>:<port>/solace-vpn-det 传统端点(需配置):仅VPN的详细指标(VPN级),非全局管理员可访问 http://<host>:<port>/solace 模块化端点
通过HTTP GET参数配置所需数据。
键始终以m.为前缀,后跟抓取目标。
值包含两部分,用竖线|分隔:
并非所有抓取目标都支持两种过滤器,详见抓取目标。两种过滤器均支持多个星号*作为任意字符通配符。
每个抓取目标可多次使用,以实现"或"条件过滤。
示例
获取与传统solace-det端点相同的结果:
http://your-exporter:9628/solace?m.ClientStats=*|*&m.VpnStats=*|*&m.BridgeStats=*|*&m.QueueRates=*|*&m.QueueDetails=*|*
仅从*** myVpn获取传统solace-det端点的结果:
http://your-exporter:9628/solace?m.ClientStats=myVpn|*&m.VpnStats=myVpn|*&m.BridgeStats=myVpn|*&m.QueueRates=myVpn|*&m.QueueDetails=myVpn|*
从特定broker获取传统solace-det端点的结果:
http://your-exporter:9628/solace?m.ClientStats=*|*&m.VpnStats=*|*&m.BridgeStats=*|*&m.QueueRates=*|*&m.QueueDetails=*|*&scrapeURI=http://your-broker-url:8080
抓取目标
| 抓取目标 | 支持***过滤器 | 支持项目过滤器 | 性能影响 | 对应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 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务