Skip to content

Phase 3: Migrate monitoring to common::interfaces::IMonitor/IMonitorable #312

Description

@kcenon

5W1H Specification

  • Who: thread_system maintainers.
  • What: Replace thread_system-specific monitoring interfaces with common_system monitoring contracts.
  • Where: include/kcenon/thread/interfaces/monitoring_interface.h, monitorable_interface.h, thread_context.h, and metrics reporting call-sites.
  • When: v3.0.0.
  • Why: A single monitoring contract (kcenon::common::interfaces) is required for ecosystem-wide observability.
  • How: Use kcenon::common::interfaces::IMonitor for metric emission and optionally implement IMonitorable for components.

Tasks

  • Replace kcenon::thread::monitoring_interface::* usage with kcenon::common::interfaces::{IMonitor, metrics_snapshot, health_check_result, thread_pool_metrics, worker_metrics, system_metrics}.
  • Decide mapping strategy:
    • Option A: thread_pool implements common::interfaces::IMonitorable.
    • Option B: thread_context translates thread_pool metrics → IMonitor::record_metric() calls with tags.
  • Remove include/kcenon/thread/interfaces/monitoring_interface.h and monitorable_interface.h from installed surface (or move to compat-only).
  • Update thread_context to carry std::shared_ptr<common::interfaces::IMonitor>.

Acceptance Criteria

  • No installed header references kcenon::thread::monitoring_interface or kcenon::thread::monitorable_interface.
  • Monitoring integration works with kcenon/monitoring_system via common interfaces.

Related Completed Issues

Metadata

Metadata

Assignees

Labels

dependenciesExternal dependencies managementpriority:highHigh priority issuerefactoringCode refactoring and improvementsthreadingThreading and concurrency

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions