Step 1: Partition your telemetry data
Budgets attach to partitions, so start by dividing consumption into partitions that each have an owner who can act on them. Partitions are hierarchical. Every partition is a child of the global partition, which captures all consumption. Observability Platform adds a default partition at each level to collect traffic that no sibling partition matches, so consumption always sums correctly into the parent partition.Model partitions on ownership
Partition by the boundaries your organization uses to assign responsibility, such as team, service, and environment. A team-level partition shows which group is consuming the license, and child partitions for individual services and environments show which workload inside that team is responsible. Granular child partitions also give you a place to enforce a threshold without penalizing the parent partition. For a diagram of a team, service, and environment hierarchy, see Partition hierarchy.Match data with filters
Each partition uses filters to claim telemetry data, and a request must match every filter to be attributed to that partition. TheIN operator requires a request to match at least one of its
conditions, and the NOT_IN operator requires a request to match none of them. Use
NOT_IN to keep traffic such as load tests out of a team’s consumption totals.
Write one condition for each telemetry type you want the partition to capture:
log_filtermatches log data with a log query.metric_filtersmatches metric data by label, and label values accept glob patterns such asservice:{svc1,svc2}.trace_span_filtersmatches trace data on span fields such asservice,operation,duration, anderror.
Create a partition
To create partitions in Observability Platform, along with the Chronoctl and Terraform equivalents, see Create partitions. Settle the naming scheme before you apply the configuration, because applying it sets the partition’s slug, which can’t be changed afterward.Step 2: Analyze consumption
Measure consumption before you enforce drops. The Consumption page compares the data you persist against your license capacity. Use that comparison to choose a threshold value high enough to protect the data your teams depend on. When you’re already viewing a partition on the Partitions and Budgets page, click View in Consumption to open the Consumption page scoped to that partition.Find what’s driving growth
In the Consumption panel, use the Time window menu to match the period to the pattern you’re looking for. The Per second window exposes spikes as they happen. The Daily, Weekly, and Monthly (Cumulative) windows expose gradual growth and sustained overconsumption. The rolling windows, from Rolling 30 minutes through Rolling 7 days, expose anomalies that recur over a few hours or days. Set the Group by menu to Consumed by partition to rank partitions against each other. The partition at the top of that ranking is where a budget produces the most benefit. Use the Child Partitions section to drill into a team partition and find the specific service or environment responsible.Know which resources you consume
Consumption is tracked for each resource, not for telemetry data as a whole, and budget thresholds apply to a single resource group. Logs and traces consume persisted bytes for data stored in the database and processed bytes for data that shaping rules match for transformation. Metrics consume persisted data points, persisted series, and matched data points. Identify which of those resources is growing before you choose a threshold, because a partition can stay well within its persisted bytes threshold while its processed bytes increase. For definitions of each resource, see Consumption licensing concepts.Step 3: Create budgets and set thresholds
A budget is a shaping policy attached to a partition. Budgets hold the thresholds that alert or drop data, along with the priorities that decide which data is dropped first. Before you create one, define the notification policy that routes budget alerts, and note the slug path of the target partition.Choose a threshold type
Match the threshold type to the behavior you’re defending against. Instant-rate and rolling thresholds use short windows, so they react quickly to spikes and generate more noise. Fixed volume thresholds reset daily, weekly, or monthly, so they catch gradual growth with fewer false signals. Instant-rate thresholds apply only to theLOG_PERSISTED_BYTES and
LOG_PROCESSED_BYTES resource groups. For metric, trace, and credit-based resource
groups, use a rolling or fixed volume threshold. For the full list of window lengths,
see Threshold types.
Avoid stacking daily, weekly, and monthly drop thresholds on the same budget. The
windows overlap enough that the same growth triggers each of those thresholds.
Alert before you drop
Configure alert actions first, and add drop actions after you’ve watched the alerts for a full window. Alerts show what a threshold value would have dropped without actually dropping data. Set the warning alert at a lower value than the point where you’d drop data, and set the critical alert at that point. Each alert action generates a monitor in the Chronosphere Managed collection, but a budget produces only one monitor for each threshold type. Several alerts on the same threshold type share a single monitor. In thealert_action_config section of the budget definition, add the metadata that
the responder needs when the monitor pages them:
annotationsfor runbook links and a description that explains which partition is over budget.labelssuch asteamandenvironment, which notification policies use to route the alert to the group that owns the data.instant_rate_sustain_secsto require that consumption exceed an instant-rate threshold for a set duration before the alert triggers. The default of0triggers on any breach.
Decide what gets dropped first
Priorities control drop order within a budget. Higher values are dropped first, so data with a priority of10 is dropped before data with a priority of 1. Assign a high
priority value to your lowest-value traffic, such as development and staging
environments, and protect production with a low value.
Priorities evaluate in match order, and the first match applies. Set
default_priority to control traffic that matches no priority filter. Without it,
unmatched traffic defaults to 10 and is dropped first.
The DROP action isn’t supported for the TRACE_PROCESSED_BYTES,
TRACE_PERSISTED_BYTES, TRACE_ALL, or cross-telemetry ALL resource groups. Use an
alert action for those resource groups, and reduce trace volume with
sampling instead.
Attach the budget to a partition
The threshold type, action, and priorities described in this section correspond to the fields you fill in when you create the budget. For complete definitions that include thresholds, priorities, and alert metadata, see the Chronoctl and Terraform budget examples.Understand evaluation order
When budgets exist at several levels of the hierarchy, a request passes through each one, starting with the most specific partition and ending at the global partition. Data that a budget drops never reaches the received rate of its parent budgets. A child budget therefore protects its parents. If a service partition with a 1 MB per second instant-rate threshold receives a 1 GB per second spike, its parent team partition still sees only 1 MB per second. The offending service absorbs the drops, and the rest of the team’s data continues to flow. For an example, see Budgeting order.Step 4: Monitor budgets
A budget is a hypothesis about future consumption. Watch how it behaves so you can correct the threshold before it drops data you need.Track budget status
On the Consumption page, the Budgets panel shows a status badge of Ok, Alerting, or Dropping for the selected partition. Partitions with no budget display no badge. The panel also lists each threshold and how much of it the partition has consumed. Where you configured thresholds, a dotted line marks the threshold value on the consumption graph, which makes headroom visible at a glance.- Select Consumed vs dropped in the Group by menu to see the rate of data that thresholds dropped for the selected partition, displayed by priority.
- Compare a partition’s trend against its threshold line across several time windows to distinguish a one-time spike from sustained growth.
- Review the Child Partitions section to find which child is responsible when a parent partition alerts. The Current budget status column reports the status of each child partition’s budget.
Triage a budget alert
Budget alerts behave like any other alert in Observability Platform, so they appear on the Alerts page and route through the notification policy attached to the budget. The generated monitor carries the annotations you defined, so a runbook link reaches an on-call engineer at the moment they need it. For the triage guide, see Respond to incidents. When a budget starts dropping data, choose a response based on what the consumption data shows:- A short spike from a known cause, such as a load test: Exclude that traffic from the
partition with a
NOT_INfilter. - Sustained growth in low-value data: Keep the threshold and shape the data so consumption fits the budget.
- Sustained growth in data teams depend on: Raise the threshold and lower the thresholds on sibling partitions so total consumption still fits your license.
notification_policy or alert_action_config propagate to the generated monitor
automatically. To change or remove thresholds, see
Update budgets.
Step 5: Shape telemetry data
Thresholds cap consumption by dropping data indiscriminately within a priority. Shaping rules reduce consumption by removing or condensing data that delivers little value, which keeps you inside the budget without losing signal.Reduce log volume
Shape log data in the order Observability Platform applies the rules. Parse plaintext logs into structured fields, normalize field names, and then create control rules to drop whole logs, drop individual fields, or sample a percentage of a log stream. Dropping a verbose field across a high-volume service often recovers more persisted bytes than dropping an entire log source.Reduce metric volume and cardinality
Shape metric data with rules that match how the metric is used. Drop rules remove metrics that nothing queries, aggregation and rollup rules condense high-cardinality series into the dimensions teams query, and recording rules calculate expensive expressions in advance. For a workflow that identifies the offending labels first, see Reduce metric cardinality.Sample trace data
Because trace resource groups don’t support drop actions, sampling is how you control trace consumption. Create trace datasets that map trace volume to business units, then apply behaviors to set sampling rates for those datasets without writing individual head and tail sampling rules.Confirm the rules worked
After a shaping rule takes effect, review rule impact to verify the volume reduction you expected, and return to the Consumption page to confirm the partition now stays within its threshold.What to do after budgets are in place
Budget management is a recurring review rather than a one-time configuration. Revisit the following as consumption changes:- Refine partitions: When a team partition consistently drives growth, add child partitions for its services or environments so a threshold can target the specific workload responsible.
- Tighten thresholds: After consumption becomes predictable, lower alert thresholds so they warn earlier, and keep drop thresholds close to the values your license supports.
- Improve generated monitors: Add or update
annotationsinalert_action_configso the next responder gets a runbook link and a description that names the partition. - Review your license: Compare thresholds against the resources and limits in Licensing so thresholds reflect what your contract covers and the penalties for exceeding it.
- Revise accordingly: A partition with an attached budget can’t be deleted, so delete the budget before you delete the partition.

