3atv精品不卡视频,97人人超碰国产精品最新,中文字幕av一区二区三区人妻少妇,久久久精品波多野结衣,日韩一区二区三区精品

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

开源监控Prometheus介绍,安装,配置,使用详解

發布時間:2024/3/13 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 开源监控Prometheus介绍,安装,配置,使用详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

介紹

什么是Prometheus?

Prometheus是一個開源監控系統,前身是SoundCloud的告警插件。從2012年開始,Prometheus逐漸被大量公司使用。該項目的社區也便躍起來,收到越來越的貢獻。在2016年繼Kurberntes之后,Prometheus加入了Cloud Native Computing Foundation。

特征

  • 多維度數據模型
  • 不依賴分布式存儲,單個服務器節點是自主的
  • 以HTTP方式,通過pull模型拉去時間序列數據
  • 靈活的查詢語言
  • 也通過中間網關支持push模型
  • 通過服務發現或者靜態配置,來發現目標服務對象
  • 支持多種多樣的圖表和界面展示,prometheus和grafana是部署監控的最佳實踐
  • 組件

    Prometheus生態包括了很多組件,它們中的一些是可選的:

  • 主服務Prometheus Server負責抓取和存儲時間序列數據
  • 客戶庫負責檢測應用程序代碼
  • 支持短生命周期的PUSH網關
  • 基于Rails/SQL儀表盤構建器的GUI
  • 多種導出工具,可以支持Prometheus存儲數據轉化為HAProxy、StatsD、Graphite等工具所需要的
  • 數據存儲格式
  • 警告管理器
  • 命令行查詢工具
  • 其他各種支撐工具
  • 多數Prometheus組件是Go語言寫的,這使得這些組件很容易編譯和部署。

    構架

    下面這張圖說明了Prometheus的整體架構,以及生態中的一些組件作用:

    Prometheus服務,可以直接通過目標拉取數據,或者間接地通過中間網關拉取數據。它在本地存儲抓取的所有數據,并通過一定規則進行清理和整理數據,并把得到的結果存儲到新的時間序列中,PromQL和其他API可視化地展示收集的數據

    適用場景

    Prometheus在記錄純數字時間序列方面表現非常好。它既適用于面向服務器等硬件指標的監控,也適用于高動態的面向服務架構的監控。對于現在流行的微服務,Prometheus的多維度數據收集和數據篩選查詢語言也是非常的強大。

    Prometheus是為服務的可靠性而設計的,當服務出現故障時,它可以使你快速定位和診斷問題。它的搭建過程對硬件和服務沒有很強的依賴關系。

    不適用場景

    Prometheus,它的價值在于可靠性,甚至在很惡劣的環境下,你都可以隨時訪問它和查看系統服務各種指標的統計信息。 如果你對統計數據需要100%的精確,它并不適用,例如:它不適用于實時計費系統


    安裝

    使用預編譯二進制文件
    我們為Prometheus大多數的官方組件,提供了預編譯二進制文件。可用版本下載列表
    源碼安裝
    如果要從源碼安裝Prometheus的官方組件,可以查看各個項目源碼目錄下的Makefile
    注意點:在web上的文檔指向最新的穩定版(不包括預發布版)。下一個版本指向master分支還沒有發布的版本

    Docker安裝

    Docker安裝
    所有Prometheus服務的Docker鏡像在官方組織prom下,都是可用的

    在Docker上運行Prometheus服務,只需要簡單地執行docker run -p 9090:9090 prom/prometheus命令行即可。這條命令會啟動Prometheus服務,使用的是默認配置文件,并對外界暴露9090端口

    Prometheus鏡像使用docker中的volumn卷存儲實際度量指標。在生產環境上使用容器卷模式, 可以在Prometheus更新和升級時輕松管理Prometheus數據, 這種使用docker volumn卷方式存儲數據,是被docker官方強烈推薦的.

    通過幾個選項,可以達到使用自己的配置的目的。下面有兩個例子。

    卷&綁定掛載
    在運行Prometheus服務的主機上,做一個本地到docker容器的配置文件關系映射。

    docker run -p 9090:9090 -v /tmp/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus

    或者為這個配置文件使用一個獨立的volumn

    docker run -p 9090:9090 -v /prometheus-data
    prom/prometheus -config.file=/prometheus-data/prometheus.yml

    自定義鏡像

    為了避免在主機上與docker映射配置文件,我們可以直接將配置文件拷貝到docker鏡像中。如果Prometheus配置是靜態的,并且在所有服務器上的配置相同,這種把配置文件直接拷貝到鏡像中的方式是非常好的。

    例如:利用Dockerfile創建一個Prometheus配置目錄, Dockerfile應該這樣寫:

    FROM prom/prometheus
    ADD prometheus.yml /etc/prometheus/

    然后編譯和運行它:

    docker build -t my-prometheus .
    docker run -p 9090:9090 my-prometheus

    一個更高級的選項是可以通過一些工具動態地渲染配置,甚至后臺定期地更新配置

    使用配置管理系統
    如果你喜歡使用配置管理系統,你可能對下面地第三方庫感興趣:
    Ansible:

    • griggheo/ansible-prometheus
    • William-Yeh/ansible-prometheus

    Chef:

    • rayrod2030/chef-prometheus

    SaltStack:

    • bechtoldt/saltstack-prometheus-formula

    啟動

    入門教程

    本篇是一篇hello,world風格的入門指南,使用一個簡單的例子,向大家演示怎么樣安裝、配置和使用Prometheus。你可以下載和本地運行Prometheus服務,通過配置文件收集Prometheus服務自己產生的數據,并在這些收集數據的基礎上,進行查詢、制定規則和圖表化顯示所關心的數據

    下載和運行Prometheus

    tar xvfz prometheus-*.tar.gz

    cd prometheus-*

    在運行Prometheus服務之前,我們需要指定一個該服務運行所需要的配置文件

    配置Prometheus服務監控本身
    Prometheus通過Http方式拉取目標機上的度量指標。Prometheus服務也暴露自己運行所產生的數據,它能夠抓取和監控自己的健康狀況。

    實際上,Prometheus服務收集自己運行所產生的時間序列數據,是沒有什么意義的。但是它是一個非常好的入門級教程。保存一下的Prometheus配置到文件中,并自定義命名該文件名,如:prometheus.yml

    global:scrape_interval: 15s # By default, scrape targets every 15 seconds.# Attach these labels to any time series or alerts when communicating with# external systems (federation, remote storage, Alertmanager).external_labels:monitor: 'codelab-monitor'# A scrape configuration containing exactly one endpoint to scrape: # Here its Prometheus itself. scrape_configs:# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.- job_name: 'prometheus'# Override the global default and scrape targets from this job every 5 seconds.scrape_interval: 5sstatic_configs:- targets: ['localhost:9090']

    一個完整的配置選項,可以查看文件文檔

    啟動Prometheus服務

    cd到Prometheus服務目錄,并指定剛剛自定義好的配置文件,并啟動Prometheus服務, 如下所示:

    start Prometheus.

    By default, Prometheus stores its database in ./data (flag -storage.local.path).

    ./prometheus -config.file={$dir}/prometheus.yml # $dir = absolutely/relative path

    Prometheus服務啟動成功后,然后再打開瀏覽器在頁面上數據http://localhost:9090. 服務運行幾秒后,會開始收集自身的時間序列數據

    你也可以通過在瀏覽器輸入http://localhost:9090/metrics, 直接查看Prometheus服務收集到的自身數據

    Prometheus服務執行的操作系統線程數量由GOMAXPROCS環境變量控制。從Go 1.5開始,默認值是可用的CPUs數量

    盲目地設置GOMAXPROCS到一個比較高德值,有可能會適得其反。見Go FAQs

    注意:Prometheus服務默認需要3GB的內存代銷。如果你的機器內存比較小, 你可以調整Prometheus服務使用更少的內存。詳細見內存使用文檔

    使用表達式瀏覽器

    我們試著查看一些Prometheus服務自身產生的數據。為了使用Prometheus內置表達式瀏覽器,可以在瀏覽器中數據http://localhost:9090/graph, 選擇"Console"視圖,同一層級還有"Graph"tab。

    如果你可以從http://localhost:9090/metrics查看到收集的度量指標數據,那么其中有一個指標數據名稱為prometheus_target_interval_length_seconds(兩次抓取數據之間的時間差)可以被提取出來,可以在表達式控制框中輸入:

    prometheus_target_interval_length_seconds

    它應該會返回帶有prometheus_target_interval_length_seconds度量指標的許多時間序列數據,只是帶有不能標簽, 這些標簽有不同的延遲百分比和目標群組之間的間隔。

    如果我們僅僅對p99延遲感興趣,我們使用下面的查詢表達式收集該信息

    prometheus_target_interval_length_seconds{quantile=“0.99”}

    為了統計時間序列數據記錄的總數量,你可以寫:

    count(prometheus_target_interval_length_seconds)
    更多的表達式語言,詳見表達式語言文檔

    使用圖形界面

    使用http://localhost:9090/graph鏈接,查看圖表"Graph"。
    例如:輸入下面的表達式,繪制在Prometheus服務中每秒存儲的速率.

    rate(prometheus_local_storage_chunk_ops_total[1m])

    啟動一些樣本目標機

    我們更感興趣的是Prometheus服務抓取其他目標機的數據采樣,并非自己的時間序列數據。Go客戶庫有一個例子,它會產生一些自己造的RPC延遲。啟動三個帶有不同的延時版本。

    首先需要確保你有Go的環境

    下載Go的Prometheus客戶端,并運行下面三個服務:

    # Fetch the client library code and compile example. git clone https://github.com/prometheus/client_golang.git cd client_golang/examples/random go get -d go build# Start 3 example targets in separate terminals: ./random -listen-address=:8080 ./random -listen-address=:8081 ./random -listen-address=:8082

    你現在應該瀏覽器輸入http://localhost:8080/metrics, http://localhost:8081/metrics, and http://localhost:8082/metrics, 會看到這些服務所產生的度量指標數據.

    配置Prometheus服務,監聽樣本目標實例

    現在我們將配置Prometheus服務,收集這三個例子的度量指標數據。我們把這三個服務實例命名為一個任務稱為example-random, 并把8080端口服務和8081端口服務作為生產目標group,8082端口成為canary group。 為了在Prometheus服務中建模這個,我們需要添加兩個群組到這個任務中,增加一些標簽到不同的目標群組中。在這個例子中,我們會增加group="production"標簽到帶個目標組中,另外一個則是group=“canary”

    為了達到這個目的,在prometheus.yml配置文件中,增加下面任務定義到scrape_config區域中, 并重啟Prometheus服務:

    scrape_configs:- job_name: 'example-random'# Override the global default and scrape targets from this job every 5 seconds.scrape_interval: 5sstatic_configs:- targets: ['localhost:8080', 'localhost:8081']labels:group: 'production'- targets: ['localhost:8082']labels:group: 'canary'

    去表達式瀏覽器中驗證Prometheus服務是否能統計到這兩個群組的目標機度量數據,如:rpc_durations_seconds度量指標

    為聚集到抓取的數據,設置規則并寫入到新的時間序列中

    當計算ad-hoc時,如果在累計到上千個時間序列數據的查詢,可能會變慢。為了使這種多時間序列數據點查詢更有效率,我們允許通過使用配置的記錄規則,把預先記錄表達式實時收集的數據存入到新的持久時間序列中。該例子中,如果我們對每秒RPCs數量(rpc_durations_seconds_count)的5分鐘窗口流入的統計數量感興趣的話。我們可以下面的表達式:

    avg(rate(rpc_durations_seconds_count)[5m]) by (job, service)

    試著使用圖形化這個表達式

    為了存儲這個表達式所統計到的數據,我們可以使用新的度量指標,如job_service:rpc_durations_seconds_count:avg_rate5m, 創建一個配置規則文件,并把該文件保存為prometheus.rules:

    job_service:rpc_durations_seconds_count:avg_rate5m = avg(rate(rpc_durations_seconds_count[5m])) by (job, service)

    為了使Prometheus服務使用這個新的規則,在prometheus.yml配置文件的global配置區域添加一個rule_files語句。這個配置應該向下面這樣寫:

    global:scrape_interval: 15s # By default, scrape targets every 15 seconds.evaluation_interval: 15s # Evaluate rules every 15 seconds.# Attach these extra labels to all timeseries collected by this Prometheus instance.external_labels:monitor: 'codelab-monitor'rule_files:- 'prometheus.rules'scrape_configs:- job_name: 'prometheus'# Override the global default and scrape targets from this job every 5 seconds.scrape_interval: 5sstatic_configs:- targets: ['localhost:9090']- job_name: 'example-random'# Override the global default and scrape targets from this job every 5 seconds.scrape_interval: 5sstatic_configs:- targets: ['localhost:8080', 'localhost:8081']labels:group: 'production'- targets: ['localhost:8082']labels:group: 'canary'

    指定這個新的配置文件,并重啟Prometheus服務。驗證新的時間序列度量指標job_service:rpc_durations_seconds_count:avg_rate5m是否能夠在Console控制框中查找出時間序列數據

    常見問題

    一般問題

  • Prometheus是什么?
  • Prometheus是一款高活躍生態系統的開源系統監控和警告工具包。詳見概覽

  • Prometheus與其他的監控系統比較
  • 詳見比較

  • Prometheus有什么依賴?
  • Prometheus服務獨立運行,沒有其他依賴

  • Prometheus有高可用的保證嗎?
  • 是的,在多臺服務器上運行相同的Prometheus服務,相同的報警會由警告管理器刪除
    警告管理器當前不能保證高可用,但高可用是目標

  • 我被告知Prometheus"不能水平擴展"
  • 事實上,有許多方式可以擴展Prometheus。 閱讀Robust Percetion的博客關于Prometheus的擴展

    在通常的設置中,不可能使用inode。 有一個可能的缺點:如果你想刪除Prometheus的存儲目錄,你會注意到,一些文件系統在刪除文件時非常慢。

  • 為什么Prometheus服務器組件不支持TLS或身份驗證? 我可以添加這些嗎?
  • 雖然TLS和身份驗證是經常請求的功能,但我們有意不在Prometheus的任何服務器端組件中實現它們。 有這么多不同的選項和參數(僅限TLS的10多個選項),我們決定專注于建立最佳的監控系統,而不是在每個服務器組件中支持完全通用的TLS和身份驗證解決方案。

    如果您需要TLS或身份驗證,我們建議將反向代理放在Prometheus前面。 參見例如使用Nginx添加對Prometheus的基本認證。

    請注意,這僅適用于入站連接。 Prometheus確實支持刪除TLS-和auth啟用的目標,以及其他創建出站連接的Prometheus組件具有類似的支持。

    概念

    數據模型

    Prometheus從根本上存儲的所有數據都是時間序列: 具有時間戳的數據流只屬于單個度量指標和該度量指標下的多個標簽維度。除了存儲時間序列數據外,Prometheus也可以利用查詢表達式存儲5分鐘的返回結果中的時間序列數據

    metrics和labels(度量指標名稱和標簽)

    每一個時間序列數據由metric度量指標名稱和它的標簽labels鍵值對集合唯一確定。

    這個metric度量指標名稱指定監控目標系統的測量特征(如:http_requests_total- 接收http請求的總計數). metric度量指標命名ASCII字母、數字、下劃線和冒號,他必須配正則表達式[a-zA-Z_:][a-zA-Z0-9_:]*。

    標簽開啟了Prometheus的多維數據模型:對于相同的度量名稱,通過不同標簽列表的結合, 會形成特定的度量維度實例。(例如:所有包含度量名稱為/api/tracks的http請求,打上method=POST的標簽,則形成了具體的http請求)。這個查詢語言在這些度量和標簽列表的基礎上進行過濾和聚合。改變任何度量上的任何標簽值,則會形成新的時間序列圖

    標簽label名稱可以包含ASCII字母、數字和下劃線。它們必須匹配正則表達式[a-zA-Z_][a-zA-Z0-9_]*。帶有_下劃線的標簽名稱被保留內部使用。

    標簽labels值包含任意的Unicode碼。

    具體詳見metrics和labels命名最佳實踐。

    有序的采樣值

    有序的采樣值形成了實際的時間序列數據列表。每個采樣值包括:

    • 一個64位的浮點值
    • 一個精確到毫秒級的時間戳
    • 一個樣本數據集是針對一個指定的時間序列在一定時間范圍的數據收集。這個時間序列是由<metric_name>{<label_name>=<label_value>, …}
      ‘‘小結:指定度量名稱和度量指標下的相關標簽值,則確定了所關心的目標數據,隨著時間推移形成一個個點,在圖表上實時繪制動態變化的線條’’

    Notation(符號)
    表示一個度量指標和一組鍵值對標簽,需要使用以下符號:

    [metric name]{[label name]=[label value], …}

    例如,度量指標名稱是api_http_requests_total, 標簽為method=“POST”, handler="/messages" 的示例如下所示:

    api_http_requests_total{method=“POST”, handler="/messages"}

    這些命名和OpenTSDB使用方法是一樣的

    度量指標模型

    metrics類型

    Prometheus客戶庫提供了四個核心的metrics類型。這四種類型目前僅在客戶庫和wire協議中區分。Prometheus服務還沒有充分利用這些類型。不久的將來就會發生改變。

    Counter(計數器)

    counter 是一個累計度量指標,它是一個只能遞增的數值。計數器主要用于統計服務的請求數、任務完成數和錯誤出現的次數等等。計數器是一個遞增的值。反例:統計goroutines的數量。計數器的使用方式在下面的各個客戶端例子中:

    客戶端使用計數器的文檔

    • Go
    • Java
    • Python
    • Ruby

    Gauge(測量器)

    gauge是一個度量指標,它表示一個既可以遞增, 又可以遞減的值。

    測量器主要測量類似于溫度、當前內存使用量等,也可以統計當前服務運行隨時增加或者減少的Goroutines數量

    客戶端使用計量器的文檔:

    • Go
    • Java
    • Python
    • Ruby

    Histogram(柱狀圖)

    histogram,是柱狀圖,在Prometheus系統中的查詢語言中,有三種作用:

  • 對每個采樣點進行統計,打到各個分類值中(bucket)
  • 對每個采樣點值累計和(sum)
  • 對采樣點的次數累計和(count)
  • 度量指標名稱: [basename]的柱狀圖, 上面三類的作用度量指標名稱

    • [basename]_bucket{le=“上邊界”}, 這個值為小于等于上邊界的所有采樣點數量
    • [basename]_sum
    • [basename]_count
      小結:所以如果定義一個度量類型為Histogram,則Prometheus系統會自動生成三個對應的指標
      使用histogram_quantile()函數, 計算直方圖或者是直方圖聚合計算的分位數閾值。 一個直方圖計算Apdex值也是合適的, 當在buckets上操作時,記住直方圖是累計的。詳見直方圖和總結

    客戶庫的直方圖使用文檔:

    • Go
    • Java
    • Python
    • Ruby

    [Summary]總結

    類似histogram柱狀圖,summary是采樣點分位圖統計,(通常的使用場景:請求持續時間和響應大小)。 它也有三種作用:

    對于每個采樣點進行統計,并形成分位圖。(如:正態分布一樣,統計低于60分不及格的同學比例,統計低于80分的同學比例,統計低于95分的同學比例)

    • 統計班上所有同學的總成績(sum)
    • 統計班上同學的考試總人數(count)
    • 帶有度量指標的[basename]的summary 在抓取時間序列數據展示。

    觀察時間的φ-quantiles (0 ≤ φ ≤ 1), 顯示為[basename]{分位數="[φ]"}

    • [basename]_sum, 是指所有觀察值的總和
    • [basename]_count, 是指已觀察到的事件計數值

    詳見histogram和summaries
    有關summaries的客戶端使用文檔:

    • Go
    • Java
    • Python
    • Ruby

    任務與實例

    Jobs和Instances(任務和實例)

    就Prometheus而言,pull拉取采樣點的端點服務稱之為instance。多個這樣pull拉取采樣點的instance, 則構成了一個job

    例如, 一個被稱作api-server的任務有四個相同的實例。

    • job: api-server
      • instance 1:1.2.3.4:5670
      • instance 2:1.2.3.4:5671
      • instance 3:5.6.7.8:5670
      • instance 4:5.6.7.8:5671

    自動化生成的標簽和時間序列
    當Prometheus拉取一個目標, 會自動地把兩個標簽添加到度量名稱的標簽列表中,分別是:

    • job: 目標所屬的配置任務名稱api-server。
    • instance: 采樣點所在服務: host:port
      如果以上兩個標簽二者之一存在于采樣點中,這個取決于honor_labels配置選項。詳見文檔

    對于每個采樣點所在服務instance,Prometheus都會存儲以下的度量指標采樣點:

    • up{job="[job-name]", instance=“instance-id”}: up值=1,表示采樣點所在服務健康; 否則,網絡不通, 或者服務掛掉了
    • scrape_duration_seconds{job="[job-name]", instance="[instance-id]"}: 嘗試獲取目前采樣點的時間開銷
    • scrape_samples_post_metric_relabeling{job="", instance=""}: 表示度量指標的標簽變化后,標簽沒有變化的度量指標數量。
    • scrape_samples_scraped{job="", instance=""}: 這個采樣點目標暴露的樣本點數量

    備注:我查了下scrape_samples_post_metric_relabeling 和 scrape_samples_scraped的值好像是一樣的。還是這兩個值沒有理解

    up度量指標對服務健康的監控是非常有用的。


    查詢

    Prometheus提供一個函數式的表達式語言,可以使用戶實時地查找和聚合時間序列數據。表達式計算結果可以在圖表中展示,也可以在Prometheus表達式瀏覽器中以表格形式展示,或者作為數據源, 以HTTP API的方式提供給外部系統使用。

    examples

    這個文檔僅供參考, 這里先舉幾個容易上手的例子。

    表達式語言數據類型

    在Prometheus的表達式語言中,任何表達式或者子表達式都可以歸為四種類型:

    • instant vector 瞬時向量 - 它是指在同一時刻,抓取的所有度量指標數據。這些度量指標數據的key都是相同的,也即相同的時間戳。
    • range vector 范圍向量 - 它是指在任何一個時間范圍內,抓取的所有度量指標數據。
    • scalar 標量 - 一個簡單的浮點值
    • string 字符串 - 一個當前沒有被使用的簡單字符串
      依賴于使用場景(例如:圖表 vs. 表格),根據用戶所寫的表達式,僅僅只有一部分類型才適用這種表達式。例如:瞬時向量類型是唯一可以直接在圖表中使用的。

    Literals

    字符串

    字符串可以用單引號、雙引號或者反引號表示

    PromQL遵循與Go相同的轉義規則。在單引號,雙引號中,反斜杠成為了轉義字符,后面可以跟著a, b, f, n, r, t, v或者\。 可以使用八進制(\nnn)或者十六進制(\xnn, \unnnn和\Unnnnnnnn)提供特定字符。

    在反引號內不處理轉義字符。與Go不同,Prom不會丟棄反引號中的換行符。例如:

    “this is a string”
    ‘these are unescaped: \n \ \t’
    these are not unescaped: \n ’ " \t"’

    浮點數

    標量浮點值可以直接寫成形式-[.(digits)]。

    -2.43

    時間序列選擇器
    即時向量選擇器
    瞬時向量選擇器可以對一組時間序列數據進行篩選,并給出結果中的每個結果鍵值對(時間戳-樣本值): 最簡單的形式是,只有一個度量名稱被指定。在一個瞬時向量中這個結果包含有這個度量指標名稱的所有樣本數據鍵值對。

    下面這個例子選擇所有時間序列度量名稱為http_requests_total的樣本數據:

    http_requests_total

    通過在度量指標后面增加{}一組標簽可以進一步地過濾這些時間序列數據。

    下面這個例子選擇了度量指標名稱為http_requests_total,且一組標簽為 job=prometheus, group=canary:

    http_requests_total{job=“prometheus”,group=“canary”}

    可以采用不匹配的標簽值也是可以的,或者用正則表達式不匹配標簽。標簽匹配操作如下所示:

    • =: 精確地匹配標簽給定的值
    • !=: 不等于給定的標簽值
    • =~: 正則表達匹配給定的標簽值
    • !=: 給定的標簽值不符合正則表達式
      例如:度量指標名稱為http_requests_total,正則表達式匹配標簽environment為staging, testing, development的值,且http請求方法不等于GET。

    http_requests_total{environment=~“staging|testing|development”, method!=“GET”}

    匹配空標簽值的標簽匹配器也可以選擇沒有設置任何標簽的所有時間序列數據。正則表達式完全匹配。

    向量選擇器必須指定一個度量指標名稱或者至少不能為空字符串的標簽值。以下表達式是非法的:

    {job=~".*"} #Bad!

    上面這個例子既沒有度量指標名稱,標簽選擇器也可以正則匹配空標簽值,所以不符合向量選擇器的條件

    相反地,下面這些表達式是有效的,第一個一定有一個字符。第二個有一個有用的標簽method

    {job=~".+"} # Good!
    {job=~".*", method=“get”} # Good!

    標簽匹配器能夠被應用到度量指標名稱,使用__name__標簽篩選度量指標名稱。例如:表達式http_requests_total等價于{name=“http_requests_total”}。 其他的匹配器,如:= ( !=, =~, !~)都可以使用。下面的表達式選擇了度量指標名稱以job:開頭的時間序列數據:

    {name=~"^job:.*"} #

    范圍向量選擇器
    范圍向量類似瞬時向量, 不同在于,它們從當前實例選擇樣本范圍區間。在語法上,時間長度被追加在向量選擇器尾部的方括號[]中,用以指定對于每個樣本范圍區間中的每個元素應該抓取的時間范圍樣本區間。

    時間長度有一個數值決定,后面可以跟下面的單位:

    • s - seconds
    • m - minutes
    • h - hours
    • d - days
    • w - weeks
    • y - years
      在下面這個例子中, 選擇過去5分鐘內,度量指標名稱為http_requests_total, 標簽為job="prometheus"的時間序列數據:

    http_requests_total{job=“prometheus”}[5m]

    偏移修飾符
    這個offset偏移修飾符允許在查詢中改變單個瞬時向量和范圍向量中的時間偏移

    例如,下面的表達式返回相對于當前時間的前5分鐘時的時刻, 度量指標名稱為http_requests_total的時間序列數據:

    http_requests_total offset 5m

    注意:offset偏移修飾符必須直接跟在選擇器后面,例如:

    sum(http_requests_total{method=“GET”} offset 5m) // GOOD.

    然而,下面這種情況是不正確的

    sum(http_requests_total{method=“GET”}) offset 5m // INVALID.

    offset偏移修飾符在范圍向量上和瞬時向量用法一樣的。下面這個返回了相對于當前時間的前一周時,過去5分鐘的度量指標名稱為http_requests_total的速率:

    rate(http_requests_total[5m] offset 1w)

    操作符

    Prometheus支持二元和聚合操作符。詳見表達式語言操作符

    函數

    Prometheus提供了一些函數列表操作時間序列數據。詳見表達式語言函數

    陷阱

    插值和陳舊

    當運行查詢后,獨立于當前時刻被選中的時間序列數據所對應的時間戳,這個時間戳主要用來進行聚合操作,包括sum, avg等,大多數聚合的時間序列數據所對應的時間戳沒有對齊。由于它們的獨立性,我們需要在這些時間戳中選擇一個時間戳,并已這個時間戳為基準,獲取小于且最接近這個時間戳的時間序列數據。

    如果5分鐘內,沒有獲取到任何的時間序列數據,則這個時間戳不會存在。那么在圖表中看到的數據都是在當前時刻5分鐘前的數據。

    注意:差值和陳舊處理可能會發生變化。詳見https://github.com/prometheus/prometheus/issues/398和https://github.com/prometheus/prometheus/issues/581

    避免慢查詢和高負載

    如果一個查詢需要操作非常大的數據量,圖表繪制很可能會超時,或者服務器負載過高。因此,在對未知數據構建查詢時,始終需要在Prometheus表達式瀏覽器的表格視圖中構建查詢,直到結果是看起來合理的(最多為數百個,而不是數千個)。只有當你已經充分過濾或者聚合數據時,才切換到圖表模式。如果表達式的查詢結果仍然需要很長時間才能繪制出來,則需要通過記錄規則重新清洗數據。

    像api_http_requests_total這樣簡單的度量指標名稱選擇器,可以擴展到具有不同標簽的數千個時間序列中,這對于Prometheus的查詢語言是非常重要的。還要記住,聚合操作即使輸出的結果集非常少,但是它會在服務器上產生負載。這類似于關系型數據庫查詢可一個字段的總和,總是非常緩慢。

    操作符

    二元操作符
    Prometheus的查詢語言支持基本的邏輯運算和算術運算。對于兩個瞬時向量, 匹配行為可以被改變。

    算術二元運算符
    在Prometheus系統中支持下面的二元算術操作符:

    • +加法
    • -減法
    • *乘法
    • /除法
    • % 模
    • ^ 冪等

    二元運算操作符支持scalar/scalar(標量/標量)、vector/scalar(向量/標量)、和vector/vector(向量/向量)之間的操作。

    在兩個標量之間進行操作符運算,得到的結果也是標量

    在向量和標量之間,這個操作符會作用于這個向量的每個樣本值上。例如:如果一個時間序列瞬時向量除以2,操作結果也是一個新的瞬時向量,且度量指標名稱不變, 它是原度量指標瞬時向量的每個樣本值除以2.

    在兩個向量之間,一個二元算術操作符作用在左邊瞬時向量的每個樣本值,且該樣本值與操作符右邊能匹配上的樣本值計算,向量匹配。結果寫入到一個沒有度量指標名稱的瞬時向量。

    比較二元操作符
    在Prometheus系統中,比較二元操作符有:

    • == 等于
    • != 不等于
    • > 大于
    • < 小于
    • >= 大于等于
    • <= 小于等于

    比較二元操作符被應用于scalar/scalar(標量/標量)、vector/scalar(向量/標量),和vector/vector(向量/向量)。比較操作符得到的結果是bool布爾類型值,返回1或者0值。

    在兩個標量之間的比較運算,bool結果寫入到另一個結果標量中。

    瞬時向量和標量之間的比較運算,這個操作符會應用到某個當前時刻的每個時間序列數據上,如果一個時間序列數據值與這個標量比較結果是false,則這個時間序列數據被丟棄掉,如果是true, 則這個時間序列數據被保留在結果中。

    在兩個瞬時向量之間的比較運算,左邊度量指標數據中的每個時間序列數據,與右邊度量指標中的每個時間序列數據匹配,沒有匹配上的,或者計算結果為false的,都被丟棄,不在結果中顯示。否則將保留左邊的度量指標和標簽的樣本數據寫入瞬時向量。

    邏輯/集合二元操作符
    邏輯/集合二元操作符只能作用在即時向量, 包括:

    • and 交集
    • or 并集
    • unless 補集
      vector1 and vector2 的邏輯/集合二元操作符,規則:vector1瞬時向量中的每個樣本數據與vector2向量中的所有樣本數據進行標簽匹配,不匹配的,全部丟棄。運算結果是保留左邊的度量指標名稱和值。

    vector1 or vector2的邏輯/集合二元操作符,規則: 保留vector1向量中的每一個元素,對于vector2向量元素,則不匹配vector1向量的任何元素,則追加到結果元素中。

    vector1 unless vector2的邏輯/集合二元操作符,又稱差積。規則:包含在vector1中的元素,但是該元素不在vector2向量所有元素列表中,則寫入到結果集中

    向量匹配

    向量之間的匹配是指右邊向量中的每一個元素,在左邊向量中也存在。這里有兩種基本匹配行為特征:

    一對一,找到這個操作符的兩邊向量元素的相同元素。默認情況下,操作符的格式是vector1 [operate] vector2。如果它們有相同的標簽和值,則表示相匹配。ingoring關鍵字是指,向量匹配時,可以忽略指定標簽。on關鍵字是指,在指定標簽上進行匹配。格式如下所示

    [vector expr] [bin-op] ignoring([label list]) [vector expr]
    [vector expr] [bin-op] on([lable list]) [vector expr]

    例如樣本數據:

    method_code:http_errors:rate5m{method=“get”, code=“500”} 24
    method_code:http_errors:rate5m{method=“get”, code=“404”} 30
    method_code:http_errors:rate5m{method=“put”, code=“501”} 3
    method_code:http_errors:rate5m{method=“post”, code=“404”} 21

    method:http_requests:rate5m{method=“get”} 600
    method:http_requests:rate5m{method=“delete”} 34
    method:http_requests:rate5m{method=“post”} 120

    查詢例子:

    method_code:http_errors:rate5m{code=“500”} / ignoring(code) method:http_requests:rate5m

    兩個向量之間的除法操作運算的向量結果是,每一個向量樣本http請求方法標簽值是500,且在過去5分鐘的運算值。如果沒有忽略code="500"的標簽,這里不能匹配到向量樣本數據。兩個向量的請求方法是put和delete的樣本數據不會出現在結果列表中

    {method=“get”} 0.04 // 24 / 600
    {method=“post”} 0.05 // 6 / 120

    多對一和一對多的匹配,是指向量元素中的一個樣本數據匹配標簽到了多個樣本數據標簽。這里必須直接指定兩個修飾符group_left或者group_right, 左或者右決定了哪邊的向量具有較高的子集

    ignoring() group_left()
    ignoring() group_right()
    on() group_left()
    on() group_right()

    這個group帶標簽的修飾符標簽列表包含了“一對多”中的“一”一側的額外標簽。對于on標簽只能是這些列表中的一個。結果向量中的每一個時間序列數據都是唯一的。

    group修飾符只能被用在比較操作符和算術運算符。

    查詢例子:

    method_code:http_errors:rate5m / ignoring(code) group_left method:http_requests:rate5m

    在這個例子中,左向量的標簽數量多于左邊向量的標簽數量,所以我們使用group_left。右邊向量的時間序列元素匹配左邊的所有相同method標簽:

    {method=“get”, code=“500”} 0.04 // 24 /600
    {method=“get”, code=“404”} 0.05 // 30 /600
    {method=“post”, code=“500”} 0.05 // 6 /600
    {method=“post”, code=“404”} 0.175 // 21 /600

    多對一和一對多匹配應該更多地被謹慎使用。經常使用ignoring(<labels>)輸出想要的結果。

    聚合操作符

    Prometheus支持下面的內置聚合操作符。這些聚合操作符被用于聚合單個即時向量的所有時間序列列表,把聚合的結果值存入到新的向量中。

    • sum (在維度上求和)
    • max (在維度上求最大值)
    • min (在維度上求最小值)
    • avg (在維度上求平均值)
    • stddev (求標準差)
    • stdvar (求方差)
    • count (統計向量元素的個數)
    • count_values (統計相同數據值的元素數量)
    • bottomk (樣本值第k個最小值)
    • topk (樣本值第k個最大值)
    • quantile (統計分位數)

    這些操作符被用于聚合所有標簽維度,或者通過without或者by子句來保留不同的維度。

    ([parameter,] ) [without | by ()] [keep_common]

    parameter只能用于count_values, quantile, topk和bottomk。without移除結果向量中的標簽集合,其他標簽被保留輸出。by關鍵字的作用正好相反,即使它們的標簽值在向量的所有元素之間。keep_common子句允許保留額外的標簽(在元素之間相同,但不在by子句中的標簽)

    count_values對每個唯一的樣本值輸出一個時間序列。每個時間序列都附加一個標簽。這個標簽的名字有聚合參數指定,同時這個標簽值是唯一的樣本值。每一個時間序列值是結果樣本值出現的次數。

    topk和bottomk與其他輸入樣本子集聚合不同,返回的結果中包括原始標簽。by和without僅僅用在輸入向量的桶中

    例如:
    如果度量指標名稱http_requests_total包含由group, application, instance的標簽組成的時間序列數據,我們可以通過以下方式計算去除instance標簽的http請求總數

    sum(http_requests_total) without (instance)

    如果我們對所有應用程序的http請求總數,我們可以簡單地寫下:

    sum(http_requests_total)

    統計每個編譯版本的二進制文件數量,我們可以如下寫:

    count_values(“version”, build_version)

    通過所有實例,獲取http請求第5個最大值,我們可以簡單地寫下:

    topk(5, http_requests_total)

    二元運算符優先級

    在Prometheus系統中,二元運算符優先級從高到低:

    • ^
    • *, /, %
    • +, -
    • ==, !=, <=, <, >=, >
    • and, unless
    • or

    函數

    函數列表

    一些函數有默認的參數,例如:year(v=vector(time()) instant-vector)。v是參數值,instant-vector是參數類型。vector(time())是默認值。
    abs()
    abs(v instant-vector)返回輸入向量的所有樣本的絕對值。

    absent()
    absent(v instant-vector),如果賦值給它的向量具有樣本數據,則返回空向量;如果傳遞的瞬時向量參數沒有樣本數據,則返回不帶度量指標名稱且帶有標簽的樣本值為1的結果

    當監控度量指標時,如果獲取到的樣本數據是空的, 使用absent方法對告警是非常有用的

    absent(nonexistent{job=“myjob”}) # => key: value = {job=“myjob”}: 1

    absent(nonexistent{job=“myjob”, instance=~".*"}) # => {job=“myjob”} 1
    so smart !

    absent(sum(nonexistent{job=“myjob”})) # => key:value {}: 0

    ceil()
    ceil(v instant-vector) 是一個向上舍入為最接近的整數。

    changes()
    changes(v range-vector) 輸入一個范圍向量, 返回這個范圍向量內每個樣本數據值變化的次數。

    clamp_max()
    clamp_max(v instant-vector, max scalar)函數,輸入一個瞬時向量和最大值,樣本數據值若大于max,則改為max,否則不變

    clamp_min()
    clamp_min(v instant-vector)函數,輸入一個瞬時向量和最大值,樣本數據值小于min,則改為min。否則不變

    count_saclar()
    count_scalar(v instant-vector) 函數, 輸入一個瞬時向量,返回key:value=“scalar”: 樣本個數。而count()函數,輸入一個瞬時向量,返回key:value=向量:樣本個數,其中結果中的向量允許通過by條件分組。

    day_of_month()
    day_of_month(v=vector(time()) instant-vector)函數,返回被給定UTC時間所在月的第幾天。返回值范圍:1~31。

    day_of_week()
    day_of_week(v=vector(time()) instant-vector)函數,返回被給定UTC時間所在周的第幾天。返回值范圍:0~6. 0表示星期天。

    days_in_month()
    days_in_month(v=vector(time()) instant-vector)函數,返回當月一共有多少天。返回值范圍:28~31.

    delta()
    delta(v range-vector)函數,計算一個范圍向量v的第一個元素和最后一個元素之間的差值。返回值:key:value=度量指標:差值

    下面這個表達式例子,返回過去兩小時的CPU溫度差:

    delta(cpu_temp_celsius{host=“zeus”}[2h])
    delta函數返回值類型只能是gauges。

    deriv()
    deriv(v range-vector)函數,計算一個范圍向量v中各個時間序列二階導數,使用簡單線性回歸

    deriv二階導數返回值類型只能是gauges。

    drop_common_labels()
    drop_common_labels(instant-vector)函數,輸入一個瞬時向量,返回值是key:value=度量指標:樣本值,其中度量指標是去掉了具有相同標簽。
    例如:http_requests_total{code=“200”, host=“127.0.0.1:9090”, method=“get”} : 4, http_requests_total{code=“200”, host=“127.0.0.1:9090”, method=“post”} : 5, 返回值: http_requests_total{method=“get”} : 4, http_requests_total{code=“200”, method=“post”} : 5

    exp()
    exp(v instant-vector)函數,輸入一個瞬時向量, 返回各個樣本值的e指數值,即為e^N次方。特殊情況如下所示:

    Exp(+inf) = +Inf
    Exp(NaN) = NaN

    floor()
    floor(v instant-vector)函數,與ceil()函數相反。 4.3 為 4 。

    histogram_quantile()
    histogram_quatile(φ float, b instant-vector) 函數計算b向量的φ-直方圖 (0 ≤ φ ≤ 1) 。參考中文文獻[https://www.howtoing.com/how-to-query-prometheus-on-ubuntu-14-04-part-2/]

    holt_winters()
    holt_winters(v range-vector, sf scalar, tf scalar)函數基于范圍向量v,生成事件序列數據平滑值。平滑因子sf越低, 對老數據越重要。趨勢因子tf越高,越多的數據趨勢應該被重視。0< sf, tf <=1。 holt_winters僅用于gauges

    hour()
    hour(v=vector(time()) instant-vector)函數返回被給定UTC時間的當前第幾個小時,時間范圍:0~23。

    idelta()
    idelta(v range-vector)函數,輸入一個范圍向量,返回key: value = 度量指標: 每最后兩個樣本值差值。

    increase()
    increase(v range-vector)函數, 輸入一個范圍向量,返回:key:value = 度量指標:last值-first值,自動調整單調性,如:服務實例重啟,則計數器重置。與delta()不同之處在于delta是求差值,而increase返回最后一個減第一個值,可為正為負。

    下面的表達式例子,返回過去5分鐘,連續兩個時間序列數據樣本值的http請求增加值。

    increase(http_requests_total{job=“api-server”}[5m])

    increase的返回值類型只能是counters,主要作用是增加圖表和數據的可讀性,使用rate記錄規則的使用率,以便持續跟蹤數據樣本值的變化。

    irate
    irate(v range-vector)函數, 輸入:范圍向量,輸出:key: value = 度量指標: (last值-last前一個值)/時間戳差值。它是基于最后兩個數據點,自動調整單調性, 如:服務實例重啟,則計數器重置。

    下面表達式針對范圍向量中的每個時間序列數據,返回兩個最新數據點過去5分鐘的HTTP請求速率。

    irate(http_requests_total{job=“api-server”}[5m])

    irate只能用于繪制快速移動的計數器。因為速率的簡單更改可以重置FOR子句,利用警報和緩慢移動的計數器,完全由罕見的尖峰組成的圖形很難閱讀。

    label_replace()
    對于v中的每個時間序列,label_replace(v instant-vector, dst_label string, replacement string, src_label string, regex string) 將正則表達式與標簽值src_label匹配。如果匹配,則返回時間序列,標簽值dst_label被替換的擴展替換。$1替換為第一個匹配子組,$2替換為第二個等。如果正則表達式不匹配,則時間序列不會更改。

    另一種更容易的理解是:label_replace函數,輸入:瞬時向量,輸出:key: value = 度量指標: 值(要替換的內容:首先,針對src_label標簽,對該標簽值進行regex正則表達式匹配。如果不能匹配的度量指標,則不發生任何改變;否則,如果匹配,則把dst_label標簽的標簽紙替換為replacement
    下面這個例子返回一個向量值a帶有foo標簽:
    label_replace(up{job=“api-server”, serice=“a:c”}, “foo”, “$1”, “service”, “(.):.”)

    ln()
    ln(v instance-vector)計算瞬時向量v中所有樣本數據的自然對數。特殊例子:

    ln(+Inf) = +Inf
    ln(0) = -Inf
    ln(x<0) = NaN
    ln(NaN) = NaN

    log2()
    log2(v instant-vector)函數計算瞬時向量v中所有樣本數據的二進制對數。

    log10()
    log10(v instant-vector)函數計算瞬時向量v中所有樣本數據的10進制對數。相當于ln()

    minute()
    minute(v=vector(time()) instant-vector)函數返回給定UTC時間當前小時的第多少分鐘。結果范圍:0~59。

    month()
    month(v=vector(time()) instant-vector)函數返回給定UTC時間當前屬于第幾個月,結果范圍:0~12。

    predict_linear()
    predict_linear(v range-vector, t scalar)預測函數,輸入:范圍向量和從現在起t秒后,輸出:不帶有度量指標,只有標簽列表的結果值。

    例如:predict_linear(http_requests_total{code=“200”,instance=“120.77.65.193:9090”,job=“prometheus”,method=“get”}[5m], 5)
    結果:
    {code=“200”,handler=“query_range”,instance=“120.77.65.193:9090”,job=“prometheus”,method=“get”} 1
    {code=“200”,handler=“prometheus”,instance=“120.77.65.193:9090”,job=“prometheus”,method=“get”} 4283.449995397104
    {code=“200”,handler=“static”,instance=“120.77.65.193:9090”,job=“prometheus”,method=“get”} 22.99999999999999
    {code=“200”,handler=“query”,instance=“120.77.65.193:9090”,job=“prometheus”,method=“get”} 130.90381188596754
    {code=“200”,handler=“graph”,instance=“120.77.65.193:9090”,job=“prometheus”,method=“get”} 2
    {code=“200”,handler=“label_values”,instance=“120.77.65.193:9090”,job=“prometheus”,method=“get”} 2

    rate()
    rate(v range-vector)函數, 輸入:范圍向量,輸出:key: value = 不帶有度量指標,且只有標簽列表:(last值-first值)/時間差s

    rate(http_requests_total[5m])

    結果:
    {code=“200”,handler=“label_values”,instance=“120.77.65.193:9090”,job=“prometheus”,method=“get”} 0
    {code=“200”,handler=“query_range”,instance=“120.77.65.193:9090”,job=“prometheus”,method=“get”} 0
    {code=“200”,handler=“prometheus”,instance=“120.77.65.193:9090”,job=“prometheus”,method=“get”} 0.2
    {code=“200”,handler=“query”,instance=“120.77.65.193:9090”,job=“prometheus”,method=“get”} 0.003389830508474576
    {code=“422”,handler=“query”,instance=“120.77.65.193:9090”,job=“prometheus”,method=“get”} 0
    {code=“200”,handler=“static”,instance=“120.77.65.193:9090”,job=“prometheus”,method=“get”} 0
    {code=“200”,handler=“graph”,instance=“120.77.65.193:9090”,job=“prometheus”,method=“get”} 0
    {code=“400”,handler=“query”,instance=“120.77.65.193:9090”,job=“prometheus”,method=“get”} 0

    rate()函數返回值類型只能用counters, 當用圖表顯示增長緩慢的樣本數據時,這個函數是非常合適的。

    注意:當rate函數和聚合方式聯合使用時,一般先使用rate函數,再使用聚合操作, 否則,當服務實例重啟后,rate無法檢測到counter重置。

    resets()
    resets()函數, 輸入:一個范圍向量,輸出:key-value=沒有度量指標,且有標簽列表[在這個范圍向量中每個度量指標被重置的次數]。在兩個連續樣本數據值下降,也可以理解為counter被重置。
    示例:

    resets(http_requests_total[5m])
    結果:
    {code=“200”,handler=“label_values”,instance=“120.77.65.193:9090”,job=“prometheus”,method=“get”} 0
    {code=“200”,handler=“query_range”,instance=“120.77.65.193:9090”,job=“prometheus”,method=“get”} 0
    {code=“200”,handler=“prometheus”,instance=“120.77.65.193:9090”,job=“prometheus”,method=“get”} 0
    {code=“200”,handler=“query”,instance=“120.77.65.193:9090”,job=“prometheus”,method=“get”} 0
    {code=“422”,handler=“query”,instance=“120.77.65.193:9090”,job=“prometheus”,method=“get”} 0
    {code=“200”,handler=“static”,instance=“120.77.65.193:9090”,job=“prometheus”,method=“get”} 0
    {code=“200”,handler=“graph”,instance=“120.77.65.193:9090”,job=“prometheus”,method=“get”} 0
    {code=“400”,handler=“query”,instance=“120.77.65.193:9090”,job=“prometheus”,method=“get”} 0

    resets只能和counters一起使用。

    round()
    round(v instant-vector, to_nearest 1= scalar)函數,與ceil和floor函數類似,輸入:瞬時向量,輸出:指定整數級的四舍五入值, 如果不指定,則是1以內的四舍五入。

    scalar()
    scalar(v instant-vector)函數, 輸入:瞬時向量,輸出:key: value = “scalar”, 樣本值[如果度量指標樣本數量大于1或者等于0, 則樣本值為NaN, 否則,樣本值本身]

    sort()
    sort(v instant-vector)函數,輸入:瞬時向量,輸出:key: value = 度量指標:樣本值[升序排列]

    sort_desc()
    sort(v instant-vector函數,輸入:瞬時向量,輸出:key: value = 度量指標:樣本值[降序排列]

    sqrt()
    sqrt(v instant-vector)函數,輸入:瞬時向量,輸出:key: value = 度量指標: 樣本值的平方根

    time()
    time()函數,返回從1970-01-01到現在的秒數,注意:它不是直接返回當前時間,而是時間戳

    vector()
    vector(s scalar)函數,返回:key: value= {}, 傳入參數值

    year()
    year(v=vector(time()) instant-vector), 返回年份。

    _over_time()
    下面的函數列表允許傳入一個范圍向量,返回一個帶有聚合的瞬時向量:

    • avg_over_time(range-vector): 范圍向量內每個度量指標的平均值。
    • min_over_time(range-vector): 范圍向量內每個度量指標的最小值。
    • max_over_time(range-vector): 范圍向量內每個度量指標的最大值。
    • sum_over_time(range-vector): 范圍向量內每個度量指標的求和值。
    • count_over_time(range-vector): 范圍向量內每個度量指標的樣本數據個數。
    • quantile_over_time(scalar, range-vector): 范圍向量內每個度量指標的樣本數據值分位數,φ-quantile (0 ≤ φ ≤ 1)
    • stddev_over_time(range-vector): 范圍向量內每個度量指標的總體標準偏差。
    • stdvar_over_time(range-vector): 范圍向量內每個度量指標的總體標準方差。

    舉例

    查詢例子

    簡單的時間序列選擇

    返回度量指標名稱是http_requests_total的所有時間序列樣本數據:

    http_requests_total

    返回度量指標名稱是http_requests_total, 標簽分別是job=“apiserver, handler=”/api/comments的所有時間序列樣本數據:

    http_requests_total{job=“apiserver”, hanlder="/api/comments"}

    返回度量指標名稱是http_requests_total, 標簽分別是job=“apiserver, handler=”/api/comments,且是5分鐘內的所有時間序列樣本數據:

    http_requests_total{job=“apiserver”, handler="/api/comments"}[5m]

    注意:一個范圍向量表達式結果不能直接在Graph圖表中,但是可以在"console"視圖中展示。

    使用正則表達式,你可以通過特定模式匹配標簽為job的特定任務名,獲取這些任務的時間序列。在下面這個例子中, 所有任務名稱以server結尾。

    http_requests_total{job=~“server$”}

    返回度量指標名稱是http_requests_total, 且http返回碼不以4開頭的所有時間序列數據:

    http_requests_total{status!~"^4…$"}

    使用函數,操作符等

    返回度量指標名稱http_requests_total,且過去5分鐘的所有時間序列數據值速率。

    rate(http_requests_total[5m])

    假設度量名稱是http_requests_total,且過去5分鐘的所有時間序列數據的速率和,速率的維度是job

    sum(rate(http_requests_total)[5m]) by (job)

    如果我們有相同維度標簽,我們可以使用二元操作符計算樣本數據,返回值:key: value=標簽列表:計算樣本值。例如,下面這個表達式返回每一個實例剩余內存,單位是M, 如果不同,則需要使用ignoring(label_lists),如果多對一,則采用group_left, 如果是一對多,則采用group_right。

    (instance_memory_limit_byte - instant_memory_usage_bytes) / 1024 / 1024

    相同表達式,求和可以采用下面表達式:

    sum( instance_memory_limit_bytes - instance_memory_usage_bytes) by (app, proc) / 1024 / 1024

    如果相同集群調度器任務,顯示CPU使用率度量指標的話,如下所示:

    instance_cpu_time_ns{app=“lion”, pro=“web”, rev=“34d0f99”, env=“prod”, job=“cluster-manager”}
    instance_cpu_time_ns{app=“elephant”, proc=“worker”, rev=“34d0f99”, env=“prod”, job=“cluster-manager”}
    instance_cpu_time_ns{app=“turtle”, proc=“api”, rev=“4d3a513”, env=“prod”, job=“cluster-manager”}

    我們可以獲取最高的3個CPU使用率,按照標簽列表app和proc分組

    topk(3, sum(rate(instance_cpu_time_ns[5m])) by(app, proc))

    假設一個服務實例只有一個時間序列數據,那么我們通過下面表達式,可以統計出每個應用的實例數量:

    count(instance_cpu_time_ns) by (app)

    記錄規則

    定義recording rules

    配置規則

    Prometheus支持可以配置,然后定期執行的兩種規則: recording rules(記錄規則)和alerting rules警告規則。為了在Prometheus系統中包括規則,我們需要創建一個包含規則語句的文件,并通過在Prometheus配置的rule_fields字段加載這個記錄規則文件。

    這些規則文件可以通過像Prometheus服務發送SIGNUP信號量,實時重載記錄規則。如果所有的記錄規則有正確的格式和語法,則這些變化能夠生效。

    語法檢查規則
    在沒有啟動Prometheus服務之前,想快速知道一個規則文件是否正確,可以通過安裝和運行Prometheus的promtool命令行工具檢驗:

    go get github.com/prometheus/prometheus/cmd/promtool
    promtool check-rules /path/to/examples.rules

    當記錄規則文件是有效的,則這個檢查會打印出解析到規則的文本表示,并以返回值0退出程序。

    如果有任何語法錯誤的話,則這個命令行會打印出一個錯誤信息到標準輸出,并以返回值1退出程序。無效的輸入參數,則以返回值2退出程序。

    記錄規則

    記錄規則允許你預先計算經常需要的,或者計算復雜度高的表達式,并將結果保存為一組新的時間序列數據。查詢預計算結果通常比需要時進行計算表達式快得多。對于dashboard是非常有用的,因為dashboard需要實時刷新查詢表達式的結果。

    為了增加一個新記錄規則,增加下面的記錄規則到你的規則文件中:

    <new time series name>[{<label overrides>}] = <expression to record>

    例子:
    計算每個job的http請求總數,保存到新的度量指標中>

    job:http_inprogree_requests:sum = sum(http_inprogress_requests) by (job)

    放棄老標簽,寫入新標簽的結果時間序列數據:

    new_time_series{label_to_change=“new_value”, label_to_drop=""} = old_time_series

    記錄規則的執行周期有Prometheus的配置文件中的evaluate_interval指定。規則語句的右側表達式一旦被執行,則新的時間戳key為當前時間,value為右邊表達式的樣本值,新的度量指標名稱和標簽列表為左邊名稱。

    HTTP API訪問

    在Prometheus服務上/api/v1版本api是穩定版。

    格式概述

    這個API返回是JSON格式。每個請求成功的返回值都是以2xx開頭的編碼。

    到達API處理的無效請求,返回一個JSON錯誤對象,并返回下面的錯誤碼:

    • 400 Bad Request。當參數錯誤或者丟失時。
    • 422 Unprocessable Entity。當一個表達式不能被執行時。
    • 503 Service Unavailable。當查詢超時或者中斷時。
      在請求到達API之前,其他非2xx的錯誤碼可能會被返回。

    JSON返回格式如下所示:

    "status": "success" | "error", "data": <data>,// 如果status是"error", 這個數據字段還會包括下面的數據 "errorType": "<string>", "error": "<string>" }

    輸入時間戳可以被RFC3339格式或者Unix時間戳提供。輸出時間戳以Unix時間戳的方式呈現。

    查詢參數名稱可以用[]中括號重復次數。
    <series_selector>占位符提供像http_requests_total或者http_requests_total{method=~"^GET|POST$"}的Prometheus時間序列選擇器,并需要在URL中編碼傳輸。

    占位符涉及到[0-9]-[smhdwy]。例如:5m表示5分鐘的持續時間。

    表達式查詢

    查詢語言表達式可以在瞬時向量或者范圍向量中執行。

    Instant queries(即時查詢)
    瞬時向量的http restful api查詢:

    GET /api/v1/query

    URL查詢參數:

    • query=: Prometheus表達式查詢字符串。
    • time=<rfc3339 | uninx_timestamp>: 執行時間戳,可選項。
    • timeout=: 執行超時時間設置,默認由-query.timeout標志設置

    如果time缺省,則用當前服務器時間表示執行時刻。

    這個查詢結果的data部分有下面格式:

    {"resultType": "matrix" | "vector" | "scalar" | "string","result": <value> }

    是一個查詢結果數據,依賴于這個resultType格式, 不同的結果類型,則會有不同的結果數據格式。見表達式查詢結果格式。

    下面例子執行了在時刻是2015-07-01T20:10:51.781Z的up表達式:

    $ curl 'http://localhost:9090/api/v1/query?query=up&time=2015-07-01T20:10:51.781Z' {"status": "success","data":{"resultType": "vector","result" : [{"metric" : {"__name__" : "up","job" : "prometheus","instance" : "localhost:9090"},"value": [ 1435781451.781, "1" ]},{"metric" : {"__name__" : "up","job" : "node","instance" : "localhost:9100"},"value" : [ 1435781451.781, "0" ]}]} }

    范圍查詢
    下面評估了一個范圍時間的查詢表達式:

    GET /api/v1/query_range

    URL查詢參數

    • query=: Prometheus表達式查詢字符串。
    • start=<rfc3339 | unix_timestamp>: 開始時間戳。
    • end=<rfc3339 | unix_timestamp>: 結束時間戳。
    • step=: 查詢時間步長,范圍時間內每step秒執行一次。

    下面查詢結果格式的data部分:

    {"resultType": "matrix","result": <value> }

    對于占位符的格式,詳見范圍向量結果格式。

    下面例子執行了在時刻是2015-07-01T20:10:51.781Z的up表達式:

    $ curl 'http://localhost:9090/api/v1/query?query=up&time=2015-07-01T20:10:51.781Z' {"status": "success","data":{"resultType": "vector","result" : [{"metric" : {"__name__" : "up","job" : "prometheus","instance" : "localhost:9090"},"value": [ 1435781451.781, "1" ]},{"metric" : {"__name__" : "up","job" : "node","instance" : "localhost:9100"},"value" : [ 1435781451.781, "0" ]}]} }

    范圍查詢

    下面評估了一個范圍時間的查詢表達式:

    GET /api/v1/query_range

    URL查詢參數

    • query=: Prometheus表達式查詢字符串。
    • start=<rfc3339 | unix_timestamp>: 開始時間戳。
    • end=<rfc3339 | unix_timestamp>: 結束時間戳。
    • step=: 查詢時間步長,范圍時間內每step秒執行一次。

    下面查詢結果格式的data部分:

    {"resultType": "matrix","result": <value> }

    對于占位符的格式,詳見范圍向量結果格式。

    下面例子評估的查詢條件up,且30s范圍的查詢,步長是15s。

    $ curl 'http://localhost:9090/api/v1/query_range?query=up&start=2015-07-01T20:10:30.781Z&end=2015-07-01T20:11:00.781Z&step=15s' {"status" : "success","data" : {"resultType" : "matrix","result" : [{"metric" : {"__name__" : "up","job" : "prometheus","instance" : "localhost:9090"},"values" : [[ 1435781430.781, "1" ],[ 1435781445.781, "1" ],[ 1435781460.781, "1" ]]},{"metric" : {"__name__" : "up","job" : "node","instance" : "localhost:9091"},"values" : [[ 1435781430.781, "0" ],[ 1435781445.781, "0" ],[ 1435781460.781, "1" ]]}]} }

    查詢元數據

    通過標簽匹配器找到度量指標列表
    下面例子返回了度量指標列表 且不返回時間序列數據值。

    GET /api/v1/series

    URL查詢參數:

    • match[]=<series_selector>: 選擇器是series_selector。這個參數個數必須大于等于1.
    • start=<rfc3339 | unix_timestamp>: 開始時間戳。
    • end=<rfc3339 | unix_timestamp>: 結束時間戳。

    返回結果的data部分,是由key-value鍵值對的對象列表組成的。

    下面這個例子返回時間序列數據, 選擇器是up或者process_start_time_seconds{job=“prometheus”}

    $ curl -g 'http://localhost:9090/api/v1/series?match[]=up&match[]=process_start_time_seconds{job="prometheus"}' {"status" : "success","data" : [{"__name__" : "up","job" : "prometheus","instance" : "localhost:9090"},{"__name__" : "up","job" : "node","instance" : "localhost:9091"},{"__name__" : "process_start_time_seconds","job" : "prometheus","instance" : "localhost:9090"}] }

    查詢標簽值

    下面這個例子,返回了帶有指定標簽的標簽值列表

    GET /api/v1/label/<label_name>/values

    這個返回JSON結果的data部分是帶有label_name=job的值列表:

    $ curl http://localhost:9090/api/v1/label/job/values {"status" : "success","data" : ["node","prometheus"] }

    刪除時間序列

    下面的例子,是從Prometheus服務中刪除匹配的度量指標和標簽列表:

    DELETE /api/v1/series

    URL查詢參數

    match[]=<series_selector>: 刪除符合series_selector匹配器的時間序列數據。參數個數必須大于等于1.
    返回JSON數據中的data部分有以下的格式

    {
    “numDeleted”:
    }

    下面的例子刪除符合度量指標名稱是up或者時間序列為process_start_time_seconds{job=“prometheus”}:

    $ curl -XDELETE -g 'http://localhost:9090/api/v1/series?match[]=up&match[]=process_start_time_seconds{job="prometheus"}' {"status" : "success","data" : {"numDeleted" : 3} }

    表達式查詢結果格式

    表達式查詢結果格式
    表達式查詢結果,在data部分的result部分中,返回下面的數據。<sample_value>占位符有數值樣本值。JSON不支持特殊浮點值,例如:NaN, Inf和-Inf。因此樣本值返回結果是字符串,不是原生的數值。

    范圍向量

    范圍向量返回的result類型是一個matrix矩陣。下面返回的結果是result部分的數據格式:

    [{"metric": { "<label_name>": "<label_value>", ... },"values": [ [ <unix_time>, "<sample_value>" ], ... ]},... ]
    瞬時向量

    瞬時向量的result類型是vector。下面是result部分的數據格式

    [{"metric": { "<label_name>": "<label_value>", ... },"value": [ <unix_time>, "<sample_value>" ]},... ]
    Scalars標量

    標量查詢返回result類型是scalar。下面是result部分的數據格式:

    [ <unix_time>, “<scalar_value>” ]

    字符串

    字符串的result類型是string。下面是result部分的數據格式:

    [ <unix_time>, “<string_value>” ]


    啟動

    這是個類似"hello,world"的試驗,教大家怎樣快速安裝、配置和簡單地搭建一個DEMO。你會下載和本地化運行Prometheus服務,并寫一個配置文件,監控Prometheus服務本身和一個簡單的應用,然后配合使用query、rules和圖表展示采樣點數據

    下載和運行Prometheus

    最新下載頁, 然后提取和運行它,so easy:

    tar zxvf prometheus-*.tar.gz cd prometheus-*

    在開始啟動Prometheus之前,我們要配置它

    配置Prometheus監控自身

    Prometheus從目標機上通過http方式拉取采樣點數據, 它也可以拉取自身服務數據并監控自身的健康狀況

    當然Prometheus服務拉取自身服務采樣數據,并沒有多大的用處,但是它是一個好的DEMO。保存下面的Prometheus配置,并命名為:prometheus.yml:

    global:scrape_interval: 15s # 默認情況下,每15s拉取一次目標采樣點數據。# 我們可以附加一些指定標簽到采樣點度量標簽列表中, 用于和第三方系統進行通信, 包括:federation, remote storage, Alertmanagerexternal_labels:monitor: 'codelab-monitor'# 下面就是拉取自身服務采樣點數據配置 scrape_configs:# job名稱會增加到拉取到的所有采樣點上,同時還有一個instance目標服務的host:port標簽也會增加到采樣點上- job_name: 'prometheus'# 覆蓋global的采樣點,拉取時間間隔5sscrape_interval: 5sstatic_configs:- targets: ['localhost:9090']

    對于一個完整的配置選項,請見配置文檔

    啟動Prometheus

    指定啟動Prometheus的配置文件,然后運行

    ./prometheus --config.file=prometheus.yml

    這樣Prometheus服務應該起來了。你可以在瀏覽器上輸入:http://localhost:9090, 就可以看到Prometheus的監控界面

    你也可以通過輸入http://localhost:9090/metrics,直接拉取到所有最新的采樣點數據集

    使用expression browser(暫翻譯:瀏覽器上輸入表達式)
    為了使用Prometheus內置瀏覽器表達式,導航到http://localhost:9090/graph,并選擇帶有"Graph"的"Console".

    在拉取到的度量采樣點數據中, 有一個metric叫prometheus_target_interval_length_seconds, 兩次拉取實際的時間間隔,在表達式的console中輸入:

    prometheus_target_interval_length_seconds

    這個應該會返回很多不同的倒排時間序列數據,這些度量名稱都是prometheus_target_interval_length_seconds, 但是帶有不同的標簽列表值,這些標簽列表值指定了不同的延遲百分比和目標組間隔

    如果我們僅僅對99%的延遲感興趣,則我們可以使用下面的查詢去清洗信息:

    prometheus_target_interval_length_seconds{quantile=“0.99”}

    為了統計返回時間序列數據個數,你可以寫:

    count(prometheus_target_interval_length_seconds)

    有關更多的表達式語言,請見表達式語言文檔

    使用graph interface

    見圖表表達式,導航到http://localhost:9090/graph, 然后使用"Graph" tab

    例如,進入下面表達式,繪圖最近1分鐘產生chunks的速率:

    rate(prometheus_tsdb_head_chunks_created_total[1m])

    啟動其他一些采樣目標
    Go客戶端包括了一個例子,三個服務只見的RPC調用延遲

    首先你必須有Go的開發環境,然后才能跑下面的DEMO, 下載Prometheus的Go客戶端,運行三個服務:

    git clone https://github.com/prometheus/client_golang.git
    cd client_golang/examples/random
    go get -d
    go build
    ## 啟動三個服務
    ./random -listen-address=:8080
    ./random -listen-address=:8081
    ./random -listen-address=:8082

    現在你在瀏覽器輸入:http://localhost:8080/metrics, http://localhost:8081/metrics, http://localhost:8082/metrics, 能看到所有采集到的采樣點數據

    配置Prometheus去監控這三個目標服務

    現在我們將會配置Prometheus,拉取三個目標服務的采樣點。我們把這三個目標服務組成一個job, 叫example-radom. 然而,想象成,前兩個服務是生產環境服務,后者是測試環境服務。我們可以通過group標簽分組,在這個例子中,我們通過group="production"標簽和group="test"來區分生產和測試

    scrape_configs:- job_name: 'example-random'scrape_interval: 5sstatic_configs:- targets: ['localhost:8080', 'localhost:8081']labels:group: 'production'- targets: ['localhost:8082']labels:group: 'test'

    進入瀏覽器,輸入rpc_duration_seconds, 驗證Prometheus所拉取到的采樣點中每個點都有group標簽,且這個標簽只有兩個值production, test

    聚集到的采樣點數據配置規則

    上面的例子沒有什么問題, 但是當采樣點海量時,計算成了瓶頸。查詢、聚合成千上萬的采樣點變得越來越慢。為了提高性能,Prometheus允許你通過配置文件設置規則,對表達式預先記錄為全新的持續時間序列。讓我們繼續看RPCs的延遲速率(rpc_durations_seconds_count), 如果存在很多實例,我們只需要對特定的job和service進行時間窗口為5分鐘的速率計算,我們可以寫成這樣:

    avg(rate(rpc_durations_seconds_count[5m])) by (job, service)

    為了記錄這個計算結果,我們命名一個新的度量:job_service:rpc_durations_seconds_count:avg_rate5m, 創建一個記錄規則文件,并保存為prometheus.rules.yml:

    groups: - name: examplerules:- record: job_service:rpc_durations_seconds_count:avg_rate5mexpr: avg(rate(rpc_durations_seconds_count[5m])) by (job, service)

    然后再在Prometheus配置文件中,添加rule_files語句到global配置區域, 最后配置文件應該看起來是這樣的:

    global:scrape_interval: 15s # By default, scrape targets every 15 seconds.evaluation_interval: 15s # Evaluate rules every 15 seconds.# Attach these extra labels to all timeseries collected by this Prometheus instance.external_labels:monitor: 'codelab-monitor'rule_files:- 'prometheus.rules.yml'scrape_configs:- job_name: 'prometheus'# Override the global default and scrape targets from this job every 5 seconds.scrape_interval: 5sstatic_configs:- targets: ['localhost:9090']- job_name: 'example-random'# Override the global default and scrape targets from this job every 5 seconds.scrape_interval: 5sstatic_configs:- targets: ['localhost:8080', 'localhost:8081']labels:group: 'production'- targets: ['localhost:8082']labels:group: 'test'

    然后重啟Prometheus服務,并指定最新的配置文件,查詢并驗證job_service:rpc_durations_seconds_count:avg_rate5m度量指標

    可視化

    Grafana

    Grafana支持Prometheus可視化

    Grafana支持Prometheus查詢。從Grafana 2.5.0 (2015-10-28)開始Prometheus可以作為它的數據源。

    下面的例子:Prometheus查詢在Grafana Dashboard界面的圖表展示

    Grafana安裝
    如果要Grafana的完整安裝教程,詳見Grafana官方文檔
    在Linux安裝Grafana,如下所示:

    # Download and unpack Grafana from binary tar (adjust version as appropriate). curl -L -O https://grafanarel.s3.amazonaws.com/builds/grafana-2.5.0.linux-x64.tar.gz tar zxf grafana-2.5.0.linux-x64.tar.gz# Start Grafana. cd grafana-2.5.0/ ./bin/grafana-server web

    使用方法

    默認情況下,Grafana服務端口http://localhost:3000。默認登錄用戶名和密碼“admin/admin”。

    創建一個Prometheus數據源
    為了創建一個Prometheus數據源Data source:

    點擊Grafana的logo,打開工具欄。
    在工具欄中,點擊"Data Source"菜單。
    點擊"Add New"。
    數據源Type選擇“Prometheus”。
    設置Prometheus服務訪問地址(例如:http://localhost:9090)。
    調整其他想要的設置(例如:關閉代理訪問)。
    點擊“Add”按鈕,保存這個新數據源。
    下面顯示了一個Prometheus數據源配置例子:

    創建一個Prometheus Graph圖表
    下面是添加一個新的Grafana的標準方法:

    點擊圖表Graph的title,它在圖表上方中間。然后點擊“Edit”。
    在“Metrics”tab下面,選擇你的Prometheus數據源(下面右邊)。
    在“Query”字段中輸入你想查詢的Prometheus表達式,同時使用“Metrics”字段通過自動補全查找度量指標。
    為了格式化時間序列的圖例名稱,使用“Legend format”圖例格式輸入。例如,為了僅僅顯示這個標簽為method和status的查詢結果,你可以使用圖例格式{{method{} - {{status}}。
    調節其他的Graph設置,知道你有一個工作圖表。
    下面顯示了一個Prometheus圖表配置:

    從Grafana.net導入預構建的dashboard

    Grafana.net維護一個共享儀板表,它們能夠被下載,并在Grafana服務中使用。使用Grafana.net的“Filter”選項去瀏覽來自Prometheus數據源的dashboards

    你當前必須手動編輯下載下來的JSON文件和更改datasource: 選擇Prometheus服務作為Grafana的數據源,使用“Dashboard”->“Home”->"Import"選項去導入編輯好的dashboard文件到你的Grafana中。

    控制模板

    控制模板允許使用Go語言模板創建任意的console。這些由Prometheus服務提供

    Getting started

    Prometheus提供了一系列的控制模板來幫助您。這些可以在Prometheus服務上的console/index.html.example中找到,如果Prometheus服務正在刪除帶有標簽job="node"的Node Exporter, 則會顯示NodeExporter控制臺

    這個例子控制臺包括5部分:

    • 在頂部的導航欄
    • 左邊的一個菜單
    • 底部的時間控制
    • 在中心的主內容,通常是圖表
    • 右邊的表格

    這個導航欄是鏈接到其他系統,例如Prometheus其他方面的文檔,以及其他任何使你明白的。該菜單用于在同一個Prometheus服務中導航,它可以快速在另一個tar中打開一個控制臺。這些都是在console_libraries/menu.lib中配置。

    時間控制臺允許持久性和圖表范圍的改變。控制臺URLs能夠被分享,并且在其他的控制臺中顯示相同的圖表。

    主要內容通常是圖表。這里有一個可配置的JavaScript圖表庫,它可以處理來自Prometheus服務的請求,并通過Rickshaw來渲染

    最后,在右邊的表格可以用筆圖表更緊湊的形式顯示統計信息。

    例子控制臺

    這是一個最基本的控制臺。它顯示任務的數量,其中CPU平均使用率、以及右側表中的平均內存使用率。主要內容具有每秒查詢數據。

    {{template "head" .}}{{template "prom_right_table_head"}} <tr><th>MyJob</th><th>{{ template "prom_query_drilldown" (args "sum(up{job='myjob'})") }}/ {{ template "prom_query_drilldown" (args "count(up{job='myjob'})") }}</th> </tr> <tr><td>CPU</td><td>{{ template "prom_query_drilldown" (args"avg by(job)(rate(process_cpu_seconds_total{job='myjob'}[5m]))""s/s" "humanizeNoSmallPrefix") }}</td> </tr> <tr><td>Memory</td><td>{{ template "prom_query_drilldown" (args"avg by(job)(process_resident_memory_bytes{job='myjob'})""B" "humanize1024") }}</td> </tr> {{template "prom_right_table_tail"}}{{template "prom_content_head" .}} <h1>MyJob</h1><h3>Queries</h3> <div id="queryGraph"></div> <script> new PromConsole.Graph({node: document.querySelector("#queryGraph"),expr: "sum(rate(http_query_count{job='myjob'}[5m]))",name: "Queries",yAxisFormatter: PromConsole.NumberFormatter.humanizeNoSmallPrefix,yHoverFormatter: PromConsole.NumberFormatter.humanizeNoSmallPrefix,yUnits: "/s",yTitle: "Queries" }) </script>{{template "prom_content_tail" .}}{{template "tail"}}

    模板部分不翻譯了,建議用Grafana

    工具

    客戶端

    客戶端庫

    在你能夠監控你的服務器之前,你需要通過Prometheus客戶端庫把監控的代碼放在被監控的服務代碼中。下面實現了Prometheus的度量指標類型metric types。

    選擇你需要的客戶端語言,在你的服務實例上通過HTTP端口提供內部度量指標

    • Go
    • Java or Scala
    • Python
    • Ruby
      當Prometheus獲取實例的HTTP端點時,客戶庫發送所有跟蹤的度量指標數據到服務器上。

    如果沒有可用的客戶端語言版本,或者你想要避免依賴,你也可以實現一個支持的導入格式到度量指標數據中。

    在實現一個新的Prometheus客戶端庫時,請遵循客戶端指南。注意,這個文檔在仍然在更新中。同時也請關注開發郵件列表。我們非常樂意地給出合適的意見或者建議。

    總結

    以上是生活随笔為你收集整理的开源监控Prometheus介绍,安装,配置,使用详解的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    国产成人人人97超碰超爽8 | 亚洲精品一区二区三区婷婷月 | 久久99精品久久久久久 | 毛片内射-百度 | 娇妻被黑人粗大高潮白浆 | 久久视频在线观看精品 | 99精品无人区乱码1区2区3区 | 欧洲vodafone精品性 | 精品夜夜澡人妻无码av蜜桃 | 中文无码精品a∨在线观看不卡 | √8天堂资源地址中文在线 | 2020久久超碰国产精品最新 | 久9re热视频这里只有精品 | 亚洲精品久久久久中文第一幕 | 久久这里只有精品视频9 | 18禁黄网站男男禁片免费观看 | 亚洲高清偷拍一区二区三区 | 白嫩日本少妇做爰 | 小鲜肉自慰网站xnxx | 小泽玛莉亚一区二区视频在线 | 成人精品一区二区三区中文字幕 | 免费网站看v片在线18禁无码 | 久久亚洲a片com人成 | 天天av天天av天天透 | 国内精品人妻无码久久久影院蜜桃 | 亚洲国产一区二区三区在线观看 | 久久99国产综合精品 | 久精品国产欧美亚洲色aⅴ大片 | 日韩人妻系列无码专区 | 99久久无码一区人妻 | 两性色午夜视频免费播放 | 亚洲综合色区中文字幕 | 99精品久久毛片a片 | 免费人成网站视频在线观看 | 狠狠cao日日穞夜夜穞av | 无码福利日韩神码福利片 | 日本精品久久久久中文字幕 | 女高中生第一次破苞av | 欧美三级a做爰在线观看 | 日韩av无码中文无码电影 | 日韩精品无码免费一区二区三区 | 国产特级毛片aaaaaa高潮流水 | 中文字幕亚洲情99在线 | 98国产精品综合一区二区三区 | 蜜臀aⅴ国产精品久久久国产老师 | 少妇被粗大的猛进出69影院 | 狠狠色欧美亚洲狠狠色www | 国产舌乚八伦偷品w中 | 一二三四在线观看免费视频 | 无遮挡啪啪摇乳动态图 | 午夜成人1000部免费视频 | 麻豆国产人妻欲求不满 | 狠狠综合久久久久综合网 | 黑人巨大精品欧美黑寡妇 | 国产激情综合五月久久 | 国内精品人妻无码久久久影院 | 日韩少妇内射免费播放 | 国产手机在线αⅴ片无码观看 | 日本www一道久久久免费榴莲 | 亚洲の无码国产の无码步美 | 国色天香社区在线视频 | 亚洲一区二区观看播放 | 牲欲强的熟妇农村老妇女视频 | 宝宝好涨水快流出来免费视频 | 亚洲午夜无码久久 | 国产成人综合色在线观看网站 | 国内精品久久毛片一区二区 | 任你躁国产自任一区二区三区 | 国产亚洲tv在线观看 | 国产猛烈高潮尖叫视频免费 | 亚洲国产欧美国产综合一区 | 少妇激情av一区二区 | 亚洲色欲色欲欲www在线 | 国产sm调教视频在线观看 | 成 人 免费观看网站 | 欧美成人午夜精品久久久 | 国产免费久久精品国产传媒 | 亚洲色在线无码国产精品不卡 | 国产成人无码一二三区视频 | 丰满少妇弄高潮了www | 国产成人综合在线女婷五月99播放 | 无码纯肉视频在线观看 | 黑人大群体交免费视频 | 久久久久国色av免费观看性色 | 强开小婷嫩苞又嫩又紧视频 | 成 人 网 站国产免费观看 | 国产在线aaa片一区二区99 | 亚洲区小说区激情区图片区 | 久久精品国产99久久6动漫 | 亚洲欧美精品aaaaaa片 | 免费国产黄网站在线观看 | 又湿又紧又大又爽a视频国产 | 国产精品无码一区二区三区不卡 | 青春草在线视频免费观看 | 欧美性黑人极品hd | 国产成人精品优优av | 欧美性生交活xxxxxdddd | 国产sm调教视频在线观看 | 精品国产精品久久一区免费式 | 久久天天躁狠狠躁夜夜免费观看 | 亚洲色成人中文字幕网站 | 精品无码国产自产拍在线观看蜜 | 国产特级毛片aaaaaaa高清 | 国产成人综合色在线观看网站 | 亚洲国产高清在线观看视频 | 在线精品国产一区二区三区 | 清纯唯美经典一区二区 | 久久视频在线观看精品 | 亚洲日本va中文字幕 | 国产偷抇久久精品a片69 | 乱中年女人伦av三区 | 人人妻人人澡人人爽人人精品浪潮 | 久久这里只有精品视频9 | 蜜桃臀无码内射一区二区三区 | 国产97人人超碰caoprom | 国产凸凹视频一区二区 | 亚洲国产精品久久人人爱 | 少妇无码吹潮 | а天堂中文在线官网 | 99久久精品无码一区二区毛片 | 久久精品国产精品国产精品污 | 成人av无码一区二区三区 | 大肉大捧一进一出好爽视频 | 亚洲成av人片天堂网无码】 | 天天做天天爱天天爽综合网 | 国产精品鲁鲁鲁 | 久久精品99久久香蕉国产色戒 | 国产精品鲁鲁鲁 | 久久午夜夜伦鲁鲁片无码免费 | 3d动漫精品啪啪一区二区中 | 又大又硬又爽免费视频 | 人人妻人人澡人人爽欧美精品 | 国产真实伦对白全集 | 国产亚洲精品久久久久久久 | 精品久久久久久人妻无码中文字幕 | 国产av一区二区三区最新精品 | 亚洲人成影院在线无码按摩店 | 国产成人无码av在线影院 | 国产无av码在线观看 | 狂野欧美性猛交免费视频 | 亚洲gv猛男gv无码男同 | 成人精品一区二区三区中文字幕 | 久久久久久久人妻无码中文字幕爆 | 久久久精品国产sm最大网站 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 国产精品毛片一区二区 | 中文字幕精品av一区二区五区 | 亚洲成av人片在线观看无码不卡 | 欧美黑人性暴力猛交喷水 | 少妇性l交大片欧洲热妇乱xxx | 精品日本一区二区三区在线观看 | 国产三级精品三级男人的天堂 | 大地资源中文第3页 | 女人色极品影院 | 欧洲极品少妇 | 大地资源网第二页免费观看 | 午夜肉伦伦影院 | 国产片av国语在线观看 | 久久久久久国产精品无码下载 | 亚洲成av人片在线观看无码不卡 | 人妻少妇精品无码专区二区 | 无遮挡啪啪摇乳动态图 | 成人精品一区二区三区中文字幕 | 午夜丰满少妇性开放视频 | 麻豆md0077饥渴少妇 | 精品无人国产偷自产在线 | 老熟妇仑乱视频一区二区 | 中文精品久久久久人妻不卡 | 日日碰狠狠丁香久燥 | 77777熟女视频在线观看 а天堂中文在线官网 | 黑人巨大精品欧美一区二区 | 国产麻豆精品精东影业av网站 | 高清不卡一区二区三区 | 国产成人一区二区三区别 | 99er热精品视频 | 免费视频欧美无人区码 | 国产精品.xx视频.xxtv | 露脸叫床粗话东北少妇 | 成人免费视频视频在线观看 免费 | 久久久久人妻一区精品色欧美 | 永久免费观看国产裸体美女 | 日韩精品乱码av一区二区 | 波多野结衣aⅴ在线 | 熟女少妇在线视频播放 | 少妇无码av无码专区在线观看 | 色老头在线一区二区三区 | 内射爽无广熟女亚洲 | 无套内射视频囯产 | 美女毛片一区二区三区四区 | 老熟妇乱子伦牲交视频 | 国产精品人人爽人人做我的可爱 | 国产亚洲欧美在线专区 | 999久久久国产精品消防器材 | 77777熟女视频在线观看 а天堂中文在线官网 | 欧美人与牲动交xxxx | 国产在线精品一区二区高清不卡 | 成熟女人特级毛片www免费 | 色欲av亚洲一区无码少妇 | 亚洲国产精品久久久久久 | 国产又爽又猛又粗的视频a片 | 天天做天天爱天天爽综合网 | 狠狠cao日日穞夜夜穞av | 成人免费视频视频在线观看 免费 | 免费无码av一区二区 | 少妇太爽了在线观看 | 蜜桃臀无码内射一区二区三区 | 国产乱人偷精品人妻a片 | 国产片av国语在线观看 | 国产97人人超碰caoprom | 精品无码av一区二区三区 | 欧美日韩一区二区综合 | 成人av无码一区二区三区 | 国产精品人人爽人人做我的可爱 | 亚洲精品久久久久久久久久久 | 国产午夜无码视频在线观看 | 久久精品中文字幕大胸 | 少妇人妻偷人精品无码视频 | 国产偷国产偷精品高清尤物 | 性色av无码免费一区二区三区 | 免费人成网站视频在线观看 | 国产两女互慰高潮视频在线观看 | 国产一区二区三区日韩精品 | 国产亚洲tv在线观看 | 色窝窝无码一区二区三区色欲 | 国产亚洲精品精品国产亚洲综合 | 日韩少妇内射免费播放 | 国产情侣作爱视频免费观看 | 欧美猛少妇色xxxxx | 最新国产麻豆aⅴ精品无码 | 国产精品办公室沙发 | 在线亚洲高清揄拍自拍一品区 | 中文字幕无码日韩欧毛 | 精品少妇爆乳无码av无码专区 | 国产精品无码成人午夜电影 | 亚洲日韩一区二区 | 久久久久99精品成人片 | 久久婷婷五月综合色国产香蕉 | 风流少妇按摩来高潮 | 国产精品美女久久久网av | 无码国产激情在线观看 | 色诱久久久久综合网ywww | 亚洲第一网站男人都懂 | 久久国产36精品色熟妇 | 人妻少妇精品无码专区二区 | 久久久中文字幕日本无吗 | 欧美精品无码一区二区三区 | 成人无码精品一区二区三区 | 一本久久伊人热热精品中文字幕 | 粗大的内捧猛烈进出视频 | 久久综合九色综合97网 | 波多野结衣av一区二区全免费观看 | 日本熟妇人妻xxxxx人hd | 97久久超碰中文字幕 | 国内揄拍国内精品少妇国语 | 在线亚洲高清揄拍自拍一品区 | 欧美人与牲动交xxxx | 亚洲一区二区三区香蕉 | 2019nv天堂香蕉在线观看 | 人人澡人人透人人爽 | 沈阳熟女露脸对白视频 | 国产亚洲精品精品国产亚洲综合 | 国产成人精品久久亚洲高清不卡 | 日日鲁鲁鲁夜夜爽爽狠狠 | 熟妇人妻中文av无码 | 亚洲国产欧美国产综合一区 | 欧美zoozzooz性欧美 | 成在人线av无码免费 | 国产精华av午夜在线观看 | 国产亚洲精品久久久久久国模美 | 香港三级日本三级妇三级 | 精品无码一区二区三区爱欲 | 国产两女互慰高潮视频在线观看 | 亚洲色欲色欲天天天www | 亚洲成av人片天堂网无码】 | 粉嫩少妇内射浓精videos | 在线观看免费人成视频 | 亚无码乱人伦一区二区 | 丰满人妻一区二区三区免费视频 | 久久久精品国产sm最大网站 | 超碰97人人做人人爱少妇 | 国产成人精品三级麻豆 | 婷婷五月综合激情中文字幕 | 四虎国产精品免费久久 | 国产后入清纯学生妹 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 国产激情综合五月久久 | 日本高清一区免费中文视频 | 国内丰满熟女出轨videos | 久久久久av无码免费网 | 国产猛烈高潮尖叫视频免费 | 欧美真人作爱免费视频 | 四虎4hu永久免费 | 成人一在线视频日韩国产 | 久久久久99精品国产片 | 大地资源网第二页免费观看 | 亚洲一区二区三区在线观看网站 | 福利一区二区三区视频在线观看 | 大肉大捧一进一出视频出来呀 | 国精品人妻无码一区二区三区蜜柚 | 人妻少妇被猛烈进入中文字幕 | 精品欧美一区二区三区久久久 | 国产香蕉尹人视频在线 | 久久久久久国产精品无码下载 | 狠狠躁日日躁夜夜躁2020 | 高中生自慰www网站 | 日本xxxx色视频在线观看免费 | 久久综合狠狠综合久久综合88 | 国产午夜亚洲精品不卡下载 | 毛片内射-百度 | 99精品无人区乱码1区2区3区 | 久久国内精品自在自线 | 97夜夜澡人人爽人人喊中国片 | 久久综合九色综合欧美狠狠 | 初尝人妻少妇中文字幕 | 天下第一社区视频www日本 | 亚洲色欲久久久综合网东京热 | 澳门永久av免费网站 | 免费观看黄网站 | 亚洲色欲色欲天天天www | 亚洲色欲色欲欲www在线 | 精品国偷自产在线视频 | 极品嫩模高潮叫床 | 无码国产激情在线观看 | 少妇性l交大片 | 国产成人精品一区二区在线小狼 | 久久久亚洲欧洲日产国码αv | www国产精品内射老师 | 青草视频在线播放 | 国产亚洲美女精品久久久2020 | 草草网站影院白丝内射 | 毛片内射-百度 | 任你躁国产自任一区二区三区 | 最近的中文字幕在线看视频 | 日本大香伊一区二区三区 | 亚洲精品欧美二区三区中文字幕 | | 成 人 免费观看网站 | 精品人妻av区 | 又色又爽又黄的美女裸体网站 | 国产亚洲精品久久久久久久 | 天堂无码人妻精品一区二区三区 | 欧美成人免费全部网站 | 大地资源网第二页免费观看 | 久久久久久久久888 | 精品国产青草久久久久福利 | 亚洲精品www久久久 | 亚洲欧洲日本无在线码 | 久久国产自偷自偷免费一区调 | 日本在线高清不卡免费播放 | 中文字幕日产无线码一区 | 在线亚洲高清揄拍自拍一品区 | 久久午夜夜伦鲁鲁片无码免费 | 国产亚洲精品精品国产亚洲综合 | 中文字幕无码av波多野吉衣 | 男人扒开女人内裤强吻桶进去 | 欧美色就是色 | 天天躁日日躁狠狠躁免费麻豆 | 蜜臀av在线播放 久久综合激激的五月天 | 在线观看欧美一区二区三区 | 无码播放一区二区三区 | 国产成人精品三级麻豆 | 成年女人永久免费看片 | 中文久久乱码一区二区 | 欧美色就是色 | 沈阳熟女露脸对白视频 | 在线 国产 欧美 亚洲 天堂 | 国产又粗又硬又大爽黄老大爷视 | 国产超级va在线观看视频 | 蜜桃视频韩日免费播放 | 欧美大屁股xxxxhd黑色 | 欧洲美熟女乱又伦 | 1000部啪啪未满十八勿入下载 | 偷窥日本少妇撒尿chinese | 欧美变态另类xxxx | 人妻尝试又大又粗久久 | 高中生自慰www网站 | 国产精品爱久久久久久久 | 国产三级精品三级男人的天堂 | 国产精品资源一区二区 | 亚洲色偷偷偷综合网 | 欧美一区二区三区视频在线观看 | 欧美日韩一区二区综合 | 国产午夜无码精品免费看 | 粉嫩少妇内射浓精videos | 国产精品久久久一区二区三区 | 亚洲国产精品成人久久蜜臀 | 夜精品a片一区二区三区无码白浆 | 午夜性刺激在线视频免费 | 国产内射老熟女aaaa | 少妇邻居内射在线 | 精品久久久无码人妻字幂 | 无码av中文字幕免费放 | 亚洲精品成人av在线 | 在线 国产 欧美 亚洲 天堂 | 免费人成网站视频在线观看 | 巨爆乳无码视频在线观看 | 国产精品无码久久av | 亚洲色大成网站www | 亚洲精品国产精品乱码视色 | 成人精品天堂一区二区三区 | 精品无码一区二区三区的天堂 | 女人高潮内射99精品 | 亚洲热妇无码av在线播放 | 暴力强奷在线播放无码 | 亚洲一区二区三区 | 永久免费精品精品永久-夜色 | 国产人妖乱国产精品人妖 | 大色综合色综合网站 | 无码人妻精品一区二区三区不卡 | 丰满少妇高潮惨叫视频 | 无码av中文字幕免费放 | 四虎影视成人永久免费观看视频 | 丰腴饱满的极品熟妇 | 中文无码成人免费视频在线观看 | 亲嘴扒胸摸屁股激烈网站 | 男人和女人高潮免费网站 | 亚洲色偷偷男人的天堂 | 1000部啪啪未满十八勿入下载 | 亚洲人亚洲人成电影网站色 | 又粗又大又硬又长又爽 | 欧美大屁股xxxxhd黑色 | 少妇无码一区二区二三区 | 国产精品美女久久久久av爽李琼 | 性色av无码免费一区二区三区 | 55夜色66夜色国产精品视频 | 人人妻人人澡人人爽欧美精品 | 亚洲大尺度无码无码专区 | 久9re热视频这里只有精品 | 国产精品自产拍在线观看 | 男女猛烈xx00免费视频试看 | 国产精品美女久久久久av爽李琼 | 精品国产aⅴ无码一区二区 | 在线 国产 欧美 亚洲 天堂 | 免费网站看v片在线18禁无码 | 色婷婷香蕉在线一区二区 | 未满成年国产在线观看 | 人人妻在人人 | 欧美日韩视频无码一区二区三 | 日本精品高清一区二区 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 久久午夜夜伦鲁鲁片无码免费 | 在线播放亚洲第一字幕 | 久久久久亚洲精品男人的天堂 | 国产又爽又黄又刺激的视频 | 欧美第一黄网免费网站 | 成人欧美一区二区三区 | 一个人看的www免费视频在线观看 | 老熟妇仑乱视频一区二区 | 牛和人交xxxx欧美 | 色综合久久久无码中文字幕 | 丰满诱人的人妻3 | 福利一区二区三区视频在线观看 | 高潮毛片无遮挡高清免费视频 | 暴力强奷在线播放无码 | 日日噜噜噜噜夜夜爽亚洲精品 | 亚洲中文字幕在线无码一区二区 | 国产又粗又硬又大爽黄老大爷视 | 少妇性l交大片 | 国产精品多人p群无码 | 国内精品久久久久久中文字幕 | 俄罗斯老熟妇色xxxx | 蜜臀av无码人妻精品 | 久久久久久久女国产乱让韩 | 久久综合狠狠综合久久综合88 | 欧美激情内射喷水高潮 | 欧美日韩一区二区三区自拍 | 一本色道婷婷久久欧美 | 对白脏话肉麻粗话av | 国产精品va在线观看无码 | 国产亚av手机在线观看 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 撕开奶罩揉吮奶头视频 | 欧美国产日韩久久mv | 亚洲va欧美va天堂v国产综合 | 精品熟女少妇av免费观看 | 国产av无码专区亚洲awww | 欧美人与禽猛交狂配 | 国产尤物精品视频 | 2019nv天堂香蕉在线观看 | 蜜桃臀无码内射一区二区三区 | 国产一精品一av一免费 | 露脸叫床粗话东北少妇 | 国产成人人人97超碰超爽8 | 欧美精品国产综合久久 | 国产精品第一区揄拍无码 | 色窝窝无码一区二区三区色欲 | 在线看片无码永久免费视频 | 久久久久成人精品免费播放动漫 | 最新国产麻豆aⅴ精品无码 | 永久免费观看美女裸体的网站 | 内射巨臀欧美在线视频 | 任你躁国产自任一区二区三区 | 黑森林福利视频导航 | 一本色道久久综合亚洲精品不卡 | 色综合天天综合狠狠爱 | 免费国产黄网站在线观看 | 国产suv精品一区二区五 | 老太婆性杂交欧美肥老太 | 久久99精品国产麻豆蜜芽 | 国产口爆吞精在线视频 | 日本大香伊一区二区三区 | 中文字幕人成乱码熟女app | 波多野42部无码喷潮在线 | 久9re热视频这里只有精品 | 内射白嫩少妇超碰 | 玩弄人妻少妇500系列视频 | 天海翼激烈高潮到腰振不止 | 久久亚洲国产成人精品性色 | 欧美日韩在线亚洲综合国产人 | 国产午夜福利亚洲第一 | 精品久久久无码人妻字幂 | 在线a亚洲视频播放在线观看 | 中文字幕无码日韩专区 | 99久久精品日本一区二区免费 | 色婷婷av一区二区三区之红樱桃 | 午夜成人1000部免费视频 | 精品无码一区二区三区爱欲 | 日本乱偷人妻中文字幕 | 日韩精品无码一区二区中文字幕 | 久久亚洲中文字幕精品一区 | 中国大陆精品视频xxxx | 久久久久久a亚洲欧洲av冫 | 日韩欧美成人免费观看 | 精品偷拍一区二区三区在线看 | 日韩av无码一区二区三区不卡 | 国产黄在线观看免费观看不卡 | 欧美熟妇另类久久久久久不卡 | 欧美日韩精品 | 久久精品国产亚洲精品 | 男女下面进入的视频免费午夜 | 熟妇人妻无乱码中文字幕 | 99久久久国产精品无码免费 | 久久aⅴ免费观看 | 青青青手机频在线观看 | 成人av无码一区二区三区 | 呦交小u女精品视频 | 国产在线一区二区三区四区五区 | 无码精品人妻一区二区三区av | 欧美放荡的少妇 | 成熟女人特级毛片www免费 | 欧美 日韩 亚洲 在线 | 欧美午夜特黄aaaaaa片 | 精品厕所偷拍各类美女tp嘘嘘 | 成 人 免费观看网站 | 精品人妻中文字幕有码在线 | 狠狠色噜噜狠狠狠狠7777米奇 | 人妻aⅴ无码一区二区三区 | 亚洲精品成人福利网站 | 欧美老妇交乱视频在线观看 | 国产婷婷色一区二区三区在线 | 中文字幕色婷婷在线视频 | 久久国产精品精品国产色婷婷 | 日本护士xxxxhd少妇 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 欧美大屁股xxxxhd黑色 | 中文字幕色婷婷在线视频 | 国产又爽又黄又刺激的视频 | 国产激情一区二区三区 | av无码不卡在线观看免费 | 人人妻人人澡人人爽欧美一区九九 | 装睡被陌生人摸出水好爽 | √天堂资源地址中文在线 | 樱花草在线播放免费中文 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 国产欧美精品一区二区三区 | 亚洲乱亚洲乱妇50p | 精品无码国产自产拍在线观看蜜 | 少妇无码av无码专区在线观看 | 老太婆性杂交欧美肥老太 | 性色欲情网站iwww九文堂 | 国产乱子伦视频在线播放 | 少妇太爽了在线观看 | 天天躁日日躁狠狠躁免费麻豆 | 欧美精品国产综合久久 | 无码人妻黑人中文字幕 | 亚洲综合在线一区二区三区 | 97夜夜澡人人爽人人喊中国片 | 亚拍精品一区二区三区探花 | 亚洲 日韩 欧美 成人 在线观看 | 色窝窝无码一区二区三区色欲 | 少妇高潮一区二区三区99 | 色欲人妻aaaaaaa无码 | 久久无码专区国产精品s | 亚洲男女内射在线播放 | 久久无码专区国产精品s | 久久人妻内射无码一区三区 | 四虎永久在线精品免费网址 | 成人三级无码视频在线观看 | 蜜桃无码一区二区三区 | 久久精品成人欧美大片 | 国产内射老熟女aaaa | 国产精品久久久久久亚洲毛片 | 性色欲情网站iwww九文堂 | 一本色道久久综合亚洲精品不卡 | 伊人久久婷婷五月综合97色 | 精品国产成人一区二区三区 | 日日夜夜撸啊撸 | 又黄又爽又色的视频 | 亚洲aⅴ无码成人网站国产app | av无码电影一区二区三区 | 亚洲日韩av一区二区三区四区 | 久久亚洲精品中文字幕无男同 | 丝袜足控一区二区三区 | 国产特级毛片aaaaaa高潮流水 | 国内精品人妻无码久久久影院蜜桃 | 超碰97人人做人人爱少妇 | 国产热a欧美热a在线视频 | 亚洲精品美女久久久久久久 | 亚洲精品无码人妻无码 | 少妇人妻偷人精品无码视频 | 红桃av一区二区三区在线无码av | 窝窝午夜理论片影院 | 少妇人妻av毛片在线看 | 欧洲vodafone精品性 | 亚洲男人av天堂午夜在 | 国产无遮挡吃胸膜奶免费看 | 国产乱人伦av在线无码 | 99久久精品国产一区二区蜜芽 | 欧美阿v高清资源不卡在线播放 | 沈阳熟女露脸对白视频 | 亚洲精品国产品国语在线观看 | 亚洲热妇无码av在线播放 | 国产成人综合在线女婷五月99播放 | 嫩b人妻精品一区二区三区 | 中文字幕无线码 | 澳门永久av免费网站 | 又粗又大又硬毛片免费看 | 亚洲熟女一区二区三区 | 亚洲精品国产第一综合99久久 | 国产内射爽爽大片视频社区在线 | 久久亚洲中文字幕无码 | 亚洲男人av香蕉爽爽爽爽 | 国产真实夫妇视频 | 无套内射视频囯产 | 亚洲精品一区二区三区在线观看 | 亚洲欧美中文字幕5发布 | 欧洲美熟女乱又伦 | 999久久久国产精品消防器材 | 人妻插b视频一区二区三区 | 国产麻豆精品一区二区三区v视界 | 曰本女人与公拘交酡免费视频 | 国产乡下妇女做爰 | 国产人妻大战黑人第1集 | 美女极度色诱视频国产 | 欧美自拍另类欧美综合图片区 | 天堂无码人妻精品一区二区三区 | 无套内谢的新婚少妇国语播放 | 粗大的内捧猛烈进出视频 | 人妻少妇精品无码专区二区 | 两性色午夜视频免费播放 | 亚洲の无码国产の无码影院 | 黑人巨大精品欧美黑寡妇 | 又粗又大又硬又长又爽 | 男女猛烈xx00免费视频试看 | 亚洲熟妇色xxxxx欧美老妇y | 国产亚洲美女精品久久久2020 | 久久亚洲精品成人无码 | 水蜜桃亚洲一二三四在线 | 亚洲精品国产精品乱码视色 | 樱花草在线播放免费中文 | 国产乱人偷精品人妻a片 | 国产精品久久久久9999小说 | 东京无码熟妇人妻av在线网址 | 国产精品怡红院永久免费 | 国产精品人妻一区二区三区四 | 人人妻人人澡人人爽欧美精品 | 最近免费中文字幕中文高清百度 | 蜜臀av无码人妻精品 | 亚洲熟妇色xxxxx欧美老妇 | 麻豆精品国产精华精华液好用吗 | 无码人妻精品一区二区三区不卡 | 亚洲 另类 在线 欧美 制服 | 婷婷丁香五月天综合东京热 | 久久无码中文字幕免费影院蜜桃 | 亚洲欧洲日本无在线码 | 国产亚洲精品久久久久久久 | 国产精品永久免费视频 | 国产特级毛片aaaaaa高潮流水 | 色 综合 欧美 亚洲 国产 | 亚洲aⅴ无码成人网站国产app | 毛片内射-百度 | 2019nv天堂香蕉在线观看 | 日日碰狠狠丁香久燥 | 亚洲人成网站色7799 | 久久99热只有频精品8 | 天堂亚洲免费视频 | 少妇无码av无码专区在线观看 | 狂野欧美激情性xxxx | 久久久久久久女国产乱让韩 | 国内揄拍国内精品人妻 | 成人欧美一区二区三区黑人免费 | 欧美日韩人成综合在线播放 | 一本久久a久久精品亚洲 | 少女韩国电视剧在线观看完整 | 99麻豆久久久国产精品免费 | 日韩精品乱码av一区二区 | 精品久久8x国产免费观看 | 久久精品国产精品国产精品污 | 亚洲日本在线电影 | 久久国产精品萌白酱免费 | 爽爽影院免费观看 | 国产精品国产自线拍免费软件 | 日本成熟视频免费视频 | 欧美日本日韩 | 精品人妻中文字幕有码在线 | 免费中文字幕日韩欧美 | 亚洲 激情 小说 另类 欧美 | 熟女少妇在线视频播放 | 亚洲欧美日韩综合久久久 | 国产色在线 | 国产 | 亚洲精品国产第一综合99久久 | 理论片87福利理论电影 | 国产精品a成v人在线播放 | 在线亚洲高清揄拍自拍一品区 | 欧美激情综合亚洲一二区 | 国产精品怡红院永久免费 | 日韩精品无码一区二区中文字幕 | 国产一区二区三区四区五区加勒比 | 成人影院yy111111在线观看 | 亚洲国产精品一区二区美利坚 | 久久精品人人做人人综合试看 | 日本熟妇浓毛 | 国产精品免费大片 | 无码午夜成人1000部免费视频 | 成人无码精品1区2区3区免费看 | 久久国产精品_国产精品 | 成人欧美一区二区三区 | 无码人妻久久一区二区三区不卡 | 亚洲色大成网站www国产 | 黑森林福利视频导航 | 丝袜 中出 制服 人妻 美腿 | 日日摸夜夜摸狠狠摸婷婷 | 福利一区二区三区视频在线观看 | 日日麻批免费40分钟无码 | 曰韩少妇内射免费播放 | 99久久久无码国产aaa精品 | 我要看www免费看插插视频 | 日韩亚洲欧美中文高清在线 | 一本精品99久久精品77 | 国产suv精品一区二区五 | 性欧美牲交xxxxx视频 | 久久成人a毛片免费观看网站 | 亚洲日本va中文字幕 | 日日夜夜撸啊撸 | 亚洲日韩精品欧美一区二区 | 久久无码中文字幕免费影院蜜桃 | 国产 浪潮av性色四虎 | 国产成人亚洲综合无码 | 国产综合色产在线精品 | 成人无码影片精品久久久 | 欧美性生交活xxxxxdddd | 亚洲熟悉妇女xxx妇女av | 亚洲人成网站在线播放942 | 亚洲成a人片在线观看日本 | 日本爽爽爽爽爽爽在线观看免 | 日韩精品成人一区二区三区 | 欧美放荡的少妇 | 精品夜夜澡人妻无码av蜜桃 | 丰满诱人的人妻3 | 亚洲中文字幕av在天堂 | 人妻中文无码久热丝袜 | 欧美日韩视频无码一区二区三 | 特大黑人娇小亚洲女 | 国产又爽又猛又粗的视频a片 | 在线а√天堂中文官网 | 亚洲男人av天堂午夜在 | 午夜精品久久久久久久久 | 色一情一乱一伦一视频免费看 | 人人爽人人爽人人片av亚洲 | √天堂资源地址中文在线 | 又黄又爽又色的视频 | 窝窝午夜理论片影院 | 在线观看国产一区二区三区 | 国产97人人超碰caoprom | 综合激情五月综合激情五月激情1 | 又紧又大又爽精品一区二区 | 又大又黄又粗又爽的免费视频 | 国产免费久久久久久无码 | 日本免费一区二区三区最新 | 国产av久久久久精东av | aⅴ亚洲 日韩 色 图网站 播放 | 亚洲国精产品一二二线 | 国产精品无码mv在线观看 | 婷婷五月综合缴情在线视频 | 日韩欧美群交p片內射中文 | www成人国产高清内射 | 人人爽人人爽人人片av亚洲 | 99久久精品无码一区二区毛片 | 久在线观看福利视频 | 国产手机在线αⅴ片无码观看 | 极品嫩模高潮叫床 | 人人妻人人澡人人爽欧美精品 | 精品人妻人人做人人爽夜夜爽 | 人人妻人人澡人人爽人人精品 | 鲁一鲁av2019在线 | 亚洲春色在线视频 | 午夜福利不卡在线视频 | 国产乱人伦av在线无码 | 鲁一鲁av2019在线 | 小泽玛莉亚一区二区视频在线 | 国产真实伦对白全集 | 欧美 日韩 人妻 高清 中文 | 波多野结衣av一区二区全免费观看 | 熟妇人妻中文av无码 | 无码纯肉视频在线观看 | 亚洲欧洲无卡二区视頻 | 国内老熟妇对白xxxxhd | 高潮喷水的毛片 | 亚洲综合精品香蕉久久网 | 亚洲国精产品一二二线 | 99久久精品日本一区二区免费 | 色狠狠av一区二区三区 | 国产精品美女久久久久av爽李琼 | 麻豆人妻少妇精品无码专区 | 水蜜桃色314在线观看 | 午夜免费福利小电影 | 99国产精品白浆在线观看免费 | 欧美怡红院免费全部视频 | 一本加勒比波多野结衣 | 免费无码肉片在线观看 | 成人片黄网站色大片免费观看 | 中文字幕乱码人妻二区三区 | 露脸叫床粗话东北少妇 | 国产亚洲日韩欧美另类第八页 | 欧美丰满熟妇xxxx | 人人妻人人澡人人爽人人精品 | 亚洲精品中文字幕久久久久 | 精品水蜜桃久久久久久久 | 久久久久久av无码免费看大片 | 少妇被粗大的猛进出69影院 | 国产精品久久久久久久影院 | 国内少妇偷人精品视频 | 欧美精品国产综合久久 | 国产国产精品人在线视 | 少妇太爽了在线观看 | 国产成人无码a区在线观看视频app | 全球成人中文在线 | 欧美日韩一区二区免费视频 | 精品成人av一区二区三区 | 大肉大捧一进一出好爽视频 | 中文字幕无码人妻少妇免费 | 国产婷婷色一区二区三区在线 | yw尤物av无码国产在线观看 | 成年美女黄网站色大免费视频 | 久久久久国色av免费观看性色 | 少妇一晚三次一区二区三区 | 国产极品美女高潮无套在线观看 | 久久人妻内射无码一区三区 | 成人动漫在线观看 | 亚洲 另类 在线 欧美 制服 | 色综合久久久久综合一本到桃花网 | aⅴ在线视频男人的天堂 | 欧美日韩在线亚洲综合国产人 | 蜜桃av抽搐高潮一区二区 | 婷婷综合久久中文字幕蜜桃三电影 | 无码国产色欲xxxxx视频 | 亚洲人成网站在线播放942 | 精品无码一区二区三区的天堂 | 欧美国产亚洲日韩在线二区 | 亚洲国产精华液网站w | 曰本女人与公拘交酡免费视频 | 无遮挡国产高潮视频免费观看 | 国产精品无码mv在线观看 | 特级做a爰片毛片免费69 | 午夜嘿嘿嘿影院 | 久久亚洲精品成人无码 | 在线播放免费人成毛片乱码 | 午夜性刺激在线视频免费 | 麻豆精品国产精华精华液好用吗 | 久久 国产 尿 小便 嘘嘘 | 国产又爽又猛又粗的视频a片 | 又黄又爽又色的视频 | 精品久久久无码人妻字幂 | 丰满人妻翻云覆雨呻吟视频 | 精品欧洲av无码一区二区三区 | 成人精品视频一区二区三区尤物 | 樱花草在线播放免费中文 | 久久国语露脸国产精品电影 | 亚洲 高清 成人 动漫 | 天天躁夜夜躁狠狠是什么心态 | 成人毛片一区二区 | 少妇人妻av毛片在线看 | 少妇久久久久久人妻无码 | 亚洲综合另类小说色区 | 性色欲网站人妻丰满中文久久不卡 | 在线欧美精品一区二区三区 | 久久国产精品二国产精品 | 日韩人妻系列无码专区 | 亚洲人成影院在线无码按摩店 | www一区二区www免费 | 欧美日韩人成综合在线播放 | 国产色精品久久人妻 | 丰满少妇弄高潮了www | 中文字幕无码免费久久9一区9 | 亚洲s码欧洲m码国产av | 粗大的内捧猛烈进出视频 | 网友自拍区视频精品 | 亚洲人成网站在线播放942 | 国产亚洲精品久久久久久大师 | 亚洲国产精品无码久久久久高潮 | 日本www一道久久久免费榴莲 | 亚洲精品欧美二区三区中文字幕 | 又大又硬又黄的免费视频 | 国产成人无码av一区二区 | 国产精品久久久久无码av色戒 | 玩弄中年熟妇正在播放 | 亚洲狠狠婷婷综合久久 | 日本高清一区免费中文视频 | 在教室伦流澡到高潮hnp视频 | 国产一区二区不卡老阿姨 | 亚洲午夜福利在线观看 | 高中生自慰www网站 | www一区二区www免费 | 荫蒂被男人添的好舒服爽免费视频 | 男人的天堂2018无码 | 偷窥日本少妇撒尿chinese | 黄网在线观看免费网站 | 牛和人交xxxx欧美 | 国产综合色产在线精品 | 300部国产真实乱 | 精品日本一区二区三区在线观看 | 一二三四在线观看免费视频 | 国产成人午夜福利在线播放 | 亚洲中文字幕无码一久久区 | 又湿又紧又大又爽a视频国产 | 无码福利日韩神码福利片 | 精品厕所偷拍各类美女tp嘘嘘 | 国产精品a成v人在线播放 | 久久久久久国产精品无码下载 | 国产热a欧美热a在线视频 | 乱码av麻豆丝袜熟女系列 | 国产真人无遮挡作爱免费视频 | 国产精品丝袜黑色高跟鞋 | 国产精品久久久久久久9999 | 国产乱人伦偷精品视频 | 国产真人无遮挡作爱免费视频 | 亚洲s色大片在线观看 | 牲欲强的熟妇农村老妇女视频 | 国产精品-区区久久久狼 | 亚洲成av人片在线观看无码不卡 | 日本精品高清一区二区 | 亚洲欧美国产精品专区久久 | 福利一区二区三区视频在线观看 | 九九久久精品国产免费看小说 | 午夜福利电影 | 精品人妻人人做人人爽 | 国产亚洲精品久久久ai换 | 啦啦啦www在线观看免费视频 | 99riav国产精品视频 | 激情亚洲一区国产精品 | 综合激情五月综合激情五月激情1 | 天天拍夜夜添久久精品 | 国产亚洲精品久久久久久久久动漫 | 国产av无码专区亚洲a∨毛片 | 国内精品久久久久久中文字幕 | 亚洲日韩乱码中文无码蜜桃臀网站 | 国产一区二区三区四区五区加勒比 | 亚洲国产精品久久久天堂 | 18禁黄网站男男禁片免费观看 | 国产乱人偷精品人妻a片 | 日本熟妇乱子伦xxxx | 国产午夜无码精品免费看 | 白嫩日本少妇做爰 | 欧美日韩一区二区三区自拍 | 一本久久a久久精品亚洲 | 丰满肥臀大屁股熟妇激情视频 | 国产午夜精品一区二区三区嫩草 | 日韩亚洲欧美中文高清在线 | 日韩人妻少妇一区二区三区 | 色综合久久网 | 男女爱爱好爽视频免费看 | 老司机亚洲精品影院 | 18精品久久久无码午夜福利 | 亚无码乱人伦一区二区 | 国内丰满熟女出轨videos | 日本一本二本三区免费 | 精品国产av色一区二区深夜久久 | 国产精品人人爽人人做我的可爱 | 一本久久a久久精品vr综合 | 中文字幕亚洲情99在线 | 人妻夜夜爽天天爽三区 | 亚洲自偷自偷在线制服 | 欧美成人免费全部网站 | 真人与拘做受免费视频一 | 老司机亚洲精品影院无码 | √天堂中文官网8在线 | 久久久精品欧美一区二区免费 | av人摸人人人澡人人超碰下载 | 亚洲aⅴ无码成人网站国产app | 在线精品亚洲一区二区 | 图片小说视频一区二区 | 国产乡下妇女做爰 | 国产一区二区三区精品视频 | 国产亚洲欧美日韩亚洲中文色 | 国产人妻久久精品二区三区老狼 | 无码av岛国片在线播放 | 婷婷丁香六月激情综合啪 | 无码中文字幕色专区 | 久久午夜无码鲁丝片 | 亚洲区小说区激情区图片区 | 久久午夜无码鲁丝片午夜精品 | 久久无码人妻影院 | 国产精品久久久久久久影院 | 5858s亚洲色大成网站www | av人摸人人人澡人人超碰下载 | 人人妻人人澡人人爽精品欧美 | 成人三级无码视频在线观看 | 国产激情一区二区三区 | 国产成人无码一二三区视频 | 国产肉丝袜在线观看 | 蜜臀aⅴ国产精品久久久国产老师 | 激情人妻另类人妻伦 | 国产无遮挡又黄又爽又色 | av香港经典三级级 在线 | 九九在线中文字幕无码 | 精品国偷自产在线 | 人人妻人人藻人人爽欧美一区 | 国产超碰人人爽人人做人人添 | 桃花色综合影院 | 成人无码精品1区2区3区免费看 | 中文字幕无码日韩专区 | 性生交大片免费看l | 亚洲色偷偷男人的天堂 | 精品成在人线av无码免费看 | 成人性做爰aaa片免费看不忠 | 亚洲毛片av日韩av无码 | 精品一区二区三区无码免费视频 | 免费无码肉片在线观看 | 久久久久国色av免费观看性色 | 红桃av一区二区三区在线无码av | 久久99精品国产.久久久久 | 成人无码精品1区2区3区免费看 | 娇妻被黑人粗大高潮白浆 | 亚洲一区av无码专区在线观看 | 精品国产一区av天美传媒 | 狠狠色噜噜狠狠狠狠7777米奇 | 欧美日本精品一区二区三区 | 高潮毛片无遮挡高清免费 | 久久久www成人免费毛片 | 亚洲欧美日韩综合久久久 | 日日干夜夜干 | 麻花豆传媒剧国产免费mv在线 | 亚洲精品午夜国产va久久成人 | 久久久久久亚洲精品a片成人 | 日日噜噜噜噜夜夜爽亚洲精品 | 又大又黄又粗又爽的免费视频 | 欧美性黑人极品hd | 久9re热视频这里只有精品 | 国产sm调教视频在线观看 | 领导边摸边吃奶边做爽在线观看 | 对白脏话肉麻粗话av | 国语自产偷拍精品视频偷 | 国产精品va在线观看无码 | 欧美黑人巨大xxxxx | 亚洲人成网站在线播放942 | 亚洲天堂2017无码 | 人人爽人人澡人人高潮 | 国产人成高清在线视频99最全资源 | 中文字幕乱码人妻二区三区 | 亚洲精品久久久久avwww潮水 | 国产精品人妻一区二区三区四 | 国产卡一卡二卡三 | а√资源新版在线天堂 | 久久综合狠狠综合久久综合88 | 国产又爽又黄又刺激的视频 | 亚洲码国产精品高潮在线 | 波多野结衣 黑人 | 97精品人妻一区二区三区香蕉 | 狂野欧美性猛交免费视频 | 天堂久久天堂av色综合 | 永久免费精品精品永久-夜色 | 日本护士xxxxhd少妇 | 日本饥渴人妻欲求不满 | 午夜嘿嘿嘿影院 | av人摸人人人澡人人超碰下载 | 鲁大师影院在线观看 | 日韩人妻系列无码专区 | 亚洲人亚洲人成电影网站色 | 国产熟女一区二区三区四区五区 | 国产av久久久久精东av | 精品一区二区三区波多野结衣 | 亚洲欧美国产精品专区久久 | 国产无遮挡吃胸膜奶免费看 | 大地资源中文第3页 | 欧美自拍另类欧美综合图片区 | 国产尤物精品视频 | 欧美日韩亚洲国产精品 | 精品一区二区三区无码免费视频 | 久久这里只有精品视频9 | 人妻少妇精品无码专区二区 | 人人妻人人澡人人爽人人精品浪潮 | 亚洲高清偷拍一区二区三区 | 国产在线精品一区二区三区直播 | 红桃av一区二区三区在线无码av | 亚洲а∨天堂久久精品2021 | 欧美日韩一区二区三区自拍 | 爆乳一区二区三区无码 | 人妻少妇精品无码专区动漫 | 国产麻豆精品精东影业av网站 | 天天拍夜夜添久久精品大 | 久久婷婷五月综合色国产香蕉 | 人妻尝试又大又粗久久 | 老太婆性杂交欧美肥老太 | 性做久久久久久久久 | 日日摸夜夜摸狠狠摸婷婷 | 久激情内射婷内射蜜桃人妖 | 久久国语露脸国产精品电影 | 少妇一晚三次一区二区三区 | 欧美老妇与禽交 | 熟女体下毛毛黑森林 | 国产性生交xxxxx无码 | 婷婷五月综合缴情在线视频 | 免费看男女做好爽好硬视频 | 久久亚洲日韩精品一区二区三区 | 夜先锋av资源网站 | 人妻中文无码久热丝袜 | 亚洲色在线无码国产精品不卡 | 成人aaa片一区国产精品 | 精品国产乱码久久久久乱码 | 国产免费无码一区二区视频 | 亚洲精品国偷拍自产在线麻豆 | 鲁大师影院在线观看 | 精品久久久久久人妻无码中文字幕 | 一本色道久久综合狠狠躁 | 中文字幕人妻丝袜二区 | 亚洲人成网站在线播放942 | 久久久无码中文字幕久... | 国产综合在线观看 | √8天堂资源地址中文在线 | 成人免费视频一区二区 | 扒开双腿吃奶呻吟做受视频 | 51国偷自产一区二区三区 | 18黄暴禁片在线观看 | 成人亚洲精品久久久久 | 99视频精品全部免费免费观看 | 成人无码精品一区二区三区 | 日韩无码专区 | 久青草影院在线观看国产 | 亚洲欧美国产精品专区久久 | 国产亚洲精品久久久久久久久动漫 | 日韩精品成人一区二区三区 | aa片在线观看视频在线播放 | 亚洲欧美色中文字幕在线 | 日产精品高潮呻吟av久久 | 亚洲精品中文字幕乱码 | 成人无码视频免费播放 | 任你躁在线精品免费 | 帮老师解开蕾丝奶罩吸乳网站 | 在线 国产 欧美 亚洲 天堂 | 欧美 丝袜 自拍 制服 另类 | 色爱情人网站 | 亚洲精品一区三区三区在线观看 | 大肉大捧一进一出好爽视频 | 亚洲乱亚洲乱妇50p | 国产成人综合色在线观看网站 | 国产精品国产三级国产专播 | 国产麻豆精品一区二区三区v视界 | 国产成人综合色在线观看网站 | 欧美阿v高清资源不卡在线播放 | 99久久人妻精品免费二区 | 亚洲一区二区三区香蕉 | 成年美女黄网站色大免费视频 | 欧美日韩色另类综合 | 99国产精品白浆在线观看免费 | 1000部啪啪未满十八勿入下载 | 永久免费观看国产裸体美女 | 宝宝好涨水快流出来免费视频 | 国产极品美女高潮无套在线观看 | 性欧美牲交xxxxx视频 | 一区二区三区高清视频一 | 国产精品亚洲lv粉色 | 欧美熟妇另类久久久久久不卡 | 久久精品国产99久久6动漫 | 又紧又大又爽精品一区二区 | 美女张开腿让人桶 | 97色伦图片97综合影院 | 97人妻精品一区二区三区 | 国产在热线精品视频 | 亚洲综合精品香蕉久久网 | 日本熟妇人妻xxxxx人hd | 夫妻免费无码v看片 | 中文精品久久久久人妻不卡 | 国产成人无码午夜视频在线观看 | 国产乱码精品一品二品 | 久久国产自偷自偷免费一区调 | 精品国产aⅴ无码一区二区 | 精品国产精品久久一区免费式 | 国产精品久久久久9999小说 | 无码人妻出轨黑人中文字幕 | 一本色道久久综合亚洲精品不卡 | 日本xxxx色视频在线观看免费 | 夜夜影院未满十八勿进 | 97夜夜澡人人爽人人喊中国片 | 国产三级精品三级男人的天堂 | 亚洲一区二区观看播放 | 亚洲s色大片在线观看 | 天天拍夜夜添久久精品大 | 在线看片无码永久免费视频 | 亚洲天堂2017无码中文 | 成 人 免费观看网站 | 亚洲日韩av片在线观看 | 少妇人妻av毛片在线看 | 狠狠色噜噜狠狠狠7777奇米 | 麻豆国产人妻欲求不满 | 精品人妻人人做人人爽夜夜爽 | 国产区女主播在线观看 | 夜夜夜高潮夜夜爽夜夜爰爰 | 色综合久久久久综合一本到桃花网 | 丰满肥臀大屁股熟妇激情视频 | 精品人妻中文字幕有码在线 | 久久精品丝袜高跟鞋 | 精品乱码久久久久久久 | 久久精品丝袜高跟鞋 | 青青久在线视频免费观看 | 一本久久a久久精品vr综合 | 强辱丰满人妻hd中文字幕 | 国产无遮挡吃胸膜奶免费看 | 人人澡人摸人人添 | 内射爽无广熟女亚洲 | 国产美女精品一区二区三区 | 国产极品美女高潮无套在线观看 | 中国女人内谢69xxxx | 国产美女极度色诱视频www | 亚洲欧美日韩综合久久久 | 人人爽人人爽人人片av亚洲 | 激情人妻另类人妻伦 | 日韩欧美中文字幕公布 | 清纯唯美经典一区二区 | 老头边吃奶边弄进去呻吟 | 一区二区传媒有限公司 | 国产人成高清在线视频99最全资源 | 性色欲网站人妻丰满中文久久不卡 | 永久免费精品精品永久-夜色 | 久久99精品国产麻豆 | 日韩精品乱码av一区二区 | 国产综合在线观看 | 鲁大师影院在线观看 | 色诱久久久久综合网ywww | 无码人妻出轨黑人中文字幕 | 永久免费精品精品永久-夜色 | 久久久中文字幕日本无吗 | 国产精品久久久久久亚洲毛片 | 日本肉体xxxx裸交 | 亚洲午夜无码久久 | 日日噜噜噜噜夜夜爽亚洲精品 | 国产人妖乱国产精品人妖 | 国内精品久久久久久中文字幕 | 无码av岛国片在线播放 | 亚洲欧洲无卡二区视頻 | 嫩b人妻精品一区二区三区 | 国产网红无码精品视频 | 久久综合激激的五月天 | 国产精品无码成人午夜电影 | 久久久精品国产sm最大网站 | 丰腴饱满的极品熟妇 | 人人澡人人透人人爽 | 在线成人www免费观看视频 | 久久久久99精品成人片 | 欧美老人巨大xxxx做受 | 波多野结衣av在线观看 | 国产免费观看黄av片 | 欧洲欧美人成视频在线 | 久久99国产综合精品 | 久久综合久久自在自线精品自 | 日本精品人妻无码免费大全 | 蜜臀aⅴ国产精品久久久国产老师 | 精品亚洲成av人在线观看 | 国内少妇偷人精品视频 | 无码精品人妻一区二区三区av | 国产精品美女久久久久av爽李琼 | 亚洲国产精华液网站w | 欧美日韩综合一区二区三区 | 美女扒开屁股让男人桶 | 99久久婷婷国产综合精品青草免费 | 纯爱无遮挡h肉动漫在线播放 | 国产97人人超碰caoprom | 久久99精品国产麻豆 | 欧美老熟妇乱xxxxx | av无码电影一区二区三区 | 国产精品久久久久影院嫩草 | 日韩视频 中文字幕 视频一区 | 日产国产精品亚洲系列 | 欧美成人家庭影院 | 日韩 欧美 动漫 国产 制服 | 欧美熟妇另类久久久久久不卡 | 在线观看国产一区二区三区 | 色婷婷综合中文久久一本 | 欧美freesex黑人又粗又大 | 久久人人爽人人爽人人片ⅴ | 2020久久超碰国产精品最新 | 性生交片免费无码看人 | 久久精品一区二区三区四区 | 精品国产青草久久久久福利 | 日韩少妇白浆无码系列 | 国产午夜福利100集发布 | 欧美日韩精品 | 亚洲爆乳大丰满无码专区 | 免费人成网站视频在线观看 | 国产午夜视频在线观看 | 亚洲精品综合一区二区三区在线 | 国产午夜无码视频在线观看 | 免费观看激色视频网站 | 久久国产精品萌白酱免费 | 国产激情无码一区二区 | 秋霞成人午夜鲁丝一区二区三区 | 国产区女主播在线观看 | 欧美阿v高清资源不卡在线播放 | 亚洲色在线无码国产精品不卡 | 中文字幕av无码一区二区三区电影 | 国产精品久久久一区二区三区 | 狠狠色丁香久久婷婷综合五月 | 亚洲色偷偷男人的天堂 | 精品日本一区二区三区在线观看 | 色窝窝无码一区二区三区色欲 | 无码人妻久久一区二区三区不卡 | 亚洲热妇无码av在线播放 | 性色av无码免费一区二区三区 | 成人一在线视频日韩国产 | 亚洲日韩中文字幕在线播放 | 精品夜夜澡人妻无码av蜜桃 | 亚洲高清偷拍一区二区三区 | 免费乱码人妻系列无码专区 | 国产成人精品视频ⅴa片软件竹菊 | 国产亚洲欧美日韩亚洲中文色 | 久9re热视频这里只有精品 | 日本熟妇乱子伦xxxx | 国产凸凹视频一区二区 | 偷窥日本少妇撒尿chinese | 亚洲国产高清在线观看视频 | 无码午夜成人1000部免费视频 | 欧美人与禽zoz0性伦交 | 丰满少妇弄高潮了www | 亚洲中文字幕久久无码 | 青春草在线视频免费观看 | 亚洲 另类 在线 欧美 制服 | 一个人免费观看的www视频 | 无码国产激情在线观看 | 国语自产偷拍精品视频偷 | 国产精品无码成人午夜电影 | 俺去俺来也在线www色官网 | 亚洲人成影院在线观看 | 丰满人妻被黑人猛烈进入 | www一区二区www免费 | 人人妻人人澡人人爽人人精品 | 国产精品久久久一区二区三区 | 婷婷色婷婷开心五月四房播播 | 久久久久久久人妻无码中文字幕爆 | 性色欲情网站iwww九文堂 | 亚洲一区二区三区四区 | 麻豆国产丝袜白领秘书在线观看 | 亚洲熟妇色xxxxx亚洲 | 精品无码一区二区三区的天堂 | 亚洲人成影院在线无码按摩店 | 婷婷五月综合缴情在线视频 | 欧洲精品码一区二区三区免费看 | 亚欧洲精品在线视频免费观看 | 成人亚洲精品久久久久软件 | 国产精品亚洲lv粉色 | 永久免费精品精品永久-夜色 | 成人影院yy111111在线观看 | 亚洲性无码av中文字幕 | 在线观看免费人成视频 | 水蜜桃av无码 | 人人妻人人藻人人爽欧美一区 | 国产极品美女高潮无套在线观看 | 日本大乳高潮视频在线观看 | 国产精品丝袜黑色高跟鞋 | 一个人免费观看的www视频 | 久久亚洲精品成人无码 | 亚洲精品国产精品乱码视色 | 又色又爽又黄的美女裸体网站 | 久久久久国色av免费观看性色 | 亚洲精品久久久久久一区二区 | 亚洲熟妇自偷自拍另类 | 国产九九九九九九九a片 | 免费观看又污又黄的网站 | 国内丰满熟女出轨videos | 国产真实乱对白精彩久久 | 樱花草在线播放免费中文 | 国内精品人妻无码久久久影院蜜桃 | 成在人线av无码免观看麻豆 | 亚洲 a v无 码免 费 成 人 a v | 亚洲毛片av日韩av无码 | 午夜不卡av免费 一本久久a久久精品vr综合 | aⅴ在线视频男人的天堂 | 国产精品毛片一区二区 | 日本精品人妻无码免费大全 | 图片区 小说区 区 亚洲五月 | 蜜臀av在线播放 久久综合激激的五月天 | 免费无码一区二区三区蜜桃大 | 久久久国产一区二区三区 | 成人亚洲精品久久久久 | 亚洲人成网站色7799 | 国产成人精品久久亚洲高清不卡 | 粗大的内捧猛烈进出视频 | 伦伦影院午夜理论片 | 精品人妻人人做人人爽夜夜爽 | 国产亚洲欧美在线专区 | 曰韩无码二三区中文字幕 | 国产成人精品一区二区在线小狼 | 精品人妻人人做人人爽夜夜爽 | 亚洲 a v无 码免 费 成 人 a v | 日本一区二区三区免费高清 | 国产又粗又硬又大爽黄老大爷视 | 成人欧美一区二区三区黑人免费 | 日韩人妻无码中文字幕视频 | 日日夜夜撸啊撸 | 久久人人爽人人人人片 | 老太婆性杂交欧美肥老太 | 国产成人午夜福利在线播放 | 玩弄中年熟妇正在播放 | 国产午夜视频在线观看 | 亚洲精品久久久久avwww潮水 | 无码任你躁久久久久久久 | 最新国产麻豆aⅴ精品无码 | 三上悠亚人妻中文字幕在线 | 老熟妇仑乱视频一区二区 | 国产人妻久久精品二区三区老狼 | 精品成在人线av无码免费看 | 牲欲强的熟妇农村老妇女 | 亚洲精品一区二区三区大桥未久 | 一区二区传媒有限公司 | 久久亚洲日韩精品一区二区三区 | 国产av人人夜夜澡人人爽麻豆 | 午夜无码人妻av大片色欲 | 大胆欧美熟妇xx | 捆绑白丝粉色jk震动捧喷白浆 | 无人区乱码一区二区三区 | 亚洲精品成人福利网站 | 亚洲欧美日韩国产精品一区二区 | 免费国产成人高清在线观看网站 | 欧美丰满少妇xxxx性 | 丰满人妻一区二区三区免费视频 | 白嫩日本少妇做爰 | 自拍偷自拍亚洲精品被多人伦好爽 | 亚洲毛片av日韩av无码 | 亚洲一区av无码专区在线观看 | 亚洲精品成人福利网站 | 噜噜噜亚洲色成人网站 | 76少妇精品导航 | 国产亚洲精品久久久久久国模美 | 国产免费久久精品国产传媒 | 久久精品女人天堂av免费观看 | 日本免费一区二区三区最新 | 高潮喷水的毛片 | 欧美人与动性行为视频 | 一本久道久久综合婷婷五月 | 免费观看的无遮挡av | 国产免费久久精品国产传媒 | 日韩无码专区 | 亚洲中文字幕va福利 | 久久aⅴ免费观看 | 少妇无码一区二区二三区 | 捆绑白丝粉色jk震动捧喷白浆 | 国产av人人夜夜澡人人爽麻豆 | 欧美丰满老熟妇xxxxx性 | 久久亚洲精品中文字幕无男同 | 精品人人妻人人澡人人爽人人 | 天堂а√在线地址中文在线 | 中文亚洲成a人片在线观看 | 免费国产黄网站在线观看 | 蜜桃视频插满18在线观看 | а√资源新版在线天堂 | 国产精品无码久久av | 蜜桃臀无码内射一区二区三区 | 激情人妻另类人妻伦 | 一本大道伊人av久久综合 | 欧美乱妇无乱码大黄a片 | 少妇被粗大的猛进出69影院 | 欧美怡红院免费全部视频 | 成人欧美一区二区三区 | 欧美人与物videos另类 | 精品国产乱码久久久久乱码 | 欧美人妻一区二区三区 | 成人av无码一区二区三区 | 99久久99久久免费精品蜜桃 | 日本一区二区三区免费播放 | 99久久精品无码一区二区毛片 | √天堂中文官网8在线 | 精品久久8x国产免费观看 | 亚洲精品久久久久avwww潮水 | 国产精品无码一区二区桃花视频 | 日本又色又爽又黄的a片18禁 | 精品 日韩 国产 欧美 视频 | 日本精品少妇一区二区三区 | 亚洲欧美国产精品专区久久 | 成人免费视频在线观看 | 国产凸凹视频一区二区 | 无遮无挡爽爽免费视频 | 一本大道久久东京热无码av | 精品一二三区久久aaa片 | 久久www免费人成人片 | 久久亚洲精品中文字幕无男同 | 国产乱人伦av在线无码 | 亚洲 高清 成人 动漫 | 精品成在人线av无码免费看 | 丰满护士巨好爽好大乳 | 久久五月精品中文字幕 | 亚洲狠狠婷婷综合久久 | 亚洲一区二区三区国产精华液 | 日本一卡2卡3卡四卡精品网站 | 天天摸天天碰天天添 | 久久久婷婷五月亚洲97号色 | 精品一区二区不卡无码av | 丁香啪啪综合成人亚洲 | 无码毛片视频一区二区本码 | 国产农村妇女高潮大叫 | 小鲜肉自慰网站xnxx | 纯爱无遮挡h肉动漫在线播放 | 久久午夜无码鲁丝片午夜精品 | 欧美肥老太牲交大战 | 色噜噜亚洲男人的天堂 | 高清不卡一区二区三区 | 久久久国产一区二区三区 | 天天做天天爱天天爽综合网 | ass日本丰满熟妇pics | 亚洲成a人片在线观看无码3d | 自拍偷自拍亚洲精品10p | 中文字幕无码av波多野吉衣 | 性开放的女人aaa片 | 亚洲精品一区国产 | 国产亚洲精品久久久ai换 | 中文字幕久久久久人妻 | 亚洲区小说区激情区图片区 | 国产舌乚八伦偷品w中 | 精品无人区无码乱码毛片国产 | 四十如虎的丰满熟妇啪啪 | 最近免费中文字幕中文高清百度 | 在线播放亚洲第一字幕 | 国产一区二区三区精品视频 | 中文字幕+乱码+中文字幕一区 | 一区二区三区高清视频一 | 久久精品国产一区二区三区肥胖 | 大肉大捧一进一出好爽视频 | 黑人巨大精品欧美一区二区 | 欧美性猛交内射兽交老熟妇 | 国产麻豆精品一区二区三区v视界 | www国产精品内射老师 | 亚洲成a人片在线观看日本 | 日欧一片内射va在线影院 | 亚洲精品久久久久avwww潮水 | 99久久人妻精品免费二区 | 蜜臀av无码人妻精品 | а天堂中文在线官网 | 久久人妻内射无码一区三区 | 日日躁夜夜躁狠狠躁 | 亚洲毛片av日韩av无码 | 一本色道婷婷久久欧美 | 久久国内精品自在自线 | 少妇一晚三次一区二区三区 | 国产国语老龄妇女a片 | 亚洲日本在线电影 | 午夜成人1000部免费视频 | 欧美国产亚洲日韩在线二区 | 一区二区三区乱码在线 | 欧洲 | 无码帝国www无码专区色综合 | 国产精品久免费的黄网站 | 亚洲成av人综合在线观看 | 成人免费视频视频在线观看 免费 | 久久午夜无码鲁丝片午夜精品 | 麻豆国产人妻欲求不满 | 欧美猛少妇色xxxxx | 亚洲s码欧洲m码国产av | 久久综合久久自在自线精品自 | 岛国片人妻三上悠亚 | 国产免费久久精品国产传媒 | 色窝窝无码一区二区三区色欲 | 最近中文2019字幕第二页 | 无码帝国www无码专区色综合 | 中文字幕无码乱人伦 | 色五月丁香五月综合五月 | 丰满人妻翻云覆雨呻吟视频 | 欧美国产日韩亚洲中文 | 色爱情人网站 | 无码帝国www无码专区色综合 | 在线精品国产一区二区三区 | 国产在线一区二区三区四区五区 | 日本爽爽爽爽爽爽在线观看免 | 欧美 日韩 人妻 高清 中文 | 国产成人精品久久亚洲高清不卡 | 久久精品丝袜高跟鞋 | 成人精品一区二区三区中文字幕 | 久久精品国产精品国产精品污 | 欧美成人高清在线播放 | 国产香蕉97碰碰久久人人 | 久久人人爽人人爽人人片av高清 | 特大黑人娇小亚洲女 | 国产激情艳情在线看视频 | 日韩 欧美 动漫 国产 制服 | 久久精品人人做人人综合试看 | 色五月丁香五月综合五月 | 久久久中文久久久无码 | 少妇高潮喷潮久久久影院 | 精品亚洲成av人在线观看 | 精品久久综合1区2区3区激情 | 激情五月综合色婷婷一区二区 | 国产精品亚洲综合色区韩国 | 国产精品久久福利网站 | 强辱丰满人妻hd中文字幕 | 日本精品人妻无码77777 天堂一区人妻无码 | 亚洲精品综合一区二区三区在线 | 鲁一鲁av2019在线 | 丰满少妇熟乱xxxxx视频 | 亚洲日本一区二区三区在线 | 国产av一区二区精品久久凹凸 | 中文字幕无码av激情不卡 | 男人的天堂2018无码 | 国产精华av午夜在线观看 | 中文字幕无码免费久久99 | 丰满少妇人妻久久久久久 | 中文字幕无码日韩欧毛 | 亚洲精品一区二区三区大桥未久 | 国产激情无码一区二区app | 国产午夜亚洲精品不卡 | 鲁一鲁av2019在线 | 久久精品中文字幕一区 | 国内揄拍国内精品人妻 | 无遮无挡爽爽免费视频 | 狠狠躁日日躁夜夜躁2020 | 国产小呦泬泬99精品 | 未满成年国产在线观看 | 亚洲成色www久久网站 | 亚洲成a人片在线观看无码 | 国产av无码专区亚洲awww | 国产内射爽爽大片视频社区在线 | 97se亚洲精品一区 | 欧美高清在线精品一区 | 久久亚洲国产成人精品性色 | 精品国产国产综合精品 | 国产精品美女久久久网av | 98国产精品综合一区二区三区 | 亚洲精品久久久久久一区二区 | 综合人妻久久一区二区精品 | 国产又爽又猛又粗的视频a片 | 精品一区二区三区波多野结衣 | 欧美刺激性大交 | 亚洲欧美国产精品久久 | 欧美精品免费观看二区 | 色偷偷人人澡人人爽人人模 | 亚洲无人区一区二区三区 | 伊人色综合久久天天小片 | 性色欲网站人妻丰满中文久久不卡 | 波多野结衣aⅴ在线 | 综合人妻久久一区二区精品 | 麻豆国产人妻欲求不满谁演的 | 久久综合久久自在自线精品自 | 99精品国产综合久久久久五月天 | 国产成人一区二区三区别 | 十八禁真人啪啪免费网站 | 国产特级毛片aaaaaa高潮流水 | 性啪啪chinese东北女人 | 国产午夜精品一区二区三区嫩草 | 免费看少妇作爱视频 | 欧美人与善在线com | 鲁一鲁av2019在线 | 在线 国产 欧美 亚洲 天堂 | 精品久久久久久亚洲精品 | 伊人久久大香线焦av综合影院 | 欧美亚洲国产一区二区三区 | 老司机亚洲精品影院 | 国产精品久久久久久亚洲影视内衣 | 俺去俺来也在线www色官网 | 性史性农村dvd毛片 | 国产精品亚洲一区二区三区喷水 | 国产在线一区二区三区四区五区 | 曰本女人与公拘交酡免费视频 | 狠狠色色综合网站 | 婷婷五月综合缴情在线视频 | 扒开双腿疯狂进出爽爽爽视频 | 久久无码人妻影院 | 在线 国产 欧美 亚洲 天堂 | 98国产精品综合一区二区三区 | 色综合久久久无码中文字幕 | 日本精品久久久久中文字幕 | 亚洲色欲色欲欲www在线 | 天堂а√在线中文在线 |