Package intrinsic_proto.data_logger
Message
CheckSubscriptionRequest
Message
CheckSubscriptionResponse
Message
CloudLogItemsReference
Message
CreateLocalRecordingRequest
Message
CreateLocalRecordingResponse
Message
DownsamplerEventSourceState
Message
EventSourceWithTypeHints
Message
GetCloudLogItemsRequest
Message
GetCloudLogItemsResponse
Message
GetMostRecentItemRequest
Message
GetMostRecentItemResponse
Message
GetSubscriptionRequest
Message
GetSubscriptionResponse
Message
ListLocalRecordingsRequest
Message
ListLocalRecordingsResponse
Message
ListLogBatchesResponse
Message
ListLogEventSourcesRequest
Message
ListLogEventSourcesResponse
Message
ListLogSourcesResponse
Message
LoadCloudLogItemsRequest
Message
LoadCloudLogItemsResponse
Message
RecordingsSupportedResponse
Message
SetSubscriptionRequest
Services
service BagPackager intrinsic/logging/proto/bag_packager_service.proto
rpc RegisterBag
Request: intrinsic_proto.data_logger.RegisterBagRequest
Response:
google.protobuf.Empty
Register a new bag generation or update a previously registered bag.
rpc GenerateBag
Request: intrinsic_proto.data_logger.GenerateBagRequest
Response:
intrinsic_proto.data_logger.GenerateBagResponse
Trigger conversion and packaging of a new bag.
rpc ListBags
Request: intrinsic_proto.data_logger.ListBagsRequest
Response:
intrinsic_proto.data_logger.ListBagsResponse
List all registered bags, regardless of their status.
rpc GetBag
Request: intrinsic_proto.data_logger.GetBagRequest
Response:
intrinsic_proto.data_logger.GetBagResponse
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.
rpc ListLogSources
Request: google.protobuf.Empty
Response:
intrinsic_proto.data_logger.ListLogSourcesResponse
Returns a list of event sources that can be accessed using GetLogItems.
rpc GetLogItems
Request: intrinsic_proto.data_logger.GetLogItemsRequest
Response:
intrinsic_proto.data_logger.GetLogItemsResponse
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
rpc GetMostRecentItem
Request: intrinsic_proto.data_logger.GetMostRecentItemRequest
Response:
intrinsic_proto.data_logger.GetMostRecentItemResponse
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.
rpc SetLogOptions
Request: intrinsic_proto.data_logger.SetLogOptionsRequest
Response:
intrinsic_proto.data_logger.SetLogOptionsResponse
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).
rpc GetLogOptions
Request: intrinsic_proto.data_logger.GetLogOptionsRequest
Response:
intrinsic_proto.data_logger.GetLogOptionsResponse
Returns the LogOptions for a specific event_source. If no user defined
options have been specified, the call returns NOT_FOUND status.
rpc SyncAndRotateLogs
Request: intrinsic_proto.data_logger.SyncRequest
Response:
intrinsic_proto.data_logger.SyncResponse
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.
rpc RecordingsSupported
Request: google.protobuf.Empty
Response:
intrinsic_proto.data_logger.RecordingsSupportedResponse
Returns true if recordings are supported by the logger.
rpc CreateLocalRecording
Request: intrinsic_proto.data_logger.CreateLocalRecordingRequest
Response:
intrinsic_proto.data_logger.CreateLocalRecordingResponse
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.
rpc ListLocalRecordings
Request: intrinsic_proto.data_logger.ListLocalRecordingsRequest
Response:
intrinsic_proto.data_logger.ListLocalRecordingsResponse
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.)
rpc PutLogItems
Request: intrinsic_proto.data_logger.PutLogItemsRequest
Response:
intrinsic_proto.data_logger.PutLogItemsResponse
Put one batch of LogItems to the cloud.
Put one Blob to the cloud.
rpc ListWorkcells
Request: intrinsic_proto.data_logger.ListWorkcellsRequest
Response:
intrinsic_proto.data_logger.ListWorkcellsResponse
List the workcells that hold cloud LogItems or cloud blobs.
rpc ListLogEventSources
Request: intrinsic_proto.data_logger.ListLogEventSourcesRequest
Response:
intrinsic_proto.data_logger.ListLogEventSourcesResponse
List the event sources that hold cloud LogItems.
rpc ListLogBatches
Request: intrinsic_proto.data_logger.ListLogBatchesRequest
Response:
intrinsic_proto.data_logger.ListLogBatchesResponse
List the LogItem batches that exist in the cloud.
rpc LoadCloudLogItems
Request: intrinsic_proto.data_logger.LoadCloudLogItemsRequest
Response:
intrinsic_proto.data_logger.LoadCloudLogItemsResponse
Load a batch of LogItems into the cloud cache and get a cache token to retrieve the LogItems later.
rpc GetCloudLogItems
Request: intrinsic_proto.data_logger.GetCloudLogItemsRequest
Response:
intrinsic_proto.data_logger.GetCloudLogItemsResponse
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.
rpc SetTopicSubscriptions
Request: intrinsic_proto.data_logger.SetSubscriptionRequest
Response:
intrinsic_proto.data_logger.SetSubscriptionResponse
Add or remove a topic on the service's allowlist
rpc GetTopicSubscriptions
Request: intrinsic_proto.data_logger.GetSubscriptionRequest
Response:
intrinsic_proto.data_logger.GetSubscriptionResponse
Retrieve the service's current allowlist
rpc CheckTopicSubscription
Request: intrinsic_proto.data_logger.CheckSubscriptionRequest
Response:
intrinsic_proto.data_logger.CheckSubscriptionResponse
Check whether a particular topic is subscribed
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. |
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. Next tag: 67
| 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 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 |
| 7 | retain_buffer_on_disk |
optional
bool
|
If set to 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 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 |
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.
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
Default Log Options:
- Finally, if no log options are found for a given event source, then the
log options for the
|
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 |
| 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 |