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/bosh-prometheus/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/bosh-prometheus/firehose_exporter.git
$ cd firehose_exporterModify the included application manifest file to include your Cloud Foundry Firehose properties. Then you can push the exporter to your Cloud Foundry environment:
$ cf pushThis exporter can be deployed using the Prometheus BOSH Release.
In order to connect to the Cloud Foundry Firehose a client-id and client-secret must be provided. The client-id must have the doppler.firehose authority.
For example, to create a new client-id and client-secret with the right permissions:
uaac target https://<YOUR UAA URL> --skip-ssl-validation
uaac token client get <YOUR ADMIN CLIENT ID> -s <YOUR ADMIN CLIENT SECRET>
uaac client add prometheus-firehose \
--name prometheus-firehose \
--secret prometheus-client-secret \
--authorized_grant_types client_credentials,refresh_token \
--authorities doppler.firehose| Flag / Environment Variable | Required | Default | Description |
|---|---|---|---|
uaa.urlFIREHOSE_EXPORTER_UAA_URL |
Yes | Cloud Foundry UAA URL | |
uaa.client-idFIREHOSE_EXPORTER_UAA_CLIENT_ID |
Yes | Cloud Foundry UAA Client ID | |
uaa.client-secretFIREHOSE_EXPORTER_UAA_CLIENT_SECRET |
Yes | Cloud Foundry UAA Client Secret | |
doppler.subscription-idFIREHOSE_EXPORTER_DOPPLER_SUBSCRIPTION_ID |
No | prometheus |
Cloud Foundry Doppler Subscription ID |
doppler.idle-timeoutFIREHOSE_EXPORTER_DOPPLER_IDLE_TIMEOUT |
No | Cloud Foundry Doppler Idle Timeout duration | |
doppler.min-retry-delayFIREHOSE_EXPORTER_DOPPLER_MIN_RETRY_DELAY |
No | Cloud Foundry Doppler min retry delay duration | |
doppler.max-retry-delayFIREHOSE_EXPORTER_DOPPLER_MAX_RETRY_DELAY |
No | Cloud Foundry Doppler max retry delay duration | |
doppler.max-retry-countFIREHOSE_EXPORTER_DOPPLER_MAX_RETRY_COUNT |
No | Cloud Foundry Doppler max retry count | |
doppler.metric-expirationFIREHOSE_EXPORTER_DOPPLER_METRIC_EXPIRATION |
No | 5 minutes |
How long Cloud Foundry metrics received from the Firehose are valid |
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.use-legacy-firehoseUSE_LEGACY_FIREHOSE |
No | False | Whether to use the legacy firehose |
metrics.namespaceFIREHOSE_EXPORTER_METRICS_NAMESPACE |
No | firehose |
Metrics Namespace |
metrics.environmentFIREHOSE_EXPORTER_METRICS_ENVIRONMENT |
Yes | Environment label to be attached to metrics | |
metrics.cleanup-intervalFIREHOSE_EXPORTER_METRICS_CLEANUP_INTERVAL |
No | 2 minutes |
Metrics clean up interval |
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) |
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_total_container_metrics_processed | Total number of container metrics processed from Cloud Foundry Firehose | environment |
| metrics.namespace_container_metrics_cached | Number of container metrics cached 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_total_counter_events_processed | Total number of counter events processed from Cloud Foundry Firehose | environment |
| metrics.namespace_counter_events_cached | Number of counter events cached 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_start_stop_received | Total number of http start stop received from Cloud Foundry Firehose | environment |
| metrics.namespace_total_http_start_stop_processed | Total number of http start stop processed from Cloud Foundry Firehose | environment |
| metrics.namespace_http_start_stop_cached | Number of http start stop cached from Cloud Foundry Firehose | environment |
| metrics.namespace_last_http_start_stop_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_total_value_metrics_processed | Total number of value metrics processed from Cloud Foundry Firehose | environment |
| metrics.namespace_value_metrics_cached | Number of value metrics cached 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 |
| metrics.namespace_slow_consumer_alert | Nozzle could not keep up with Cloud Foundry Firehose | environment |
| metrics.namespace_last_slow_consumer_alert_timestamp | Number of seconds since 1970 since last slow consumer alert received from Cloud Foundry Firehose | environment |
Refer to CONTRIBUTING.md.
Apache License 2.0, see LICENSE.
