Getting Started Concepts The Things Stack Cloud The Things Stack Enterprise Integrations API Hardware
Get The Things Stack

Concepts

    Overview
  • Architecture
  • Features
  • Networking
  • Migrate to The Things Stack
  • Packet Broker
  • Server Addresses
  • Advanced Topics
    • Working with Users and Organizations
    • Adding OAuth Clients
    • Deleting, Restoring and Purging Entities
    • Metrics
    • Root Certificates
    • Telemetry
      • CLI Telemetry
      • Identity Server Telemetry
  • Troubleshooting
  • The Things Stack Sandbox

Identity Server Telemetry

Configuring Telemetry Collection

Telemetry collection is enabled by default for The Things Stack Open Source distribution.

In order to disable it, set telemetry.enable to false in the The Things Stack configuration:

telemetry:
  enable: false

Telemetry collection is disabled by default for The Things Stack Enterprise distributions.

Initialization

When the Identity Server starts the background task responsible for collecting and sending telemetry data, it generates the UID which is attached to every telemetry message that is sent. UID is the SHA512 hash of console.ui[IS,GS,NS,AS,JS].BaseURL values.

Note:

If you want the telemetry collector to use a different list of elements, there is an option to set your own list of values used in the SHA512 hash creation. Edit The Things Stack’s configuration and set telemetry.uid-elements to a list of string values of your choice.

# Example
telemetry:
  uid-elements: ["foo", "bar"]

Telemetry Data Types

Below is a JSON object with an example of a full telemetry data message that is sent from the Identity Server:

{
  "message": {
    "uid": "m64Jv5T3Bqnxz3tSgOAYD0w25UqWwP5DgIsuKbS0g5dBQkA8ZEHwlV1iDoKgjeF7uE3dt+3SDMdANJ41xDZqag==",
    "os": {
      "operating_system": "linux",
      "arch": "amd64",
      "binary_version": "3.27.0-dev",
      "golang_version": " go1.20.7"
    },
    "cli": null,
    "entities_count": {
      "gateways": {
        "total": 0,
        "gateways_by_frequency_plan_id": {
          "US_902_928_FSB_1": 1,
          "US_902_928_FSB_2": 1
        }
      },
      "end_devices": {
        "total": 0,
        "activate_end_devices": {
          "total": 0,
          "last_day": 0,
          "last_week": 0,
          "last_month": 0
        }
      },
      "applications": {
        "total": 0
      },
      "accounts": {
        "users": {
          "standard": 0,
          "admin": 1
        },
        "organizations": {
          "total": 0
        }
      }
    }
  }
}

One such data object is sent every 24 hours. The purpose of each of these fields is listed below.

  • uid: identifier which is built from the base64 encoding of URLs set in the configuration
  • os: basic information about the operating system of the machine which executed the CLI
  • entities_count: data regarding the amount of each entity and its possible states, e.g. the amount of active end devices in the last 24 hours, the amount of gateways per frequency plan ID, the total amount of organizations, etc
← CLI Telemetry

On this page

  • Configuring Telemetry Collection
  • Initialization
  • Telemetry Data Types

Sections

Getting Started

Concepts

The Things Stack Cloud

The Things Stack Enterprise

Integrations

API

Hardware

Sitemap

View our Sitemap

Contributing

GitHub

About Us

The Things Industries