← Back to packages

Package intrinsic_proto.data_logger

Service BagPackager

Service DataLogger

Service LogDispatcher

Service PubSubListener

Message BagFileReference

Message BagMetadata

Message BagRecord

Message BagStatus

Message Blob

Message BlobReference

Message CheckSubscriptionRequest

Message CheckSubscriptionResponse

Message CloudLogItemsReference

Message Context

Message CreateLocalRecordingRequest

Message CreateLocalRecordingResponse

Message CriticalEventLog

Message DownsamplerEventSourceState

Message DownsamplerOptions

Message DownsamplerState

Message EventSourceMetadata

Message EventSourceStatus

Message EventSourceWithTypeHints

Message GenerateBagRequest

Message GenerateBagResponse

Message GetBagRequest

Message GetBagResponse

Message GetCloudLogItemsRequest

Message GetCloudLogItemsResponse

Message GetLogItemsRequest

Message GetLogItemsResponse

Message GetLogOptionsRequest

Message GetLogOptionsResponse

Message GetMostRecentItemRequest

Message GetMostRecentItemResponse

Message GetSubscriptionRequest

Message GetSubscriptionResponse

Message ListBagsRequest

Message ListBagsResponse

Message ListLocalRecordingsRequest

Message ListLocalRecordingsResponse

Message ListLogBatchesRequest

Message ListLogBatchesResponse

Message ListLogEventSourcesRequest

Message ListLogEventSourcesResponse

Message ListLogSourcesResponse

Message ListWorkcellsRequest

Message ListWorkcellsResponse

Message LoadCloudLogItemsRequest

Message LoadCloudLogItemsResponse

Message LogBatch

Message LogItem

Message LogOptions

Message LogRequest

Message LogSource

Message Metadata

Message Metadata

Message Metadata

Message Payload

Message PutBlobRequest

Message PutLogItemsRequest

Message PutLogItemsResponse

Message Query

Message Query

Message Query

Message Query

Message Query

Message Query

Message Query

Message RecordingsSupportedResponse

Message RegisterBagRequest

Message SetLogOptionsRequest

Message SetLogOptionsResponse

Message SetSubscriptionRequest

Message SetSubscriptionResponse

Message Subscription

Message SyncRequest

Message SyncResponse

Message TokenBucketOptions

Enum BagStatusEnum

Enum EventSourceStatusEnum

Enum Level

Enum State

Services

service BagPackager intrinsic/logging/proto/bag_packager_service.proto

Register a new bag generation or update a previously registered bag.

List all registered bags, regardless of their status.

Get the metadata (and download link) for a registered bag.

service DataLogger intrinsic/logging/proto/logger_service.proto

Service to: - Persistently store structured logging data on-prem - Retrieve stored structued logging data on-prem - Upload stored to the cloud - Create on-prem recordings to await (potentially slow) upload to the cloud

Data is buffered locally on disk and uploaded to the cloud in the background on a per-event-source basis when any of the following conditions are met: - The buffer for the event source reaches a configured bytesize - The time since last upload reaches a configured time threshold - A manual flush is triggered via SyncAndRotateLogs

Sends one structured log to be stored on-prem.

Returns a list of event sources that can be accessed using GetLogItems.

Reads the on-prem logs seqentially, performing basic filtering and sampling.

The response contains a field 'cursor', which can be passed to a subsequent GetLogItems call to continue reading log items from where call that generated it left off.

The response will contain log items starting from the requested start time or cursor until any of the following conditions are met: - The next log item has acquisition time > min(request.end_time, now) - The end of the logged data has been reached - The response size has reached 1GB

Returns the most recent LogItem that has been logged for the given event source, from an in-memory cache.

If no LogItem with a matching event_source has been logged since --file_ttl, then NOT_FOUND will be returned instead.

Sets the LogOptions for matching event sources in the request.

This RPC supports matching event sources via regex, and will apply the log options to all current and future event sources that match the request (with caveat, see request proto).

Returns the LogOptions for a specific event_source. If no user defined options have been specified, the call returns NOT_FOUND status.

Manually trigger a flush of all buffered LogItems to the cloud.

This is an expensive operation and should NOT be called after every Log call. Each event source will have a global throttle on user-requested flushes.

Returns true if recordings are supported by the logger.

Creates a local recording from structured logging data.

The data will be copied to its own table for safekeeping, to ensure that it does not get deleted from the rolling-buffer TimescaleDB tables if the upload process is very slow due to limited internet connectivity.

List recordings stored locally.

This RPC is intended to be used by the frontend to display a list of local recordings and their upload progress.

service LogDispatcher intrinsic/logging/proto/log_dispatcher_service.proto

Service to relay and dispatch CRUD operations on behalf of users for items relating to structured logs. (e.g., putting logs, uploading blobs, etc.)

List the workcells that hold cloud LogItems or cloud blobs.

Load a batch of LogItems into the cloud cache and get a cache token to retrieve the LogItems later.

Fetch a batch of LogItems loaded with LoadCloudLogItems from the cloud cache.

service PubSubListener intrinsic/logging/proto/pubsub_listener_service.proto

