You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Prometheus/Grafana变量保留历史查询结果?

解决query_result只返回最新结果、获取历史分支名的方法
  • 利用query_result的历史返回参数
    多数支持query_result的工具会提供limit或类似参数指定返回的历史记录数量,比如:

    # 拉取最近10次测试的结果
    HISTORY_RESULTS=$(query_result(test, limit=10))
    # 批量提取所有分支名
    ALL_BRANCHES=$(echo "$HISTORY_RESULTS" | grep -E '你的分支名正则')
    

    这样就能一次性获取多条历史结果,再批量提取分支名。

  • 变量追加而非覆盖
    如果不需要跨会话保留,直接在当前会话里把每次提取的分支名追加到数组变量中:

    # 初始化数组(首次运行时)
    declare -a BRANCHES=()
    # 提取最新分支名
    NEW_BRANCH=$(query_result(test) | grep -E '你的分支名正则')
    # 追加到数组并自动去重
    if [[ ! " ${BRANCHES[@]} " =~ " ${NEW_BRANCH} " ]]; then
        BRANCHES+=("$NEW_BRANCH")
    fi
    # 查看所有分支名
    echo "${BRANCHES[@]}"
    
  • 持久化存储历史分支
    要跨会话保留历史分支,可将分支名写入本地文件,每次读取后追加新内容并去重:

    # 读取已有历史分支(文件不存在则为空)
    EXISTING_BRANCHES=$(cat branch_history.txt 2>/dev/null)
    # 提取最新分支名
    NEW_BRANCH=$(query_result(test) | grep -E '你的分支名正则')
    # 合并、去重后写入文件
    echo -e "$EXISTING_BRANCHES\n$NEW_BRANCH" | awk '!seen[$0]++' > branch_history.txt
    # 将文件内容加载到变量
    ALL_BRANCHES=$(cat branch_history.txt)
    
  • 调用工具的历史查询接口
    如果你使用的是特定测试管理工具(如TestRail、Zephyr)或CI/CD平台(如Jenkins、GitLab CI),直接调用其提供的历史执行记录API,一次性获取该测试的所有历史结果,再从中提取所有分支名。

内容的提问来源于stack exchange,提问作者bag24

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 11:24:16