Spaces:
Sleeping
Sleeping
from typing import Sequence | |
from pydantic import BaseModel, Field, root_validator | |
from typing import Optional | |
class MetricTemplate(BaseModel): | |
""" | |
MetricTemplate is a class for defining a metric template. | |
""" | |
type: str | |
name: str | |
description: Optional[str] = None | |
unit: Optional[str] = Field(default="1") | |
labels: Optional[list[str]] = None | |
buckets: Optional[Sequence[float]] = None | |
def set_default_description(cls, values): | |
""" | |
Set the default description if it is not set. | |
""" | |
if 'description' not in values or values['description'] is None: | |
values['description'] = values['name'] | |
return values | |
class MetricTemplates: | |
REQUEST_COUNT = MetricTemplate(**{ | |
"type": "counter", | |
"name": "request_count", | |
"description": "The number of requests received", | |
"unit": "1", | |
"labels": ["method", "status"] | |
}) | |
REQUEST_LATENCY = MetricTemplate(**{ | |
"type": "histogram", | |
"name": "request_latency", | |
"description": "The latency of requests", | |
"unit": "ms", | |
"labels": ["method", "status"], | |
# "buckets": [0.01, 0.05, 0.1, 0.5, 1, 5, 10, 50, 100, 500, 1000] | |
}) | |