Glossary

Definitions for commonly used terms in Sift

Annotation

An annotation is user created information associated with a timerange and a run, asset, or channels. An annotation is a point in time annotation when the start time is equal to the stop time. Users can add a description and tags to an annotation. An annotation is in one of 3 states: Open, Flagged, and Resolved.

Asset

An asset is an object that contains channels and components. It can be a physical object, like a vehicle or hardware test bed, or it can be a simulator or CI system. Assets are globally unique by name.

Bit Field

A bit field is a data structure used to optimize memory usage by storing multiple individual boolean (true/false) values within a compact form. Bit field elements can be provided when creating a channel with data type bit field. A bit field element, int32 index, and uint32 bit count. Your software should send the bit field in bytes when sending data to Sift. Channels with data type bit field will display the bit field in the GUI.

Channel

A channel is an object that creates time series data. It can be a physical or simulated sensor. Channels have the following properties

  • asset
  • name
  • component
  • units, which can be any string value
  • description
  • data type
  • optional enum types, when the channel's data type is enum, which is a list of ChannelEnumType
  • optional bit field elements, when the channel's data type is bit field, which is a list of ChannelBitFieldElement

A channel is unique by asset, name, component, units, description, data type, and enum type or bit field elements if provided. A new channel is created whenever one of these values changes. Channels are grouped by name, so users can view previous versions of a channel in the Sift interface.

Component

A component is an object that contains channels. Components differ from flows because they group channels for ease of exploration. Channels may be in the same component because:

  • they are a part of the same system on the asset
  • they are frequently viewed together
  • they are owned by the same team

Data Type

A channel can be one of the following data types

  • double
  • string
  • enum
  • bit field
  • bool
  • float
  • int32
  • uint32
  • int64
  • uint64

Enum

An enum, or enumeration, is a data type used to define a set of named values, typically representing a finite set of possible options or states. Enum types can be provided when creating a channel with data type enum. An enum type has a string name and uint32 key. Your software should send the uint32 key of the enum when sending data to Sift. Channels with data type enum will display the string name in the GUI.

Flow

A flow is an object that contains channels. Flows differ from components because they group channels for ease of ingestion. Flows enable sending multiple channel values with the same timestamp. Channels that send data at the same frequency and time should be in the same flow. In some instances, it may be appropriate for a channel to be in the same flow and component. Flows can have a single channel.

Ingestion Config

An ingestion config defines the asset, flows, and channels that will send data.

  • Sift uses ingestion configs to reduce the packet size when sending data. Constrast this with Influx Line Protocol, which is entirely text based and requires the measurement and tags with every field.
  • Ingestion configs can be created, reused, and discarded whenever. That is, users can create ingestion configs as a part of a CI build or immediately before sending data. Contrast this with TimeScale, which requires updating a SQL table when changing channel values that are stored.

Run

Runs are discrete periods of time when data was captured from an asset or assets. Runs can have a description and tags.

Assets can also send data to Sift at any time, regardless of whether or not a run exists.

A share link is a globally unique URL that can be created in the exploration GUI or when viewing an asset and shared with peers. The share link will always restore the state of the GUI when it was created.

Tag

A tag is a globally unique string that can be associated with runs or annotations, making it easier to search for those objects.

On this page