Cloud Foundry Firehose Prometheus exporter
26
stars
375
commits
Go
primary language
Sep 9, 2026
updated

A Prometheus exporter proxy for Cloud Foundry Firehose metrics. Please refer to the FAQ for general questions about this exporter.
Download the already existing binaries for your platform:
$ ./firehose_exporter <flags>
Using the standard go install (you must have Go already installed in your local machine):
$ go install github.com/cloudfoundry/firehose_exporter
$ firehose_exporter <flags>
To run the firehose exporter as a Docker container, run:
$ docker run -p 9186:9186 boshprometheus/firehose-exporter <flags>
The exporter can be deployed to an already existing Cloud Foundry environment:
$ git clone https://github.com/cloudfoundry/firehose_exporter.git
$ cd firehose_exporter
Modify the included application manifest file to include your Cloud Foundry Firehose properties. Then you can push the exporter to your Cloud Foundry environment:
$ cf push
This exporter can be deployed using the Prometheus BOSH Release.
| Flag / Environment Variable | Required | Default | Description |
|---|---|---|---|
retro_compat.disableFIREHOSE_EXPORTER_RETRO_COMPAT_DISABLE | No | False | Disable retro compatibility |
retro_compat.enable_deltaFIREHOSE_EXPORTER_RETRO_COMPAT_ENABLE_DELTA | No | False | Enable retro compatibility delta in counter |
metrics.shard_idFIREHOSE_EXPORTER_DOPPLER_SUBSCRIPTION_ID | No | prometheus | Cloud Foundry Nozzle Subscription ID |
metrics.expirationFIREHOSE_EXPORTER_DOPPLER_METRIC_EXPIRATION | No | 10 minutes | How long Cloud Foundry metrics received from the Firehose are valid |
metrics.batch_sizeFIREHOSE_EXPORTER_METRICS_BATCH_SIZE | No | infinite buffer | Batch size for nozzle envelop buffer |
metrics.node_indexFIREHOSE_EXPORTER_NODE_INDEX | No | 0 | Node index to use |
metrics.timer_rollup_buffer_sizeFIREHOSE_EXPORTER_TIMER_ROLLUP_BUFFER_SIZE | No | 0 | The number of envelopes that will be allowed to be buffered while timer http metric aggregations are running |
filter.deploymentsFIREHOSE_EXPORTER_FILTER_DEPLOYMENTS | No | Comma separated deployments to filter | |
filter.eventsFIREHOSE_EXPORTER_FILTER_EVENTS | No | Comma separated events to filter. If not set, all events will be enabled (ContainerMetric, CounterEvent, HttpStartStop, ValueMetric) | |
logging.urlFIREHOSE_EXPORTER_LOGGING_URL | Yes | Cloud Foundry Log Stream URL | |
logging.tls.caFIREHOSE_EXPORTER_LOGGING_TLS_CA | No | Path to ca cert to connect to rlp | |
logging.tls.certFIREHOSE_EXPORTER_LOGGING_TLS_CERT | Yes | Path to cert to connect to rlp in mtls | |
logging.tls.keyFIREHOSE_EXPORTER_LOGGING_TLS_KEY | Yes | Path to key to connect to rlp in mtls | |
metrics.namespaceFIREHOSE_EXPORTER_METRICS_NAMESPACE | No | firehose | Metrics Namespace |
metrics.environmentFIREHOSE_EXPORTER_METRICS_ENVIRONMENT | Yes | Environment label to be attached to metrics | |
skip-ssl-verifyFIREHOSE_EXPORTER_SKIP_SSL_VERIFY | No | false | Disable SSL Verify |
web.listen-addressFIREHOSE_EXPORTER_WEB_LISTEN_ADDRESS | No | :9186 | Address to listen on for web interface and telemetry |
web.telemetry-pathFIREHOSE_EXPORTER_WEB_TELEMETRY_PATH | No | /metrics | Path under which to expose Prometheus metrics |
web.auth.usernameFIREHOSE_EXPORTER_WEB_AUTH_USERNAME | No | Username for web interface basic auth | |
web.auth.passwordFIREHOSE_EXPORTER_WEB_AUTH_PASSWORD | No | Password for web interface basic auth | |
web.tls.cert_fileFIREHOSE_EXPORTER_WEB_TLS_CERTFILE | No | Path to a file that contains the TLS certificate (PEM format). If the certificate is signed by a certificate authority, the file should be the concatenation of the server's certificate, any intermediates, and the CA's certificate | |
web.tls.key_fileFIREHOSE_EXPORTER_WEB_TLS_KEYFILE | No | Path to a file that contains the TLS private key (PEM format) | |
profiler.enableFIREHOSE_EXPORTER_ENABLE_PROFILER | No | False | Enable pprof profiling on app on /debug/pprof |
log.levelFIREHOSE_EXPORTER_LOG_LEVEL | No | info | Only log messages with the given severity or above. Valid levels: [debug, info, warn, error, fatal] |
log.in_jsonFIREHOSE_EXPORTER_LOG_IN_JSON | No | False | Log in json |
For a list of Cloud Foundry Firehose metrics check the Cloud Foundry Component Metrics documentation.
The exporter returns additionally the following internal metrics:
| Metric | Description | Labels |
|---|---|---|
| metrics.namespace_total_envelopes_received | Total number of envelopes received from Cloud Foundry Firehose | environment |
| metrics.namespace_last_envelope_received_timestamp | Number of seconds since 1970 since last envelope received from Cloud Foundry Firehose | environment |
| metrics.namespace_total_metrics_received | Total number of metrics received from Cloud Foundry Firehose | environment |
| metrics.namespace_last_metric_received_timestamp | Number of seconds since 1970 since last metric received from Cloud Foundry Firehose | environment |
| metrics.namespace_total_container_metrics_received | Total number of container metrics received from Cloud Foundry Firehose | environment |
| metrics.namespace_last_container_metric_received_timestamp | Number of seconds since 1970 since last container metric received from Cloud Foundry Firehose | environment |
| metrics.namespace_total_counter_events_received | Total number of counter events received from Cloud Foundry Firehose | environment |
| metrics.namespace_last_counter_event_received_timestamp | Number of seconds since 1970 since last counter event received from Cloud Foundry Firehose | environment |
| metrics.namespace_total_http_received | Total number of http start stop received from Cloud Foundry Firehose | environment |
| metrics.namespace_last_http_received_timestamp | Number of seconds since 1970 since last http start stop received from Cloud Foundry Firehose | environment |
| metrics.namespace_total_value_metrics_received | Total number of value metrics received from Cloud Foundry Firehose | environment |
| metrics.namespace_last_value_metric_received_timestamp | Number of seconds since 1970 since last value metric received from Cloud Foundry Firehose | environment |
Refer to CONTRIBUTING.md.
Apache License 2.0, see LICENSE.
Go
99.7%
Cloud Foundry Firehose Prometheus exporter
26
stars
375
commits
Go
primary language
Sep 9, 2026
updated