Service to listen to pubsub traffic, and log allowed data to the DataLogger.

Messages

message BagFileReference intrinsic/logging/proto/bag_metadata.proto

Reference to a bag file stored on the cloud. Only populated if bag was generated.

Field Type Description
1 file_path string
2 file_byte_size uint64
3 completion_time google.protobuf.Timestamp
4 expiry_time google.protobuf.Timestamp

File expiry

5 event_sources repeated intrinsic_proto.data_logger.EventSourceMetadata

Actual event source metadata that were used to create the bag.

message BagMetadata intrinsic/logging/proto/bag_metadata.proto

Metadata reporting the status and information about a bag.

Field Type Description
1 bag_id string

Unique identifier of the bag.

2 status intrinsic_proto.data_logger.BagStatus
4 start_time google.protobuf.Timestamp

Recorded time range.

Union of first and last log times of any event source is always a subset of this.

5 end_time google.protobuf.Timestamp
6 organization_id string
7 workcell_name string

The cluster the logs originated from.

8 event_sources repeated intrinsic_proto.data_logger.EventSourceMetadata

Event source metadata as claimed by on-prem via registration.

9 description optional string

Human-readable description of the contents of the bag.

10 solution_name optional string

If known, the name of the solution running when the bag was created.

11 total_log_items uint64

The total number of log items from all event sources.

12 total_bytes uint64

The total number of bytes from all event sources.

13 total_uploaded_log_items uint64

The total number of uploaded log items from all event sources.

14 total_uploaded_bytes uint64

The total number of uploaded bytes from all event sources.

15 create_time google.protobuf.Timestamp

Time when this bag was created.

message BagRecord intrinsic/logging/proto/bag_packager_service.proto

Full record for a single bag stored on the cloud.

Field Type Description
1 initialization_time google.protobuf.Timestamp
2 bag_metadata intrinsic_proto.data_logger.BagMetadata
3 bag_file optional intrinsic_proto.data_logger.BagFileReference

message BagStatus intrinsic/logging/proto/bag_metadata.proto

Status to indicate overall bag input upload progress. Bag statuses are expected to be unidirectional (increasing) transitions only, with numbers matching the event source status enum values.

Field Type Description
1 status intrinsic_proto.data_logger.BagStatus.BagStatusEnum

Unidirectional transitions only.

2 reason optional string

Optional reason for UNCOMPLETABLE or FAILED.

Used for terminal statuses, if an incomplete bag (with missing log items or event sources) is available.

message Blob intrinsic/logging/proto/blob.proto

Data that would be better represented by a file than in structured storage (eg. BigQuery). As a rule of thumb, if you need to use a ‘bytes’ field to represent your data, and it could contain kilobytes or more of data, use a Blob instead. This allows it to be logged to file by the Datalogger and be referenced by structured logs. The data field will be unset in structured storage, and readers can use blob_id to retrieve it from the filesystem.

Field Type Description
1 blob_id string

A globally unique identifier for this blob that is used as the filename of the object backing it (might be on local disk or a distributed filesystem in the cloud such as GCS).

The recommended way to generate a blob_id is to concatenate a random 64-bit integer with a directory and a file-extension. For example: const std::string blob_id = absl::StrCat( “my_blob_dir/”, DataLoggerClient::GenerateUid(), “_detection.jpg”); log_item.mutable_blob_payload->set_id(blob_id);

Readers should handle the case when the object backing this blob does not exist, e.g. when the data was just written or has been garbage collected.

2 data bytes

The contents of the file. Will be unset when reading from structured storage. Should be cleared on the client side when sent to the DataLogger, except when logging the blob itself (i.e. in LogItem.blob_payload).

message BlobReference intrinsic/logging/proto/blob.proto

All of the data that is needed to reference a blob in the cloud.

Field Type Description
1 blob_id string
2 workcell_name string

The cluster the blob originated from.

3 organization_id string

The organization ID prefixes the bucket that logs are uploaded into.

4 event_source string

The event source of the blob, if any.

Used to further prefix the blob ID to prevent collisions between blobs from different event sources.

5 bag_id optional string

message CheckSubscriptionRequest intrinsic/logging/proto/pubsub_listener_service.proto

A single topic subscription to check

Field Type Description
1 subscription intrinsic_proto.data_logger.Subscription

message CheckSubscriptionResponse intrinsic/logging/proto/pubsub_listener_service.proto

Describes whether a topic is subscribed, and how

Field Type Description
4 subscription repeated intrinsic_proto.data_logger.Subscription

The matching topic subscription(s) if present

message CloudLogItemsReference (Nested in intrinsic_proto.data_logger.GenerateBagRequest ) intrinsic/logging/proto/bag_packager_service.proto

Field Type Description
1 start_time google.protobuf.Timestamp

Requested time range.

2 end_time google.protobuf.Timestamp
3 workcell_name string
4 event_sources repeated intrinsic_proto.data_logger.EventSourceWithTypeHints

message Context intrinsic/logging/proto/context.proto

Context identifies the execution stack that the event represented by a LogItem is generated in. Each layer consists of a globally unique ID for readers to group LogItems by. For example, by fetching all of the LogItems with a given skill_id you get the sequence of events that corresponds to that particular execution of the skill. There can be multiple active Contexts in the stack at a given layer at a time, for example if two skills are executing concurrently. Next ID: 13

