Spaces:
Sleeping
Sleeping
File size: 1,268 Bytes
0d3a3a6 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
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
@root_validator(pre=True)
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]
})
|