Skip to main content
After completing this topic, you can create a Run and associate your streamed telemetry with it so that your data is grouped into a named, time-bounded capture in Sift.

Before you begin

How Runs work

A Run is a distinct grouping of time-series data captured from one or more Assets. By organizing telemetry into Runs, you can isolate specific events, tests, or missions, and investigate patterns, assess performance, and diagnose anomalies within a contextual timeframe. The Run API supports the following fields:
  • start_time, stop_time—the time window of the Run.
  • asset_ids—one Run can span multiple assets.
  • duration—computed from stop_time - start_time, or ongoing if stop_time is not set.
The general workflow is:
  1. Create a Run.
  2. Stream data for an asset, including the Run ID in each request.
  3. View the Run in Sift.

Create a Run and associate it with streamed data

Step 1: Create a Run

Call RunService.CreateRun. The response returns a CreateRunResponse containing a Run with a run_id. Save the run_id; you will include it in your ingestion requests.
Client keysThe Run message has an optional client_key field that lets you assign a unique identifier to the Run. Although optional, it is recommended because it makes querying runs more convenient. A client_key can only be set once, at creation or on the first update.

Step 2: Associate data with the Run

There are two ways to associate a Run with asset data. Manual association (recommended) Include the run_id in each ingestion request. For ingestion-config-based streaming, add it to the IngestWithConfigDataStreamRequest:
IngestWithConfigDataStreamRequest {
  ingestion_config_id: "<your-config-id>",
  run_id: "<your-run-id>",
  flow: "<flow-name>",
  timestamp: <timestamp>,
  channel_values: [...],
}
This ensures that the asset data in each request is associated with the specified Run.
Retrieving a Run IDIf the Run ID is not available, query your runs first. See Continue streaming across multiple runs for how to retrieve runs by client_key.
Automatic association Call RunService.CreateAutomaticRunAssociationForAssets to associate a Run with specific assets in advance. Data arriving for those assets will automatically associate with the Run; you do not need to include the run_id in each ingestion request.
Non-standard workflowAutomatic association is not the standard workflow. If you use it, do not include the run_id in your IngestWithConfigDataStreamRequest for the associated assets. If one of the specified assets already has an ongoing Run (a Run with no stop_time), the endpoint will return an error.

Verify the result

After streaming, open Sift and navigate to the asset you streamed data for. You should see:
  • The Run listed with its name and start time.
  • Channel data visible within the Run’s time window in Explore.

Next steps

Reference