Field Type Description
2 executive_plan_id uint64

The layer of context below executive_session_id. Identifies the execution of a plan.

3 skill_id uint64

The layer of context below executive_plan_id. Identifies the execution of a skill.

4 executive_session_id uint64

The top context layer. Represents all of the work done by the executive from when it is initialized until it is destroyed. This is currently used by the frontend to load meshes, which would be expensive for the executive to log for every sequence plan.

5 executive_plan_action_id uint64

This layer allows to tie data to a specific action in a plan.

6 parent_skill_id uint64

This field is only set if the skill 'skill_id' is executed internally by another skill, specified by 'parent_skill_id'.

8 icon_session_id optional uint64

The ICON session controlling the part which is sending the logs. Only used for logs coming from ICON. Check has_icon_session_id to distinguish between an unset session ID and an actual session with ID==0.

9 icon_action_id optional uint64

The ICON action which is controlling the part which is sending the logs. Only used for ICOn logs and only set if an action is active. Check has_icon_session_id to distinguish between an unset action ID and an actual action with ID==0.

10 scene_id optional string

Logging associated with operations to acquire a perception scene.

11 visualization_context_id optional uint64

The visualization context this log item is associated with. Used for visualizing Intrinsic recordings.

12 labels map<string, string>

Additional optional key-value metadata labels, can also be used to filter on log item fetch.

This is the only field considered for filtering in the logger service.

If you want to filter on other Context fields, remember to also add them to this map.

message CreateLocalRecordingRequest intrinsic/logging/proto/logger_service.proto

Field Type Description
1 start_time google.protobuf.Timestamp

A time range used to select from the LogItems available in the TimescaleDB rolling buffer.

2 end_time google.protobuf.Timestamp
3 description string

A human-readable description of the recording, to make it easier to identify in the frontend.

4 event_sources_to_record repeated string

The event sources to include in the recording, as regex patterns.

message CreateLocalRecordingResponse intrinsic/logging/proto/logger_service.proto

Field Type Description
1 bag intrinsic_proto.data_logger.BagMetadata

The metadata of the newly-created recording.

message CriticalEventLog intrinsic/logging/proto/critical_event_log.proto

CriticalEventLog is a log message that describes a text event message that is being sent via the structured logging system. This allows us to upload event logs to the cloud when fluent-bit is not able to upload them in operational environments. See go/intrinsic-production-data-handling for more details.

Field Type Description
1 level intrinsic_proto.data_logger.CriticalEventLog.Level

The logging level of the log message.

2 source_component string

The name of the component that is sending the log message.

3 msg string

The body of the log message.

4 file optional string

The file that the log message was logged from. This helps identify the source of the log message.

5 function optional string

The function that the log message was logged from. This helps identify the source of the log message.

6 line optional uint32

The line number that the log message was logged from. This helps identify the source of the log message.

7 timestamp google.protobuf.Timestamp

The timestamp of the log message.

message DownsamplerEventSourceState intrinsic/logging/proto/downsampler.proto

Tracks the state of an event source in the downsampler.

Field Type Description
1 last_use_time google.protobuf.Timestamp
2 count_since_last_use int32

message DownsamplerOptions intrinsic/logging/proto/downsampler.proto

Downsampler options.

If multiple sampling intervals are set, the candidate will only be sampled if all intervals are met.

Field Type Description
2 sampling_interval_time optional google.protobuf.Duration

If set, downsamples the candidates by time interval. Setting this samples once every N periods.

For example: - List: [1s, 2s, 3s, 4s, 5s, 6s, 7s, 8s, 9s, 10s] - sampling_interval_time: 2s - Downsampled Output: [1, 3, 5, 7, 9]

3 sampling_interval_count optional int32

If set, downsamples the candidates by count. Setting this samples once every N samples.

For example: - List: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] - sample_interval_count: 2 - Downsampled Output: [1, 3, 5, 7, 9]

message DownsamplerState intrinsic/logging/proto/downsampler.proto

Tracks the state of the downsampler.

Field Type Description
1 event_source_states map<string, DownsamplerEventSourceState>

message EventSourceMetadata intrinsic/logging/proto/bag_metadata.proto

Metadata to distinguish an event source.

Field Type Description
1 event_source_with_type_hints intrinsic_proto.data_logger.EventSourceWithTypeHints
2 status intrinsic_proto.data_logger.EventSourceStatus
3 first_log_time google.protobuf.Timestamp

Time range of the logged items.

4 last_log_time google.protobuf.Timestamp
5 num_log_items uint64

Total number of log items in the event source.

6 num_bytes uint64

Total number of bytes of all messages from this event source.

7 uploaded_log_items uint64

Total number of uploaded items (for creating detailed progress messages).

8 uploaded_bytes uint64

Total number of uploaded bytes (for creating detailed progress messages).

message EventSourceStatus intrinsic/logging/proto/bag_metadata.proto

Status to indicate an event source inputs upload progress. Event source statuses are expected to be unidirectional (increasing) transitions only, with numbers matching the bag status enum values.

