---
title: "GET /api/v1/config/rollup-rules"
method: GET
path: "/api/v1/config/rollup-rules"
tags: ["RollupRule"]
---

# GET /api/v1/config/rollup-rules

`GET /api/v1/config/rollup-rules`

## Query parameters

- `page.max_size` integer
- `page.token` string
- `slugs` string[]
- `names` string[]
- `bucket_slugs` string[]

## Response `200`

A successful response.

- Configv1ListRollupRulesResponse
  - `page` Configv1PageResult
    - `next_token` string — Opaque page token which identifies the next page of items which the client should request. An empty next_token indicates that there are no more items to return.
  - `rollup_rules` Configv1RollupRule[]
    - `slug` string — Unique identifier of the RollupRule. If a `slug` isn't provided, one will be generated based of the `name` field. You can't modify this field after the RollupRule is created.
    - `name` string — Required. Name of the RollupRule. You can modify this value after the RollupRule is created.
    - `created_at` string, date-time — Timestamp of when the RollupRule was created. Cannot be set by clients.
    - `updated_at` string, date-time — Timestamp of when the RollupRule was last updated. Cannot be set by clients.
    - `bucket_slug` string — Required. Slug of the bucket the RollupRule belongs to.
    - `filters` Configv1LabelFilter[] — Filters incoming metrics by label. If multiple label filters are specified, an incoming metric must match every label filter to match the rule. Label values support glob patterns, including matching multiple patterns with an `OR`, such as `service:{svc1,svc2}`. These special filters are available for matching metrics by non-label request metadata: * `__metric_type__`: Matches the incoming metric's [Observability Platform metric type](https://docs.chronosphere.io/control/shaping/types#observability-platform-types). This is the recommended method for filtering on metric type. Valid values: `cumulative_counter`, `cumulative_exponential_histogram`, `delta_counter`, `delta_exponential_histogram`, `gauge`, `measurement`. * `__metric_source__`: Matches the incoming metric's [source format](https://docs.chronosphere.io/control/shaping/types#supported-formats). Valid values: `carbon`, `chrono_gcp`, `dogstatsd`, `open_metrics`, `open_telemetry`, `prometheus`, `signalfx`, `statsd`, `wavefront`. * `__m3_prom_type__`: When ingesting with Prometheus, matches the incoming metric's [Prometheus metric type](https://docs.chronosphere.io/control/shaping/types#prometheus). Valid values: `counter`, `gauge`, `histogram`, `gauge_histogram`, `summary`, `info`, `state_set`, `quantile`. * `__otel_type__`: When ingesting with OpenTelemetry, matches on the incoming metric's [OpenTelemetry metric type](https://docs.chronosphere.io/control/shaping/types#opentelemetry). Valid values: `sum`, `monotonic_sum`, `gauge`, `histogram`, `exp_histogram`, `summary`. For example, the following filter matches any cumulative counter metric with a `service=gateway` label whose metric name starts with `http_requests_`: ``` __metric_type__:cumulative_counter service:gateway __name__:http_requests_* ```
      - `name` string — Name of the label to match.
      - `value_glob` string — Glob value of the label to match.
    - `metric_name` string — This field is optional for Graphite rollup rules.
    - `metric_type` 'COUNTER' | 'GAUGE' | 'DELTA' | 'DISTRIBUTION' | 'CUMULATIVE_EXPONENTIAL_HISTOGRAM' | 'MEASUREMENT' | 'CUMULATIVE_COUNTER' | 'DELTA_COUNTER' | 'DELTA_EXPONENTIAL_HISTOGRAM' — - CUMULATIVE_COUNTER: Alias of COUNTER. - DELTA_COUNTER: Alias of DELTA.
    - `aggregation` 'LAST' | 'MIN' | 'MAX' | 'MEAN' | 'MEDIAN' | 'COUNT' | 'SUM' | 'SUMSQ' | 'STDEV' | 'P10' | 'P20' | 'P30' | 'P40' | 'P50' | 'P60' | 'P70' | 'P80' | 'P90' | 'P95' | 'P99' | 'P999' | 'P9999' | 'P25' | 'P75' | 'COUNT_SAMPLES' | 'HISTOGRAM'
    - `storage_policy` Configv1RollupRuleStoragePolicy
      - `resolution` string — Required resolution of the aggregated metrics.
      - `retention` string — Required retention of the aggregated metrics.
    - `interval` string — The distance in time between aggregated data points. Intervals are based on your [retention policy](https://docs.chronosphere.io/administer/licensing#retention-policies). Use this optional field to set a custom interval. This field was known as `storage_policies` in version 0.286.0-2023-01-06-release.1 and earlier.
    - `expansive_match` boolean — DEPRECATED. A series matches and aggregates only if each label defined by filters and `label_policy.keep` or `graphite_label_policy.replace` (respectively) exist in the series. Setting `expansive_match=true` removes this restriction. Default: `expansive_match=false`. If `false`, a series matches and aggregates only if each label defined by the provided `filters` and the `label_policy.keep` or `graphite_label_policy.replace` settings exist in the series.
    - `add_metric_type_label` boolean — Defines whether to add a `__rollup_type__` label in the new metric.
    - `drop_raw` boolean — Defines whether to automatically generate drop rules for this rollup rule. Set to `true` to remove raw metrics that match this rollup rule. Default: `false`.
    - `label_policy` Configv1RollupRuleLabelPolicy — TODO: consolidate w/ RecordingRule.LabelPolicy once both of these entities implement the same label semantics.
      - `keep` string[] — Labels that should be retained in the output metric. If set, then the discard field must be empty.
      - `discard` string[] — Labels that should be discarded in the output metric. If set, then the keep field must be empty.
    - `label_replace` RollupRuleLabelReplace — Must keep this around for backwards compatibility because terraform will still send this key w/ a null value.
    - `mode` 'ENABLED' | 'PREVIEW'
    - `graphite_label_policy` RollupRuleGraphiteLabelPolicy
      - `replace` GraphiteLabelPolicyReplace[] — Required list of labels to replace. Useful for discarding high-cardinality values while still preserving the original positions of the Graphite metric.
        - `name` string — Required name of the label whose value should be replaced. Only `__gX__` labels are allowed (aka positional Graphite labels).
        - `new_value` string — Required new value of the replaced label.

## Other responses

- `500` — An unexpected error response.
- `default` — An undefined error response.

---

[API](https://skmtc.net/chronosphere/apis/config-v1-api.md) · [All operations](https://skmtc.net/chronosphere/apis/config-v1-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/chronosphere/config-v1-api/revisions/530951bd2ccf/schema)
