SIENTIAPDE-1645: Expose detailed model training information via a new Prometheus gauge. This gauge, sientia_training_info, records metadata such as dataset sizes, feature count, and evaluation metrics (MSE, MAE, R2) along with the training run's timestamp.
This commit is contained in:
@@ -329,3 +329,51 @@ def test_sientia_training_feature_count_is_gauge():
|
||||
assert isinstance(SIENTIA_TRAINING_FEATURE_COUNT, Gauge)
|
||||
assert SIENTIA_TRAINING_FEATURE_COUNT._name == 'sientia_training_feature_count'
|
||||
_assert_training_labels(SIENTIA_TRAINING_FEATURE_COUNT)
|
||||
|
||||
|
||||
def test_sientia_training_info_is_gauge():
|
||||
from prometheus_client import Gauge
|
||||
|
||||
from model_manager.metrics import SIENTIA_TRAINING_INFO
|
||||
|
||||
assert isinstance(SIENTIA_TRAINING_INFO, Gauge)
|
||||
assert SIENTIA_TRAINING_INFO._name == 'sientia_training_info'
|
||||
|
||||
expected_labels = {
|
||||
'pod_id', 'model_name', 'model_type',
|
||||
'dataset_train_rows', 'dataset_val_rows', 'feature_count',
|
||||
'mse', 'mae', 'r2',
|
||||
}
|
||||
assert expected_labels == set(SIENTIA_TRAINING_INFO._labelnames)
|
||||
|
||||
|
||||
def test_sientia_training_info_set_value():
|
||||
import time
|
||||
|
||||
from model_manager.metrics import SIENTIA_TRAINING_INFO
|
||||
|
||||
ts = time.time() * 1000
|
||||
SIENTIA_TRAINING_INFO.labels(
|
||||
pod_id='test-pod',
|
||||
model_name='my_model',
|
||||
model_type='linear',
|
||||
dataset_train_rows='1000',
|
||||
dataset_val_rows='200',
|
||||
feature_count='5',
|
||||
mse='0.01',
|
||||
mae='0.08',
|
||||
r2='0.95',
|
||||
).set(ts)
|
||||
|
||||
value = SIENTIA_TRAINING_INFO.labels(
|
||||
pod_id='test-pod',
|
||||
model_name='my_model',
|
||||
model_type='linear',
|
||||
dataset_train_rows='1000',
|
||||
dataset_val_rows='200',
|
||||
feature_count='5',
|
||||
mse='0.01',
|
||||
mae='0.08',
|
||||
r2='0.95',
|
||||
)._value._value
|
||||
assert abs(value - ts) < 2000
|
||||
|
||||
Reference in New Issue
Block a user