Field Type Description
1 status intrinsic_proto.data_logger.EventSourceStatus.EventSourceStatusEnum

Unidirectional transitions only.

2 reason optional string

For UNCOMPLETABLE or FAILED.

message EventSourceWithTypeHints intrinsic/logging/proto/bag_metadata.proto

Field Type Description
1 event_source string

Sanitized.

6 intrinsic_typename optional string

Type information for Intrinsic protos and ROS message types respectively. Used as hints for translation or verification.

Not in use yet.

7 ros_typename optional string

message GenerateBagRequest intrinsic/logging/proto/bag_packager_service.proto

Request to trigger packaging of a new bag.

Field Type Description
3 organization_id string
oneof query
1 bag_id string

Pre-existing registered bag.

2 cloud_log_items intrinsic_proto.data_logger.GenerateBagRequest.CloudLogItemsReference

Cloud logs.

message GenerateBagResponse intrinsic/logging/proto/bag_packager_service.proto

Field Type Description
1 bag intrinsic_proto.data_logger.BagRecord

message GetBagRequest intrinsic/logging/proto/bag_packager_service.proto

Request to get the metadata of a registered bag.

Field Type Description
1 bag_id string
2 with_url bool

If true, generates a signed url to download the bag with.

message GetBagResponse intrinsic/logging/proto/bag_packager_service.proto

Response includes registered and actual metadata, and a link to download the bag (if the bag status is not terminal).

Field Type Description
1 bag intrinsic_proto.data_logger.BagRecord
2 url optional string

Signed url to download the bag with, if available. https://cloud.google.com/storage/docs/access-control/signed-urls

3 url_expiry_time optional google.protobuf.Timestamp

Till when the signed url be valid.

message GetCloudLogItemsRequest intrinsic/logging/proto/log_dispatcher_service.proto

Field Type Description
3 session_token string
4 max_num_items optional uint32

Limits for the number of results per page.

Defaults to 10000.

5 max_total_byte_size_mb optional double

Cumulative, defaults to 25MB

6 organization_id string

Session is bound to organization_id.

7 omit_blob_payloads bool

Set to true if blob payloads are to be omitted from the response. Note that blob_ids will still be populated regardless of this setting.

oneof query
1 get_query intrinsic_proto.data_logger.GetCloudLogItemsRequest.Query
2 cursor bytes

Generally used for pagination.

message GetCloudLogItemsResponse intrinsic/logging/proto/log_dispatcher_service.proto

Field Type Description
1 items repeated intrinsic_proto.data_logger.LogItem
2 next_page_cursor optional bytes

Opaque cursor to the next page of results.

If empty, no next page exists. Expires at next_page_cursor_expiry.

3 metadata intrinsic_proto.data_logger.GetCloudLogItemsResponse.Metadata

Metadata for this page of results.

4 next_page_cursor_expiry optional google.protobuf.Timestamp

message GetLogItemsRequest intrinsic/logging/proto/logger_service.proto

Field Type Description
7 max_num_items optional int32

Maximum number of items to return for this response. If unset, defaults to 10000.

The server may return fewer than this number of items even if there are more matching items available due to global throttles.

oneof query
2 cursor bytes

Returned in GetLogItemsResponse to continue where the previous call left off. Opaque to the client.

Best effort. If the data being requested has already been garbage collected, returns items starting at the beginning of the available data.

9 get_query intrinsic_proto.data_logger.GetLogItemsRequest.Query

message GetLogItemsResponse intrinsic/logging/proto/logger_service.proto

Field Type Description
1 log_items repeated intrinsic_proto.data_logger.LogItem

The LogItems that matched the criteria. This can sometimes be empty.

2 next_page_cursor optional bytes

Opaque cursor to the next page of results. If empty, no next page exists at time of query.

This could be because, at time of query, either: - The next log item that could have been returned had a timestamp that was past the requested end time. - No log items were found.

After receiving a response with no next page cursor, if the client wants to continue reading (e.g., to fetch LogItems that were logged after the response was received), they must start a new GetLogItemsRequest.

4 truncation_cause optional string

If set, the response was truncated. There usually will be a next page cursor to continue reading.

message GetLogOptionsRequest intrinsic/logging/proto/logger_service.proto

Field Type Description
oneof query
1 event_source string

Look up the log options for the given event source. Will return the first matching log options in the precedence order.

2 key string

Look up the log options for the given key.

The key is just used to identify the log options for setting/overwriting and fetching, and is not used for matching against event sources.

message GetLogOptionsResponse intrinsic/logging/proto/logger_service.proto

Field Type Description
1 log_options intrinsic_proto.data_logger.LogOptions

message GetMostRecentItemRequest intrinsic/logging/proto/logger_service.proto

Field Type Description
1 event_source string

The event_source to return the most recent LogItem for.

message GetMostRecentItemResponse intrinsic/logging/proto/logger_service.proto

Field Type Description
1 item intrinsic_proto.data_logger.LogItem

The most recently logged LogItem for the event_source.

message GetSubscriptionRequest intrinsic/logging/proto/pubsub_listener_service.proto

