StatsD
#
用途說明發送紀錄服務、路由的指標到 StatsD server。
#
欄位配置說明啟用時可以看到以下畫面:
對應的配置說明如下:
參數 | 類型 | 預設值 | 說明 | 必填 |
---|---|---|---|---|
host | string | localhost | 數據欲發送的 StatsD server 之 IP 位址或主機名。 例如: 10.18.66.1。 | |
port | integer | 8125 | 數據欲發送的 StatsD server 之端口。 可以輸入的範圍為 0 至 65535。 | |
prefix | string | kong | 每個指標名稱之前綴字串。 | |
metrics | array 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 | 說明 | 資料類型 | 允許值 |
---|---|---|---|
name | StatsD 指標的名稱。 | String | Metrics |
stat_type | 決定指標代表哪種事件。 | String | gauge、timer、counter、histogram、meter 以及 set。 |
sample_rate | 採樣率。 | Number | number |
consumer_identifier | 經過身份驗證的用戶詳細資訊。 | String | 可以選擇以下其中之一:consumer_id、custom_id、username、null。 |
#
Metric 行為默認情況下,所有指標都會被記錄下來。
stat_type 設置為 counter 或 gauge 的指標同樣必須定義 sample_rate。
unique_users 指標僅適用於 stat_type=set 的時候。
status_count、status_count_per_user 和 request_per_user 僅使用 stat_type=counter 的時候。
status_count_per_user、request_per_user 和 unique_users 必須定義 customer_identifier。
#
用法示例#
在全局啟用插件- 從網站左邊 Menu 中
外掛插件
頁面中,點選右上角的新增外掛插件
:
- 點選後,選擇
日誌
頁籤,並啟用 StatsD,填寫內容參考欄位配置說明,設定成功後,任何請求(不分服務、路由、用戶)的日誌都會發送到所配置的 StatsD 遠端主機上。
#
在服務端上啟用插件- 從網站左邊 Menu 中
服務 > 服務列表
頁面中,選擇要啟用此插件的服務,假設為google
,點選對應的編輯按鈕:
- 在編輯畫面中,點選上方的
外掛插件
頁籤,再點選頁籤內容上方的新增外掛插件
按鈕:
點選後,選擇 日誌
頁籤,並啟用 StatsD,填寫內容參考欄位配置說明,設定成功後,僅有此服務(範例為google
)請求的日誌會發送到所配置的 StatsD 遠端主機上。
#
在路由端上啟用插件可以由兩種方式來選擇路由,並啟用插件:
#
方式一:路由列表- 從網站左邊 Menu 中
服務 > 路由列表
頁面中,選擇要啟用此插件的路由,假設為google
,點選對應的編輯按鈕 :
#
方式二:服務 > 服務列表 > 路由列表- 從網站左邊 Menu 中
服務 > 服務列表
頁面中,選擇要啟用此插件的路由 所屬之服務(假設為google
),點選對應的編輯按鈕。
在編輯畫面中,點選上方的 路由
頁籤,選擇要啟用此插件的路由(假設為 google
),點選對應的編輯按鈕:
- 承第1步,點擊上述兩種方式之一的編輯按鈕後,在編輯畫面中,點選上方的
外掛插件
頁籤,再點選頁籤內容上方的新增外掛插件
按鈕:
點選新增外掛插件
按鈕後,選擇 日誌
頁籤,並啟用 StatsD,填寫內容參考欄位配置說明,設定成功後,僅有此路由(範例為google
)請求的日誌會發送到所配置的 StatsD 遠端主機上。
#
在用戶端上啟用插件- 從網站左邊 Menu 中
訂閱用戶 > 用戶列表
頁面中,選擇要啟用此插件的用戶,假設為portaladmin
,點選對應的編輯按鈕 :
- 在編輯畫面中,點選上方的
外掛插件
頁籤,再點選頁籤內容上方的新增外掛插件
按鈕:
點選後,選擇 日誌
頁籤,並啟用 StatsD,填寫內容參考欄位配置說明,設定成功後,僅有此用戶(範例為 portaladmin
)請求的日誌會發送到所配置的 StatsD 遠端主機上。
#
驗證啟用插件後,並設定對應指標(metrics),透過 GOC API Gateway 去呼叫服務後,再登入 StatsD 的服務頁面,即可看到如下圖的資料: