【分享】让prometheus支持PUSH模式,可以使用remote write协议推送数据
2021-10-21补充:
我通过修改源码来让prometheus支持remote-write,纯属多此一举:
--enable-feature=remote-write-receiver这个命令行参数可以开启remote-write能力,不过写入路径是:/api/v1/write
不过,我仍然保留了原来的代码,并兼容了 /api/v1/receive 这个路径。
之前测试了thanos reveiver的remote write能力,后续又希望thanos reveiver具备更多能力。
既然如此,何不在prometheus的基础上改出支持remote write能力呢?
经过一天,已经成功,请看:https://github.com/ahfuzhang/prometheus-2.29.1
测试
- 测试环境为:
- CPU: Intel(R) Xeon(R) Platinum 8361HC CPU @ 2.60GHz, 1核
- 32GB内存
- K8S容器环境
- 在单核跑满的情况下,观测一秒钟可以处理多少个data point
- 测试中发现,单核极限性能在:2763196/min, 46053/s
- 平均性能为:33450/s
- 接口主要延迟在 0-10ms之间
- 次要延迟在 50-100ms之间
TSDB数据
- 配置:
- storage.tsdb.min-block-duration=10m
- storage.tsdb.max-block-duration=10m
- storage.tsdb.retention.time=30m
- data point总数:85506661
- 内存:20.333GB
- time series总数:3222668
- 现象:
- prometheus并未严格按照10分钟来产生TSDB
- 当产生新的TSDB后,time series/ head chunks有一定下降,但是不多;内存也有一定下降,大约200MB左右
- 切换TSDB时,CPU消耗过多,导致remote write处理能力下降48.9%
- 内存占用与time series的数量正相关,data point的数量影响不大
总结:
- prometheus支持推模式,起码在部署中多了一个选择
- 如果单纯看data point的处理能力,thanos reveiver要比prometheus好一些
- 内存占用上,prometheus和thanos receiver查不太多(可能底层都是同样的TSDB组件导致)
【分享】让prometheus支持PUSH模式,可以使用remote write协议推送数据的更多相关文章
- git本地仓库关联多个remote,怎么用本地一个分支向不同remote不同分支推送代码
我想这个问题,是大家关注的问题,这个问题,我非常关注. 背景:在公司开发项目,我们一般都要把项目推送到公司领导创建的一个远程仓库里边去,但是我们同时也有自己的小仓库,这样的话,如何方便的将我们的代码, ...
- Kafka消息是采用Pull模式,还是Push模式?
Kafka最初考虑的问题是,customer应该从brokes拉取消息还是brokers将消息推送到consumer,也就是pull还push.在这方面,Kafka遵循了一种大部分消息系统共同的传统的 ...
- 一步步教你用Prometheus搭建实时监控系统系列(二)——详细分析拉取和推送两种不同模式
前言 本系列着重介绍Prometheus以及如何用它和其周边的生态来搭建一套属于自己的实时监控告警平台. 本系列受众对象为初次接触Prometheus的用户,大神勿喷,偏重于操作和实战,但是重要的概念 ...
- iOS - Push 通知推送
1.UserNotifications 通知是 App 用来和用户交流的一种方式,特别是当 App 并没有在前台运行的时候.通知,正如它的名称所强调的,被用作向用户'通知'一个事件,或者仅仅向用户提示 ...
- Amazon SNS移动推送更新——新增百度云推送和Windows平台支持
Amazon SNS(Simple Notification Service)是一种基于云平台的消息通知和推送服务. SNS提供简单的 Web 服务接口和基于浏览器的管理控制台让用户可以简易设置.执行 ...
- ASP.NET SignaiR 实现消息的即时推送,并使用Push.js实现通知
一.使用背景 1. SignalR是什么? ASP.NET SignalR 是为 ASP.NET 开发人员提供的一个库,可以简化开发人员将实时 Web 功能添加到应用程序的过程.实时 Web 功能是指 ...
- git push & git pull 推送/拉取分支
git push与git pull是一对推送/拉取分支的git命令. git push 使用本地的对应分支来更新对应的远程分支. $ git push <远程主机名> <本地分支名& ...
- ios远程推送和python版push server相关笔记
今天研究了下ios的远程推送,网上的相关教程很多,做了一遍下来记录一下遇到的问题和注意事项(转载请注明) 1.证书及乱七八糟的配置 公钥:app id管理那儿的“Development Push SS ...
- NET SignaiR 实现消息的推送,并使用Push.js实现通知
一.使用背景 1. SignalR是什么? ASP.NET SignalR 是为 ASP.NET 开发人员提供的一个库,可以简化开发人员将实时 Web 功能添加到应用程序的过程.实时 Web 功能是指 ...
随机推荐
- java File 类对操作系统文件目录进行操作:增删查
File类 1,概述 File类是java.io包下代表与平台无关的文件和目录,也就是说,如果希望在程序中操作文件和目录,都可以通过File类来完成. 2,构造方法 public File(Strin ...
- textarea标签换行符以br存入数据库 ,br转 textArea换行符
textArea换行符转 <br/> textarea标签回车符是/n,在html里识别回车是<br/>,在存入数据库之前要进行转换成<br/>,在取出展示在htm ...
- SpringBoot使用 MyBatis Plus 实现物理分页查询
一.分页配置在MyBatis Plus 可以直接使用selectPage这样的分页,但返回的数据确实是分页后的数据,但在控制台打印的SQL语句其实并没有真正的物理分页,而是通过缓存来获得全部数据中再进 ...
- nim_duilib(11)之menu(1)
introduction 更多控件用法,请参考 here 和 源码. 本文的代码基于这里 本文将介绍menu控件 xml文件添加代码 基于上一篇, 继续向basic.xml中添加下面的代码. xml完 ...
- c++参数入栈顺序和参数计算顺序
关于 本文涉及到代码,演示环境为:win10 + VS2017 ,ubuntu+clang clang版本: 参数入栈顺序 顺序 几种常见的函数参数入栈顺序,还有两种就不介绍了(__clrcall._ ...
- 【LeetCode】283. Move Zeroes 解题报告(Java & Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 方法一:首尾指针 方法二:头部双指针+双循环 方法三 ...
- 【九度OJ】题目1187:最小年龄的3个职工 解题报告
[九度OJ]题目1187:最小年龄的3个职工 解题报告 标签(空格分隔): 九度OJ http://ac.jobdu.com/problem.php?pid=1187 题目描述: 职工有职工号,姓名, ...
- WPF自定义界面WindowChrome
WPF自定义界面WindowChrome 默认WPF的界面其实也还行,就是满足不了日渐增长的需求,界面还是需要有更高的自定义程度,包括标题栏也要能够塞下更多的操作控件. 默认窗口介绍 新建WPF项目, ...
- 第四十六个知识点 在Sigma协议中,正确性,公正性和零知识性意味着什么
第四十六个知识点 在Sigma协议中,正确性,公正性和零知识性意味着什么 Sigma协议 Sigma协议是Alice想要向Bob证明一些东西的协议(Alice知道一些秘密).他们有下面的一般范式:Al ...
- Towards Evaluating the Robustness of Neural Networks
目录 概 主要内容 基本的概念 目标函数 如何选择c 如何应对Box约束 attack attack attack Nicholas Carlini, David Wagner, Towards Ev ...