Package intrinsic_proto.error
Messages
message Data (Nested in intrinsic_proto.error.ErrorReport ) intrinsic/logging/errors/proto/error_report.proto
Relevant data items for the error (e.g. images, internal states).
| Field | Type | Description | |
|---|---|---|---|
| 1 | items |
repeated
intrinsic_proto.error.ErrorReport.Data.Item
|
message Description (Nested in intrinsic_proto.error.ErrorReport ) intrinsic/logging/errors/proto/error_report.proto
Error description. (e.g. error type & message, properties of error)
| Field | Type | Description | |
|---|---|---|---|
| 2 | human_readable_summary |
string
|
Required. Short summary of the error to be communicated to a human. Typically <10 words. |
| 3 | category |
intrinsic_proto.error.ErrorReport.Description.Category
|
Optional. |
| 4 | status |
google.rpc.Status
|
Required. Be as specific as possible in the error message describing the error. |
message ErrorReport intrinsic/logging/errors/proto/error_report.proto
Structured data about an error that occurred within the stack, which has the purpose to be used for error resolution. This data is typically logged to the DataLogger as a payload of a LogItem, and collected by the ErrorService for processing. It contains a description, resolution instructions and relevant associated data (e.g. images, internal states etc.).
DIFFERENCE BETWEEN absl.Status / rpc.Status AND ErrorReport: - absl.Status & rpc.Status are used throughout our stack to propagate information that is useful for the respective higher level component to interpret the status, and automatically act on it. - ErrorReport: Structured data about an error event that contains a detailed context (e.g. camera images, simulation state, other internal states) which is useful to present an explanation for the error to a human and to (automatically) search for or generate resolution suggestions. The proto should contain enough data to clearly share issues with other humans and preferably enough data to replay / tune the problematic part in isolation. An ErrorReport contains the respective StatusProto (generated from absl.Status) in its description. ErrorReports should only be logged close to the root cause of the error, and at key framework locations (skill interface and executive interface).
Note that the LogItem.Metadata used in conjunction with an ErrorReport informs about timings and details about the event source (component, app name, cluster etc.). The LogItem.Context informs about how an ErrorReport is related to other ErrorReports given their context.
| Field | Type | Description | |
|---|---|---|---|
| 1 | description |
intrinsic_proto.error.ErrorReport.Description
|
Required. |
| 2 | instructions |
intrinsic_proto.error.ErrorReport.RecoveryInstructions
|
Required. |
| 3 | data |
intrinsic_proto.error.ErrorReport.Data
|
Optional. |
message ErrorReports intrinsic/logging/errors/proto/error_report.proto
| Field | Type | Description | |
|---|---|---|---|
| 1 | error_reports |
repeated
intrinsic_proto.error.ErrorReport
|
message Item (Nested in intrinsic_proto.error.ErrorReport.RecoveryInstructions ) intrinsic/logging/errors/proto/error_report.proto
| Field | Type | Description | |
|---|---|---|---|
| 1 | human_readable |
string
|
Required. Human-readable instruction on how to potentially resolve the issue. |
message Item (Nested in intrinsic_proto.error.ErrorReport.Data ) intrinsic/logging/errors/proto/error_report.proto
| Field | Type | Description | |
|---|---|---|---|
|
oneof status_or_data
|
|||
| 1 | data |
google.protobuf.Any
|
|
| 4 | status |
google.rpc.Status
|
status may be set if acquiring data failed |
message RecoveryInstructions (Nested in intrinsic_proto.error.ErrorReport ) intrinsic/logging/errors/proto/error_report.proto
Instructions for resolution. Human-readable and additional structured data for recoveries which the user can select via a frontend. Instructions can reference data items from 'data'.
| Field | Type | Description | |
|---|---|---|---|
| 1 | items |
repeated
intrinsic_proto.error.ErrorReport.RecoveryInstructions.Item
|
List of alternatives. |
Enums
enum Category intrinsic/logging/errors/proto/error_report.proto
| Name | Number | Description |
|---|---|---|
UNKNOWN |
0 | |
CATEGORY_CRITICAL |
1 | Error likely leads to an app failure. Restart of app or component required. |
CATEGORY_HUMAN_INTERVENTION_REQUIRED |
2 | Error is most likely only recoverable by human intervention. |
CATEGORY_AUTOMATICALLY_RECOVERABLE |
3 | Error is likely recoverable automatically. |