Field Type Description

message GetSubscriptionResponse intrinsic/logging/proto/pubsub_listener_service.proto

A set of topic subscriptions

Field Type Description
1 subscription repeated intrinsic_proto.data_logger.Subscription

A description of the topics

message ListBagsRequest intrinsic/logging/proto/bag_packager_service.proto

Request to list all registered bags.

Field Type Description
1 organization_id string
2 workcell_name string
3 start_time google.protobuf.Timestamp

Requested time range.

4 end_time google.protobuf.Timestamp
5 max_num_results optional uint32

Limits for the number of results per page.

Defaults to 1000.

oneof query
6 list_query intrinsic_proto.data_logger.ListBagsRequest.Query
7 cursor bytes

message ListBagsResponse intrinsic/logging/proto/bag_packager_service.proto

Field Type Description
1 bags repeated intrinsic_proto.data_logger.BagRecord
2 next_page_cursor optional bytes

Opaque cursor to the next page of results. If empty, no next page exists.

message ListLocalRecordingsRequest intrinsic/logging/proto/logger_service.proto

Field Type Description
1 start_time optional google.protobuf.Timestamp

Optionally allow users to specify a starting bound for the recording list.

2 end_time optional google.protobuf.Timestamp

Optionally allow users to specify an ending bound for the recording list.

3 only_summary_metadata bool

Allow users to specify whether to return a summary of the recordings or the full metadata, which includes statistics for each event source.

4 bag_ids repeated string

Optionally allow users to retrieve specific Bag IDs If no Bag ID's are provided, all bags will be returned that are in the optional time window.

message ListLocalRecordingsResponse intrinsic/logging/proto/logger_service.proto

Field Type Description
1 bags repeated intrinsic_proto.data_logger.BagMetadata

message ListLogBatchesRequest intrinsic/logging/proto/log_dispatcher_service.proto

A request to list the batches of LogItems that have been put into the cloud.

Field Type Description
3 max_num_results optional uint32

Limits for the number of results per page.

Defaults to 1000.

4 organization_id string
oneof query
1 list_query intrinsic_proto.data_logger.ListLogBatchesRequest.Query
2 cursor bytes

Used for pagination.

message ListLogBatchesResponse intrinsic/logging/proto/log_dispatcher_service.proto

Field Type Description
1 log_source intrinsic_proto.data_logger.LogSource
2 organization_id string
3 batches repeated intrinsic_proto.data_logger.ListLogBatchesResponse.LogBatch
4 next_page_cursor optional bytes

Opaque cursor to the next page of results. If empty, no next page exists.

message ListLogEventSourcesRequest intrinsic/logging/proto/log_dispatcher_service.proto

A request to list event sources that hold cloud LogItems.

Field Type Description
3 max_num_results optional uint32

Limits for the number of results per page.

Defaults to 1000.

4 organization_id string
oneof query
1 list_query intrinsic_proto.data_logger.ListLogEventSourcesRequest.Query
2 cursor bytes

Used for pagination.

message ListLogEventSourcesResponse intrinsic/logging/proto/log_dispatcher_service.proto

Field Type Description
1 workcell_name string
2 organization_id string
3 event_sources repeated string
4 next_page_cursor optional bytes

Opaque cursor to the next page of results. If empty, no next page exists.

message ListLogSourcesResponse intrinsic/logging/proto/logger_service.proto

Field Type Description
1 event_sources repeated string

message ListWorkcellsRequest intrinsic/logging/proto/log_dispatcher_service.proto

A request to list workcells that hold cloud LogItems or cloud blobs.

Field Type Description
3 max_num_results optional uint32

Limits for the number of results per page.

Defaults to 1000.

4 organization_id string
oneof query
1 list_query intrinsic_proto.data_logger.ListWorkcellsRequest.Query
2 cursor bytes

Used for pagination.

message ListWorkcellsResponse intrinsic/logging/proto/log_dispatcher_service.proto

Field Type Description
1 organization_id string
2 workcells repeated string
3 next_page_cursor optional bytes

Opaque cursor to the next page of results. If empty, no next page exists.

message LoadCloudLogItemsRequest intrinsic/logging/proto/log_dispatcher_service.proto

A request to load one batch of LogItems into the cloud cache, for later retrieval using GetCloudLogItems.

Will return a cache session token to retrieve the LogItems.

Field Type Description
1 load_query intrinsic_proto.data_logger.LoadCloudLogItemsRequest.Query
2 start_time google.protobuf.Timestamp
3 end_time google.protobuf.Timestamp
4 max_num_items optional uint32

Truncate load if any of these parameters are met.

Defaults to 100000.

5 max_total_byte_size_mb optional double

Cumulative, defaults to 1GB

6 organization_id string

Session is bound to organization ID.

message LoadCloudLogItemsResponse intrinsic/logging/proto/log_dispatcher_service.proto

Field Type Description
1 metadata intrinsic_proto.data_logger.LoadCloudLogItemsResponse.Metadata
2 session_token string

Cache token for session.

3 expiry google.protobuf.Timestamp

When the logs will be deleted.

4 truncated bool

True if truncated (from client or server-side limits).

