gd_node.performance_metrics package
Submodules
gd_node.performance_metrics.collector module
Copyright (C) Mov.ai - All Rights Reserved Unauthorized copying of this file, via any medium is strictly prohibited Proprietary and confidential
Performance metrics collector for GD_Node
- class gd_node.performance_metrics.collector.InfluxDBMetricsCollector(node_name: str | None = None, instance_name: str | None = None, host: str | None = None, dbname: str | None = None)
Bases:
MetricsCollectorCollector that saves metrics to InfluxDB
- save_metrics() None
Write metrics to InfluxDB. Time values are stored as floats in seconds.
- class gd_node.performance_metrics.collector.MetricsCollector(node_name: str | None = None, instance_name: str | None = None)
Bases:
ABCCollects and stores performance metrics for GD_Node execution. Time measurements are stored in seconds throughout the system. Only collects metrics if PLATFORM_METRICS environment variable is set.
- calculate_durations() Dict[str, float]
Calculate time durations from stored timestamps. These values are stored as floats to maintain precision.
- Returns:
Dictionary of duration measurements in seconds
- Return type:
Dict[str, float]
- static create(*args: Any, **kwargs: Any) NullMetricsCollector | InfluxDBMetricsCollector
Factory method that returns appropriate collector based on environment
- mark_running() None
Mark node as running after initialization is complete
- mark_terminated(exit_code: int = 0, reason: str = 'normal') None
Mark node as terminated with optional exit details
- Parameters:
exit_code (int) – Exit code of the node process
reason (str) – Reason for termination
- record_timestamp(event: MetricsEvent | str) None
Record timestamp for a given event in RAM
- Parameters:
event (Union[MetricsEvent, str]) – Event to record either as MetricsEvent enum or legacy string
- abstract save_metrics() None
Save metrics using the appropriate storage method
- update_info(node_name: str, instance_name: str, transports: List[str] | None = None) None
Update node and instance names after argument parsing
- Parameters:
node_name (str) – Name of the node
instance_name (str) – Name of the instance
transports (List[str], optional) – List of active transports
- class gd_node.performance_metrics.collector.MetricsEvent(value)
Bases:
EnumEvents that can be recorded during GD_Node lifecycle
- IMPORTS_DONE = 'imports_done'
- INIT_DONE = 'init_done'
- INIT_START = 'init_start'
- RUNTIME_START = 'runtime_start'
- START = 'start'
- TERMINATE_DONE = 'terminate_done'
- TERMINATE_START = 'terminate_start'
- class gd_node.performance_metrics.collector.NodeState(value)
Bases:
EnumStates of a GD_Node during its lifecycle
- RUNNING = 'running'
- STARTING = 'starting'
- TERMINATED = 'terminated'
- class gd_node.performance_metrics.collector.NullMetricsCollector(*args: Any, **kwargs: Any)
Bases:
MetricsCollectorNo-op metrics collector when metrics are disabled
- calculate_durations(*args: Any, **kwargs: Any) Dict[str, float]
No-op for NullMetricsCollector
- record_timestamp(*args: Any, **kwargs: Any) None
No-op for NullMetricsCollector
- save_metrics(*args: Any, **kwargs: Any) None
No-op for NullMetricsCollector
- update_info(*args: Any, **kwargs: Any) None
No-op for NullMetricsCollector
Module contents
Copyright (C) Mov.ai - All Rights Reserved Unauthorized copying of this file, via any medium is strictly prohibited Proprietary and confidential
- class gd_node.performance_metrics.MetricsCollector(node_name: str | None = None, instance_name: str | None = None)
Bases:
ABCCollects and stores performance metrics for GD_Node execution. Time measurements are stored in seconds throughout the system. Only collects metrics if PLATFORM_METRICS environment variable is set.
- calculate_durations() Dict[str, float]
Calculate time durations from stored timestamps. These values are stored as floats to maintain precision.
- Returns:
Dictionary of duration measurements in seconds
- Return type:
Dict[str, float]
- static create(*args: Any, **kwargs: Any) NullMetricsCollector | InfluxDBMetricsCollector
Factory method that returns appropriate collector based on environment
- mark_running() None
Mark node as running after initialization is complete
- mark_terminated(exit_code: int = 0, reason: str = 'normal') None
Mark node as terminated with optional exit details
- Parameters:
exit_code (int) – Exit code of the node process
reason (str) – Reason for termination
- record_timestamp(event: MetricsEvent | str) None
Record timestamp for a given event in RAM
- Parameters:
event (Union[MetricsEvent, str]) – Event to record either as MetricsEvent enum or legacy string
- abstract save_metrics() None
Save metrics using the appropriate storage method
- update_info(node_name: str, instance_name: str, transports: List[str] | None = None) None
Update node and instance names after argument parsing
- Parameters:
node_name (str) – Name of the node
instance_name (str) – Name of the instance
transports (List[str], optional) – List of active transports
- class gd_node.performance_metrics.MetricsEvent(value)
Bases:
EnumEvents that can be recorded during GD_Node lifecycle
- IMPORTS_DONE = 'imports_done'
- INIT_DONE = 'init_done'
- INIT_START = 'init_start'
- RUNTIME_START = 'runtime_start'
- START = 'start'
- TERMINATE_DONE = 'terminate_done'
- TERMINATE_START = 'terminate_start'
- class gd_node.performance_metrics.NullMetricsCollector(*args: Any, **kwargs: Any)
Bases:
MetricsCollectorNo-op metrics collector when metrics are disabled
- calculate_durations(*args: Any, **kwargs: Any) Dict[str, float]
No-op for NullMetricsCollector
- record_timestamp(*args: Any, **kwargs: Any) None
No-op for NullMetricsCollector
- save_metrics(*args: Any, **kwargs: Any) None
No-op for NullMetricsCollector
- update_info(*args: Any, **kwargs: Any) None
No-op for NullMetricsCollector