> Unfortunately, > *timestamp(up == 1)* > doesn't work as you might hope; it returns the current time (the instant that the query was made for), not the time of the last successful scrape.
I should add: this is not a bug, this is by design, and it wouldn't do what you want anyway. The query "up == 1" means "show me all values of the timeseries 'up' whose value is 1 *at the current point in time*". It will look backwards in time to find the most recent value of the 'up' metric, and will only look back 5 minutes by default (*query.lookback-delta*). Once it has found the most recent value, that's the one it will use. If the most recent value of "up" seen is 0, the filter "== 1" will eliminate it from the answer; and if no scrape has been attempted for more than 5 minutes, it also won't appear in the result set. Hence, for what you're asking, you need to look back over a defined time range - using a subquery, as I showed. On Friday, 16 September 2022 at 11:26:22 UTC+1 Brian Candler wrote: > > Can we check whether the scrape was successful or not? > > *up == 1* > > Unfortunately, > *timestamp(up == 1)* > doesn't work as you might hope; it returns the current time (the instant > that the query was made for), not the time of the last successful scrape. > > You can do: > *timestamp(up) unless up == 0* > but then you'll only get the timestamp if the server is currently up, and > nothing if it is down. > > You can use a subquery, which scans the expression over a time range - but > I already explained that to you a few weeks ago: > https://groups.google.com/g/prometheus-users/c/1zSp7XTbChY/m/3my54aefBwAJ > > *max_over_time((time() * up)[24h:5m])* > Or I think this will work too: > > *max_over_time((timestamp(up == 1))[24h:5m])* > > Both of these give an approximation. The subquery as shown evaluates the > expression at 5 minute intervals over the last 24 hours; so the timestamp > you get is rounded up to the next 5 minute step. > > On Friday, 16 September 2022 at 07:59:31 UTC+1 [email protected] > wrote: > >> Yes... It will give the timestamp... It is giving the time even though >> the specific instance is down. It should not give the timestamp if it >> didn't scrape as the instance/server was down. >> >> Can we check whether the scrape was successful or not? >> >> The main intention is to find the timestamp because when a server goes >> down we can know at what time the last scrape happen. >> >> >> >> On Friday, 16 September 2022 at 12:01:50 UTC+5:30 [email protected] wrote: >> >>> timestamp(up) >>> >>> On Fri, Sep 16, 2022 at 7:36 AM BHARATH KUMAR <[email protected]> >>> wrote: >>> >>>> Hello, >>>> >>>> Can we know the last time when the Prometheus scrape the metrics. Is >>>> there any metric to find the time when the Prometheus did the scrape? >>>> >>>> Thanks & regards, >>>> Bharath Kumar. >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Prometheus Users" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/prometheus-users/e28a24ea-921a-4710-9540-0f0c66556ab8n%40googlegroups.com >>>> >>>> <https://groups.google.com/d/msgid/prometheus-users/e28a24ea-921a-4710-9540-0f0c66556ab8n%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>> -- You received this message because you are subscribed to the Google Groups "Prometheus Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/prometheus-users/4bd96c8a-b44f-46fc-a5a5-608240c5c14fn%40googlegroups.com.

