Collector¶
Metrics collection for performance monitoring.
Classes¶
- class arshai.observability.metrics.collector.Metric(name, type, value, timestamp=<factory>, tags=<factory>, unit=None)[source]¶
Bases:
objectIndividual metric data point.
-
type:
MetricType¶
- __init__(name, type, value, timestamp=<factory>, tags=<factory>, unit=None)¶
-
type:
- class arshai.observability.metrics.collector.MetricType(value)[source]¶
Bases:
EnumTypes of metrics that can be collected.
- COUNTER = 'counter'¶
- GAUGE = 'gauge'¶
- HISTOGRAM = 'histogram'¶
- TIMER = 'timer'¶
- class arshai.observability.metrics.collector.MetricsCollector(max_history=1000)[source]¶
Bases:
objectThread-safe metrics collector for Arshai components.
Example
collector = MetricsCollector()
# Count events collector.increment(“api.calls”, tags={“endpoint”: “/process”})
# Record timing with collector.timer(“processing.time”):
# Do work pass
# Record value collector.gauge(“queue.size”, 42)
# Get metrics stats = collector.get_stats()
- __init__(max_history=1000)[source]¶
Initialize metrics collector.
- Parameters:
max_history (
int) – Maximum number of data points to keep per metric
- timer(name, tags=None)[source]¶
Context manager for timing operations.
Example
- with collector.timer(“db.query”, tags={“query”: “select”}):
# Perform query pass