Skip to content
Andrew Crump edited this page Dec 21, 2021 · 5 revisions

BOSH system metrics server and forwarder were created to forward BOSH system metrics (e.g. CPU, memory usage, system healthy) into Loggregator. This is accomplished by receiving data from the BOSH Health Monitor via JSON.

Components:

HM(Health Monitor): Core BOSH component, fetches BOSH managed VMs' health status metrics (CPU, MEM, etc) and aggregates the metrics in the BOSH Director.

Plugin: Lives on the BOSH director. Reads data from the HM JSON plugin (via stdin) and sends the data (via tcp) to the metrics server

Server: Lives on the BOSH director. Sends data (via GRPC) to the forwarder in a round robin manner to support multiple forwarder instances.

Forwarder: Lives on the Loggregator Traffic Controller. Authenticates with the BOSH Director/metrics server. Receives metrics, transforms the metric into the dropsonde format, then sends the metric to the appropriate Loggregator agent to be sent to the firehose.

Why BOSH system metrics plugin AND server?

The plugin's lifecycle is managed by BOSH HM json plugin, which can go down. Communication with the forwarder requires configuration and the plugin process cannot take any arguments when it is started, making it hard to establish communication with the forwarder. So the functionality is separated out to a plugin with the only purpose of sending the json metrics to the server, and server can be long running to handle the communication with the forwarder.

NOTE: The server and forwarder are included by default with Ops Manager and Tanzu Application Service, respectively, but not included in an open source cloud foundry deployment. To include the BOSH system metrics components, include Server ops file when deploying the BOSH director, and include Forwarder ops file in the cf deployment.

Clone this wiki locally