Prometheus exporter for BIG-IP statistics. Uses iControl REST API.
based on https://github.com/ExpressenAB/bigip_exporter, I add support multi-instance monitoring, inspired by mysqld_exporter and ipmi_exporter, to rewirte bigip_exporter.go and config.go.
The latest version is 1.0.0. All releases can be found under Releases and docker images are available at Docker Hub(Thanks to 0x46616c6b).
The bigip_exporter is easy to use. Example:
./bigip_exporter --config.file="bigip_exporter.yml"
bigip_exporter.yml:
credentials:
default:
user: "USER"
pass: "password"
basic_auth: "false"
then you can get the metrics via
curl localhost:9142/bigip?target=<bigip_host>:443
prometheus job config:
- job_name: "bigip-exporter"
scrape_interval: 1m
scrape_timeout: 30s
metrics_path: /bigip
scheme: http
file_sd_configs:
- files:
- 'tgroups/bigip.yml'
refresh_interval: 5m
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 10.36.48.46:9142
Take a look at this example configuration file
- Virtual Server
- Rule
- Pool
- Node
- User with read access to iControl REST API
Currently only version 12.0.0 and 12.1.1 are tested. If you experience any problems with other versions, create an issue explaining the problem and I'll look at it as soon as possible or if you'd like to contribute with a pull request that would be greatly appreciated.
13.0 is not supported now
just you can build with make build
Currently the data is gathered when the /metrics
endpoint is called. This causes the request to take about 4-6 seconds before completing. This could be fixed by having a go thread that gathers data at regular intervals and that is returned upon a call to the /metrics
endpoint. This would however go against the guidelines.