| 1 | # SPDX-License-Identifier: Apache-2.0 |
| 2 | # SPDX-FileCopyrightText: Copyright contributors to the vLLM project |
| 3 | |
| 4 | from typing import TypeAlias |
| 5 | |
| 6 | from prometheus_client import Counter, Gauge, Histogram |
| 7 | |
| 8 | PromMetric: TypeAlias = Gauge | Counter | Histogram |
| 9 | |
| 10 | |
| 11 | def create_metric_per_engine( |
| 12 | metric: PromMetric, |
| 13 | per_engine_labelvalues: dict[int, list[object]], |
| 14 | ) -> dict[int, PromMetric]: |
| 15 | """Create a labeled metric child for each engine index.""" |
| 16 | return { |
| 17 | idx: metric.labels(*labelvalues) |
| 18 | for idx, labelvalues in per_engine_labelvalues.items() |
| 19 | } |