Skip to content


A Summary is a metric that captures individual observations and tracks the total size & number of events observed. It can be useful to track latencies for example.

When scraped a summary produces a couple of time series:

  • total sum of observed values (ex. http_request_duration_seconds_sum)
  • count of events that have been observed (ex. http_request_duration_seconds_count)


For when to use a summary vs histograms check the prometheus docs


from pytheus.metrics import Summary

summary = Summary(name="http_request_duration_seconds", description="My description")

Observe a value

To observe a value you can call the observe() method:


Track time

You can track time with the time() context manager, it will track the duration in seconds:

with summary.time():

As a Decorator

When used as a decorator the Summary will time the piece of code, syntactic sugar to the time() context manager:

def do_something():