All Projects → bosh-prometheus → bosh_exporter

bosh-prometheus / bosh_exporter

Licence: Apache-2.0 license
BOSH Prometheus Exporter

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to bosh exporter

vault-boshrelease
No description or website provided.
Stars: ✭ 29 (+31.82%)
Mutual labels:  cloud-foundry, bosh
cf-rabbitmq-release
A BOSH Release of RabbitMQ
Stars: ✭ 29 (+31.82%)
Mutual labels:  cloud-foundry, bosh
bosh-softlayer-cpi-release
An external BOSH CPI for the SoftLayer cloud written in Golang
Stars: ✭ 14 (-36.36%)
Mutual labels:  cloud-foundry, bosh
bosh-kubernetes-cpi-release
The goal for this project is to provide a fully functional BOSH CPI. It will eventually allow to deploy any BOSH release to any Kubernetes cluster.
Stars: ✭ 29 (+31.82%)
Mutual labels:  cloud-foundry, bosh
logsearch-boshrelease
A BOSH-scalable ELK release
Stars: ✭ 45 (+104.55%)
Mutual labels:  cloud-foundry, bosh
Ibm Cf V2
Use GitHub Actions to automatically deploy the latest version of V2Ray to IBM Cloud Foundry
Stars: ✭ 194 (+781.82%)
Mutual labels:  cloud-foundry
cf-ops-automation
a collaboration framework for operating cloudfoundry and services at scale
Stars: ✭ 21 (-4.55%)
Mutual labels:  bosh
Ng Demo
🦴 Bare Bones Angular 10 and Angular CLI Tutorial
Stars: ✭ 154 (+600%)
Mutual labels:  cloud-foundry
Gcp Service Broker
Open Service Broker for Google Cloud Platform
Stars: ✭ 133 (+504.55%)
Mutual labels:  cloud-foundry
solace-samples-cloudfoundry-java
Samples showing how to connect and exchange messages with Solace Messaging for Pivotal Cloud Foundry.
Stars: ✭ 29 (+31.82%)
Mutual labels:  cloud-foundry
Management
Management Endpoints used to allow insight into your applications
Stars: ✭ 31 (+40.91%)
Mutual labels:  cloud-foundry
nfs-volume-release
No description or website provided.
Stars: ✭ 17 (-22.73%)
Mutual labels:  bosh
Todo Apps
Sample ToDo application (various languages) running on IBM Cloud
Stars: ✭ 195 (+786.36%)
Mutual labels:  cloud-foundry
app-autoscaler-release
Automated scaling for apps running on Cloud Foundry
Stars: ✭ 25 (+13.64%)
Mutual labels:  cloud-foundry
Bosh Bootloader
Command line utility for standing up a BOSH director on an IAAS of your choice.
Stars: ✭ 171 (+677.27%)
Mutual labels:  cloud-foundry
Kubo Release
Kubernetes BOSH release
Stars: ✭ 153 (+595.45%)
Mutual labels:  cloud-foundry
firehose exporter
Cloud Foundry Firehose Prometheus exporter
Stars: ✭ 27 (+22.73%)
Mutual labels:  cloud-foundry
btp-workflow-management-opensap
This repository contain the exercises for the openSAP course "Improve Business Processes with SAP Workflow Management."
Stars: ✭ 30 (+36.36%)
Mutual labels:  cloud-foundry
Postfacto
Self-hosted retro tool aimed at helping remote teams
Stars: ✭ 224 (+918.18%)
Mutual labels:  cloud-foundry
Stratos
Stratos: Web-based Management UI for Cloud Foundry and Kubernetes
Stars: ✭ 209 (+850%)
Mutual labels:  cloud-foundry

BOSH Prometheus Exporter Build Status

A Prometheus exporter for BOSH metrics. Please refer to the FAQ for general questions about this exporter.

Architecture overview

Installation

Binaries

Download the already existing binaries for your platform:

$ ./bosh_exporter <flags>

From source

Using the standard go install (you must have Go already installed in your local machine):

$ go install github.com/bosh-prometheus/bosh_exporter
$ bosh_exporter <flags>

Docker

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

$ docker run -p 9190:9190 boshprometheus/bosh-exporter <flags>