5 truncation_cause string
6 cursor bytes

Opaque cursor to the first log in range, spanning the

message LogBatch (Nested in intrinsic_proto.data_logger.ListLogBatchesResponse ) intrinsic/logging/proto/log_dispatcher_service.proto

Field Type Description
1 file_name string
2 byte_size double
3 start_time google.protobuf.Timestamp
4 end_time google.protobuf.Timestamp

message LogItem intrinsic/logging/proto/log_item.proto

Represents an event. Payload can be structured data and/or blobs.

Field Type Description
1 metadata intrinsic_proto.data_logger.LogItem.Metadata

Type-agnostic information about this event.

2 context intrinsic_proto.data_logger.Context

Type-agnostic information about this event that needs to be propagated throughout the gRPC call stack. This can be used to join this event with others that belong to the same timeframe.

3 payload intrinsic_proto.data_logger.LogItem.Payload

Any structured data associated with this event.

6 blob_payload optional intrinsic_proto.data_logger.Blob

Use this to log individual files smaller than 2GB (size limit for proto messages). For larger files sync them to GCS using the GCS API directly. If you have many files, consider creating a tar archive out of them first.

message LogOptions intrinsic/logging/proto/logger_service.proto

Field Type Description
1 event_source string

The event source to set the log options for. This must be a valid RE2 regex string, and will be used as such. Note there is an edge case where "." will match anything, so handle it accordingly.

For example: - "foo" will match "foo". - "." will match all event sources. - "foo|bar" will match "foo" and "bar". - "foo." will match "foo" and "foobar". - "foo|bar|baz" will match "foo", "bar", and "baz".

2 sync_active optional bool

If set to 'true', logs are synced to the cloud.

3 max_buffer_byte_size optional int32

The maximum byte size of the on-prem buffer for LogItems.

4 logging_budget optional intrinsic_proto.data_logger.TokenBucketOptions

The token bucket options for rate limiting on the Log() rpc of the data logger.

5 priority optional int32

Priority denotes value of items in the event_source.

Higher priority event sources are prioritized for upload. For upload, this can potentially lead to starvation as we don't upload lower priority items until all higher priority items are uploaded.

The larger the value, higher the priority.

6 retain_on_disk optional bool

If set to true, logs are retained on disk via timescaledb.

7 retain_buffer_on_disk optional bool

If set to true, the mem buffer is written to and restored from disk.

This is useful for cases when the data needs to be persisted across logger pod restarts.

This also means that performance will be impacted as log items are written and read from disk, so only use this for event_sources that are not high throughput.

8 log_options_precedence_value int32

The precedence value of this instance of log options to apply.

This is different from the priority field below, which is used to determine the order in which log items are uploaded.

If there are multiple log options that match a given event source, the log options with the highest precedence value is used by the logging service. If there are multiple log options with the same precedence value, then a random one amongst the equals is used.

It is generally recommended to have higher precedence value for more specific regexes, and lower precedence value for more general regexes.

The larger the value, higher in the precedence order.

9 retain_on_disk_retention_duration optional google.protobuf.Duration

The retention time for logs retained on disk. Only used up to second precision, ignores nanoseconds.

This is only used if retain_on_disk is set to true. If this is not set, will apply the server's default retention time the first time the server encounters a matching event source.

message LogRequest intrinsic/logging/proto/logger_service.proto

Field Type Description
1 item intrinsic_proto.data_logger.LogItem

message LogSource intrinsic/logging/proto/log_dispatcher_service.proto

ID of a cloud structured log source.

Field Type Description
1 workcell_name string

The cluster the logs originated from.

2 event_source string

message Metadata (Nested in intrinsic_proto.data_logger.LogItem ) intrinsic/logging/proto/log_item.proto

Type-agnostic information about an event. For metadata that needs to be propagated through the gRPC call stack, use Context instead.

Field Type Description
1 uid uint64

An identifier for this LogItem that has a high probability of being unique in the context of on-prem storage. For details see 'uid' field in google.aip.dev/148. Important: The parameter should never be user defined.

2 acquisition_time google.protobuf.Timestamp

Time at which this item was generated (e.g. acquisition time for sensor data). LogItems with the same event_source must be logged in increasing order of this field. Can be left unset, in which case the logging service will fill it with the time at which it wrote it (guaranteeing that it is in order).

7 event_source string

A human readable identifier for the stream of data that this event belongs to. Should only be used for metadata that is common across multiple LogItems of this type, such as the name of the sensor that produced a reading. Information specific to this event should be added to the payload. For details see 'parent' field in google.aip.dev/148. Example: log_items/perception/frame/{camera_id}

9 name string

The log item's name which is a unique identifier. The name will be created and populated when a log item is persisted in the log server. This name is what clients should use when retrieving individual items. For details see 'name' field in google.aip.dev/122. Important: The parameter should never be user defined.

10 workcell_name optional string

workcell_name identifies the workcell/VM/dev-machine that log item belongs to. This can be used to correlate log items that don't have a corresponding deployment attribute. This field is auto populated or overridden by the logger.

message Metadata (Nested in intrinsic_proto.data_logger.LoadCloudLogItemsResponse ) intrinsic/logging/proto/log_dispatcher_service.proto

