﻿---
title: Histogram functions
description: PromQL histogram functions in Elasticsearch.
url: https://docs-v3-preview.elastic.dev/elastic/elasticsearch/tree/main/reference/query-languages/promql/functions/histogram
products:
  - Elasticsearch
applies_to:
  - Elastic Cloud Serverless: Generally available
  - Elastic Stack: Preview in 9.4
---

# Histogram functions
These functions operate on histogram metrics.

## `histogram_avg`

<applies-to>Elastic Stack: Planned</applies-to>
Returns the arithmetic average of observations stored in a native histogram.
**Return type**
`instant_vector`
**Parameters**
<definitions>
  <definition term="v (instant_vector)">
    Instant vector input.
  </definition>
</definitions>

**Example**
```
histogram_avg(increase(http_request_duration_seconds[5m]))
```


## `histogram_count`

<applies-to>Elastic Stack: Planned</applies-to>
Returns the count of observations stored in a native histogram.
**Return type**
`instant_vector`
**Parameters**
<definitions>
  <definition term="v (instant_vector)">
    Instant vector input.
  </definition>
</definitions>

**Example**
```
histogram_count(increase(http_request_duration_seconds[5m]))
```


## `histogram_quantile`

<applies-to>Elastic Stack: Planned</applies-to>
Returns the φ-quantile of a classic histogram represented by cumulative `le` buckets or a native (exponential) histogram.
**Return type**
`instant_vector`
**Parameters**
<definitions>
  <definition term="φ (scalar)">
    Quantile value (0 ≤ φ ≤ 1).
  </definition>
  <definition term="v (instant_vector)">
    Instant vector input.
  </definition>
</definitions>

**Example**
```
histogram_quantile(0.9, rate(http_request_duration_seconds_bucket[5m]))
```


## `histogram_sum`

<applies-to>Elastic Stack: Planned</applies-to>
Returns the sum of observations stored in a native histogram.
**Return type**
`instant_vector`
**Parameters**
<definitions>
  <definition term="v (instant_vector)">
    Instant vector input.
  </definition>
</definitions>

**Example**
```
histogram_sum(increase(http_request_duration_seconds[5m]))
```