Try it free

Segment limits

  • Latest Dynatrace
  • Reference
  • 1-min read

General

  • 10,000 segments per environment
  • 20 include blocks per segment
  • 1 include block per type (for example, Logs, Metrics, Spans etc.)
  • 1 expression per filter condition minimum
  • 10 expressions per filter condition maximum
  • 15,000 values in the variable dropdown (5 MB byte cap also applies)

Classic entities

For classic entities, various limits apply. These limits don't apply to Smartscape on Grail.

  • 1 additional include per classic entity type + relationship (entity includes only)
  • Conditions for related classic entities can be empty
  • 100 selected variable values per segment

Include block conditions

All data

  • Only fields and values of type STRING, and ARRAY_OR_STRINGS are supported
  • Only operators =, and in() are supported
    • You can use wildcards * for starts-with, contains, and ends-with matches. For details, see Wildcards.
    • Asterisks are allowed to follow variable names in conditions for starts-with (for example, foo = $bar*)

Classic entities

For classic entities, various limits apply. These limits don't apply to Smartscape on Grail.

  • Only selected properties (suggested in the filter field) are allowed
  • Grail fields (for example, aws.account.id) aren't available on classic entities
    • A condition on such a field doesn't match any classic entity, so dashboards and tiles based on dt.entity.* appear empty when the segment is applied.
    • To filter classic entities, tag the entities and filter by tag, or use Smartscape on Grail.
  • starts-with, contains, and ends-with are not supported
    • The only exception is entity.name, which supports starts-with
    • Other properties only support equals

Constraints

Segment filters apply to root-level data-fetching commands (such as fetch and timeseries) and root-level append commands. Sub-queries in join, lookup, and in blocks execute outside the segment execution context and return unfiltered results.

Queries that use join, lookup, or in sub-queries may produce empty or unexpected results, because those blocks run without segment scoping even when a segment is active.

To work around this limitation, you have two options:

  • For same-dataset queries, replace join with append followed by summarize. The append command correctly inherits segment filters.
  • Add the equivalent filter condition manually inside the join block.
Related tags
Dynatrace Platform