Specifies the range of logs that were loaded and can be queried.

Field Type Description
1 log_source intrinsic_proto.data_logger.LogSource
2 start_time google.protobuf.Timestamp
3 end_time google.protobuf.Timestamp
4 num_items uint32
5 total_byte_size_mb double
6 downsampling_options intrinsic_proto.data_logger.DownsamplerOptions

message Metadata (Nested in intrinsic_proto.data_logger.GetCloudLogItemsResponse ) intrinsic/logging/proto/log_dispatcher_service.proto

Field Type Description
1 start_time google.protobuf.Timestamp
2 end_time google.protobuf.Timestamp
3 num_items uint32
4 total_byte_size_mb double

message Payload (Nested in intrinsic_proto.data_logger.LogItem ) intrinsic/logging/proto/log_item.proto

Structured data associated with an event.

Field Type Description
oneof data
1 any google.protobuf.Any

===== General =====

14 icon_l1_joint_state intrinsic_proto.icon.JointState

===== Perception ===== ===== Icon =====

16 skills_execution_summary intrinsic_proto.skills.ExecutionSummary
17 icon_ft_wrench intrinsic_proto.icon.Wrench
20 skills_projection_summary intrinsic_proto.skills.ProjectionSummary
21 skills_execute_request intrinsic_proto.skills.ExecuteRequest
22 skills_project_request intrinsic_proto.skills.ProjectRequest
23 error_report intrinsic_proto.error.ErrorReport
27 icon_robot_status intrinsic_proto.icon.RobotStatus
36 skills_predict_request intrinsic_proto.skills.PredictRequest
37 skills_prediction_summary intrinsic_proto.skills.PredictionSummary
39 skills_footprint_summary intrinsic_proto.skills.FootprintSummary
47 skills_get_footprint_request intrinsic_proto.skills.GetFootprintRequest
48 skills_preview_request intrinsic_proto.skills.PreviewRequest

===== Skills =====

49 skills_preview_summary intrinsic_proto.skills.PreviewSummary
54 executive_process_status intrinsic_proto.status.ExtendedStatus
58 executive_operation intrinsic_proto.executive.LoggedOperation

===== Executive =====

67 marker_array visualization_msgs.msg.pb.jazzy.MarkerArray

message PutBlobRequest intrinsic/logging/proto/log_dispatcher_service.proto

A single blob to be sent to the LogDispatcher, to be PUT into storage on the cloud.

Field Type Description
1 blob intrinsic_proto.data_logger.Blob
2 workcell_name string

The cluster the blob originated from.

3 organization_id string

The organization ID prefixes the bucket that logs are uploaded into.

4 event_source string

The event source of the blob, if any.

Used to further prefix the blob ID to prevent collisions between blobs from different event sources.

5 bag_id optional string

message PutLogItemsRequest intrinsic/logging/proto/log_dispatcher_service.proto

A batch of LogItems to be sent to the LogDispatcher, to be PUT into storage on the cloud.

Field Type Description
1 items repeated intrinsic_proto.data_logger.LogItem

The log items to be uploaded.

The first item in the batch sets the event source and workcell name to use, and all subsequent items must have matching event source and workcell name.

Event source and workcell name cannot be empty.

3 organization_id string

The organization ID prefixes the bucket that logs are uploaded into.

message PutLogItemsResponse intrinsic/logging/proto/log_dispatcher_service.proto

Field Type Description
1 log_items_ingested int32

The number of log items successfully ingested.

2 log_items_dropped int32

The number of log items dropped.

3 dropped_log_item_errors repeated string

The unordered unique errors for the dropped log items.

message Query (Nested in intrinsic_proto.data_logger.ListBagsRequest ) intrinsic/logging/proto/bag_packager_service.proto

Field Type Description
1 workcell_name string
2 start_time google.protobuf.Timestamp
3 end_time google.protobuf.Timestamp

message Query (Nested in intrinsic_proto.data_logger.ListWorkcellsRequest ) intrinsic/logging/proto/log_dispatcher_service.proto

Field Type Description
1 match_glob optional string

Filter results by glob pattern.

message Query (Nested in intrinsic_proto.data_logger.ListLogEventSourcesRequest ) intrinsic/logging/proto/log_dispatcher_service.proto

Field Type Description
1 workcell_name string
2 match_glob optional string

Filter results by glob pattern.

message Query (Nested in intrinsic_proto.data_logger.ListLogBatchesRequest ) intrinsic/logging/proto/log_dispatcher_service.proto

This query will cause any log batches with times overlapping with the start and end time to be returned.

Field Type Description
1 log_source intrinsic_proto.data_logger.LogSource
2 start_time google.protobuf.Timestamp
3 end_time google.protobuf.Timestamp

message Query (Nested in intrinsic_proto.data_logger.LoadCloudLogItemsRequest ) intrinsic/logging/proto/log_dispatcher_service.proto

Field Type Description
1 log_source intrinsic_proto.data_logger.LogSource
2 downsampling_options intrinsic_proto.data_logger.DownsamplerOptions

