Prometheus Metrics for On-prem Users
BuildBuddy exposes Prometheus metrics that allow monitoring the four golden signals: latency, traffic, errors, and saturation.
Prometheus metrics are exposed under the path metrics/ on port 9090 by default.
To view these metrics in a live-updating dashboard, we recommend using a tool like Grafana.
SSL metrics
buildbuddy_ssl_certificate_reload_failures_total (Counter)
Number of failed TLS certificate reloads.
The server retains the last successfully loaded certificate on failure.
Invocation build event metrics
All invocation metrics are recorded at the end of each invocation.
buildbuddy_invocation_count (Counter)
The total number of invocations whose logs were uploaded to BuildBuddy.
Labels
- invocation_status: Invocation status:
success,failure,disconnected, orunknown. - bazel_exit_code: Exit code of a completed bazel command
- bazel_command: Command provided to the Bazel daemon:
run,test,build,coverage,mobile-install, ...
Examples
# Number of invocations per second by invocation status
sum by (invocation_status) (rate(buildbuddy_invocation_count[5m]))
# Invocation success rate
sum(rate(buildbuddy_invocation_count{invocation_status="success"}[5m]))
/
sum(rate(buildbuddy_invocation_count[5m]))
buildbuddy_invocation_discarded_anonymous_build_event_stream_count (Counter)
The total number of anonymous build event streams discarded because they did not contain an API key.
buildbuddy_invocation_log_live_chunk_written_bytes (Counter)
Total number of bytes written to the key-value store for live (in-progress) invocation log tail chunks.
buildbuddy_invocation_duration_usec (Histogram)
The total duration of each invocation, in microseconds.
Labels
- invocation_status: Invocation status:
success,failure,disconnected, orunknown. - bazel_command: Command provided to the Bazel daemon:
run,test,build,coverage,mobile-install, ...
Examples
# Median invocation duration in the past 5 minutes
histogram_quantile(
0.5,
sum(rate(buildbuddy_invocation_duration_usec_bucket[5m])) by (le)
)
buildbuddy_invocation_open_streams (Gauge)
Number of build event streams currently being handled by the server.
buildbuddy_invocation_build_event_count (Counter)
Number of build events uploaded to BuildBuddy.
Labels
- status: Status code as defined by grpc/codes. This is a numeric value; any non-zero code indicates an error.
Examples
# Build events uploaded per second
sum(rate(buildbuddy_invocation_build_event_count[5m]))
# Approximate error rate of build event upload handler
sum(rate(buildbuddy_invocation_build_event_count{status="0"}[5m]))
/
sum(rate(buildbuddy_invocation_build_event_count[5m]))
buildbuddy_invocation_stats_recorder_workers (Gauge)
Number of invocation stats recorder workers currently running.
buildbuddy_invocation_stats_recorder_duration_usec (Histogram)
How long it took to finalize an invocation's stats, in microseconds.
This includes the time required to wait for all BuildBuddy apps to flush their local metrics to Redis (if applicable) and then record the metrics to the DB.
buildbuddy_invocation_webhook_invocation_lookup_workers (Gauge)
Number of webhook invocation lookup workers currently running.
buildbuddy_invocation_webhook_invocation_lookup_duration_usec (Histogram)
How long it took to lookup an invocation before posting to the webhook, in microseconds.
buildbuddy_invocation_webhook_invocation_payload_size_bytes (Histogram)
Size in bytes of the payload posted to invocation webhook endpoints.
buildbuddy_invocation_webhook_notify_workers (Gauge)
Number of webhook notify workers currently running.
buildbuddy_invocation_webhook_notify_duration_usec (Histogram)
How long it took to post an invocation proto to the webhook, in microseconds.
Remote cache metrics
NOTE: Cache metrics are recorded at the end of each invocation, which means that these metrics provide approximate real-time signals.
buildbuddy_remote_cache_events (Counter)
Number of cache events handled.
Labels
- cache_type: Cache type:
actionfor action cache,casfor content-addressable storage. - cache_event_type: Cache event type:
hit,miss, orupload. - group_id: Group (organization) ID associated with the request.
- tracked: Whether or not billable usage was recorded for this request ("true", "false")
buildbuddy_remote_cache_download_size_bytes (Histogram)
Number of bytes downloaded from the remote cache in each download.
Use the _sum suffix to get the total downloaded bytes and the _count suffix to get the number of downloaded files.
Labels
- cache_type: Cache type:
actionfor action cache,casfor content-addressable storage. - server_name: Describes the name of the server that handles a client request, such as "byte_stream_server" or "cas_server"
- group_id: Group (organization) ID associated with the request.
- tracked: Whether or not billable usage was recorded for this request ("true", "false")
Examples
# Cache download rate (bytes per second)
sum(rate(buildbuddy_cache_download_size_bytes_sum[5m]))
buildbuddy_remote_cache_download_duration_usec (Histogram)
Download duration for each file downloaded from the remote cache, in microseconds.
Labels
- cache_type: Cache type:
actionfor action cache,casfor content-addressable storage. - tracked: Whether or not billable usage was recorded for this request ("true", "false")
Examples
# Median download duration for content-addressable store (CAS)
histogram_quantile(
0.5,
sum(rate(buildbuddy_remote_cache_download_duration_usec{cache_type="cas"}[5m])) by (le)
)
buildbuddy_remote_cache_upload_size_bytes (Histogram)
Number of bytes uploaded to the remote cache in each upload.
Use the _sum suffix to get the total uploaded bytes and the _count suffix to get the number of uploaded files.
Labels
- cache_type: Cache type:
actionfor action cache,casfor content-addressable storage. - server_name: Describes the name of the server that handles a client request, such as "byte_stream_server" or "cas_server"
- group_id: Group (organization) ID associated with the request.
- tracked: Whether or not billable usage was recorded for this request ("true", "false")
Examples
# Cache upload rate (bytes per second)
sum(rate(buildbuddy_cache_upload_size_bytes_sum[5m]))
buildbuddy_remote_cache_upload_duration_usec (Histogram)
Upload duration for each file uploaded to the remote cache, in microseconds.
Labels
- cache_type: Cache type:
actionfor action cache,casfor content-addressable storage. - tracked: Whether or not billable usage was recorded for this request ("true", "false")
Examples
# Median upload duration for content-addressable store (CAS)
histogram_quantile(
0.5,
sum(rate(buildbuddy_remote_cache_upload_duration_usec{cache_type="cas"}[5m])) by (le)
)
buildbuddy_remote_cache_method_handled_total (Counter)
Total number of methods completed on the cache, regardless of success or failure.
Labels
- cache_name: Cache name: Custom name to describe the cache, like "pebble-cache".
- cache_method: The Methods exposed in interfaces.Cache.
- status: Status code as defined by grpc/codes in human-readable format, such as "OK" or "NotFound".
buildbuddy_remote_cache_method_handling_usec (Histogram)
Histogram of response latency(microseconds) of cache methods
Labels
- cache_name: Cache name: Custom name to describe the cache, like "pebble-cache".
- cache_method: The Methods exposed in interfaces.Cache.
buildbuddy_remote_cache_disk_cache_last_eviction_age_usec (Gauge)
The age of the item most recently evicted from the cache, in microseconds.
Labels
- partition_id: The ID of the disk cache partition this event applied to.
- cache_name: Cache name: Custom name to describe the cache, like "pebble-cache".
buildbuddy_remote_cache_disk_cache_eviction_age_msec (Histogram)
Age of items evicted from the cache, in milliseconds.
Labels
- partition_id: The ID of the disk cache partition this event applied to.
- cache_name: Cache name: Custom name to describe the cache, like "pebble-cache".
buildbuddy_remote_cache_disk_cache_num_evictions (Counter)
Number of items evicted.
Labels
- partition_id: The ID of the disk cache partition this event applied to.
- cache_name: Cache name: Custom name to describe the cache, like "pebble-cache".
buildbuddy_remote_cache_disk_cache_partition_size_bytes_evicted (Counter)
Number of bytes in the partition evicted.
Labels
- partition_id: The ID of the disk cache partition this event applied to.
- cache_name: Cache name: Custom name to describe the cache, like "pebble-cache".
buildbuddy_remote_cache_disk_cache_partition_size_bytes (Gauge)
Number of bytes in the partition.
Labels
- partition_id: The ID of the disk cache partition this event applied to.
- cache_name: Cache name: Custom name to describe the cache, like "pebble-cache".
buildbuddy_remote_cache_disk_cache_sampled_partition_group_size_bytes (Gauge)
Number of bytes seen while sampling the partition for eviction, by group ID.
Labels
- partition_id: The ID of the disk cache partition this event applied to.
- cache_name: Cache name: Custom name to describe the cache, like "pebble-cache".
- group_id: Group (organization) ID associated with the request.
buildbuddy_remote_cache_disk_cache_partition_capacity_bytes (Gauge)
Number of bytes in the partition.
Labels
- partition_id: The ID of the disk cache partition this event applied to.
- cache_name: Cache name: Custom name to describe the cache, like "pebble-cache".
buildbuddy_remote_cache_disk_cache_partition_num_items (Gauge)
Number of items in the partition.
Labels
- partition_id: The ID of the disk cache partition this event applied to.
- cache_name: Cache name: Custom name to describe the cache, like "pebble-cache".
- cache_type: Cache type:
actionfor action cache,casfor content-addressable storage.
buildbuddy_remote_cache_disk_cache_duplicate_writes (Counter)
Number of writes for digests that already exist.
Labels
- cache_name: Cache name: Custom name to describe the cache, like "pebble-cache".
buildbuddy_remote_cache_disk_cache_added_file_size_bytes (Histogram)
Size of artifacts added to the file cache, in bytes.
Labels
- cache_name: Cache name: Custom name to describe the cache, like "pebble-cache".
buildbuddy_remote_cache_disk_cache_filesystem_total_bytes (Gauge)
Total size of the underlying filesystem.
Labels
- cache_name: Cache name: Custom name to describe the cache, like "pebble-cache".
buildbuddy_remote_cache_disk_cache_filesystem_avail_bytes (Gauge)
Available bytes in the underlying filesystem.
Labels
- cache_name: Cache name: Custom name to describe the cache, like "pebble-cache".
Examples
# Total number of duplicate writes.
sum(buildbuddy_remote_cache_duplicate_writes)
buildbuddy_remote_cache_disk_cache_duplicate_writes_bytes (Counter)
Number of bytes written that already existed in the cache.
Labels
- cache_name: Cache name: Custom name to describe the cache, like "pebble-cache".
buildbuddy_remote_cache_distributed_cache_peer_lookups (Histogram)
Number of peers consulted (including the 'local peer') for a distributed cache read before returning a response.
For batch requests, one observation is recorded for each digest in the request.
Labels
- op: Distributed cache operation name, such as "FindMissing" or "Get".
- cache_status: Cache lookup result - One of: - "hit" - "miss" - "partial" (for batched RPCs where part of a request was cached) - Or "uncacheable" (for e.g. encrypted resources)
buildbuddy_remote_cache_distributed_cache_find_missing_blob_status_count (Counter)
Count of blobs checked by FindMissing at the distributed-cache layer, by logical present/absent status and originating purpose.
Labels
- purpose: FindMissing purpose: which internal code path originated a FindMissing lookup (see repb.FindMissingBlobsRequest.Purpose), e.g. "ATIME_UPDATE".
- status: Status code as defined by grpc/codes. This is a numeric value; any non-zero code indicates an error.
buildbuddy_remote_cache_distributed_cache_backfill_count (Counter)
Count of distributed cache backfills, by whether the blob was sent to the peer as a reference or as inline bytes, and by status code.
Labels
- request_type: How a distributed cache write's payload was sent: "reference" (a pointer to the blob in shared storage) or "bytes" (the blob's bytes, streamed inline).
- status: Status code as defined by grpc/codes in human-readable format, such as "OK" or "NotFound".
buildbuddy_remote_cache_distributed_cache_backfill_size_bytes (Counter)
Total digest sizes of blobs backfilled to distributed cache peers, by whether the blob was sent as a reference or as inline bytes, and by status code.
Labels
- request_type: How a distributed cache write's payload was sent: "reference" (a pointer to the blob in shared storage) or "bytes" (the blob's bytes, streamed inline).
- status: Status code as defined by grpc/codes in human-readable format, such as "OK" or "NotFound".
buildbuddy_remote_cache_distributed_cache_backfill_latency_usec (Histogram)
Latency of backfilling a single digest.
Labels
- group_id: Group (organization) ID associated with the request.
- status: Status code as defined by grpc/codes. This is a numeric value; any non-zero code indicates an error.
buildbuddy_remote_cache_distributed_cache_read_count (Counter)
Count of objects served by distributed cache reads, by operation and source.
Labels
- op: Distributed cache operation name, such as "FindMissing" or "Get".
- source: Where a distributed cache read was served from: "local" (this node is a replica), "read_through" (local read-through cache), "lookaside", "same_zone_peer" or "cross_zone_peer".
buildbuddy_remote_cache_distributed_cache_read_digest_size (Counter)
Total digest sizes of objects served by distributed cache reads, by operation and source.
Labels
- op: Distributed cache operation name, such as "FindMissing" or "Get".
- source: Where a distributed cache read was served from: "local" (this node is a replica), "read_through" (local read-through cache), "lookaside", "same_zone_peer" or "cross_zone_peer".
buildbuddy_remote_cache_distributed_cache_read_response_count (Counter)
Count of distributed cache peer reads, by whether the payload was received as a reference or as inline bytes, and by status code.
Labels
- response_type: How a distributed cache read's payload was received: "reference" (a pointer to the blob in shared storage) or "bytes" (the blob's bytes, streamed inline).
- status: Status code as defined by grpc/codes in human-readable format, such as "OK" or "NotFound".
buildbuddy_remote_cache_distributed_cache_read_response_size_bytes (Counter)
Total digest sizes of blobs read from distributed cache peers, by whether the payload was received as a reference or as inline bytes, and by status code.
Labels
- response_type: How a distributed cache read's payload was received: "reference" (a pointer to the blob in shared storage) or "bytes" (the blob's bytes, streamed inline).
- status: Status code as defined by grpc/codes in human-readable format, such as "OK" or "NotFound".
buildbuddy_remote_cache_distributed_cache_get_multi_response_count (Counter)
Count of values received from distributed cache peers via GetMulti, by whether the value was received as a reference or as inline bytes, and by status code.
Labels
- response_type: How a distributed cache read's payload was received: "reference" (a pointer to the blob in shared storage) or "bytes" (the blob's bytes, streamed inline).
- status: Status code as defined by grpc/codes in human-readable format, such as "OK" or "NotFound".
buildbuddy_remote_cache_distributed_cache_get_multi_response_size_bytes (Counter)
Total digest sizes of values received from distributed cache peers via GetMulti, by whether the value was received as a reference or as inline bytes, and by status code.
Labels
- response_type: How a distributed cache read's payload was received: "reference" (a pointer to the blob in shared storage) or "bytes" (the blob's bytes, streamed inline).
- status: Status code as defined by grpc/codes in human-readable format, such as "OK" or "NotFound".
buildbuddy_remote_cache_distributed_cache_write_request_count (Counter)
Count of distributed cache peer writes, by whether the payload was sent as a reference or as inline bytes, and by status code.
Labels
- request_type: How a distributed cache write's payload was sent: "reference" (a pointer to the blob in shared storage) or "bytes" (the blob's bytes, streamed inline).
- status: Status code as defined by grpc/codes in human-readable format, such as "OK" or "NotFound".
buildbuddy_remote_cache_distributed_cache_write_request_size_bytes (Counter)
Total digest sizes of blobs written to distributed cache peers, by whether the payload was sent as a reference or as inline bytes, and by status code.
Labels
- request_type: How a distributed cache write's payload was sent: "reference" (a pointer to the blob in shared storage) or "bytes" (the blob's bytes, streamed inline).
- status: Status code as defined by grpc/codes in human-readable format, such as "OK" or "NotFound".
buildbuddy_remote_cache_distributed_cache_get_with_metadata_response_count (Counter)
Count of distributed cache peer GetWithMetadata responses, by whether the payload was received as a reference or as inline bytes, and by status code.
Labels
- response_type: How a distributed cache read's payload was received: "reference" (a pointer to the blob in shared storage) or "bytes" (the blob's bytes, streamed inline).
- status: Status code as defined by grpc/codes in human-readable format, such as "OK" or "NotFound".
buildbuddy_remote_cache_distributed_cache_get_with_metadata_response_size_bytes (Counter)
Total digest sizes of blobs fetched from distributed cache peers via GetWithMetadata, by whether the payload was received as a reference or as inline bytes, and by status code.
Labels
- response_type: How a distributed cache read's payload was received: "reference" (a pointer to the blob in shared storage) or "bytes" (the blob's bytes, streamed inline).
- status: Status code as defined by grpc/codes in human-readable format, such as "OK" or "NotFound".
buildbuddy_remote_cache_migration_not_found_error_count (Counter)
Number of not found errors from the destination cache during a cache migration.
Labels
- type: Describes the type of cache request
- group_id: Group (organization) ID associated with the request.
buildbuddy_remote_cache_migration_double_read_hit_count (Counter)
Number of double reads where the source and destination caches hold the same digests during a cache migration.
Labels
- type: Describes the type of cache request
- group_id: Group (organization) ID associated with the request.
buildbuddy_remote_cache_migration_copy_chan_size (Gauge)
Number of digests queued to be copied during a cache migration.
buildbuddy_remote_cache_migration_bytes_copied (Counter)
Number of bytes copied from the source to destination cache during a cache migration.
Labels
- cache_type: Cache type:
actionfor action cache,casfor content-addressable storage. - group_id: Group (organization) ID associated with the request.
buildbuddy_remote_cache_migration_blobs_copied (Counter)
Number of blobs copied from the source to destination cache during a cache migration.
Labels
- cache_type: Cache type:
actionfor action cache,casfor content-addressable storage. - group_id: Group (organization) ID associated with the request.
buildbuddy_remote_cache_tree_cache_lookup_count (Counter)
Total number of TreeCache lookups.
Labels
- status: The TreeCache status: hit/miss/invalid_entry.
- level: TreeCache directory depth: 0 for the root dir, 1 for a direct child of the root dir, and so on.
buildbuddy_remote_cache_tree_cache_split_lookup_count (Counter)
Total number of TreeCache split lookups.
Labels
- status: The TreeCache split lookup status: hit/miss/failure
buildbuddy_remote_cache_tree_cache_split_write_count (Counter)
Total number of splits written to TreeCache.
buildbuddy_remote_cache_tree_cache_set_count (Counter)
Total number of TreeCache sets.
Labels
- status: The TreeCache set status: success/deadline_exceeded/other_error
buildbuddy_remote_cache_tree_cache_bytes_transferred (Counter)
Number of bytes written or read from tree cache
Labels
- op: TreeCache operation "read" or "write"
buildbuddy_remote_cache_splice_blob_duration_usec (Histogram)
Duration of the full SpliceBlob RPC handler, in microseconds.
Labels
- status: Status code as defined by grpc/codes. This is a numeric value; any non-zero code indicates an error.
buildbuddy_remote_cache_splice_blob_count (Counter)
Number of SpliceBlob requests that reached the manifest store step, labeled by whether chunk contents were verified against the blob digest.
Labels
- splice_validation: Whether a SpliceBlob request hashed the referenced chunks to verify the blob digest (
full) or skipped that check (skipped). - group_id: Group (organization) ID associated with the request.
buildbuddy_remote_cache_chunked_manifest_validation_count (Counter)
Number of chunked manifest Store() calls, labeled by whether the shared validation marker was a hit (skipped re-hashing) or miss (full chunk verification performed).
Labels
- cache_status: Cache lookup result - One of: - "hit" - "miss" - "partial" (for batched RPCs where part of a request was cached) - Or "uncacheable" (for e.g. encrypted resources)
buildbuddy_remote_cache_chunked_manifest_load_count (Counter)
Number of successful chunked manifest LoadManifest() calls, labeled by manifest key scheme.
Labels
- prefix:
buildbuddy_remote_execution_get_tree_directory_lookup_count (Counter)
Number of directories fetched by GetTree calls, split by where the directory was found.
Labels
- location: Where a directory from a GetTree request was found: one of "uncached", "filecache", "remote"
buildbuddy_remote_execution_get_tree_filecache_trees_read (Counter)
Number of trees read from the local filecache.
buildbuddy_remote_execution_get_tree_filecache_bytes_read (Counter)
Total size in bytes of trees read from the local filecache.
buildbuddy_remote_execution_get_tree_filecache_trees_written (Counter)
Number of trees written to the local filecache.
buildbuddy_remote_execution_get_tree_filecache_bytes_written (Counter)
Total size in bytes of trees written to the local filecache.
buildbuddy_remote_asset_fetch_singleflight_requests_total (Counter)
Number of per-URI FetchBlob attempts entering process-local singleflight after cache lookup.
Includes callers that later fail or cancel; excludes cache hits and requests that bypass coalescing.
buildbuddy_remote_asset_fetch_singleflight_executions_total (Counter)
Number of origin download and CAS publication operations started by FetchBlob singleflight.
Includes failed or canceled operations. Compare with fetch_singleflight_requests_total to measure coalescing.
buildbuddy_remote_cache_lookaside_cache_lookup_count (Counter)
Total number of Lookaside Cache lookups.
Labels
- status: The Lookaside cache status: hit/miss.
buildbuddy_remote_cache_lookaside_cache_lookup_bytes (Counter)
Total number bytes served from the Lookaside Cache by hit/miss status.
Labels
- status: The Lookaside cache status: hit/miss.
buildbuddy_remote_cache_lookaside_cache_eviction_age_msec (Histogram)
Age of items evicted from the cache, in milliseconds.
Labels
- eviction_reason: The reason an item was evicted from the lookaside cache. One of: "expired" or "size"
Remote execution metrics
buildbuddy_remote_execution_count (Counter)
Number of actions executed remotely.
This only includes actions which reached the execution phase. If an action fails before execution (for example, if it fails authentication) then this metric is not incremented.
Labels
- exit_code: Process exit code of an executed action.
- status: Status code as defined by grpc/codes in human-readable format, such as "OK" or "NotFound".
- isolation: Effective workload isolation type used for an executed task, such as "docker", "podman", "firecracker", or "none".
Examples
# Total number of actions executed per second
sum(rate(buildbuddy_remote_execution_count[5m]))
buildbuddy_remote_execution_tasks_started_count (Counter)
Number of tasks started remotely, but not necessarily completed.
Includes retry attempts of the same task.