我是靠谱客的博主 能干缘分,最近开发中收集的这篇文章主要介绍prometheus持久化到mysql_prometheus基于influxdb的监控数据持久化存储方案,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

用prometheus在线上跑了两年了,都是用的本地磁盘做数据存储,磁盘空间有限,当空间不足时直接删除数据文件。近期监控系统正式上线了,运营提出了持久化存储监控数据的方案,前段做了选型最终确认使用influxdb,参考:prometheus远程存储之influxdb和timescaledb对比测试

最近一直在POC具体的方案,今天把最终的方案分享出来。

需求

1分钟级别的数据保留 7天,10分钟级别的数据保留2周,1小时级别的数据保留1个月,1天级别的保留3个月

方案

1、创建4个数据库,分别存储不同频率的数据,prometheus:原始数据 、prometheus_10m:按10分钟频率的数据、prometheus_1h:按1小时频率的数据、prometheus_1d:按天频率的数据

2、创建CQ,统计上级频率数据并写入相应频率的数据库中;10m由原始数据统计,1h由10m数据统计,1d数据由1h数据统计

3、开发influxdb remote read adapter,根据查询的开始时间来确定从哪个数据库查数据

db设计

prometheus , 数据保留:15d,分区:1d

prometheus_10m , 数据保留:15d,分区:1d

prometheus_1h , 数据保留:30d,分区:1d

prometheus_1d , 数据保留:730d,分区:7d

相应的sql

CREATE DATABASE "prometheus" WITH DURATION 15d SHARD DURATION 1d NAME "prometheus"

CREATE DATABASE "prometheus_10m" WITH DURATION 15d SHARD DURATION 1d NAME "prometheus_10m"

CREATE DATABASE "prometheus_1h" WITH DURATION 30d SHARD DURATION 1d NAME "prometheus_1h"

CREATE DATABASE "prometheus_1d" WITH DURATION 730d SHARD DURATION 7d NAME "prometheus_1d"

CQ

10m

CREATE CONTINUOUS QUERY "cq_prometheus_10m" ON "prometheus" BEGIN SELECT mean(value) as "value" INTO "prometheus_10m"..:MEASUREMENT FROM prometheus../.*/ GROUP BY time(10m),* END

1h

CREATE CONTINUOUS QUERY "cq_prometheus_1h" ON "prometheus_10m" BEGIN SELECT mean(value) as "value" INTO "prometheus_1h"..:MEASUREMENT FROM prometheus_10m../.*/ GROUP BY time(1h),* END

1d

CREATE CONTINUOUS QUERY "cq_prometheus_1d" ON "prometheus_1h" BEGIN SELECT mean(value) as "value" INTO "prometheus_1d"..:MEASUREMENT FROM prometheus_1h../.*/ GROUP BY time(1d),* END

adapter

主要是做http请求转发,基于prometheus remote read的请求中Query的StartTimestampMs来确定/api/v1/prom/read?db=%s最终db调用哪一个

StartTimestampMs在7天内转发到/api/v1/prom/read?db=prometheus

StartTimestampMs在7-15天内转发到/api/v1/prom/read?db=prometheus_10m

StartTimestampMs在15-30天内转发到/api/v1/prom/read?db=prometheus_1h

StartTimestampMs在30天以上转发到/api/v1/prom/read?db=prometheus_1d

最后

以上就是能干缘分为你收集整理的prometheus持久化到mysql_prometheus基于influxdb的监控数据持久化存储方案的全部内容,希望文章能够帮你解决prometheus持久化到mysql_prometheus基于influxdb的监控数据持久化存储方案所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部