message Query (Nested in intrinsic_proto.data_logger.GetCloudLogItemsRequest ) intrinsic/logging/proto/log_dispatcher_service.proto

Field Type Description
1 log_source intrinsic_proto.data_logger.LogSource
2 start_time google.protobuf.Timestamp
3 end_time google.protobuf.Timestamp

message Query (Nested in intrinsic_proto.data_logger.GetLogItemsRequest ) intrinsic/logging/proto/logger_service.proto

Field Type Description
1 event_source string

Exact match only.

2 start_time optional google.protobuf.Timestamp

if unset: now - 5min

3 end_time optional google.protobuf.Timestamp

if unset: now

4 downsampler_options optional intrinsic_proto.data_logger.DownsamplerOptions

If set, will downsample the LogItems.

5 filter_labels map<string, string>

Additional key-value metadata labels to filter the returned LogItems by.

If empty, all LogItems in the query are returned. If populated, only LogItems with exact matches on all specified labels are returned.

message RecordingsSupportedResponse intrinsic/logging/proto/logger_service.proto

Field Type Description
1 recordings_supported bool

message RegisterBagRequest intrinsic/logging/proto/bag_packager_service.proto

Request to register a new bag generation workflow or update a previously registered bag.

Should ONLY be called by the cloud service or on-prem.

Field Type Description
1 bag_metadata intrinsic_proto.data_logger.BagMetadata

message SetLogOptionsRequest intrinsic/logging/proto/logger_service.proto

Field Type Description
1 log_options map<string, LogOptions>

A map of log options keys to the actual log options which are being set.

This RPC will upsert the map of log options to be applied to all current and future event sources matching the regex string in the values.

Log Options Matching: - The key of the map here is just used to identify the log options for setting/overwriting and fetching, and is not used for matching against event sources. - Instead, the LogOptions message in the value contains an event source field which should be a regex string that is used to determine which event sources the options should be applied to.

Log Option Precedence: - There might be multiple matching log options for a single event source. In that case, use the options with the highest precedence, see the log_options_precedence_value field in the LogOptions message.

Default Log Options: - Finally, if no log options are found for a given event source, then the log options for the default_event_source key if it exists are used.

  • You can use this to set default log options for all event sources that don't have any specific log options set.

message SetLogOptionsResponse intrinsic/logging/proto/logger_service.proto

Field Type Description

message SetSubscriptionRequest intrinsic/logging/proto/pubsub_listener_service.proto

A set of topic subscriptions and whether to add or remove them from the allowlist

Field Type Description
1 subscription repeated intrinsic_proto.data_logger.Subscription

A description of the topics

2 allow bool

Whether to attempt to add or remove these topics from an allowlist

message SetSubscriptionResponse intrinsic/logging/proto/pubsub_listener_service.proto

Field Type Description

message Subscription intrinsic/logging/proto/pubsub_listener_service.proto

Describes and configures a topic subscription

Field Type Description
1 topic_expr string

The topic name/zenoh key expression

message SyncRequest intrinsic/logging/proto/logger_service.proto

Field Type Description
1 event_sources repeated string

The event_sources to sync and rotate LogItems for, as regex patterns. Used only if sync_all is false.

2 sync_all bool

If true, requests to sync and rotate logs of all event sources

message SyncResponse intrinsic/logging/proto/logger_service.proto

Field Type Description
1 event_sources repeated string

The event_sources successfully synced and rotated LogItems for.

2 throttled_event_sources repeated string

The event_sources that exist but were not synced and rotated due to throttling.

message TokenBucketOptions intrinsic/logging/proto/logger_service.proto

TokenBucketOptions are the options for rate limiting for the logger. See go/intrinsic-logging-budgets for more details. To understand the settings better see https://en.wikipedia.org/wiki/Token_bucket

Field Type Description
1 refresh int32

In bytes per second, this represents the refill rate for the token bucket.

2 burst int32

In bytes, this represents the maximum capacity of the token bucket.

Enums

enum BagStatusEnum intrinsic/logging/proto/bag_metadata.proto

Name Number Description
UNSET 0
UPLOAD_PENDING 1
UPLOADING 2
UPLOADED 3
UNCOMPLETABLE 4
COMPLETED 5
UNCOMPLETABLE_COMPLETED 6

Uncompletable bag was completed with missing items (best-effort).

FAILED 7

enum EventSourceStatusEnum intrinsic/logging/proto/bag_metadata.proto

Name Number Description
UNSET 0
UPLOAD_PENDING 1
UPLOADING 2
UPLOADED 3
UNCOMPLETABLE 4
FAILED 7

enum Level intrinsic/logging/proto/critical_event_log.proto

Enum describing the logging level of the log message.

Name Number Description
UNKNOWN 0
DEBUG 1
INFO 2
WARN 3
ERROR 4
FATAL 5

enum State intrinsic/logging/proto/pubsub_listener_service.proto

The state of subscription to a topic

Name Number Description
UNSPECIFIED 0

Default unset value

ALLOWED 1

Topic is directly subscribed

ALLOWED_BY_KEY_EXPRESSION 2

Topic is subscribed through a key expression

NOT_ALLOWED 3

Topic is not subscribed