taolib.symphony.observability#
Symphony 可观测性子包。
提供结构化日志配置、令牌核算与运行时快照生成能力。
Submodules#
Classes#
令牌和运行时聚合器。 |
|
从 OrchestratorState 生成快照。 |
Functions#
|
配置 structlog。 |
Package Contents#
- taolib.symphony.observability.configure_logging(level: str = 'info', format: str = 'json', output: str = 'stderr') None#
配置 structlog。
- 参数:
level -- 日志级别,如 "debug"、"info"、"warning"、"error"。
format -- 输出格式,"json" 或 "console"。
output -- 输出目标,"stderr" 或 "stdout"。
- class taolib.symphony.observability.MetricsCollector#
令牌和运行时聚合器。
累计跟踪所有 Codex 会话的令牌消耗和总运行时间。 支持从 Codex 事件流中提取绝对令牌值或增量累加。
- _totals: TokenUsage#
- _start_time: datetime.datetime#
- update_from_event(event: dict[str, Any]) None#
从 Codex 事件更新令牌计数。
支持两种事件格式: 1. 绝对值格式(thread 级 tokenUsage.updated):直接覆盖总计。 2. 增量格式(单次 turn 的 input/output):累加到当前总计。
- 参数:
event -- Codex 事件字典,可能包含 "tokenUsage" 键。
- update_from_thread(thread_data: dict[str, Any]) None#
从线程级别的 tokenUsage 数据更新总计(绝对值)。
适用于 Codex thread 对象中的 tokenUsage 字段。
- 参数:
thread_data -- 包含 tokenUsage 的线程数据。
- property totals: TokenUsage#
当前令牌用量汇总。
- class taolib.symphony.observability.SnapshotGenerator#
从 OrchestratorState 生成快照。
SnapshotGenerator 接收编排器的运行时状态,将其投影为 可 JSON 序列化的 SystemSnapshot 对象,供 HTTP API 和仪表板使用。
- generate(state: Any) SystemSnapshot#
从编排器状态生成系统快照。
- 参数:
state -- 编排器运行时状态对象,需要包含以下属性: - running: dict[str, RunningEntry] — 运行中的 worker 映射 - retry_attempts: dict[str, RetryEntry] — 重试队列映射 - completed: set[str] — 已完成的问题 ID 集合 - codex_totals: TokenUsage — 令牌用量汇总 - codex_rate_limits: dict | None — 速率限制 - poll_interval_ms: int — 轮询间隔 - max_concurrent_agents: int — 最大并发数
- 返回:
SystemSnapshot 实例。