实时观察ES入库速度 DIY JS脚本辅助压测

压测全链路日志的时候,不知道怎么监测ES的实时入库速度,于是在Chrome的浏览器里写了点js脚本,实现了对ES实时入库速度的监控,不能说是百分之百实时,不过满足压测的数据观察。

二话不说上JS

var startTime = new Date();
var baseCount=0;

var showStat = function(){
	$.getJSON("http://es.yue.ma:9200/_stats",null,function(d){
	console.log(d._all.primaries.docs.count);
	//有数据的时候才开始统计
	if(baseCount==0){
		baseCount = d._all.primaries.docs.count;
		startTime = new Date();
	}
	if(baseCount>0){
		var currentTime = new Date();
		console.log("开始时间:"+startTime);
		console.log("统计时间:"+currentTime);
		var diffTime = currentTime.getTime() -startTime.getTime();
		console.log("时间差:"+diffTime);
		var diffSec = diffTime / 1000;
		console.log("时间差(秒):"+diffSec);
		var speadSec = d._all.primaries.docs.count / diffSec;
		console.log("平均每秒新增doc数量:"+speadSec);
		console.log("预估每分钟新增doc数量:"+speadSec*60);
	}else{
		console.log("还未探测到数据流");
	}

  });
  setTimeout('showStat()',3000);
};

showStat();

实时速率显示效果

实时观察ES入库速度 DIY JS脚本辅助压测_第1张图片

脚本使用说明

进到ES查看页面后,按F12,​贴上js脚本。如果有数据流入es会显示每秒的速度,将预估出每分钟的速度​。​脚本会先检测初始数据的变化,如果没有变化,视为数据流动还未开始,当检测到有数据流入,再依据时间差与数据差额计算速度。​因为小工具的使用场景在于数据开始流动到数据停止的时间段,如果数据长时间不流入,显示的速度会逐步下降,并影响后续实时数据的展示,这个时候可以重新刷新页面,重新执行脚本。​

 

首发公众号

https://mp.weixin.qq.com/s?__biz=MzI4MDY1MDY3OQ==&mid=2247483676&idx=1&sn=22bd863d2fbd0bf26f14f8a9de7cbad4&chksm=ebb477c4dcc3fed2a37cd962f7a394dc4899f5e496395efcba1932d3718322b0d63d38812587&token=1344102543&lang=zh_CN#rd

你可能感兴趣的:(实时观察ES入库速度 DIY JS脚本辅助压测)