This exporter is not developed and maintained by Solace.
It can be used as-is or as a basis for development of customer specific exporters for Solace brokers.
It is currently only tested against PubSub+ software brokers (VMRs), not appliances.
The exporter is written in go, based on the Solace Legacy SEMP protocol.
It implements the following endpoints:
http://<host>:<port>/ Document page showing list of endpoints
http://<host>:<port>/metrics Golang and standard Prometheus metrics
http://<host>:<port>/solace-std Solace metrics for System and VPN levels
http://<host>:<port>/solace-det Solace metrics for Messaging Clients and Queues
The registered default port for Solace is 9628
solace_exporter -h
usage: solace_exporter [<flags>]
Flags:
-h, --help Show context-sensitive help (also try --help-long and --help-man).
--log.level=info Only log messages with the given severity or above. One of: [debug, info, warn, error]
--log.format=logfmt Output format of log messages. One of: [logfmt, json]
--config-file=CONFIG-FILE Path and name of config file. See sample file solace_exporter.ini.
The configuration parameters can be placed into a config file or into a set of environment variables. For Docker you should prefer the environment variable configuration method (see below).
If the exporter is started with a config file argument then the config file entries have precedence over the environment variables. If a parameter is neither found in the config file nor in the environment the exporter exits with an error.
solace_exporter --config-file /path/to/config/file.ini
Sample config file:
[solace]
# Address to listen on for web interface and telemetry.
listenAddr=0.0.0.0:9628
# Base URI on which to scrape Solace broker.
scrapeUri=http://localhost:8080
# Basic Auth username for http scrape requests to Solace broker.
username=admin
# Basic Auth password for http scrape requests to Solace broker.
password=admin
# Timeout for http scrape requests to Solace broker.
timeout=5s
# Flag that enables SSL certificate verification for the scrape URI.
sslVerify=false
# Flag that enables scrape of redundancy metrics. Should be used for broker HA groups.
redundancy=false
Sample environment variables:
SOLACE_LISTEN_ADDR=0.0.0.0:9628
SOLACE_SCRAPE_URI=http://localhost:8080
SOLACE_USERNAME=admin
SOLACE_PASSWORD=admin
SOLACE_TIMEOUT=5s
SOLACE_SSL_VERIFY=false
SOLACE_REDUNDANCY=false
cd <some-directory>/solace_exporter
go build
A build Dockerfile is included in the repository.
This is used to automatically build and push the latest image to the Dockerhub repository dabgmx/solace-exporter
Environment variables are recommended to parameterize the exporter in Docker.
Put the following parameters, adapted to your situation, into a file on the local host, e.g. env.txt:
SOLACE_LISTEN_ADDR=0.0.0.0:9628
SOLACE_SCRAPE_URI=http://localhost:8080
SOLACE_USERNAME=admin
SOLACE_PASSWORD=admin
SOLACE_TIMEOUT=5s
SOLACE_SSL_VERIFY=false
SOLACE_REDUNDANCY=false
Then run
docker run -d \
-p 9628:9628 \
--env-file env.txt \
--name solace-exporter \
dabgmx/solace-exporter
The sub directory testfiles contains some sample curl commands and their outputs. This is just fyi and not needed for building.