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 Assets are created

An Asset exists in Sift in one of two ways:
  • Sift creates it automatically the first time data arrives for its name, whether through streaming, file upload, Run creation, or an ingestion config.
  • You create it explicitly before any data exists, using the New Asset button on the Assets page or the CreateAsset call on the Asset API. See Create an asset.
Either way, data ingested for an existing Asset name attaches to that Asset rather than creating a duplicate.

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. Optional: create the Asset. If it does not exist, Sift creates it when data first arrives.
  2. Create a Run.
  3. Stream data for an asset, including the Run ID in each request.
  4. 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:
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