GameCharmer
GameCharmer

Reputation: 633

Prometheus / Grafana highest value and time

Is it possible in grafana with a prometheus backend to determine the highest value recorded for the lifetime of a data set, and if so, determine the time that the value occurred?

For example, I'm using site_logged_in as the query in a Singlestat panel to get the current number of logged in users, along with a nice graph of recent activity over the past hour. Wrapping that in a max() seems to do nothing, and a max_over_time(site_logged_in[1y]) gives me a far too low number.

The value is a single gauge value coming from the endpoint like so

# HELP site_logged_in Logged In Members
# TYPE site_logged_in gauge
site_logged_in 583

Is something like determining highest values even a realistic use case for prometheus?

Upvotes: 7

Views: 30170

Answers (2)

valyala
valyala

Reputation: 17784

The highest value over the specified time range can be obtained with max_over_time() function. For example, the following value would return the maximum value for site_logged_in metric over the last year:

max_over_time(site_logged_in[1y])

Unfortunately Prometheus doesn't provide the function for returning the timestamp for the maximum value. If you need to obtain the timestamp for the maximum value, then you can use tmax_over_time() function from MetricsQL. For example, the following MetricsQL query returns the timestamp in seconds for the maximum value of site_logged_in metric over the last year:

tmax_over_time(site_logged_in[1y])

Upvotes: 1

brian-brazil
brian-brazil

Reputation: 34112

max_over_time(site_logged_in[1y]) is the max over the past year, however this presumes that you have a year worth of data to work from.

Upvotes: 13

Related Questions