43 lines
1.3 KiB
Python
43 lines
1.3 KiB
Python
from __future__ import annotations
|
|
|
|
from typing import Iterable
|
|
|
|
from prometheus_client import Counter, Histogram
|
|
|
|
IMPORT_DURATION = Histogram(
|
|
"calminer_import_duration_seconds",
|
|
"Duration of import preview and commit operations",
|
|
labelnames=("dataset", "action", "status"),
|
|
)
|
|
|
|
IMPORT_TOTAL = Counter(
|
|
"calminer_import_total",
|
|
"Count of import operations",
|
|
labelnames=("dataset", "action", "status"),
|
|
)
|
|
|
|
EXPORT_DURATION = Histogram(
|
|
"calminer_export_duration_seconds",
|
|
"Duration of export operations",
|
|
labelnames=("dataset", "status", "format"),
|
|
)
|
|
|
|
EXPORT_TOTAL = Counter(
|
|
"calminer_export_total",
|
|
"Count of export operations",
|
|
labelnames=("dataset", "status", "format"),
|
|
)
|
|
|
|
|
|
def observe_import(action: str, dataset: str, status: str, seconds: float) -> None:
|
|
IMPORT_TOTAL.labels(dataset=dataset, action=action, status=status).inc()
|
|
IMPORT_DURATION.labels(dataset=dataset, action=action,
|
|
status=status).observe(seconds)
|
|
|
|
|
|
def observe_export(dataset: str, status: str, export_format: str, seconds: float) -> None:
|
|
EXPORT_TOTAL.labels(dataset=dataset, status=status,
|
|
format=export_format).inc()
|
|
EXPORT_DURATION.labels(dataset=dataset, status=status,
|
|
format=export_format).observe(seconds)
|