@flyteorg/flyteidl 1.3.12 → 1.3.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flyteorg/flyteidl",
3
- "version": "1.3.12",
3
+ "version": "1.3.14",
4
4
  "description": "Compiled protocol buffers and gRPC service clients/servers for Flyte IDLs",
5
5
  "repository": {
6
6
  "type": "git",
@@ -5,6 +5,7 @@ option go_package = "github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin";
5
5
 
6
6
  import "flyteidl/core/execution.proto";
7
7
  import "flyteidl/core/identifier.proto";
8
+ import "google/protobuf/timestamp.proto";
8
9
 
9
10
  // Encapsulation of fields that identifies a Flyte resource.
10
11
  // A Flyte resource can be a task, workflow or launch plan.
@@ -8,6 +8,7 @@ import "flyteidl/admin/common.proto";
8
8
  import "flyteidl/core/literals.proto";
9
9
  import "flyteidl/core/execution.proto";
10
10
  import "flyteidl/core/identifier.proto";
11
+ import "flyteidl/core/metrics.proto";
11
12
  import "flyteidl/core/security.proto";
12
13
  import "google/protobuf/duration.proto";
13
14
  import "google/protobuf/timestamp.proto";
@@ -381,3 +382,19 @@ message ExecutionStateChangeDetails {
381
382
  }
382
383
 
383
384
  message ExecutionUpdateResponse {}
385
+
386
+ // WorkflowExecutionGetMetricsRequest represents a request to retrieve metrics for the specified workflow execution.
387
+ message WorkflowExecutionGetMetricsRequest {
388
+ // id defines the workflow execution to query for.
389
+ core.WorkflowExecutionIdentifier id = 1;
390
+
391
+ // depth defines the number of Flyte entity levels to traverse when breaking down execution details.
392
+ int32 depth = 2;
393
+ }
394
+
395
+ // WorkflowExecutionGetMetricsResponse represents the response containing metrics for the specified workflow execution.
396
+ message WorkflowExecutionGetMetricsResponse {
397
+ // Span defines the top-level breakdown of the workflows execution. More precise information is nested in a
398
+ // hierarchical structure using Flyte entity references.
399
+ core.Span span = 1;
400
+ }
@@ -228,4 +228,3 @@ message NodeExecutionGetDataResponse {
228
228
  // Optional Workflow closure for a dynamically generated workflow, in the case this node yields a dynamic workflow we return its structure here.
229
229
  DynamicWorkflowNodeMetadata dynamic_workflow = 16;
230
230
  }
231
-
@@ -123,6 +123,19 @@ message TaskExecutionClosure {
123
123
  // TaskExecutionMetadata ExternalResourceInfo fields for each subtask rather than the TaskLog
124
124
  // in this message.
125
125
  int32 event_version = 17;
126
+
127
+ // A time-series of the phase transition or update explanations. This, when compared to storing a singular reason
128
+ // as previously done, is much more valuable in visualizing and understanding historical evaluations.
129
+ repeated Reason reasons = 18;
130
+ }
131
+
132
+ // Reason is a single message annotated with a timestamp to indicate the instant the reason occurred.
133
+ message Reason {
134
+ // occurred_at is the timestamp indicating the instant that this reason happened.
135
+ google.protobuf.Timestamp occurred_at = 1;
136
+
137
+ // message is the explanation for the most recent phase transition or status update.
138
+ string message = 2;
126
139
  }
127
140
 
128
141
  // Request structure to fetch inputs and output for a task execution.
@@ -0,0 +1,36 @@
1
+ syntax = "proto3";
2
+
3
+ package flyteidl.core;
4
+
5
+ option go_package = "github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/core";
6
+
7
+ import "flyteidl/core/identifier.proto";
8
+ import "google/protobuf/timestamp.proto";
9
+
10
+ // Span represents a duration trace of Flyte execution. The id field denotes a Flyte execution entity or an operation
11
+ // which uniquely identifies the Span. The spans attribute allows this Span to be further broken down into more
12
+ // precise definitions.
13
+ message Span {
14
+ // start_time defines the instance this span began.
15
+ google.protobuf.Timestamp start_time = 1;
16
+
17
+ // end_time defines the instance this span completed.
18
+ google.protobuf.Timestamp end_time = 2;
19
+
20
+ oneof id {
21
+ // workflow_id is the id of the workflow execution this Span represents.
22
+ flyteidl.core.WorkflowExecutionIdentifier workflow_id = 3;
23
+
24
+ // node_id is the id of the node execution this Span represents.
25
+ flyteidl.core.NodeExecutionIdentifier node_id = 4;
26
+
27
+ // task_id is the id of the task execution this Span represents.
28
+ flyteidl.core.TaskExecutionIdentifier task_id = 5;
29
+
30
+ // operation_id is the id of a unique operation that this Span represents.
31
+ string operation_id = 6;
32
+ }
33
+
34
+ // spans defines a collection of Spans that breakdown this execution.
35
+ repeated Span spans = 7;
36
+ }
@@ -104,6 +104,12 @@ message NodeExecutionEvent {
104
104
  // String location uniquely identifying where the deck HTML file is
105
105
  // NativeUrl specifies the url in the format of the configured storage provider (e.g. s3://my-bucket/randomstring/suffix.tar)
106
106
  string deck_uri = 19;
107
+
108
+ // This timestamp represents the instant when the event was reported by the executing framework. For example,
109
+ // when first processing a node the `occurred_at` timestamp should be the instant propeller makes progress, so when
110
+ // literal inputs are initially copied. The event however will not be sent until after the copy completes.
111
+ // Extracting both of these timestamps facilitates a more accurate portrayal of the evaluation time-series.
112
+ google.protobuf.Timestamp reported_at = 21;
107
113
  }
108
114
 
109
115
  // For Workflow Nodes we need to send information about the workflow that's launched
@@ -221,6 +227,12 @@ message TaskExecutionEvent {
221
227
  // TaskExecutionMetadata ExternalResourceInfo fields for each subtask rather than the TaskLog
222
228
  // in this message.
223
229
  int32 event_version = 18;
230
+
231
+ // This timestamp represents the instant when the event was reported by the executing framework. For example, a k8s
232
+ // pod task may be marked completed at (ie. `occurred_at`) the instant the container running user code completes,
233
+ // but this event will not be reported until the pod is marked as completed. Extracting both of these timestamps
234
+ // facilitates a more accurate portrayal of the evaluation time-series.
235
+ google.protobuf.Timestamp reported_at = 20;
224
236
  }
225
237
 
226
238
  // This message contains metadata about external resources produced or used by a specific task execution.
@@ -20,6 +20,7 @@ import "flyteidl/admin/version.proto";
20
20
  import "flyteidl/admin/common.proto";
21
21
  import "flyteidl/admin/description_entity.proto";
22
22
  import "flyteidl/core/identifier.proto";
23
+ import "flyteidl/core/metrics.proto";
23
24
  // import "protoc-gen-swagger/options/annotations.proto";
24
25
 
25
26
  // The following defines an RPC service that is also served over HTTP via grpc-gateway.
@@ -627,4 +628,14 @@ service AdminService {
627
628
  // description: "Fetch existing description entity definitions matching input filters."
628
629
  // };
629
630
  }
631
+
632
+ // Fetches runtime metrics for a :ref:`ref_flyteidl.admin.Execution`.
633
+ rpc GetExecutionMetrics (flyteidl.admin.WorkflowExecutionGetMetricsRequest) returns (flyteidl.admin.WorkflowExecutionGetMetricsResponse) {
634
+ option (google.api.http) = {
635
+ get: "/api/v1/metrics/executions/{id.project}/{id.domain}/{id.name}"
636
+ };
637
+ // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = {
638
+ // description: "Retrieve metrics from an existing workflow execution."
639
+ // };
640
+ };
630
641
  }