中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

javaprometheus的數(shù)據(jù)類型有哪些

本篇內(nèi)容主要講解“java prometheus的數(shù)據(jù)類型有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“java prometheus的數(shù)據(jù)類型有哪些”吧!

站在用戶的角度思考問題,與客戶深入溝通,找到柳州網(wǎng)站設計與柳州網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站建設、成都網(wǎng)站設計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名與空間、雅安服務器托管、企業(yè)郵箱。業(yè)務覆蓋柳州地區(qū)。

一、簡介

Prometheus將所有采集到的樣本數(shù)據(jù)以時間序列(time-series)的方式保存在內(nèi)存數(shù)據(jù)庫中,并定時保存在硬盤上。時間序列中的每一個樣本由以下三部分組成。

  • 指標(metric): metric name和描述當前樣本特征的labelsets組成,參考格式如 <metric name>{<label name>=<label value>, ...};,其中metric name的命名規(guī)則為:應用名稱開頭_監(jiān)測對像_數(shù)值類型_單位

  • 時間截(timestamp):一個精確到毫秒的時間截;

  • 樣本值(value):一個float64的浮點類型數(shù)據(jù)表示當前的樣本值。

二、Prometheus的四種數(shù)據(jù)類型

2.1 Counter(計數(shù)器類型)
Counter類型的指標的工作方式和計數(shù)器一樣,只增不減(除非系統(tǒng)發(fā)生了重置)。Counter一般用于累計值,例如記錄請求次數(shù)、任務完成數(shù)、錯誤發(fā)生次數(shù)。counter主要有兩個方法:

//將counter值加1.
Inc()
// 將指定值加到counter值上,如果指定值< 0會panic.
Add(float64)

在Prometheus自定義的metrics監(jiān)控中,Counter的使用可以參考如下:

public class PrometheusMetricsInterceptor extends HandlerInterceptorAdapter {

    static final Counter requestCounter = Counter.build()
            .name("io_namespace_http_requests_total").labelNames("path", "method", "code") //metric name建議使用_total結(jié)尾
            .help("Total requests.").register();

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        String requestURI = request.getRequestURI();
        String method = request.getMethod();
        int status = response.getStatus();

        requestCounter.labels(requestURI, method, String.valueOf(status)).inc(); //調(diào)用inc()函數(shù),每次請求發(fā)生時計數(shù)+1
        super.afterCompletion(request, response, handler, ex);
    }
}

Counter類型數(shù)據(jù)可以讓用戶方便的了解事件產(chǎn)生的速率的變化,在PromQL內(nèi)置的相關(guān)操作函數(shù)可以提供相應的分析,比如以HTTP應用請求量來進行說明:

//通過rate()函數(shù)獲取HTTP請求量的增長率
rate(http_requests_total[5m])
//查詢當前系統(tǒng)中,訪問量前10的HTTP地址
topk(10, http_requests_total)
  • 1

  • 2

  • 3

  • 4

2.2 Gauge(儀表盤類型)
Gauge是可增可減的指標類,可以用于反應當前應用的狀態(tài)。比如在監(jiān)控主機時,主機當前的內(nèi)容大小(node_memory_MemFree),可用內(nèi)存大?。╪ode_memory_MemAvailable)。或者時容器當前的cpu使用率,內(nèi)存使用率。
Gauge指標對象主要包含兩個方法inc()以及dec(),用戶添加或者減少計數(shù)。
在Prometheus自定義的metrics監(jiān)控中,Gauge的使用可以參考如下:

public class PrometheusMetricsInterceptor extends HandlerInterceptorAdapter {

...省略的代碼
static final Gauge inprogressRequests = Gauge.build()
        .name("io_namespace_http_inprogress_requests").labelNames("path", "method", "code")
        .help("Inprogress requests.").register();

@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    ...省略的代碼
    inprogressRequests.labels(requestURI, method, String.valueOf(status)).inc();// 計數(shù)器+1
    return super.preHandle(request, response, handler);
}

@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
    ...省略的代碼
    inprogressRequests.labels(requestURI, method, String.valueOf(status)).dec();// 計數(shù)器-1
    super.afterCompletion(request, response, handler, ex);
}
}
  •  

對于Gauge類型的監(jiān)控指標,通過PromQL內(nèi)置函數(shù)delta()可以獲取樣本在一段時間內(nèi)的變化情況,比如:

dalta(cpu_temp_celsius{host="zeus"}[2h]) //計算CPU溫度在兩小時內(nèi)的差異
predict_linear(node_filesystem_free{job="node"}[1h], 4*3600) //預測系統(tǒng)磁盤空間在4小時之后的剩余情況

2.3 Histogram(直方圖類型)
Histogram 由 < basename>_bucket{le="< upper inclusive bound>"},< basename>_bucket{le="+Inf"}, < basename>_sum,_count 組成,主要用于表示一段時間范圍內(nèi)對數(shù)據(jù)進行采樣(通常是請求持續(xù)時間或響應大?。?,并能夠?qū)ζ渲付▍^(qū)間以及總數(shù)進行統(tǒng)計,通常它采集的數(shù)據(jù)展示為直方圖。
在Prometheus自定義的metrics監(jiān)控中,Histgram的使用可以參考如下:
以請求響應時間requests_latency_seconds為例,比如我們需要記錄http請求響應時間符合在分布范圍{0.005,0.01,0.025,0.05,0.075,0.1,0.25,0.5,0.75,1,2.5,5,7.5,10}中的次數(shù)時

