Skip to content
© 2026 The ThingsBoard Authors
Try for free

ThingsBoard Cloud

Choose your data region

Your data stays in the region you choose, for residency and compliance. No credit card required.

Rather run it yourself? Install on your own servers

Topology Discovery

Before building any view, Trendz must scan your ThingsBoard instance to learn which asset types, device types, fields, and relations exist. This scan is called Topology Discovery, and its result is the set of Business Entities that appear in the field picker when you build analytics views.

Full Discovery performs a complete scan of your ThingsBoard instance from scratch. Run it once on first setup, and again whenever you add new entity profile types or significantly restructure your entity hierarchy.

  1. Navigate to the Business Entities page using the icon in the bottom-left corner.
  2. Click Refresh Topology.
  3. Wait until Full Discovery completes.
  4. Click Finish.

Full Discovery runs the following sequence:

┌─────────────────────────────────────────┐
│ ThingsBoard │
│ │
│ Asset types + Device types │
│ │ │
│ ▼ │
│ Sample entities per type │
│ │ │
│ ▼ │
│ Discover fields (attrs + telemetry) │
│ │ │
│ ▼ │
│ Discover relations between types │
└──────────────┬──────────────────────────┘
▼
Business Entities in Trendz

Sampling limits the number of entities analyzed per type to keep discovery fast on large installations. Every discovered entity always includes the mandatory fields ENTITY_ID, ENTITY_NAME, ENTITY_LABEL, and OWNER.

Env variable Default Description
TOPOLOGY_DISCOVERY_DEFAULT_CONFIG_MIN_ITEM_TO_ANALYZE 500 Minimum entities to sample per type
TOPOLOGY_DISCOVERY_DEFAULT_CONFIG_MAX_ITEM_TO_ANALYZE 10000 Maximum entities to sample per type
TOPOLOGY_DISCOVERY_DEFAULT_CONFIG_ANALYZE_PERCENT 5.0 Percentage of total entities to sample

See Configuration Properties — Topology Discovery for the full reference.

Lite Discovery runs automatically in the background and keeps Business Entities current without any manual intervention. New entity profile types and field changes are picked up continuously as Trendz receives API requests.

Each incoming API call triggers a lightweight check. Trendz decides whether to run discovery and which mode to use based on cooldowns and what has changed:

DISCOVER_NEW cooldown elapsed? ──No──▶ (skip)
│ Yes
▼
new types in TB (not in topology)?
│
├── Yes ──▶ DISCOVER_NEW
│ new profile types only
│
└── No ──▶ REFRESH_OLD cooldown elapsed? ──No──▶ (skip)
│ Yes
▼
REFRESH_OLD
N oldest types first

Both modes execute the same three phases:

Phase 1 — Schema discover field keys
Phase 2 — Relations discover links between entity types
Phase 3 — Types resolve field types (numeric/bool/string)

The cooldowns are 5 minutes for DISCOVER_NEW and 10 minutes for REFRESH_OLD.