Skip to content

cloudfoundry/firehose_exporter

Cloud Foundry Firehose Exporter Build Status

A Prometheus exporter proxy for Cloud Foundry Firehose metrics. Please refer to the FAQ for general questions about this exporter.

Architecture overview

Installation

Binaries

Download the already existing binaries for your platform:

$ ./firehose_exporter <flags>

From source

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>

Docker

To run the firehose exporter as a Docker container, run:

$ docker run -p 9186:9186 boshprometheus/firehose-exporter <flags>

Cloud Foundry

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

BOSH

This exporter can be deployed using the Prometheus BOSH Release.

Usage

Flags

Flag / Environment Variable Required Default Description
retro_compat.disable
FIREHOSE_EXPORTER_RETRO_COMPAT_DISABLE
No False Disable retro compatibility
retro_compat.enable_delta
FIREHOSE_EXPORTER_RETRO_COMPAT_ENABLE_DELTA
No False Enable retro compatibility delta in counter
metrics.shard_id
FIREHOSE_EXPORTER_DOPPLER_SUBSCRIPTION_ID
No prometheus Cloud Foundry Nozzle Subscription ID
metrics.expiration
FIREHOSE_EXPORTER_DOPPLER_METRIC_EXPIRATION
No 10 minutes How long Cloud Foundry metrics received from the Firehose are valid
metrics.batch_size
FIREHOSE_EXPORTER_METRICS_BATCH_SIZE
No infinite buffer Batch size for nozzle envelop buffer
metrics.node_index
FIREHOSE_EXPORTER_NODE_INDEX
No 0 Node index to use
metrics.timer_rollup_buffer_size
FIREHOSE_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.deployments
FIREHOSE_EXPORTER_FILTER_DEPLOYMENTS
No Comma separated deployments to filter
filter.events
FIREHOSE_EXPORTER_FILTER_EVENTS
No Comma separated events to filter. If not set, all events will be enabled (ContainerMetric, CounterEvent, HttpStartStop, ValueMetric)
logging.url
FIREHOSE_EXPORTER_LOGGING_URL
Yes Cloud Foundry Log Stream URL
logging.tls.ca
FIREHOSE_EXPORTER_LOGGING_TLS_CA
No Path to ca cert to connect to rlp
logging.tls.cert
FIREHOSE_EXPORTER_LOGGING_TLS_CERT
Yes Path to cert to connect to rlp in mtls
logging.tls.key
FIREHOSE_EXPORTER_LOGGING_TLS_KEY
Yes Path to key to connect to rlp in mtls
metrics.namespace
FIREHOSE_EXPORTER_METRICS_NAMESPACE
No firehose Metrics Namespace
metrics.environment
FIREHOSE_EXPORTER_METRICS_ENVIRONMENT
Yes Environment label to be attached to metrics
skip-ssl-verify
FIREHOSE_EXPORTER_SKIP_SSL_VERIFY
No false Disable SSL Verify
web.listen-address
FIREHOSE_EXPORTER_WEB_LISTEN_ADDRESS
No :9186 Address to listen on for web interface and telemetry
web.telemetry-path
FIREHOSE_EXPORTER_WEB_TELEMETRY_PATH
No /metrics Path under which to expose Prometheus metrics
web.auth.username
FIREHOSE_EXPORTER_WEB_AUTH_USERNAME
No Username for web interface basic auth
web.auth.password
FIREHOSE_EXPORTER_WEB_AUTH_PASSWORD
No Password for web interface basic auth
web.tls.cert_file
FIREHOSE_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_file
FIREHOSE_EXPORTER_WEB_TLS_KEYFILE
No Path to a file that contains the TLS private key (PEM format)
profiler.enable
FIREHOSE_EXPORTER_ENABLE_PROFILER
No False Enable pprof profiling on app on /debug/pprof
log.level
FIREHOSE_EXPORTER_LOG_LEVEL
No info Only log messages with the given severity or above. Valid levels: [debug, info, warn, error, fatal]
log.in_json
FIREHOSE_EXPORTER_LOG_IN_JSON
No False Log in json

Metrics

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

Contributing

Refer to CONTRIBUTING.md.

License

Apache License 2.0, see LICENSE.