# Prometheus

The `prometheus`

adapter collects Istio metrics and makes them available to
Prometheus.

This adapter supports the metric template.

## Params

Configuration format for the `prometheus`

adapter.

## Params.MetricInfo

Describes how a metric should be represented in Prometheus.

## Params.MetricInfo.BucketsDefinition

Describes buckets for DISTRIBUTION kind metrics.

## Params.MetricInfo.BucketsDefinition.Explicit

Specifies a set of buckets with arbitrary widths.

There are `size(bounds) + 1`

(= `N`

) buckets. Bucket `i`

has the following
boundaries:

- Upper bound (
`0 <= i < N-1`

):`bounds[i]`

- Lower bound (
`1 <= i < N`

):`bounds[i - 1]`

The `bounds`

field must contain at least one element. If `bounds`

has
only one element, then there are no finite buckets, and that single
element is the common boundary of the overflow and underflow buckets.

## Params.MetricInfo.BucketsDefinition.Exponential

Specifies an exponential sequence of buckets that have a width that is proportional to the value of the lower bound. Each bucket represents a constant relative uncertainty on a specific value in the bucket.

There are `num_finite_buckets + 2`

(= `N`

) buckets. The two additional
buckets are the underflow and overflow buckets.

Bucket `i`

has the following boundaries:

- Upper bound (0 <= i < N-1):
`scale * (growth_factor ^ i)`

- Lower bound (1 <= i < N):
`scale * (growth_factor ^ (i - 1))`

## Params.MetricInfo.BucketsDefinition.Linear

Specifies a linear sequence of buckets that all have the same width (except overflow and underflow). Each bucket represents a constant absolute uncertainty on the specific value in the bucket.

There are `num_finite_buckets + 2`

(= `N`

) buckets. The two additional
buckets are the underflow and overflow buckets.

Bucket `i`

has the following boundaries:

- Upper bound (
`0 <= i < N-1`

):`offset + (width * i)`

- Lower bound (
`1 <= i < N`

):`offset + (width * (i - 1))`

## Params.MetricInfo.Kind

Describes what kind of metric this is.

Name | Description |
---|---|

`UNSPECIFIED` | |

`GAUGE` | |

`COUNTER` | |

`DISTRIBUTION` |

## Params.MetricsExpirationPolicy

Describes the expiration policy for metrics generated by a prometheus handler.

Example: A Metrics Expiration Policy of `{ metrics_expiry_duration: "10m", expiry_check_interval_duration: "1m" }`

would configure the handler to delete all metrics that have received no updtaes for 10 minutes. Metrics would be checked
every minute to determine whether or not they should be expired.