Module: A2A::Monitoring
- Defined in:
- lib/a2a/modules.rb,
lib/a2a/monitoring.rb,
lib/a2a/monitoring/alerting.rb,
lib/a2a/monitoring/health_endpoints.rb,
lib/a2a/monitoring/metrics_collector.rb,
lib/a2a/monitoring/metrics_collector.rb,
lib/a2a/monitoring/distributed_tracing.rb,
lib/a2a/monitoring/distributed_tracing.rb
Defined Under Namespace
Modules: Instrumentation Classes: Alerting, DistributedTracing, HealthChecker, HealthEndpoints, HealthMiddleware, LoggingBackend, MetricsCollector, PrometheusBackend, SlackAlertChannel, StructuredLogger, WebhookAlertChannel
Class Attribute Summary collapse
-
.logger ⇒ A2A::Monitoring::StructuredLogger
Get structured logger.
-
.metrics ⇒ A2A::Monitoring::MetricsCollector
Get metrics collector.
Class Method Summary collapse
-
.health_checks ⇒ A2A::Monitoring::HealthChecker
Get health checker.
-
.increment_counter(name, **labels) ⇒ Object
Increment a counter.
-
.initialize!(config = A2A.config) ⇒ Object
Initialize monitoring system.
-
.log(level, message, **context) ⇒ Object
Log with correlation ID.
-
.record_metric(name, value, **labels) ⇒ Object
Record a metric.
-
.record_timing(name, duration, **labels) ⇒ Object
Record timing information.
-
.time(name, **labels) { ... } ⇒ Object
Time a block of code.
Class Attribute Details
.logger ⇒ A2A::Monitoring::StructuredLogger
Get structured logger
25 26 27 |
# File 'lib/a2a/monitoring.rb', line 25 def logger @logger end |
.metrics ⇒ A2A::Monitoring::MetricsCollector
Get metrics collector
21 22 23 |
# File 'lib/a2a/monitoring.rb', line 21 def metrics @metrics end |
Class Method Details
.health_checks ⇒ A2A::Monitoring::HealthChecker
Get health checker
50 51 52 |
# File 'lib/a2a/monitoring.rb', line 50 def health_checks @health_checks ||= HealthChecker.new(A2A.config) end |
.increment_counter(name, **labels) ⇒ Object
Increment a counter
65 66 67 |
# File 'lib/a2a/monitoring.rb', line 65 def increment_counter(name, **labels) metrics.increment(name, **labels) end |
.initialize!(config = A2A.config) ⇒ Object
Initialize monitoring system
29 30 31 32 33 34 |
# File 'lib/a2a/monitoring.rb', line 29 def initialize!(config = A2A.config) @config = config @metrics = MetricsCollector.new(config) @logger = StructuredLogger.new(config) @health_checks = HealthChecker.new(config) end |
.log(level, message, **context) ⇒ Object
Log with correlation ID
98 99 100 |
# File 'lib/a2a/monitoring.rb', line 98 def log(level, , **context) logger.log(level, , **context) end |
.record_metric(name, value, **labels) ⇒ Object
Record a metric
58 59 60 |
# File 'lib/a2a/monitoring.rb', line 58 def record_metric(name, value, **labels) metrics.record(name, value, **labels) end |
.record_timing(name, duration, **labels) ⇒ Object
Record timing information
73 74 75 |
# File 'lib/a2a/monitoring.rb', line 73 def record_timing(name, duration, **labels) metrics.timing(name, duration, **labels) end |
.time(name, **labels) { ... } ⇒ Object
Time a block of code
82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/a2a/monitoring.rb', line 82 def time(name, **labels) start_time = Time.now result = yield duration = Time.now - start_time record_timing(name, duration, **labels) result rescue StandardError duration = Time.now - start_time record_timing(name, duration, status: "error", **labels) raise end |