Cloud Foundry

The exporter can be deployed to an already existing Cloud Foundry environment:

$ git clone https://github.com/bosh-prometheus/bosh_exporter.git
$ cd bosh_exporter

Modify the included application manifest file to include your BOSH 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
bosh.url
BOSH_EXPORTER_BOSH_URL
Yes BOSH URL
bosh.username
BOSH_EXPORTER_BOSH_USERNAME
[1] BOSH Username
bosh.password
BOSH_EXPORTER_BOSH_PASSWORD
[1] BOSH Password
bosh.uaa.client-id
BOSH_EXPORTER_BOSH_UAA_CLIENT_ID
[1] BOSH UAA Client ID
bosh.uaa.client-secret
BOSH_EXPORTER_BOSH_UAA_CLIENT_SECRET
[1] BOSH UAA Client Secret
bosh.log-level
BOSH_EXPORTER_BOSH_LOG_LEVEL
No ERROR BOSH Log Level (DEBUG, INFO, WARN, ERROR, NONE)
bosh.ca-cert-file
BOSH_EXPORTER_BOSH_CA_CERT_FILE
Yes BOSH CA Certificate file
filter.deployments
BOSH_EXPORTER_FILTER_DEPLOYMENTS
No Comma separated deployments to filter
filter.azs
BOSH_EXPORTER_FILTER_AZS
No Comma separated AZs to filter
filter.collectors
BOSH_EXPORTER_FILTER_COLLECTORS
No Comma separated collectors to filter. If not set, all collectors will be enabled (Deployments, Jobs, ServiceDiscovery)
filter.cidrs
BOSH_EXPORTER_FILTER_CIDRS
No 0.0.0.0/0 Comma separated CIDR to filter instance IPs
metrics.namespace
BOSH_EXPORTER_METRICS_NAMESPACE
No bosh Metrics Namespace
metrics.environment
BOSH_EXPORTER_METRICS_ENVIRONMENT
Yes Environment label to be attached to metrics
sd.filename
BOSH_EXPORTER_SD_FILENAME
No bosh_target_groups.json Full path to the Service Discovery output file
sd.processes_regexp
BOSH_EXPORTER_SD_PROCESSES_REGEXP
No Regexp to filter Service Discovery processes names
web.listen-address
BOSH_EXPORTER_WEB_LISTEN_ADDRESS
No :9190 Address to listen on for web interface and telemetry
web.telemetry-path
BOSH_EXPORTER_WEB_TELEMETRY_PATH
No /metrics Path under which to expose Prometheus metrics
web.auth.username
BOSH_EXPORTER_WEB_AUTH_USERNAME
No Username for web interface basic auth
web.auth.password
BOSH_EXPORTER_WEB_AUTH_PASSWORD
No Password for web interface basic auth
web.tls.cert_file
BOSH_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
BOSH_EXPORTER_WEB_TLS_KEYFILE
No Path to a file that contains the TLS private key (PEM format)

[1] When BOSH delegates user managament to UAA, either bosh.username and bosh.password or bosh.uaa.client-id and bosh.uaa.client-secret flags may be used; otherwise bosh.username and bosh.password will be required. When using UAA and the bosh.username and bosh.password authentication method, tokens are not refreshed, so after a period of time the exporter will be unable to communicate with the BOSH API, so use this method only when testing the exporter. For production, it is recommended to use the bosh.uaa.client-id and bosh.uaa.client-secret authentication method.

Metrics

The exporter returns the following metrics:

Metric Description Labels
metrics.namespace_scrapes_total Total number of times BOSH was scraped for metrics environment, bosh_name, bosh_uuid
metrics.namespace_scrape_errors_total Total number of times an error occured scraping BOSH environment, bosh_name, bosh_uuid
metrics.namespace_last_scrape_error Whether the last scrape of metrics from BOSH resulted in an error (1 for error, 0 for success) environment, bosh_name, bosh_uuid
metrics.namespace_last_scrape_timestamp Number of seconds since 1970 since last scrape from BOSH environment, bosh_name, bosh_uuid
metrics.namespace_last_scrape_duration_seconds Duration of the last scrape from BOSH environment, bosh_name, bosh_uuid

The exporter returns the following Deployments metrics:

Metric Description Labels
metrics.namespace_deployment_release_info Labeled BOSH Deployment Release Info with a constant 1 value environment, bosh_name, bosh_uuid, bosh_deployment, bosh_release_name, bosh_release_version
metrics.namespace_deployment_stemcell_info Labeled BOSH Deployment Stemcell Info with a constant 1 value environment, bosh_name, bosh_uuid, bosh_deployment, bosh_stemcell_name, bosh_stemcell_version, bosh_stemcell_os_name
metrics.namespace_deployment_instances Number of instances in the deployment environment, bosh_name, bosh_uuid, bosh_deployment, bosh_vm_type
metrics.namespace_last_deployments_scrape_timestamp Number of seconds since 1970 since last scrape of Deployments metrics from BOSH environment, bosh_name, bosh_uuid
metrics.namespace_last_deployments_scrape_duration_seconds Duration of the last scrape of Deployments metrics from BOSH environment, bosh_name, bosh_uuid

The exporter returns the following Jobs metrics:

Metric Description Labels
metrics.namespace_job_healthy BOSH Job Healthy (1 for healthy, 0 for unhealthy) environment, bosh_name, bosh_uuid, bosh_deployment, bosh_job_name, bosh_job_id, bosh_job_index, bosh_job_az, bosh_job_ip
metrics.namespace_job_load_avg01 BOSH Job Load avg01 environment, bosh_name, bosh_uuid, bosh_deployment, bosh_job_name, bosh_job_id, bosh_job_index, bosh_job_az, bosh_job_ip
metrics.namespace_job_load_avg05 BOSH Job Load avg05 environment, bosh_name, bosh_uuid, bosh_deployment, bosh_job_name, bosh_job_id, bosh_job_index, bosh_job_az, bosh_job_ip
metrics.namespace_job_load_avg15 BOSH Job Load avg15 environment, bosh_name, bosh_uuid, bosh_deployment, bosh_job_name, bosh_job_id, bosh_job_index, bosh_job_az, bosh_job_ip
metrics.namespace_job_cpu_sys BOSH Job CPU System environment, bosh_name, bosh_uuid, bosh_deployment, bosh_job_name, bosh_job_id, bosh_job_index, bosh_job_az, bosh_job_ip
metrics.namespace_job_cpu_user BOSH Job CPU User environment, bosh_name, bosh_uuid, bosh_deployment, bosh_job_name, bosh_job_id, bosh_job_index, bosh_job_az, bosh_job_ip
metrics.namespace_job_cpu_wait BOSH Job CPU Wait environment, bosh_name, bosh_uuid, bosh_deployment, bosh_job_name, bosh_job_id, bosh_job_index, bosh_job_az, bosh_job_ip
metrics.namespace_job_mem_kb BOSH Job Memory KB environment, bosh_name, bosh_uuid, bosh_deployment, bosh_job_name, bosh_job_id, bosh_job_index, bosh_job_az, bosh_job_ip
metrics.namespace_job_mem_percent BOSH Job Memory Percent environment, bosh_name, bosh_uuid, bosh_deployment, bosh_job_name, bosh_job_id, bosh_job_index, bosh_job_az, bosh_job_ip
metrics.namespace_job_swap_kb BOSH Job Swap KB environment, bosh_name, bosh_uuid, bosh_deployment, bosh_job_name, bosh_job_id, bosh_job_index, bosh_job_az, bosh_job_ip
metrics.namespace_job_swap_percent BOSH Job Swap Percent environment, bosh_name, bosh_uuid, bosh_deployment, bosh_job_name, bosh_job_id, bosh_job_index, bosh_job_az, bosh_job_ip
metrics.namespace_job_system_disk_inode_percent BOSH Job System Disk Inode Percent environment, bosh_name, bosh_uuid, bosh_deployment, bosh_job_name, bosh_job_id, bosh_job_index, bosh_job_az, bosh_job_ip
metrics.namespace_job_system_disk_percent BOSH Job System Disk Percent environment, bosh_name, bosh_uuid, bosh_deployment, bosh_job_name, bosh_job_id, bosh_job_index, bosh_job_az, bosh_job_ip
metrics.namespace_job_ephemeral_disk_inode_percent BOSH Job Ephemeral Disk Inode Percent environment, bosh_name, bosh_uuid, bosh_deployment, bosh_job_name, bosh_job_id, bosh_job_index, bosh_job_az, bosh_job_ip
metrics.namespace_job_ephemeral_disk_percent BOSH Job Ephemeral Disk Percent environment, bosh_name, bosh_uuid, bosh_deployment, bosh_job_name, bosh_job_id, bosh_job_index, bosh_job_az, bosh_job_ip
metrics.namespace_job_persistent_disk_inode_percent BOSH Job Persistent Disk Inode Percent environment, bosh_name, bosh_uuid, bosh_deployment, bosh_job_name, bosh_job_id, bosh_job_index, bosh_job_az, bosh_job_ip
metrics.namespace_job_persistent_disk_percent BOSH Job Persistent Disk Percent environment, bosh_name, bosh_uuid, bosh_deployment, bosh_job_name, bosh_job_id, bosh_job_index, bosh_job_az, bosh_job_ip
metrics.namespace_job_process_healthy BOSH Job Process Healthy (1 for healthy, 0 for unhealthy) environment, bosh_name, bosh_uuid, bosh_deployment, bosh_job_name, bosh_job_id, bosh_job_index, bosh_job_az, bosh_job_ip, bosh_job_process_name
metrics.namespace_job_process_uptime_seconds BOSH Job Process Uptime in seconds environment, bosh_name, bosh_uuid, bosh_deployment, bosh_job_name, bosh_job_id, bosh_job_index, bosh_job_az, bosh_job_ip, bosh_job_process_name
metrics.namespace_job_process_cpu_total BOSH Job Process CPU Total environment, bosh_name, bosh_uuid, bosh_deployment, bosh_job_name, bosh_job_id, bosh_job_index, bosh_job_az, bosh_job_ip, bosh_job_process_name
metrics.namespace_job_process_mem_kb BOSH Job Process Memory KB environment, bosh_name, bosh_uuid, bosh_deployment, bosh_job_name, bosh_job_id, bosh_job_index, bosh_job_az, bosh_job_ip, bosh_job_process_name
metrics.namespace_job_process_mem_percent BOSH Job Process Memory Percent environment, bosh_name, bosh_uuid, bosh_deployment, bosh_job_name, bosh_job_id, bosh_job_index, bosh_job_az, bosh_job_ip, bosh_job_process_name
metrics.namespace_last_jobs_scrape_timestamp Number of seconds since 1970 since last scrape of Job metrics from BOSH environment, bosh_name, bosh_uuid
metrics.namespace_last_jobs_scrape_duration_seconds Duration of the last scrape of Job metrics from BOSH environment, bosh_name, bosh_uuid

