Configuration
cc-metric-collector Configuration Reference
Reference information regarding the ClusterCockpit component “cc-metric-collector” (GitHub Repo).
cc-metric-collector is a node agent for measuring, processing and forwarding node level metrics. It is part of the ClusterCockpit ecosystem.
The metric collector sends (and receives) metrics in the InfluxDB line protocol as it provides flexibility while providing a separation between tags (like index columns in relational databases) and fields (like data columns).
There is a single timer loop that triggers all collectors serially, collects the data and sends the metrics to the configured sinks. This ensures all data is submitted with a single timestamp. The sinks currently use mostly blocking APIs.
The receiver runs as a go routine side-by-side with the timer loop and asynchronously forwards received metrics to the sink.
flowchart LR subgraph col ["Collectors"] direction TB cpustat["cpustat"] memstat["memstat"] tempstat["tempstat"] misc["..."] end subgraph Receivers ["Receivers"] direction TB nats["NATS"] httprecv["HTTP"] miscrecv[...] end subgraph calc["Aggregator"] direction LR cache["Cache"] agg["Calculator"] end subgraph sinks ["Sinks"] direction RL influx["InfluxDB"] ganglia["Ganglia"] logger["Logfile"] miscsink["..."] end cpustat --> CollectorManager["CollectorManager"] memstat --> CollectorManager tempstat --> CollectorManager misc --> CollectorManager nats --> ReceiverManager["ReceiverManager"] httprecv --> ReceiverManager miscrecv --> ReceiverManager CollectorManager --> newrouter["Router"] ReceiverManager -.-> newrouter calc -.-> newrouter newrouter --> SinkManager["SinkManager"] newrouter -.-> calc SinkManager --> influx SinkManager --> ganglia SinkManager --> logger SinkManager --> miscsink
The key difference between collectors and receivers is that collectors are called periodically while receivers run continuously and submit metrics at any time.
Supported metrics are documented in the cc-specifications.
The metric collector was designed with flexibility in mind, so it can be used in many scenarios:
flowchart TD
subgraph a ["Cluster A"]
nodeA[NodeA with CC collector]
nodeB[NodeB with CC collector]
nodeC[NodeC with CC collector]
end
a --> db[(Database)]
db <--> ccweb("Webfrontend")flowchart TD
subgraph a [ClusterA]
direction LR
nodeA[NodeA with CC collector]
nodeB[NodeB with CC collector]
nodeC[NodeC with CC collector]
end
subgraph b [ClusterB]
direction LR
nodeD[NodeD with CC collector]
nodeE[NodeE with CC collector]
nodeF[NodeF with CC collector]
end
a --> ccrecv{"CC collector as receiver"}
b --> ccrecv
ccrecv --> db[("Database1")]
ccrecv -.-> db2[("Database2")]
db <-.-> ccweb("Webfrontend")cc-metric-collector Configuration Reference
Building and installing cc-metric-collector
Running and using cc-metric-collector
Routing and processing metrics in cc-metric-collector
Available metric collectors for cc-metric-collector
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.