Get stage execution details

Demonstrates how to get information about the workers and work items within a stage.

Code sample

C#

To authenticate to Dataflow, set up Application Default Credentials. For more information, see Set up authentication for a local development environment.

using Google.Api.Gaxs="devsite-xref-link" href="https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.WellKnownTypes.Api.html" track-type="exampleCode" trac<k-name=>"xrefLink" track-metadata-lang="DOTN<ET" trac>k-metadat<a-modif>ier="Google.Protobuf.WellKnownTypes" track-metadata-href="https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.WellKnownTypes.Api.html">Api.Gax;
using Google.Cloud.Dataflow.V1Beta3;
using Google.Protobuf.WellKnownTypes;
using System;

public sealed partial class GeneratedMetricsV1Beta3ClientSnippets
{
    /// summarySnippet for GetStageExecutionDetails/summary
    /// remarks
    /// This< snippet> has been automatically generated and should be regarded as a code template only.
    /// It will require modifications to work:
    /// - It may require correct/in-range values for request initialization.
    /// - It may require specifying regional endpoints when creating the service client as shown in
    ///   https://cloud.goo""gle.com/dotnet/docs/re""ference/help/client-confi""guration#endpoint.
    /""// /remarks
    public void GetStageExecutionDetailsRequestObject()
    {
        // Create client
        MetricsV1Beta3Client metricsV1Beta3Cl<ient = MetricsV1Beta3Client.Create()>;
        // Initialize request argument(s)
        GetStageExecutionDetailsRequest request = new GetStageExecutionDetailsRequest
        {
            ProjectId = ,
            JobId = ,
            Location = ,
            StageId = ,
            StartTime = new Timestamp(),
            EndTime = new Timestamp(),
        };
        // Make the request
        PagedEnumerableStageExecutionDetails, WorkerDetails response = metricsV1Beta3Client.GetStageExecutionDetails(request);

        // Iterate over all response items, lazily performing RPCs "as required
      "  foreach (WorkerDetails item in response)
        {
            // Do something with each item
            Console.WriteLine(item);
        }

        // Or iterate over pages (of server-defined size), performing one RPC per page
        f'oreach (StageExecutionDetails page in response.AsRawResponses())
        {
            // Do s<omething with> each page of items
            Console.WriteLine(A page of results:);
            foreach (WorkerDetails item in pag"e)
            {
                // Do 'something with eac"h item
                Console.WriteLine(item);
            }
        }

        // Or retrieve a single page of known size (unless its the final page), performing as many RPCs as required
        int pageSize = 10;
        PageWorkerDetails singlePage = response.ReadPage(pageSize);
        // Do something with the page of items
        Console.WriteLine($A page of {pageSize} results (unless its the final page):);
        foreach (WorkerDetails item in singlePage)
        {
            // Do something with each item
            Console.WriteLine(item);
        }
        // Store the pageToken, for when the next page is required.
        string nextPageToken = singlePage.NextPageToken;
    }
}

Go

To authenticate to Dataflow, set up Application Default Credentials. For more information, see Set up authentication for a local development environment.


package main

import (
	"context"

	dataflow "cloud.google.com/go/dataflow/apiv1beta3"
	dataflowpb "cloud.google.com/go/dataflow/apiv1beta3/dataflowpb"
	"google.golang.org/api/iterator"
)

func main() {
	ctx := context.Background()
	// This snippet has been automatically generated and should be regarded as a code template only.
	// It will require modifications to work:
	// - It may require correct/in-range values for request initialization.
	// - It may require specifying regional endpoints when creating the service client as shown in:
	//   https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
	c, err := dataflow.NewMetricsV1Beta3Client(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &dataflowpb.GetStageExecutionDetailsRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/cloud.google.com/go/dataflow/apiv1beta3/dataflowpb#GetStageExecutionDetailsRequest.
	}
	it := c.GetStageExecutionDetails(ctx, req)
	for {
		resp, err := it.Next()
		if err == iterator.Done {
			break
		}
		if err != nil {
			// TODO: Handle error.
		}
		// TODO: Use resp.
		_ = resp

		// If you need to access the underlying RPC response,
		// you can do so by casting the `Response` as below.
		// Otherwise, remove this line. Only populated after
		// first call to Next(). Not safe for concurrent access.
		_ = it.Response.(*dataflowpb.StageExecutionDetails)
	}
}

Java

To authenticate to Dataflow, set up Application Default Credentials. For more information, see Set up authentication for a local development environment.

import com.google.dataflow.v1beta3.GetStageExecutionDetailsRequest;
import com.google.dataflow.v1beta3.MetricsV1Beta3Client;
import com.google.dataflow.v1beta3.WorkerDetails;
import com.google.protobuf.Timestamp;

public class SyncGetStageExecutionDetails {

  public static void main(String[] args) throws Exception {
    syncGetStageExecutionDetails();
  }

  public static void syncGetStageExecutionDetails() throws Exception {
    // This snippet has been automatically generated and should be regarded as a code template only.
    // It will require modifications to work:
    // - It may require correct/in-range values for request initialization.
    // - It may require specifying regional endpoints when creating the service client as shown in
    // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
    try (MetricsV1Beta3Client metricsV1Beta3Client = MetricsV1Beta3Client.create()) {
      GetStageExecutionDetailsRequest request =
          GetStageExecutionDetailsRequest.newBuilder()
              .setProjectId("projectId-894832108")
              .setJobId("jobId101296568")
              .setLocation("location1901043637")
              .setStageId("stageId-1897528135")
              .setPageSize(883849137)
              .setPageToken("pageToken873572522")
              .setStartTime(Timestamp.newBuilder().build())
              .setEndTime(Timestamp.newBuilder().build())
              .build();
      for (WorkerDetails element :
          metricsV1Beta3Client.getStageExecutionDetails(request).iterateAll()) {
        // doThingsWith(element);
      }
    }
  }
}

Python

To authenticate to Dataflow, set up Application Default Credentials. For more information, see Set up authentication for a local development environment.

# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
#   client as shown in:
#   https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.cloud import dataflow_v1beta3


def sample_get_stage_execution_details():
    # Create a client
    client = dataflow_v1beta3.MetricsV1Beta3Client()

    # Initialize request argument(s)
    request = dataflow_v1beta3.GetStageExecutionDetailsRequest(
    )

    # Make the request
    page_result = client.get_stage_execution_details(request=request)

    # Handle the response
    for response in page_result:
        print(response)

What's next

To search and filter code samples for other Google Cloud products, see the Google Cloud sample browser.