携带时间戳主动写入数据到prometheus service(可乱序、go)

使用到的github公开项目

https://github.com/castai/promwrite

Prometheus版本2.45.0

拉下来装依赖,然后使用

client_test.go

t.Run("write with custom options", func(t *testing.T)

这个测试用例里面,删掉srv初始化的部分,这个是模拟一个客户端,直接写入自己的普罗米修斯测试的客户端路径,/api/v1/write普罗米修斯是写入的路径,普罗米修斯启动参数要加 --web.enable-remote-write-receiver

go 复制代码
client := promwrite.NewClient(
			//srv.URL,
			"http://localhost:9090/api/v1/write",
			promwrite.HttpClient(&http.Client{
				Timeout: 1 * time.Second,
				Transport: &customTestHttpClientTransport{
					reqChan: sentRequest,
					next:    http.DefaultTransport,
				},
			}),
		)

效果


注意:

普罗米修斯对写操作有限制,所以要按时间顺序写入(可以开启乱序写入,新版才有功能)

expected status 200, got 400: out of order sample

这个错误通常是由于 Prometheus 写入数据时样本的时间戳顺序不正确导致的。Prometheus 要求样本的时间戳必须按照递增的顺序进行写入

参考下面这个处理方式进行乱序写入配置

expected status 200, got 500: too old sample

配置的可以乱序写时间不够长导致

处理方式:

对应关系

storage:

tsdb:

out_of_order_time_window: 86400s

配置一天,可以往前一天写入,以此类推,影响性能

https://docs.google.com/document/d/1Kppm7qL9C-BJB1j6yb6-9ObG3AbdZnFUBYPNNWwDBYM/edit

promwrite: expected status 200, got 400: out of bounds

写入时间不在允许范围内,参考乱序写入配置,调整

相关推荐
一只懒鱼a3 天前
Prometheus和Grafana的安装和使用
grafana·prometheus
YanDDDeat3 天前
Prometheus + Grafana 搭建应用监控体系
java·后端·eureka·grafana·prometheus
goodlook01233 天前
监控平台搭建-日志-loki篇-最新版3.6.3(七)
服务器·grafana·prometheus
是Judy咋!3 天前
基于kube-prometheus-release监控---k8s集群与业务服务
容器·kubernetes·prometheus
A-刘晨阳3 天前
【云原生】PromQL 常用内置指标
云原生·grafana·prometheus·promql
AI_56783 天前
云原生监控体系构建指南:基于Prometheus与Grafana的企业级实践
云原生·grafana·prometheus
简简单单OnlineZuozuo4 天前
构建能够从失败中学习的自进化AI代理
人工智能·深度学习·学习·语言模型·prometheus·图像识别
oMcLin4 天前
如何在Debian 11服务器上部署并配置Prometheus监控系统,支持大规模集群监控?
服务器·debian·prometheus
我爱学习好爱好爱5 天前
Prometheus监控栈 监控docker和进程
docker·容器·prometheus
筑梦之路6 天前
Prometheus启用认证——筑梦之路
prometheus