The Cloud Foundry Firehose Prometheus Exporter is a proxy for Cloud Foundry Firehose metrics. It exports Cloud Foundry ContainerMetric
, CounterEvent
, HttpStartStop
and ValueMetric
metrics.
Metrics are cached (with a expirity defined at the doppler.metric-expiration
command flag). The exporter always emits the last metric received if it has not been expired.
For a list of all Cloud Foundry Firehose metrics check the Cloud Foundry Component Metrics documentation.
ContainerMetric
metrics reports resource usage of an application in a container. The exporter emits:
Metric | Description | Labels |
---|---|---|
metrics.namespace_container_metric_cpu_percentage | Cloud Foundry Firehose container metric: CPU used, on a scale of 0 to 100 | environment , origin , bosh_deployment , bosh_job_name , bosh_job_id , bosh_job_ip , application_id , instance_index |
metrics.namespace_container_metric_memory_bytes | Cloud Foundry Firehose container metric: bytes of memory used | environment , origin , bosh_deployment , bosh_job_name , bosh_job_id , bosh_job_ip , application_id , instance_index |
metrics.namespace_container_metric_disk_bytes | Cloud Foundry Firehose container metric: bytes of disk used | environment , origin , bosh_deployment , bosh_job_name , bosh_job_id , bosh_job_ip , application_id , instance_index |
metrics.namespace_container_metric_memory_bytes_quota | Cloud Foundry Firehose container metric: maximum bytes of memory allocated to container | environment , origin , bosh_deployment , bosh_job_name , bosh_job_id , bosh_job_ip , application_id , instance_index |
metrics.namespace_container_metric_disk_bytes_quota | Cloud Foundry Firehose container metric: maximum bytes of disk allocated to container | environment , origin , bosh_deployment , bosh_job_name , bosh_job_id , bosh_job_ip , application_id , instance_index |
CounterEvent
metrics represents a metric counter (delta
and total
). The exporter normalizes each counter_event_name received from a Cloud Foundry Firehose origin and emits:
Metric | Description | Labels |
---|---|---|
metrics.namespacecounter_eventorigin_counter_event_name_total | Cloud Foundry Firehose 'counter_event_name' total counter event from 'origin' | environment , origin , bosh_deployment , bosh_job_name , bosh_job_id , bosh_job_ip |
metrics.namespacecounter_eventorigin_counter_event_name_delta | Cloud Foundry Firehose 'counter_event_name' delta counter event from 'origin' | environment , origin , bosh_deployment , bosh_job_name , bosh_job_id , bosh_job_ip |
The HttpStartStop Collector is a work in progress. It is suitable for experimentation and may not become supported in the future
An HttpStartStop
event represents the whole lifecycle of an HTTP request. The exporter summarizes applications related HTTP requests from a slidding window (doppler.metric-expiration
command flag) from the Cloud Foundry Firehose and emits:
Metric | Description | Labels |
---|---|---|
metrics.namespace_http_start_stop_requests | Cloud Foundry Firehose http start stop requests | environment , bosh_deployment , application_id , instance_id , method , scheme , host , status_code |
metrics.namespace_http_start_stop_response_size_bytes | Summary of Cloud Foundry Firehose http start stop request size in bytes | environment , bosh_deployment , application_id , instance_id , method , scheme , host , quantile [1] |
metrics.namespace_http_start_stop_response_size_bytes_count | Summary of Cloud Foundry Firehose http start stop request size in bytes (number of observations) | environment , bosh_deployment , application_id , instance_id , method , scheme , host |
metrics.namespace_http_start_stop_response_size_bytes_sum | Summary of Cloud Foundry Firehose http start stop request size in bytes (sum of observations) | environment , bosh_deployment , application_id , instance_id , method , scheme , host |
metrics.namespace_http_start_stop_last_request_timestamp | Number of seconds since 1970 since last http start stop received from Cloud Foundry Firehose | environment , bosh_deployment , application_id , instance_id , method , scheme , host |
metrics.namespace_http_start_stop_client_request_duration_seconds | Summary of Cloud Foundry Firehose http start stop client request duration in seconds | environment , bosh_deployment , application_id , instance_id , method , scheme , host , quantile [1] |
metrics.namespace_http_start_stop_client_request_duration_seconds_count | Summary of Cloud Foundry Firehose http start stop client request duration in seconds (number of observations) | environment , bosh_deployment , application_id , instance_id , method , scheme , host |
metrics.namespace_http_start_stop_client_request_duration_seconds_sum | Summary of Cloud Foundry Firehose http start stop client request duration in seconds (sum of observations) | environment , bosh_deployment , application_id , instance_id , method , scheme , host |
metrics.namespace_http_start_stop_server_request_duration_seconds | Summary of Cloud Foundry Firehose http start stop server request duration in seconds | environment , bosh_deployment , application_id , instance_id , method , scheme , host , quantile [1] |
metrics.namespace_http_start_stop_server_request_duration_seconds_count | Summary of Cloud Foundry Firehose http start stop server request duration in seconds (number of observations) | environment , bosh_deployment , application_id , instance_id , method , scheme , host |
metrics.namespace_http_start_stop_server_request_duration_seconds_sum | Summary of Cloud Foundry Firehose http start stop server request duration in seconds (sum of observations) | environment , bosh_deployment , application_id , instance_id , method , scheme , host |
[1] Summaries reports quantiles (0.5
, 0.9
, 0.99
)
ValueMetric
metrics represents the value of a metric at an instant in time. The exporter normalizes each value_metric_name received from a Cloud Foundry Firehose origin and emits:
Metric | Description | Labels |
---|---|---|
metrics.namespacevalue_metricorigin_value_metric_name | Cloud Foundry Firehose 'value_metric_name' value metric from 'origin' | environment , origin , bosh_deployment , bosh_job_name , bosh_job_id , bosh_job_ip , unit |
The filter.events
command flag allows you to filter what event metrics will be reported (if not set, all events will be enabled by default). Possible values are ContainerMetric
, CounterEvent
, HttpStartStop
, ValueMetric
(or a combination of them).
The filter.deployments
command flag allows you to filter metrics which origin is a particular BOSH deployment.
No, this exporter only supports targetting a single Cloud Foundry Firehose endpoint. If you want to get metrics from several endpoints, you will need to use one exporter per endpoint.
You can scale the exporter by increasing the number of exporter instances and using the same doppler.subscription-id
command flag. If you use the same subscription ID on each instance, the Firehose evenly distributes events across all instances of the exporter. For example, if you have two exporters with the same subscription ID, the Firehose sends half of the events to one exporter and half to the other.
For more information, check the Scaling Nozzles documentation.
You can combine this exporter with the Cloud Foundry Prometheus Exporter, that provides administrative information about Applications
, Organizations
, Services
and Spaces
.
For example:
firehose_container_metric_cpu_percentage
* on(application_id)
group_left(application_name, organization_name, space_name)
cf_application_info
The on specifies the matching label, in this case, the application_id. The group_left specifies what labels (application_name, organization_name, space_name) from the right metric (cf_application_info) should be merged into the left metric (firehose_container_metric_cpu_percentage).
We will be glad to address any questions not answered here. Please, just open a new issue.