Skip to content

Data structure

In simple terms, time series data comprises points in time associated with specific values. We represent time points as Unix timestamp seconds, and values are stored as double precision floating-point numbers.

For instance:

[[1704070861, 0.1], [1704070861, 0.2], [1704070861, 0.3], ...]

We organize related time series data into Sets and Tags.

Sets

Each Set represents a named group of related time series collections.

Examples of sets include:

  • Temperatrue readings
  • Website hits
  • User actions

Set Configuration

The following properties are used to configure a set.

Note, Immutable properties cannot be changed after the set is created.

Property Immutable Type Description
Name No String The name given to your set
Collision Mode Yes [Combine, Overwrite] How we should handle multiple data points for the same point in time

When two data points are submitted within the same second the set collision mode will determine whether the values will be combined or overwritten.

For example if your set contains weather readings you would want to use 'overwrite' as to only record the latest reading for a given second.

Website traffic is an example of when you may want to use the 'Combine', such that two data points containing one hit each for the same period will be added together to make a single data point of two hits.

Tags

Each tag has a string key, belongs to a set, and represents a single collection of time series data points.

For example, you may tag data in the above sets as follows:

  • Temperature data may be tagged by region [UK, France, Italy, ...]
  • Website hits may be tagged by page URL [/home, /pricing, /about, ...]
  • User actions may be tagged by the type of action [Signup, Login, Logout, ...]

When submitting a data point, you may specify zero or more tags. That data point will then be inserted into each tagged time series.

you do not need to manually create tags, the first time a new tag is present on a data point a corrosponding time series will be created

Special Tag: 'all'

Each set has a reserved tag 'all' which is used to aggregate all the other tags within a set.

Webhooks

You may define a webhook for each set, which will be triggered when a batch of new data points have been collected.

Notes on data points

  • The highest frequency data points can be collected at is once per second.
  • Missing data points will not be interpolated.