Skip to main content
To effectively manage your telemetry data, you need to separate, or partition data into meaningful slices that map to your business. Partitions provide a consistent structure for attributing usage and costs to the appropriate owners in your organization so they can isolate and independently control their parts of the business.

Partition hierarchy

Partitions are hierarchical, which lets you model the ownership structure of your organization. A global partition is created by default, and captures all consumption. Individual teams can create distinct partitions, with child partitions for individual services and environments. All created partitions are children of the global partition, and each created partition has a default partition to collect any traffic not explicitly captured by other partitions. Default partitions are created automatically, and ensure that all consumption is accounted for at every level and sums correctly into parent partitions. The following diagram depicts the hierarchy of partitions stemming from the global partition. Two created partitions are children of the global partition: one for the ordering_team and another for the auth-team. Each of those partitions have child partitions for each team’s individual service, with additional child partitions for prod, staging, and dev environments.

Filters

Each partition uses one or more filters to determine which telemetry data the partition captures. A request must match every filter to be assigned to the partition. Each filter uses one of the following operators:
  • IN: the request must match at least one of the filter’s conditions.
  • NOT_IN: the request must not match any of the filter’s conditions.
A partition with multiple IN or NOT_IN filters save each condition into a single IN and NOT_IN operator collection. Each condition matches exactly one telemetry type through one of the following fields:
  • log_filter: matches log data with a log query.
  • metric_filters: matches metric data by label. A metric must match every label filter in the condition. Label values support glob patterns, such as service:{svc1,svc2} to match alternatives.
  • trace_span_filters: matches trace data at the span level. A span must satisfy every span filter in the condition.

Trace span filters

A trace span filter matches spans on one or more of the following fields. To match alternatives, use an IN string filter or separate conditions.
  • service: the service of the span.
  • operation: the operation of the span.
  • parent_service: the service of the span’s parent span. Root spans don’t match.
  • parent_operation: the operation of the span’s parent span. Root spans don’t match.
  • duration: the duration of the span. An omitted or zero bound is unbounded on that side.
  • error: the error status of the span.
  • tags: the tags of the span. A numeric matcher also compares numeric-looking string tag values.
  • is_root_span: whether the span is the root span of its trace.

View partitions

Select from the following methods to view and filter available partitions.
To view partitions:
  1. In the navigation menu, click Go to Admin and then select Control > Partitions and Budgets. The global partition and any defined child partitions display.
  2. To view the definition for a specific partition, select it from the Child partitions table, or from the side navigation. The child partition’s definition displays in the Details tab.
  3. With a child partition selected, click the Budget tab to view the defined budget thresholds attached to that partition.

Create partitions

Select from the following methods to create partitions. Each partition can have up to five levels of nesting. Partitions are applied in match order as listed in your configuration file. If data matches multiple partitions, Chronosphere Observability Platform applies the first partition that the data matches in the configuration file.
The total number of partitions is limited, including the default partitions that Observability Platform generates automatically for each non-empty partition list. If you reach the limit, consolidate partitions or contact Chronosphere Support.
Define the partition definition in Observability Platform, and then use the Code Config tool to apply the definition.
  1. In the navigation menu, click Go to Admin and then select Control > Partitions and Budgets.
  2. Click New partition, and then enter a name for your partition.
  3. In the side navigation, select your new partition to configure it.
  4. If you want to use a different display name or slug for the new partition, enter new values.
    After applying the partition configuration, the slug value can’t be changed.
  5. Select the parent partition for the new partition to belong to.
  6. Define filters, which determine the data that belongs to this partition. For each filter, select In or Not in from the Operator menu to include or exclude matching data, and then enter the Conditions. The condition format depends on the telemetry type:
    • Logs: a log query.
    • Metrics: label/value pairs.
    • Traces: span fields, such as service or operation.
    For how the In and Not in operators combine, see Filters. For examples of filters, see the Chronoctl example and the Terraform example.
  7. To create child partitions in the new partition, in the Child partitions section, click New partition.
    Partitions support a maximum nesting depth of five levels from the global partition.
  8. To save the new partition and apply changes to the configuration, click the Code config tab and use the Code Config tool to apply the definition.
After applying the changes with the Code Config tool, the new partitions displays in the list of available partitions.

Next steps

After creating a partition, use the Consumption page to view usage across partitions to understand what’s driving growth and detect unwanted spikes. From the Partitions and Budgets page in Observability Platform, click View in Consumption to open the Consumption page. After analyzing consumption, create budgets and assign them to each of your partitions.

Chronoctl partition example

The following Chronoctl example defines two partitions at the team level, each with a child service partition and environment sub-partitions for production, staging, and development environments. Each partition uses conditions for logs, metrics, and traces so that data from all three telemetry types is attributed to the correct owner. The Ordering Team partition matches services with a regular expression log query, a glob-based metric filter, and an IN trace span filter. The Auth Team partition adds a NOT_IN filter to exclude load-test traffic from its consumption totals.
Chronoctl example

Terraform partition example

The following Terraform example defines the same structure as the Chronoctl example, which includes two team partitions with nested service and environment partitions. Each filter block includes separate conditions for log_filter, metric_filter, and trace_span_filters so that logs, metrics, and traces are all routed to the matching partition. The Auth Team partition demonstrates combining an IN filter with a NOT_IN filter to include auth services while excluding load-test environment data.
Terraform example

Update partitions

Select from the following methods to update partitions.
To update partitions:
  1. In the navigation menu, click Go to Admin and then select Control > Partitions and Budgets.
  2. In the sidebar navigation, select the partition you want to update. Alternatively, in the Child partitions table, click the name of the partition, or click the three vertical dots icon in the row of the partition you want to update and then click Edit.
  3. Make changes to the partition in the definition pane.
  4. Click the Code config tab and use the Code Config tool to apply your changes.

Delete partitions

Select from the following methods to delete partitions. To delete partitions with attached budgets, you must first delete attached budgets, and then delete the partition.
Users can modify Terraform-managed resources only by using Terraform. Learn more.
To delete partitions:
  1. In the navigation menu, click Go to Admin and then select Control > Partitions and Budgets.
  2. In the sidebar navigation, select the partition you want to delete. Alternatively, in the Child partitions table, click the three vertical dots icon in the row of the partition you want to delete and then click Delete.
  3. Click the Code config tab and use the Code Config tool to apply your changes.