当前位置: 首页 > news >正文

41.1 预聚合提速实战项目之需求分析和架构设计

本节重点介绍 :

  • 需求分析
  • 架构设计

需求分析

  • 使用预聚合提速查询
  • 并且降低高基数查询对后端的压力
  • 用户无需变更grafana上的查询语句,后端自动替换
  • 效果图
    在这里插入图片描述

在这里插入图片描述

架构设计

  • 架构图
    在这里插入图片描述

解决方案说明

  • heavy_query对用户侧表现为查询速度慢
  • 在服务端会导致资源占用过多甚至打挂后端存储
  • 查询如果命中heavy_query策略(目前为查询返回时间超过2秒)则会被替换为预先计算好的轻量查询结果返回,两种方式查询的结果一致
  • 未命中的查询按原始查询返回
  • 替换后的metrics_name 会变成 hke:heavy_expr:xxxx 字样,而对应的tag不变。对于大分部panel中已经设置了曲线的Legend,所以展示没有区别
  • 现在每晚23:30增量更新heavy_query策略。对于大部分设定好的dashboard没有影响(因为已经存量heavy_query已经跑7天以上了),对于新增策略会从策略生效后开始展示数据,对于查询高峰的白天来说至少保证有10+小时的数据

代码架构说明

  • parse组件根据prometheus的query log分析heavy_query记录
  • 把记录算哈希后增量写入consul,和redis集群中
  • prometheus 根据confd拉取属于自己分片的consul数据生成record.yml
  • 根据record做预查询聚合写入tsdb
  • query前面的lua会将grafana传过来的查询expr算哈希
  • 和redis中的记录匹配,匹配中说明这条是heavy_query
  • 那么替换其expr到后端查询

本节重点总结 :

  • 需求分析
  • 架构设计
http://www.lryc.cn/news/512444.html

相关文章:

  • 洛谷P2814 家谱(c嘎嘎)
  • 时空信息平台-API安全措施-下篇:登录鉴权【访问受限】您的请求已被该站点的安全策略拦截。
  • 找不到vcruntime140.dll文件,无法继续执行如何修复?共有7种方法
  • 【PCIe 总线及设备入门学习专栏 4.5 -- PCIe Message and PCIe MSI】
  • Docker搭建MySQL
  • #C01L11P02. C01.L11.while循环.while循环和for循环的区别
  • 利用deepspeed在Trainer下面微调大模型
  • 【spring】参数校验Validation
  • 基于PyQt5的UI界面开发——图像与视频的加载与显示
  • [python SQLAlchemy数据库操作入门]-16.CTE:简化你的复杂查询
  • 多分类的损失函数
  • 在WSL的系统中配置免密和GitHub传输数据(SSH)
  • Python中元组(tuple)内置的数据类型
  • chrome缓存机制以及验证缓存机制
  • 医药进出口交易|基于SSM+vue的医药进出口交易系统的设计与实现(源码+数据库+文档)
  • 爱快 IK-Q6000 WiFi6无线路由器 简单开箱评测和拆解
  • 时间敏感网络中全面分析与调度的模型驱动方法
  • 统计颜色Count Color(POJ2777)题解
  • MySQL数据的增删改查(一)
  • 国产文本编辑器EverEdit - 如何给小众语言开发大纲分析脚本
  • 【数据结构】线性数据结构——数组
  • QT---------GUI程序设计基础
  • 2、Bert论文笔记
  • Linux之ARM(MX6U)裸机篇----7.蜂鸣器实验
  • Zabbix 监控平台 添加监控目标主机
  • SpringCloud整合skywalking实现链路追踪和日志采集
  • html文件通过script标签引入外部js文件,但没正确加载的原因
  • OpenHarmony开发板环境搭建
  • 【Rust自学】7.6. 将模块拆分为不同文件
  • Python入门:8.Python中的函数