實時觀察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查看頁面後,按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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章