SIENTIAPDE-1314

Implement tag value registration in Gates activity and update related tests. Enhanced the write_metrics method to process and register tag values, improving metrics tracking. Adjusted tests to validate new functionality.
This commit is contained in:
vitor-aignosi
2025-10-23 16:02:38 -03:00
parent c9136ca537
commit f0ca06b4aa
4 changed files with 46 additions and 15 deletions

View File

@@ -284,6 +284,7 @@ class Gates(BaseActivity):
metadata: dict[str, Any]
"""
metadata = input_data['metadata']
tag_values = DataFrame(input_data['tag_values'])
self.info(f'Writing metrics for {metadata["model_name"]}', metadata=metadata)
@@ -293,4 +294,13 @@ class Gates(BaseActivity):
pipeline_name=metadata['workflow_name'],
).inc()
# Register metrics
for _, row in tag_values.iterrows():
metrics.TAG_CHANGES_MONITOR.labels(
pod_id=self.pod_id,
model_name=metadata['model_name'],
pipeline_name=metadata['workflow_name'],
tag_name=row['variable'],
).set(row['value'])
self.info(f'Metrics written for {metadata["model_name"]}', metadata=metadata)

View File

@@ -13,7 +13,6 @@ with workflow.unsafe.imports_passed_through():
from sientia_do.temporal.activities.redis_base import Redis as RedisBase
from sientia_do.temporal.constants import DATETIME_FORMAT, now
from scouter import metrics
class Redis(RedisBase):
@@ -220,12 +219,10 @@ class Redis(RedisBase):
data_hold = {tag: content for tag, content in data_hold.items() if tag in tags}
self.debug(f'Data hold after removing removed tags: {data_hold}', metadata=metadata)
to_register_metrics = []
for _, row in data.iterrows():
value = row['value']
data_hold[row['name']] = value
to_register_metrics.append((row['name'], value))
if fill_missing_tags:
self.debug('Filling missing tags in data package', metadata=metadata)
@@ -240,16 +237,6 @@ class Redis(RedisBase):
self.set(key, data_hold, ttl=retention_time)
# Register metrics
self.debug(f'Metrics to register: {to_register_metrics}', metadata=metadata)
for metric in to_register_metrics:
metrics.TAG_CHANGES_MONITOR.labels(
pod_id=self.pod_id,
model_name=metadata['model_name'],
pipeline_name=metadata['workflow_name'],
tag_name=metric[0],
).set(metric[1])
data_hold_df = DataFrame(data_hold, index=[0])
data_hold_melted = data_hold_df.melt(
id_vars='timestamp', var_name='variable', value_name='value'

View File

@@ -119,6 +119,7 @@ class CoreScouter:
Activities.write_metrics,
{
**metadata,
'tag_values': held_data,
},
retry_policy=retry_policy,
start_to_close_timeout=timedelta(seconds=60),