public class PrometheusMetricsInterceptor extends HandlerInterceptorAdapter {

    static final Histogram requestLatencyHistogram = Histogram.build().labelNames("path", "method", "code")
            .name("io_namespace_http_requests_latency_seconds_histogram").help("Request latency in seconds.")
            .register();

    private Histogram.Timer histogramRequestTimer;

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        ...省略的代碼
        histogramRequestTimer = requestLatencyHistogram.labels(requestURI, method, String.valueOf(status)).startTimer();
        ...省略的代碼
    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        ...省略的代碼
        histogramRequestTimer.observeDuration();
        ...省略的代碼
    }
  • 1

  • 2

  • 3

  • 4

使用Histogram構(gòu)造器在創(chuàng)建Histogram監(jiān)控指標時,默認的buckets范圍為{0.005,0.01,0.025,0.05,0.075,0.1,0.25,0.5,0.75,1,2.5,5,7.5,10},如果要修改默認的buckets,可以使用.buckets(double… bukets)覆蓋。
Histogram會自動創(chuàng)建3個指標,分別為:

  • 事件發(fā)生的總次數(shù),basename_count。

# 實際含義: 當前一共發(fā)生了2次http請求
io_namespace_http_requests_latency_seconds_histogram_count{path="/",method="GET",code="200",} 2.0
  •  

  •  

  • 所有事件產(chǎn)生值的大小的總和,basename_sum。

# 實際含義: 發(fā)生的2次http請求總的響應時間為13.107670803000001 秒
io_namespace_http_requests_latency_seconds_histogram_sum{path="/",method="GET",code="200",} 13.107670803000001
  • 1

  • 2

  • 事件產(chǎn)生的值分布在bucket中的次數(shù),basename_bucket{le=“上包含”}

  •  

2.4 Summary(摘要類型)
Summary類型和Histogram類型相似,由< basename>{quantile="< φ>"},< basename>_sum,< basename>_count組成,主要用于表示一段時間內(nèi)數(shù)據(jù)采樣結(jié)果(通常時請求持續(xù)時間或響應大?。?,它直接存儲了quantile數(shù)據(jù),而不是根據(jù)統(tǒng)計區(qū)間計算出來的。Summary與Histogram相比,存在如下區(qū)別:

  • 都包含 < basename>_sum和< basename>_count;

  • Histogram需要通過< basename>_bucket計算quantile,而Summary直接存儲了quantile的值。
    在Prometheus自定義的metrics監(jiān)控中,Summary的使用可以參考如下:

public class PrometheusMetricsInterceptor extends HandlerInterceptorAdapter {

    static final Summary requestLatency = Summary.build()
            .name("io_namespace_http_requests_latency_seconds_summary")
            .quantile(0.5, 0.05)
            .quantile(0.9, 0.01)
            .labelNames("path", "method", "code")
            .help("Request latency in seconds.").register();


    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        ...省略的代碼
        requestTimer = requestLatency.labels(requestURI, method, String.valueOf(status)).startTimer();
        ...省略的代碼
    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        ...省略的代碼
        requestTimer.observeDuration();
        ...省略的代碼
    }
}

Summary類型指標中包含的數(shù)據(jù)如下:

  • 事件發(fā)生總的次數(shù)

# 含義:當前http請求發(fā)生總次數(shù)為12次
io_namespace_http_requests_latency_seconds_summary_count{path="/",method="GET",code="200",} 12.0
  • 事件產(chǎn)生的值的總和

# 含義:這12次http請求的總響應時間為 51.029495508s
io_namespace_http_requests_latency_seconds_summary_sum{path="/",method="GET",code="200",} 51.029495508
  • 1

  • 2

  • 事件產(chǎn)生的值的分布情況

# 含義:這12次http請求響應時間的中位數(shù)是3.052404983s
io_namespace_http_requests_latency_seconds_summary{path="/",method="GET",code="200",quantile="0.5",} 3.052404983
# 含義:這12次http請求響應時間的9分位數(shù)是8.003261666s
io_namespace_http_requests_latency_seconds_summary{path="/",method="GET",code="200",quantile="0.9",} 8.003261666

到此,相信大家對“java prometheus的數(shù)據(jù)類型有哪些”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!

標題名稱:javaprometheus的數(shù)據(jù)類型有哪些
轉(zhuǎn)載來于:http://www.rwnh.cn/article4/jieeoe.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供用戶體驗企業(yè)網(wǎng)站制作、網(wǎng)頁設計公司、靜態(tài)網(wǎng)站、手機網(wǎng)站建設、定制開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化
福建省| 东至县| 介休市| 阿瓦提县| 宜州市| 措勤县| 河北区| 高州市| 兴安县| 正安县| 宁夏| 民县| 昌黎县| 娄底市| 五寨县| 穆棱市| 武穴市| 龙岩市| 大洼县| 巴南区| 沁阳市| 邛崃市| 龙井市| 阜宁县| 西安市| 雅安市| 阿克陶县| 武胜县| 德安县| 民勤县| 瓦房店市| 南岸区| 蓬溪县| 渑池县| 曲麻莱县| 宁安市| 台南县| 临海市| 扶沟县| 河间市| 灵武市|