123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369 |
- // Copyright 2022 Google LLC
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- syntax = "proto3";
- package google.dataflow.v1beta3;
- import "google/api/annotations.proto";
- import "google/api/client.proto";
- import "google/protobuf/struct.proto";
- import "google/protobuf/timestamp.proto";
- option csharp_namespace = "Google.Cloud.Dataflow.V1Beta3";
- option go_package = "google.golang.org/genproto/googleapis/dataflow/v1beta3;dataflow";
- option java_multiple_files = true;
- option java_outer_classname = "MetricsProto";
- option java_package = "com.google.dataflow.v1beta3";
- option php_namespace = "Google\\Cloud\\Dataflow\\V1beta3";
- option ruby_package = "Google::Cloud::Dataflow::V1beta3";
- // The Dataflow Metrics API lets you monitor the progress of Dataflow
- // jobs.
- service MetricsV1Beta3 {
- option (google.api.default_host) = "dataflow.googleapis.com";
- option (google.api.oauth_scopes) =
- "https://www.googleapis.com/auth/cloud-platform,"
- "https://www.googleapis.com/auth/compute,"
- "https://www.googleapis.com/auth/compute.readonly,"
- "https://www.googleapis.com/auth/userinfo.email";
- // Request the job status.
- //
- // To request the status of a job, we recommend using
- // `projects.locations.jobs.getMetrics` with a [regional endpoint]
- // (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using
- // `projects.jobs.getMetrics` is not recommended, as you can only request the
- // status of jobs that are running in `us-central1`.
- rpc GetJobMetrics(GetJobMetricsRequest) returns (JobMetrics) {
- option (google.api.http) = {
- get: "/v1b3/projects/{project_id}/locations/{location}/jobs/{job_id}/metrics"
- additional_bindings {
- get: "/v1b3/projects/{project_id}/jobs/{job_id}/metrics"
- }
- };
- }
- // Request detailed information about the execution status of the job.
- //
- // EXPERIMENTAL. This API is subject to change or removal without notice.
- rpc GetJobExecutionDetails(GetJobExecutionDetailsRequest) returns (JobExecutionDetails) {
- option (google.api.http) = {
- get: "/v1b3/projects/{project_id}/locations/{location}/jobs/{job_id}/executionDetails"
- };
- }
- // Request detailed information about the execution status of a stage of the
- // job.
- //
- // EXPERIMENTAL. This API is subject to change or removal without notice.
- rpc GetStageExecutionDetails(GetStageExecutionDetailsRequest) returns (StageExecutionDetails) {
- option (google.api.http) = {
- get: "/v1b3/projects/{project_id}/locations/{location}/jobs/{job_id}/stages/{stage_id}/executionDetails"
- };
- }
- }
- // Identifies a metric, by describing the source which generated the
- // metric.
- message MetricStructuredName {
- // Origin (namespace) of metric name. May be blank for user-define metrics;
- // will be "dataflow" for metrics defined by the Dataflow service or SDK.
- string origin = 1;
- // Worker-defined metric name.
- string name = 2;
- // Zero or more labeled fields which identify the part of the job this
- // metric is associated with, such as the name of a step or collection.
- //
- // For example, built-in counters associated with steps will have
- // context['step'] = <step-name>. Counters associated with PCollections
- // in the SDK will have context['pcollection'] = <pcollection-name>.
- map<string, string> context = 3;
- }
- // Describes the state of a metric.
- message MetricUpdate {
- // Name of the metric.
- MetricStructuredName name = 1;
- // Metric aggregation kind. The possible metric aggregation kinds are
- // "Sum", "Max", "Min", "Mean", "Set", "And", "Or", and "Distribution".
- // The specified aggregation kind is case-insensitive.
- //
- // If omitted, this is not an aggregated value but instead
- // a single metric sample value.
- string kind = 2;
- // True if this metric is reported as the total cumulative aggregate
- // value accumulated since the worker started working on this WorkItem.
- // By default this is false, indicating that this metric is reported
- // as a delta that is not associated with any WorkItem.
- bool cumulative = 3;
- // Worker-computed aggregate value for aggregation kinds "Sum", "Max", "Min",
- // "And", and "Or". The possible value types are Long, Double, and Boolean.
- google.protobuf.Value scalar = 4;
- // Worker-computed aggregate value for the "Mean" aggregation kind.
- // This holds the sum of the aggregated values and is used in combination
- // with mean_count below to obtain the actual mean aggregate value.
- // The only possible value types are Long and Double.
- google.protobuf.Value mean_sum = 5;
- // Worker-computed aggregate value for the "Mean" aggregation kind.
- // This holds the count of the aggregated values and is used in combination
- // with mean_sum above to obtain the actual mean aggregate value.
- // The only possible value type is Long.
- google.protobuf.Value mean_count = 6;
- // Worker-computed aggregate value for the "Set" aggregation kind. The only
- // possible value type is a list of Values whose type can be Long, Double,
- // or String, according to the metric's type. All Values in the list must
- // be of the same type.
- google.protobuf.Value set = 7;
- // A struct value describing properties of a distribution of numeric values.
- google.protobuf.Value distribution = 11;
- // A struct value describing properties of a Gauge.
- // Metrics of gauge type show the value of a metric across time, and is
- // aggregated based on the newest value.
- google.protobuf.Value gauge = 12;
- // Worker-computed aggregate value for internal use by the Dataflow
- // service.
- google.protobuf.Value internal = 8;
- // Timestamp associated with the metric value. Optional when workers are
- // reporting work progress; it will be filled in responses from the
- // metrics API.
- google.protobuf.Timestamp update_time = 9;
- }
- // Request to get job metrics.
- message GetJobMetricsRequest {
- // A project id.
- string project_id = 1;
- // The job to get metrics for.
- string job_id = 2;
- // Return only metric data that has changed since this time.
- // Default is to return all information about all metrics for the job.
- google.protobuf.Timestamp start_time = 3;
- // The [regional endpoint]
- // (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that
- // contains the job specified by job_id.
- string location = 4;
- }
- // JobMetrics contains a collection of metrics describing the detailed progress
- // of a Dataflow job. Metrics correspond to user-defined and system-defined
- // metrics in the job.
- //
- // This resource captures only the most recent values of each metric;
- // time-series data can be queried for them (under the same metric names)
- // from Cloud Monitoring.
- message JobMetrics {
- // Timestamp as of which metric values are current.
- google.protobuf.Timestamp metric_time = 1;
- // All metrics for this job.
- repeated MetricUpdate metrics = 2;
- }
- // Request to get job execution details.
- message GetJobExecutionDetailsRequest {
- // A project id.
- string project_id = 1;
- // The job to get execution details for.
- string job_id = 2;
- // The [regional endpoint]
- // (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that
- // contains the job specified by job_id.
- string location = 3;
- // If specified, determines the maximum number of stages to
- // return. If unspecified, the service may choose an appropriate
- // default, or may return an arbitrarily large number of results.
- int32 page_size = 4;
- // If supplied, this should be the value of next_page_token returned
- // by an earlier call. This will cause the next page of results to
- // be returned.
- string page_token = 5;
- }
- // Information about the progress of some component of job execution.
- message ProgressTimeseries {
- // A point in the timeseries.
- message Point {
- // The timestamp of the point.
- google.protobuf.Timestamp time = 1;
- // The value of the point.
- double value = 2;
- }
- // The current progress of the component, in the range [0,1].
- double current_progress = 1;
- // History of progress for the component.
- //
- // Points are sorted by time.
- repeated Point data_points = 2;
- }
- // The state of some component of job execution.
- enum ExecutionState {
- // The component state is unknown or unspecified.
- EXECUTION_STATE_UNKNOWN = 0;
- // The component is not yet running.
- EXECUTION_STATE_NOT_STARTED = 1;
- // The component is currently running.
- EXECUTION_STATE_RUNNING = 2;
- // The component succeeded.
- EXECUTION_STATE_SUCCEEDED = 3;
- // The component failed.
- EXECUTION_STATE_FAILED = 4;
- // Execution of the component was cancelled.
- EXECUTION_STATE_CANCELLED = 5;
- }
- // Information about a particular execution stage of a job.
- message StageSummary {
- // ID of this stage
- string stage_id = 1;
- // State of this stage.
- ExecutionState state = 2;
- // Start time of this stage.
- google.protobuf.Timestamp start_time = 3;
- // End time of this stage.
- //
- // If the work item is completed, this is the actual end time of the stage.
- // Otherwise, it is the predicted end time.
- google.protobuf.Timestamp end_time = 4;
- // Progress for this stage.
- // Only applicable to Batch jobs.
- ProgressTimeseries progress = 5;
- // Metrics for this stage.
- repeated MetricUpdate metrics = 6;
- }
- // Information about the execution of a job.
- message JobExecutionDetails {
- // The stages of the job execution.
- repeated StageSummary stages = 1;
- // If present, this response does not contain all requested tasks. To obtain
- // the next page of results, repeat the request with page_token set to this
- // value.
- string next_page_token = 2;
- }
- // Request to get information about a particular execution stage of a job.
- // Currently only tracked for Batch jobs.
- message GetStageExecutionDetailsRequest {
- // A project id.
- string project_id = 1;
- // The job to get execution details for.
- string job_id = 2;
- // The [regional endpoint]
- // (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that
- // contains the job specified by job_id.
- string location = 3;
- // The stage for which to fetch information.
- string stage_id = 4;
- // If specified, determines the maximum number of work items to
- // return. If unspecified, the service may choose an appropriate
- // default, or may return an arbitrarily large number of results.
- int32 page_size = 5;
- // If supplied, this should be the value of next_page_token returned
- // by an earlier call. This will cause the next page of results to
- // be returned.
- string page_token = 6;
- // Lower time bound of work items to include, by start time.
- google.protobuf.Timestamp start_time = 7;
- // Upper time bound of work items to include, by start time.
- google.protobuf.Timestamp end_time = 8;
- }
- // Information about an individual work item execution.
- message WorkItemDetails {
- // Name of this work item.
- string task_id = 1;
- // Attempt ID of this work item
- string attempt_id = 2;
- // Start time of this work item attempt.
- google.protobuf.Timestamp start_time = 3;
- // End time of this work item attempt.
- //
- // If the work item is completed, this is the actual end time of the work
- // item. Otherwise, it is the predicted end time.
- google.protobuf.Timestamp end_time = 4;
- // State of this work item.
- ExecutionState state = 5;
- // Progress of this work item.
- ProgressTimeseries progress = 6;
- // Metrics for this work item.
- repeated MetricUpdate metrics = 7;
- }
- // Information about a worker
- message WorkerDetails {
- // Name of this worker
- string worker_name = 1;
- // Work items processed by this worker, sorted by time.
- repeated WorkItemDetails work_items = 2;
- }
- // Information about the workers and work items within a stage.
- message StageExecutionDetails {
- // Workers that have done work on the stage.
- repeated WorkerDetails workers = 1;
- // If present, this response does not contain all requested tasks. To obtain
- // the next page of results, repeat the request with page_token set to this
- // value.
- string next_page_token = 2;
- }
|