如何從ATS獲取客戶端平均響應時間 單位,毫秒 ?

2021-07-03 12:23:32 字數 942 閱讀 7185

需求

運維組在zabbix中需要獲取快取節點中每台ats上的客戶端平均響應時間這個指標,來向使用者展示我們快取服務的qos指標,如何實現呢?

思路

需要理順traffic_top.cc的原始碼實現細節:

首先命令列執行

tstop

從下圖中看到我們需要得到的指標是resp(ms)這個引數,它是如何實現的呢?

要了解這個引數的實現方法,我們只能去看ts_top的原始碼,以ats 5.3.0版本為例,就是cmd/traffic_top下面的檔案traffic_top.cc以及stats.h,

具體的計算細節在stats.h中,平均響應時間是這兩個統計項的比值:

再除以10000000,就可以了,我從原始碼中看到的

需要讓ats開啟stats_over_http外掛程式

通過http介面獲取json檔案,解析出這兩項,相除就可以

以我上面的截圖的例子為例,該ats上客戶端平均響應時間是

1445571922275/9372/10000000 = 15.4

也就是說,該時刻的客戶端平均響應時間是15.4ms

如何獲取客戶端真實IP

經過 以後,由於在客戶端和服務之間增加了中間層,因此伺服器無法直接拿到客戶端的ip,伺服器端應用也無法直接通過 請求的位址返回給客戶端。但是在 請求的http頭資訊中,增加了x forwarded for資訊。用以跟蹤原有的客戶端ip位址和原來客戶端請求的伺服器位址。例如 使用反向 將的url反向 ...

如何獲取客戶端的真實IP

問題引出 在jsp裡,獲取客戶端的ip位址的方法是 request.getremoteaddr 這種方法在大部分情況下都是有效的。但是在通過了 apache,nagix等反向 軟體就不能獲取到客戶端的真實ip位址了。如果使用了反向 軟體,用 request.getremoteaddr 方法獲取的ip...

ASP如何獲取客戶端真實IP位址

在asp中使用 request.servervariables remote addr 來取得客戶端的ip位址,但如果客戶端是使用 伺服器來訪問,那取到的就是 伺服器的ip位址,而不是真正的客戶端ip位址。要想透過 伺服器取得客戶端的真實ip位址,就要使用 request.servervariabl...