ray.serve.metrics.Counter#

class ray.serve.metrics.Counter(name: str, description: str = '', tag_keys: Tuple[str] | None = None)[source]#

Bases: Counter

A serve cumulative metric that is monotonically increasing.

This corresponds to Prometheus’ counter metric: https://prometheus.io/docs/concepts/metric_types/#counter

Serve-related tags (“deployment”, “replica”, “application”, “route”) are added automatically if not provided.

@serve.deployment
class MyDeployment:
    def __init__(self):
        self.num_requests = 0
        self.my_counter = metrics.Counter(
            "my_counter",
            description=("The number of odd-numbered requests "
                "to this deployment."),
            tag_keys=("model",),
        )
        self.my_counter.set_default_tags({"model": "123"})

    def __call__(self):
        self.num_requests += 1
        if self.num_requests % 2 == 1:
            self.my_counter.inc()

Note

Before Ray 2.10, this exports a Prometheus gauge metric instead of a counter metric. Starting in Ray 2.10, this exports both the proper counter metric (with a suffix “_total”) and gauge metric (for compatibility). The gauge metric will be removed in a future Ray release and you can set RAY_EXPORT_COUNTER_AS_GAUGE=0 to disable exporting it in the meantime.

Parameters:
  • name – Name of the metric.

  • description – Description of the metric.

  • tag_keys – Tag keys of the metric.

PublicAPI (beta): This API is in beta and may change before becoming stable.

Methods

inc

Increment the counter by the given value, add serve context tag values to the tags

Attributes

info

Return the information of this metric.