A Prometheus exporter for the ccache compiler cache statistics, and its companion Go parser.
| Metric | Type | Labels |
|---|---|---|
ccache_collector_parsing_errors_total |
Counter | - |
ccache_exporter_version |
Untyped | committed_at_seconds,is_dirty,revision,version |
ccache_version |
Untyped | version |
Tip
For details about each metric, see the Cache statistics section of the ccache(1) manual.
Warning
Depending on the version of the local ccache binary, some metrics may not be available.
See the ccache release notes for more information.
| Metric | Type | Labels |
|---|---|---|
ccache_call_total |
Counter | - |
ccache_call_hit_total |
Counter | mode |
ccache_called_for_link_total |
Counter | - |
ccache_called_for_preprocessing_total |
Counter | - |
ccache_cleanups_performed_total |
Counter | - |
ccache_compilation_failed_total |
Counter | - |
ccache_no_input_file_total |
Counter | - |
ccache_preprocessing_failed_total |
Counter | - |
ccache_remote_storage_errors_total |
Counter | - |
ccache_remote_storage_hit_total |
Counter | - |
ccache_remote_storage_miss_total |
Counter | - |
ccache_remote_storage_read_hit_total |
Counter | - |
ccache_remote_storage_read_miss_total |
Counter | - |
ccache_remote_storage_timeout_total |
Counter | - |
ccache_remote_storage_write_total |
Counter | - |
ccache_unsupported_code_directive_total |
Counter | - |
ccache_cache_hit_ratio |
Gauge | - |
ccache_cache_size_bytes |
Gauge | - |
ccache_cache_size_max_bytes |
Gauge | - |
ccache_cached_files |
Gauge | - |
For ccache 3.7 and above:
$ ccache --print-stats | ccacheparser | jq{
"stats_time": "2022-07-31T20:39:33Z",
"stats_zero_time": "2022-07-29T17:04:53Z",
"cache_hit_direct": 192,
"cache_hit_preprocessed": 2,
"cache_miss": 535,
"cache_miss_direct": 276,
"cache_miss_preprocessed": 259,
"cache_hit_rate": 26.611796982167352,
"cache_hit_ratio": 0.2661179698216735,
"called_for_link": 132,
"called_for_preprocessing": 0,
"unsupported_code_directive": 0,
"no_input_file": 13,
"cleanups_performed": 0,
"files_in_cache": 508,
"cache_size": "8MB",
"cache_size_bytes": 8159232
}The provided docker-compose.yml script defines the following monitoring
stack:
ccache-exporterservice bind-mounted on the user's$HOMEdirectory;node-exporterservice to gather system metrics;prometheusdatabase, preconfigured to scrap exportedccachemetrics;grafanadashboard, preconfigured to useprometheusas a data source and displayccachemetrics in the corresponding dashboard.
To pull Docker images and start the services:
$ docker-compose pull
$ docker-compose up -dOnce the stack is up, the following services will be exposed:
- http://localhost:19508:
ccache-exporter - http://localhost:19100:
node-exporter - http://localhost:19090:
prometheus - http://localhost:13000:
grafana
Then, login to Grafana with the default credentials (admin/admin) and load
the ccache dashboard:
See CHANGELOG
See CONTRIBUTING
ccache_exporter is licenced under the MIT License.
