# Metrics selector

![](https://static.scarf.sh/a.png?x-pxid=326269f3-cfea-472d-9169-1de32c142b90)

The *metrics selector* processor lets you choose which metrics to include or exclude, similar to the [grep](https://docs.fluentbit.io/manual/data-pipeline/filters/grep) filter for logs.

## Configuration parameters

The metrics selector processor supports the following configuration parameters:

| Key              | Description                                                                                                                                  | Default       |
| ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | ------------- |
| `action`         | Specifies whether to include or exclude matching metrics. Possible values: `INCLUDE` or `EXCLUDE`.                                           | *none*        |
| `context`        | Specifies matching context. Possible values: `metric_name` or `delete_label_value`.                                                          | `metric_name` |
| `label`          | Specifies a label key and value pair.                                                                                                        | *none*        |
| `metric_name`    | The string that determines which metrics are affected by this processor, depending on the active [matching operation](#matching-operations). | *none*        |
| `operation_type` | Specifies the [matching operation](#matching-operations) to apply to the value of `metric_name`. Possible values: `PREFIX` or `SUBSTRING`.   | *none*        |

## Matching operations

The metrics selector processor has these matching operations: prefix matching and substring matching.

### Prefix matching

Prefix matching compares the value of `metric_name` to the beginning of each incoming metric name. For example, the value `fluentbit_input` results in a match for metrics named `fluentbit_input_records`, but not for metrics named `total_fluentbit_input`.

If no `operation_type` value is specified, and if the value of `metric_name` is a standard string, the metrics selector processor defaults to prefix matching.

### Substring matching

Substring matching treats the value of `metric_name` as a regular expression pattern, and compares this pattern against each incoming metric name accordingly. This pattern can appear anywhere within the name of the incoming metric. For example, the value `bytes` results in a match for both metrics named `bytes_total` and metrics named `input_bytes_count`.

If the value of `metric_name` is a string wrapped in forward slashes (for example, `metric_name: /storage..*/`), the metrics selector processor defaults to substring matching, regardless of whether an `operation_type` value is specified. This means that a `metric_name` value wrapped in forward slashes will always use substring matching, even if `operation_type` is set to `PREFIX`.

However, if `operation_type` is explicitly set to `SUBSTRING`, you don't need to wrap the value of `metric_name` in forward slashes.

## Configuration examples

The following examples show possible configurations of the metrics selector processor.

### Without `context`

```yaml
service:
  flush: 5
  daemon: off
  log_level: info

pipeline:
  inputs:
    - name: fluentbit_metrics
      tag: fluentbit.metrics
      scrape_interval: 10

      processors:
        metrics:
          - name: metrics_selector
            metric_name: /storage/
            action: include
       
          - name: metrics_selector
            metric_name: /fs/
            action: exclude

          - name: labels
            delete: name

  outputs:
    - name: stdout
      match: '*'
```

### With `context`

```yaml
service:
  flush: 5
  daemon: off
  log_level: info

pipeline:
  inputs:
    - name: fluentbit_metrics
      tag: fluentbit.metrics
      scrape_interval: 10

      processors:
        metrics:
          - name: metrics_selector
            context: delete_label_value
            label: name stdout.0

          - name: labels
            delete: name

  outputs:
    - name: stdout
      match: '*'
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.fluentbit.io/manual/data-pipeline/processors/metrics-selector.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
