Skip to content

Iceberg table schema

Build analytics captures action execution data from the EngFlow profile and stores it as rows in an Iceberg table. The Iceberg table schema is documented below.

Field Name Data Type Required Description REAPI v2
instance_name String YES Tenant that the invocation and/or executions were submitted under. instance_name (present in most Request messages)
invocation_id String YES Unique identifier for an invocation. RequestMetadata.tool_invocation_id
action_digest String YES Digest of the action being executed. ActiveActionMetadata#getActionDigest
result_digest String YES Digest of the result of the action execution. CompactDigests.hash(ExecuteResponse.result)
tool_name String YES Name of the tool, e.g. Bazel. RequestMetadata.tool_details.tool_name
tool_version String Version of the tool used for the request, e.g. 5.0.3. RequestMetadata.tool_details.tool_version
action_id String Identifier for the action. RequestMetadata.action_id
target_id String Identifier for the execution target. RequestMetadata.target_id
action_mnemonic String Mnemonic representing the action. RequestMetadata.action_mnemonic
configuration_id String An identifier for the configuration in which the target was built. RequestMetadata.configuration_id
start_timestamp Timestamp YES When the worker started executing the action. ExecutedActionMetadata.worker_start_timestamp
end_timestamp Timestamp When the worker completed the action, including all stages. ExecutedActionMetadata.worker_completed_timestamp
queued_timestamp Timestamp When the action was added to the queue. ExecutedActionMetadata.queued_timestamp
input_fetch_start_timestamp Timestamp When the worker started fetching action inputs. ExecutedActionMetadata.input_fetch_start_timestamp
input_fetch_end_timestamp Timestamp When the worker finished fetching action inputs. ExecutedActionMetadata.input_fetch_completed_timestamp
execution_start_timestamp Timestamp When the worker started executing the action command. This value will be null if there was a cache hit. ExecutedActionMetadata.execution_start_timestamp
execution_end_timestamp Timestamp When the worker completed executing the action command. This value will be null if there was a cache hit. ExecutedActionMetadata.execution_completed_timestamp
output_upload_start_timestamp Timestamp When the worker started uploading action outputs. ExecutedActionMetadata.output_upload_start_timestamp
output_upload_end_timestamp Timestamp When the worker finished uploading action outputs. ExecutedActionMetadata.output_upload_completed_timestamp
exit_code Integer The exit code of the command. ActionResult.exit_code
status String A text status describing an execution error. Empty in case of success. ExecuteReponse.status
runner String if ExecuteResponse.cached_result: remote cache hit else: remote
cache_hit Boolean True if the result was served from cache, false if it was executed. ExecuteResponse.cached_result
remotable Boolean Whether the action was allowed to run remotely. Always true
cacheable Boolean Whether the spawn was allowed to be cached. Action.do_not_cache
remote_cacheable Boolean Whether the action was allowed to be cached remotely. Action.do_not_cache
pool_id String Uniquely identifies the cluster pool this action ran on.
affinity_key String Used to schedule an action on an executor that has run similar actions.
executor_id String Uniquely identifies the executor this action ran on. WorkerUnit#toString()
resources Struct Representation of the rusage structure returned by getrusage(2) with some additional information.
resources.ram_limit String
resources.rusage_utime_ms Long User CPU time used, in milliseconds
resources.rusage_stime_ms Long System CPU time used, in milliseconds
resources.rusage_maxrss Long Maximum resident set size
resources.rusage_ixrss Long Integral shared memory size
resources.rusage_idrss Long Integral unshared data size
resources.rusage_isrss Long Integral unshared stack size
resources.rusage_minflt Long Page reclaims (soft page faults)
resources.rusage_majflt Long Page faults (hard page faults)
resources.rusage_nswap Long Swaps
resources.rusage_inblock Long Block input operations
resources.rusage_oublock Long Block output operations
resources.rusage_msgsnd Long IPC messages sent
resources.rusage_msgrcv Long IPC messages received
resources.rusage_nsignals Long Signals received
resources.rusage_nvcsw Long Voluntary context switches
resources.rusage_nivcsw Long Involuntary context switches
resources.tags Map User-provided key values via Bazel remote headers. For example: --remote_header=x-engflow-resource-tag=my_key=my_value
resources.tags.key String
resources.tags.value String
psi Struct https://www.kernel.org/doc/html/v6.1/accounting/psi.html
psi.cpu_some LongType
psi.cpu_full LongType
psi.memory_some LongType
psi.memory_full LongType
psi.io_some LongType
psi.io_full LongType
input_tree_stats Struct
input_tree_stats.max_depth Integer
input_tree_stats.total_dirs Integer
input_tree_stats.total_files Integer
input_tree_stats.total_metadata_size Long
input_tree_stats.total_file_size Long
input_tree_stats.distinct_digest_total_size Long
cas_read_stats Struct
cas_read_stats.local_count Integer
cas_read_stats.distributed_count Integer
cas_read_stats.external_storage_count Integer
cas_read_stats.distributed_longest_read Long
cas_read_stats.external_storage_longest_read Long
cas_read_stats.distributed_mbps Double
cas_read_stats.external_storage_mbps Double
output_tree_stats Struct
output_tree_stats.files_uploaded Integer
output_tree_stats.bytes_uploaded Integer
platform Struct
platform.cpu_arch String
platform.os_family String
correlated_invocations_id String Identifier that ties multiple invocations (identified by their invocation_id strings) together. RequestMetadata.correlated_invocations_id
requester String Identifies the person or entity that requested the invocation.