Skip to main content

OpenTelemetry

Observability in IoT is vital for ensuring the reliable, efficient, and secure operation of IoT ecosystems. It provides the necessary tools and insights for monitoring IoT devices in real-time, as well as addressing historical issues through effective troubleshooting. To facilitate the observability for the Spotflow IOT platform users, we allow sending OpenTelemetry data into our platform, which will then be directed to your observability backend of choice.

tip

See Consume Data in Your Systems page to learn more about configuring Egress Sinks and Routes.

Supported egress events:

KindIs supported
Messages
Batch Completions

OpenTelemetry Protocol Support

OpenTelemetry is a widely used vendor-agnostic observability framework. It provides the necessary tools for instrumenting applications across various popular programming languages. This allows your application to effortlessly generate logs, traces, and metrics. Furthermore, OpenTelemetry establishes a protocol (OTLP) that standardizes the consumption of telemetry data by observability backends.

We currently support the following three signal types:

  • Logs
  • Metrics
  • Traces

Only observability backends that provide HTTP OTLP endpoints are supported. Additionally, the telemetry data sent into the platform must be in the binary Protobuf encoding.

Data Enrichment

If there is a need to add platform-specific information such as stream name or device ID to the signals, it could be done platform-side before the data is sent to the OTLP backend. Based on the configuration for each signal, OTEL Egress can enrich Open Telemetry data with the following properties:

  • Device ID,
  • Stream Group Name,
  • Stream Name.

It should be considered which properties for which signal should be selected, because every additional property results in increased amounts of data stored in your OTLP backend (e.g. more time series for metrics). Specifically, the enrichment is done in the following ways.

Logs

The enriched properties are added as resource attributes.

Grafana Loki by default does not promote most attributes as indexed labels. But it allows for promotion of attributes as indexed labels. See the reasoning behind and instructions how to achieve indexed labels in Grafana Cloud docs.

Metrics

The enriched properties are added as attributes to each data point to propagate them as time series’ dimensions. According to Grafana Cloud implementation of OpenTelemetry specification it is not possible for resource attributes to be propagated as metric dimensions.

Traces

The enriched properties are added as resource attributes.