TCPDashboard/utils/timeframe_utils.py
Vasily.onl d5db9402e8 Add system health monitoring features with modular callbacks
- Introduced a new `system_health_constants.py` file to define thresholds and constants for system health metrics.
- Refactored existing system health callbacks into modular components, enhancing maintainability and clarity.
- Implemented dynamic loading of time range options in `charts.py`, improving flexibility in time range selection.
- Added detailed documentation for new callback functions, ensuring clarity on their purpose and usage.
- Enhanced error handling and logging practices across the new modules to ensure robust monitoring and debugging capabilities.

These changes significantly improve the architecture and maintainability of the system health monitoring features, aligning with project standards for modularity and performance.
2025-06-11 19:33:08 +08:00

43 lines
1.6 KiB
Python

import json
import os
import logging
logger = logging.getLogger(__name__)
DEFAULT_TIMEFRAME_OPTIONS = [
{'label': '1 Second', 'value': '1s'},
{'label': '5 Seconds', 'value': '5s'},
{'label': '15 Seconds', 'value': '15s'},
{'label': '30 Seconds', 'value': '30s'},
{'label': '1 Minute', 'value': '1m'},
{'label': '5 Minutes', 'value': '5m'},
{'label': '15 Minutes', 'value': '15m'},
{'label': '1 Hour', 'value': '1h'},
{'label': '4 Hours', 'value': '4h'},
{'label': '1 Day', 'value': '1d'},
]
def load_timeframe_options():
"""Loads timeframe options from a JSON file.
Returns:
list: A list of dictionaries, each representing a timeframe option.
"""
try:
# Construct path relative to the workspace root
# Assuming utils is at TCPDashboard/utils
# and config/options is at TCPDashboard/config/options
base_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
file_path = os.path.join(base_dir, 'config/options/timeframe_options.json')
with open(file_path, 'r', encoding='utf-8') as f:
return json.load(f)
except FileNotFoundError:
logger.error(f"Timeframe options file not found at {file_path}. Using default timeframes.")
return DEFAULT_TIMEFRAME_OPTIONS
except json.JSONDecodeError:
logger.error(f"Error decoding JSON from {file_path}. Using default timeframes.")
return DEFAULT_TIMEFRAME_OPTIONS
except Exception as e:
logger.error(f"An unexpected error occurred while loading timeframes: {e}. Using default timeframes.")
return DEFAULT_TIMEFRAME_OPTIONS