Timescale Cloud:性能、规模、企业级

自托管产品

MST

Timescale 使用近似算法来计算百分位数,而无需所有数据。这使得它们与连续聚合更兼容。

默认情况下,Timescale Toolkit 使用 uddsketch,但您也可以选择使用 tdigest。有关这些算法的更多信息,请参阅高级聚合方法文档。

在此过程中,我们使用一个名为 response_times 的示例表,其中包含有关服务器响应 API 调用所需时间的信息。

  1. psql 提示符下,创建计算每日聚合的连续聚合

    CREATE MATERIALIZED VIEW response_times_daily
    WITH (timescaledb.continuous)
    AS SELECT
    time_bucket('1 day'::interval, ts) as bucket,
    percentile_agg(response_time_ms)
    FROM response_times
    GROUP BY 1;
  2. 重新聚合,获取最近 30 天的数据,并查找第 95 百分位数

    SELECT approx_percentile(0.95, percentile_agg(percentile_agg)) as threshold
    FROM response_times_daily
    WHERE bucket >= time_bucket('1 day'::interval, now() - '30 days'::interval);
  3. 您还可以创建警报

    WITH t as (SELECT approx_percentile(0.95, percentile_agg(percentile_agg)) as threshold
    FROM response_times_daily
    WHERE bucket >= time_bucket('1 day'::interval, now() - '30 days'::interval))
    SELECT count(*)
    FROM response_times
    WHERE ts > now()- '1 minute'::interval
    AND response_time_ms > (SELECT threshold FROM t);

有关百分位数近似 API 调用的更多信息,请参阅超函数 API 文档

关键词

发现此页面有错误?报告问题 或 在 GitHub 上编辑此页面