A Prometheus exporter proxy for Cloud Foundry Firehose metrics. Please refer to the FAQ for general questions about this exporter.
Download the already existing binaries for your platform:
$ ./firehose_exporter <flags>
Using the standard go install (you must have Go already installed in your local machine):
$ go install github.com/cloudfoundry/firehose_exporter
$ firehose_exporter <flags>
To run the firehose exporter as a Docker container, run:
$ docker run -p 9186:9186 boshprometheus/firehose-exporter <flags>
The exporter can be deployed to an already existing Cloud Foundry environment:
$ git clone https://github.com/cloudfoundry/firehose_exporter.git
$ cd firehose_exporter
Modify the included application manifest file to include your Cloud Foundry Firehose properties. Then you can push the exporter to your Cloud Foundry environment:
$ cf push
This exporter can be deployed using the Prometheus BOSH Release.
| Flag / Environment Variable | Required | Default | Description |
|---|---|---|---|
retro_compat.disableFIREHOSE_EXPORTER_RETRO_COMPAT_DISABLE | No | False | Disable retro compatibility |
retro_compat.enable_deltaFIREHOSE_EXPORTER_RETRO_COMPAT_ENABLE_DELTA | No | False | Enable retro compatibility delta in counter |
metrics.shard_idFIREHOSE_EXPORTER_DOPPLER_SUBSCRIPTION_ID | No | prometheus | Cloud Foundry Nozzle Subscription ID |
metrics.expirationFIREHOSE_EXPORTER_DOPPLER_METRIC_EXPIRATION | No | 10 minutes | How long Cloud Foundry metrics received from the Firehose are valid |
metrics.batch_sizeFIREHOSE_EXPORTER_METRICS_BATCH_SIZE | No | infinite buffer | Batch size for nozzle envelop buffer |
metrics.node_indexFIREHOSE_EXPORTER_NODE_INDEX | No | 0 | Node index to use |
metrics.timer_rollup_buffer_sizeFIREHOSE_EXPORTER_TIMER_ROLLUP_BUFFER_SIZE | No | 0 | The number of envelopes that will be allowed to be buffered while timer http metric aggregations are running |
filter.deploymentsFIREHOSE_EXPORTER_FILTER_DEPLOYMENTS | No | Comma separated deployments to filter | |
filter.eventsFIREHOSE_EXPORTER_FILTER_EVENTS | No | Comma separated events to filter. If not set, all events will be enabled (ContainerMetric, CounterEvent, HttpStartStop, ValueMetric) | |
logging.urlFIREHOSE_EXPORTER_LOGGING_URL | Yes | Cloud Foundry Log Stream URL | |
logging.tls.caFIREHOSE_EXPORTER_LOGGING_TLS_CA | No | Path to ca cert to connect to rlp | |
logging.tls.certFIREHOSE_EXPORTER_LOGGING_TLS_CERT | Yes | Path to cert to connect to rlp in mtls | |
logging.tls.keyFIREHOSE_EXPORTER_LOGGING_TLS_KEY | Yes | Path to key to connect to rlp in mtls | |
metrics.namespaceFIREHOSE_EXPORTER_METRICS_NAMESPACE | No | firehose | Metrics Namespace |
metrics.environmentFIREHOSE_EXPORTER_METRICS_ENVIRONMENT | Yes | Environment label to be attached to metrics | |
skip-ssl-verifyFIREHOSE_EXPORTER_SKIP_SSL_VERIFY | No | false | Disable SSL Verify |
web.listen-addressFIREHOSE_EXPORTER_WEB_LISTEN_ADDRESS | No | :9186 | Address to listen on for web interface and telemetry |
web.telemetry-pathFIREHOSE_EXPORTER_WEB_TELEMETRY_PATH | No | /metrics | Path under which to expose Prometheus metrics |
web.auth.usernameFIREHOSE_EXPORTER_WEB_AUTH_USERNAME | No | Username for web interface basic auth | |
web.auth.passwordFIREHOSE_EXPORTER_WEB_AUTH_PASSWORD | No | Password for web interface basic auth | |
web.tls.cert_fileFIREHOSE_EXPORTER_WEB_TLS_CERTFILE | No | Path to a file that contains the TLS certificate (PEM format). If the certificate is signed by a certificate authority, the file should be the concatenation of the server's certificate, any intermediates, and the CA's certificate | |
web.tls.key_fileFIREHOSE_EXPORTER_WEB_TLS_KEYFILE | No | Path to a file that contains the TLS private key (PEM format) | |
profiler.enableFIREHOSE_EXPORTER_ENABLE_PROFILER | No | False | Enable pprof profiling on app on /debug/pprof |
log.levelFIREHOSE_EXPORTER_LOG_LEVEL | No | info | Only log messages with the given severity or above. Valid levels: [debug, info, warn, error, fatal] |
log.in_jsonFIREHOSE_EXPORTER_LOG_IN_JSON | No | False | Log in json |
For a list of Cloud Foundry Firehose metrics check the Cloud Foundry Component Metrics documentation.
The exporter returns additionally the following internal metrics:
| Metric | Description | Labels |
|---|---|---|
| metrics.namespace_total_envelopes_received | Total number of envelopes received from Cloud Foundry Firehose | environment |
| metrics.namespace_last_envelope_received_timestamp | Number of seconds since 1970 since last envelope received from Cloud Foundry Firehose | environment |
| metrics.namespace_total_metrics_received | Total number of metrics received from Cloud Foundry Firehose | environment |
| metrics.namespace_last_metric_received_timestamp | Number of seconds since 1970 since last metric received from Cloud Foundry Firehose | environment |
| metrics.namespace_total_container_metrics_received | Total number of container metrics received from Cloud Foundry Firehose | environment |
| metrics.namespace_last_container_metric_received_timestamp | Number of seconds since 1970 since last container metric received from Cloud Foundry Firehose | environment |
| metrics.namespace_total_counter_events_received | Total number of counter events received from Cloud Foundry Firehose | environment |
| metrics.namespace_last_counter_event_received_timestamp | Number of seconds since 1970 since last counter event received from Cloud Foundry Firehose | environment |
| metrics.namespace_total_http_received | Total number of http start stop received from Cloud Foundry Firehose | environment |
| metrics.namespace_last_http_received_timestamp | Number of seconds since 1970 since last http start stop received from Cloud Foundry Firehose | environment |
| metrics.namespace_total_value_metrics_received | Total number of value metrics received from Cloud Foundry Firehose | environment |
| metrics.namespace_last_value_metric_received_timestamp | Number of seconds since 1970 since last value metric received from Cloud Foundry Firehose | environment |
Refer to CONTRIBUTING.md.
Apache License 2.0, see LICENSE.
Go
99.7%