時間序列轉換

observability 的計數器與量規只儲存*當前*值 —— 沒有任何東西能把計數器轉成每秒速率 —— 而 cost_telemetry 只以固定的「天」分桶。本功能在 (timestamp, value) 序列上加入 Prometheus 風格的 rate / irate / increase / delta``(具重置感知),以及 tumbling-bucket ``downsample 與 網格 resample

純標準函式庫(bisect);不匯入 PySide6。不讀取 wall clock —— 視窗使用序列自身的時間戳 —— 因此每個 函式皆完全具決定性。

無頭 API

from je_auto_control import ts_rate, ts_increase, ts_downsample, ts_resample

series = [(0, 0), (10, 50), (20, 120)]      # (timestamp_s, counter_value)
ts_rate(series)                              # 6.0(20 秒內 120)
ts_rate(series, window_s=10)                 # 只看最後 10 秒的速率
ts_increase(series)                          # 120.0(重置感知)

ts_downsample([(0, 1), (3, 3), (5, 10)], 5, "avg")   # [(0, 2.0), (5, 10.0)]
ts_resample([(0, 0), (20, 20)], 10, fill="linear")   # [(0,0),(10,10),(20,20)]

ts_rate / ts_increase 把值下降視為計數器重置(Prometheus 語意);``ts_irate`` 是最後兩個樣本的 瞬時速率;``ts_delta`` / ts_idelta 是量規的首尾差與最後兩點差。ts_downsample 把序列滾成 bucket_s 的 tumbling 桶,以 avg / sum / min / max / first / last / count 聚合。 ts_resample 對齊到固定網格,以 "last"``(前向填補)、”linear”``(內插)或 ``None``(留缺)填值。

執行器命令

AC_ts_rateseries``(可選 ``window_s)回傳 {rate};``AC_ts_downsample`` 對 seriesbucket_s``(可選 ``agg)回傳 {buckets}。兩者皆以 MCP 工具(ac_ts_rate / ac_ts_downsample) 以及 Script Builder 中 Data 分類下的命令提供。