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.
  • 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.

Separate the same Channels by data source

Some systems send the same telemetry over more than one path, such as a wired connection and a wireless link. The Channel names are identical, but you need to know which path each value came from. The setup depends on whether any Rule compares values across the sources.

Keep the sources independent

Create one Asset for each source and ingest the same Channel names to each. For example, stream wired data to an Asset named vehicle_wired and wireless data to an Asset named vehicle_wireless, with a Channel named battery.voltage in both. Because the Channel names match, one Rule or Calculated Channel can target both Assets. You define each one once.

Compare the sources in a Rule

Rules evaluate Channels within a single Asset. To flag when the sources disagree, ingest both sources to one Asset and add the source to each Channel name, such as wired.battery.voltage and wireless.battery.voltage. Because the Channel names now differ, create a copy of each Rule for each source.

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