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 theglobal
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.
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 asservice:{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 anIN 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.- Web
- Chronoctl
- API
To view partitions:
- In the navigation menu, click Go to Admin and then select Control > Partitions and Budgets. The global partition and any defined child partitions display.
- 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.
- 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.
- Web
- Chronoctl
- Terraform
- API
Define the partition definition in Observability Platform, and then
use the Code Config tool to apply the
definition.
- In the navigation menu, click Go to Admin and then select Control > Partitions and Budgets.
- Click New partition, and then enter a name for your partition.
- In the side navigation, select your new partition to configure it.
- If you want to use a different display name or slug for the new partition, enter new values.
- Select the parent partition for the new partition to belong to.
-
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.
-
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.
- 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.
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. TheOrdering 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 forlog_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.- Web
- Chronoctl
- Terraform
- API
To update partitions:
- In the navigation menu, click Go to Admin and then select Control > Partitions and Budgets.
- 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.
- Make changes to the partition in the definition pane.
- 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.
- Web
- Chronoctl
- Terraform
- API
To delete partitions:
- In the navigation menu, click Go to Admin and then select Control > Partitions and Budgets.
- 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.
- Click the Code config tab and use the Code Config tool to apply your changes.

