Skip to main content
Version: 2.8.1

StatsD

StatsD

用途說明#

發送紀錄服務、路由的指標到 StatsD server。

欄位配置說明#

啟用時可以看到以下畫面:

插件啟用配置圖

對應的配置說明如下:

參數類型預設值說明必填
hoststringlocalhost數據欲發送的 StatsD server 之 IP 位址或主機名。 例如: 10.18.66.1。
portinteger8125數據欲發送的 StatsD server 之端口。
可以輸入的範圍為 0 至 65535。
prefixstringkong每個指標名稱之前綴字串。
metricsarray of record elements所有指標(metrics)要記錄的指標列表。
指標可用值可參考指標(Metrics)說明
V

指標 (Metrics)說明#

指標 (Metric)說明命名空間
request_count請求數量。kong.<service_name>.request.count
request_size請求的 body 大小 (in bytes)。kong.<service_name>.request.size
response_size回應的 body 大小 (in bytes)。kong.<service_name>.response.size
latency請求開始直到收到上游服務器之回應的時間間隔。kong.<service_name>.latency
status_count每個回應返回的狀態碼。
注意:僅有 stat_type 為 counter 時才支援。
kong.<service_name>.request.status.<status>.count
and
kong.<service_name>.request.status.<status>.total
unique_user向服務/路由發送請求的唯一用戶。
注意:僅有 stat_type 為 set,以及有設定 customer_identifier 時才支援。
kong.<service_name>.user.uniques
request_per_user請求/用戶。
注意:僅有 stat_type 為 counter,以及有設定 customer_identifier 時才支援。
kong.<service_name>.user.<consumer_id>.request.count
upstream_latency最終服務處理請求所花費的時間。kong.<service_name>.upstream_latency
kong_latency運行所有插件所需的內部延遲。kong.<service_name>.kong_latency
status_count_per_user請求/狀態/用戶。
注意:僅有 stat_type 為 counter,以及有設定 customer_identifier 時才支援。
kong.<service_name>.user.<customer_id>.request.status.<status>
and
kong.<service_name>.user.<customer_id>.request.status.total

如果請求 URI 與任何路由都不匹配,則會發送以下指標 (Metric):

指標 (Metric)說明命名空間
request_count請求數量。kong.global.unmatched.request.count
request_size請求的 body 大小 (in bytes)。kong.global.unmatched.request.size
response_size回應的 body 大小 (in bytes)。kong.global.unmatched.response.size
latency請求開始直到收到上游服務器之回應的時間間隔。kong.global.unmatched.latency
status_count每個回應返回的狀態碼。
注意:僅有 stat_type 為 counter 時才支援。
kong.global.unmatched.status.<status>.count
kong_latency運行所有插件所需的內部延遲。kong.global.unmatched.kong_latency

Metric Fields#

該插件可以配置任意指標組合,每個 entry 包含以下 fields:

Field說明資料類型允許值
nameStatsD 指標的名稱。StringMetrics
stat_type決定指標代表哪種事件。Stringgauge、timer、counter、histogram、meter 以及 set。
sample_rate採樣率。Numbernumber
consumer_identifier經過身份驗證的用戶詳細資訊。String可以選擇以下其中之一:consumer_id、custom_id、username、null。

Metric 行為#

  1. 默認情況下,所有指標都會被記錄下來。

  2. stat_type 設置為 counter 或 gauge 的指標同樣必須定義 sample_rate。

  3. unique_users 指標僅適用於 stat_type=set 的時候。

  4. status_count、status_count_per_user 和 request_per_user 僅使用 stat_type=counter 的時候。

  5. status_count_per_user、request_per_user 和 unique_users 必須定義 customer_identifier。

用法示例#

在全局啟用插件#

  1. 從網站左邊 Menu 中 外掛插件 頁面中,點選右上角的 新增外掛插件

全局啟用畫面

  1. 點選後,選擇 日誌 頁籤,並啟用 StatsD,填寫內容參考欄位配置說明,設定成功後,任何請求(不分服務、路由、用戶)的日誌都會發送到所配置的 StatsD 遠端主機上。

在服務端上啟用插件#

  1. 從網站左邊 Menu 中 服務 > 服務列表 頁面中,選擇要啟用此插件的服務,假設為 google,點選對應的編輯按鈕:

服務啟用畫面1

  1. 在編輯畫面中,點選上方的 外掛插件 頁籤,再點選頁籤內容上方的 新增外掛插件 按鈕:

服務啟用畫面2

點選後,選擇 日誌 頁籤,並啟用 StatsD,填寫內容參考欄位配置說明,設定成功後,僅有此服務(範例為google)請求的日誌會發送到所配置的 StatsD 遠端主機上。

在路由端上啟用插件#

可以由兩種方式來選擇路由,並啟用插件:

方式一:路由列表#

  1. 從網站左邊 Menu 中 服務 > 路由列表 頁面中,選擇要啟用此插件的路由,假設為 google,點選對應的編輯按鈕 :

路由啟用畫面1

方式二:服務 > 服務列表 > 路由列表#

  1. 從網站左邊 Menu 中 服務 > 服務列表 頁面中,選擇要啟用此插件的路由 所屬之服務(假設為 google),點選對應的編輯按鈕。

在編輯畫面中,點選上方的 路由 頁籤,選擇要啟用此插件的路由(假設為 google),點選對應的編輯按鈕:

路由啟用畫面2


  1. 承第1步,點擊上述兩種方式之一的編輯按鈕後,在編輯畫面中,點選上方的 外掛插件 頁籤,再點選頁籤內容上方的 新增外掛插件 按鈕:

路由啟用畫面3

點選新增外掛插件 按鈕後,選擇 日誌 頁籤,並啟用 StatsD,填寫內容參考欄位配置說明,設定成功後,僅有此路由(範例為google)請求的日誌會發送到所配置的 StatsD 遠端主機上。

在用戶端上啟用插件#

  1. 從網站左邊 Menu 中 訂閱用戶 > 用戶列表 頁面中,選擇要啟用此插件的用戶,假設為 portaladmin,點選對應的編輯按鈕 :

用戶啟用畫面1

  1. 在編輯畫面中,點選上方的 外掛插件 頁籤,再點選頁籤內容上方的 新增外掛插件 按鈕:

用戶啟用畫面2

點選後,選擇 日誌 頁籤,並啟用 StatsD,填寫內容參考欄位配置說明,設定成功後,僅有此用戶(範例為 portaladmin)請求的日誌會發送到所配置的 StatsD 遠端主機上。

驗證#

啟用插件後,並設定對應指標(metrics),透過 GOC API Gateway 去呼叫服務後,再登入 StatsD 的服務頁面,即可看到如下圖的資料: StatsD驗證畫面1