The exporter returns the following ServiceDiscovery metrics:

Metric Description Labels
metrics.namespace_last_service_discovery_scrape_timestamp Number of seconds since 1970 since last scrape of Service Discovery from BOSH environment, bosh_name, bosh_uuid
metrics.namespace_last_service_discovery_scrape_duration_seconds Duration of the last scrape of Service Discovery from BOSH environment, bosh_name, bosh_uuid

Service Discovery

If the ServiceDiscovery collector is enabled, the exporter will write a json file at the sd.filename location containing a list of static configs that can be used with the Prometheus file-based service discovery mechanism:

[
  {
    "targets": ["10.244.0.12"],
    "labels":
      {
        "__meta_bosh_job_process_name": "bosh_exporter"
      }
  },
  {
    "targets": ["10.244.0.11", "10.244.0.12", "10.244.0.13", "10.244.0.14"],
    "labels":
      {
        "__meta_bosh_job_process_name": "node_exporter"
      }
  }
]

The list of targets can be filtered using the sd.processes_regexp flag.

Filtering IPs

Available instance IPs can be filtered using the filter.cidrs flag.

The first IP that matches a CIDR is used as target. CIDRs are tested in the order specified by the comma-seperated list. The instance is dropped if no IP is included in any of the CIDRs.

Contributing

Refer to the contributing guidelines.

License

Apache License 2.0, see LICENSE.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].