動態指標
動態指標可以透過編寫 Metric SQL 來動態地彙總想要的資料。
Metrics SQL 的語法細節可以參考這個文件。
全域性動態指標
全域性動態指標記錄的是全域性的動態指標資料,如當前閘道器快取命中率的統計,上游和下游流量大小,請求狀態碼的分佈等。
和應用動態指標不同的是,全域性動態指標提供了一個閘道器服務的篩選項,可以檢視每個閘道器服務的資料。
我們可以點選新增按鈕手動建立一個動態指標,也可以直接啟用標準動態指標中的一些指標。
新增一個動態指標,我們可以自己編寫 Metric SQL 來動態地彙總想要的資料。
Metrics SQL 的語法細節可以參考這個文件。
新增和剛啟用的動態指標,需等待一至兩分鐘才會有資料。
全域性標準動態指標
全域性標準動態指標彙集了很多常用的動態指標統計,極大的減少大家手動建立的成本。
以下是全域性標準動態指標的詳細介紹。
每秒請求數
每秒請求數 QPS(Queries Per Second),統計伺服器每秒查詢的數量。
select count(*) /60.0 as qps from http;
每分鐘請求數
統計伺服器每分鐘查詢的數量。
select count(*) as qpm from http;
狀態碼分佈
統計 HTTP 狀態碼的分佈情況。如 200, 301, 404, 500 等。
select status, count(*) from reqs group by status;
連線數
統計連線數,包括 writing,reading,reading 和 active 連線的數量。
select sum(writing_conns), sum(reading_conns), sum(waiting_conns), sum(active_conns)
from http;
Downstream 總流量
統計 downstream 總流量大小。
select sum(total_size) as downstream_bytes_total
from reqs;
Upstream 總流量
統計 upstream 總流量大小。
select sum(upstream_byte_total) as upstream_bytes_total
from reqs;
HTTP 代理快取命中率和丟失率
統計 HTTP 代理快取的命中率和丟失率等情況,例如 hit, miss, bypass, updating, revalidated, stale, expired 等。
select sum(total_size) as bytes_total, upstream_cache_status, count(*)
from reqs
where upstream_cache_status != ''
group by upstream_cache_status;
流量 Top 10 的域名
統計流量排名前 10 的域名。
select host, sum(total_size) as size
from reqs
group by host
order by size desc
limit 10;
訪問量 Top 10 的域名
統計訪問量排名前 10 的域名。
select host, count(*) as count
from reqs
group by host
order by count desc
limit 10;
流量 Top 10 的客戶端 IP
統計流量排名前 10 的客戶端 IP。
select client_ip, sum(total_size) as size
from reqs
group by client_ip
order by size desc
limit 10;
請求量 Top 10 客戶端 IP
統計請求量排名前 10 的客戶端 IP。
select client_ip, count(*) as count
from reqs
group by client_ip
order by count desc
limit 10;
響應壓縮情況
統計響應壓縮情況,我們可以看到壓縮和未壓縮的資料。
select resp_is_compressed, count(*)
from reqs
group by resp_is_compressed;
HTTP 版本
HTTP 版本分佈情況,如 HTTP/1.0, HTTP/1.1, HTTP/2, HTTP/3 等的資料。
select http_ver, count(*)
from reqs
group by http_ver;
SSL 加密連線
統計 SSL 加密連線的分佈情況。
select is_ssl, count(*)
from reqs
group by is_ssl;
Keepalive 連線
統計 keepalive 的連線情況。
select keepalive, count(*)
from reqs
group by keepalive;
應用動態指標
應用動態指標和全域性動態指標類似,但是隻會統計屬於當前應用下的請求。
應用動態指標和全域性動態指標一樣,也可以手動編寫指標 SQL 來動態地彙總想要的資料,或者是直接啟用標準動態指標中的一些指標。
Metrics SQL 的語法細節可以參考這個文件。
應用標準動態指標
應用標準動態指標彙集了很多常用的動態指標統計,極大的減少大家手動建立的成本。
應用標準動態指標和全域性動態指標相似,但只計算當前屬於應用的請求。
以下是每一個標準動態指標的詳細介紹。
每秒請求數
每秒請求數 QPS(Queries Per Second),統計伺服器每秒查詢的數量。
select count(*) /60.0 as qps from http;
每分鐘請求數
統計伺服器每分鐘查詢的數量。
select count(*) as qpm from http;
狀態碼分佈
統計 HTTP 狀態碼的分佈情況。如 200, 301, 404, 500 等。
select status, count(*) from reqs group by status;
連線數
統計連線數,包括 writing,reading,reading 和 active 連線的數量。
select sum(writing_conns), sum(reading_conns), sum(waiting_conns), sum(active_conns)
from http;
流量 Top 10 的 URI
統計流量排名前 10 的 URI。
select uri, sum(total_size) as size
from reqs
group by uri
order by size desc
limit 10;
訪問量 Top 10 的 URI
統計訪問量排名前 10 的 URI。
select uri, count(*) as count
from reqs
group by uri
order by count desc
limit 10;
平均延時 Top 10 的 URI
統計平均延時排名前 10 的 URI。
select uri, avg(latency_ms) as latency
from reqs
group by uri
order by latency desc
limit 10;
HTTP 代理快取命中率和丟失率
統計 HTTP 代理快取的命中率和丟失率,例如 hit, miss, bypass, updating, revalidated, stale, expired 等情況。
select sum(total_size) as bytes_total, upstream_cache_status, count(*)
from reqs
where upstream_cache_status != ''
group by upstream_cache_status;
響應壓縮情況
統計響應壓縮情況,我們可以看到壓縮和未壓縮的資料。
select resp_is_compressed, count(*)
from reqs
group by resp_is_compressed;
HTTP 版本
HTTP 版本分佈情況,如 HTTP/1.0, HTTP/1.1, HTTP/2, HTTP/3 等的資料。
select http_ver, count(*)
from reqs
group by http_ver;
SSL 加密連線
統計 SSL 加密連線的分佈情況。
select is_ssl, count(*)
from reqs
group by is_ssl;
Keepalive 連線
統計 keepalive 的連線情況。
select keepalive, count(*)
from reqs
group by keepalive;
流量 Top 10 的客戶端城市
統計流量排名前 10 的客戶端城市。
select client_city, count(*) as count
from reqs
group by client_city
order by count desc
limit 10;
流量 Top 10 的客戶端 IP
統計流量排名前 10 的客戶端 IP。
select client_ip, sum(total_size) as size
from reqs
group by client_ip
order by size desc
limit 10;
請求量 Top 10 的客戶端 IP
統計請求量排名前 10 的客戶端 IP。
select client_ip, count(*) as count
from reqs
group by client_ip
order by count desc
limit 10;
平均延時 Top 10 的客戶端 IP
統計平均延時排名前 10 的客戶端 IP。
select client_ip, avg(latency_ms) as latency
from reqs
group by client_ip
order by latency desc
limit 10;
請求數流量地圖
以地圖的形式展示全球請求數。
select count(*), client_city, client_latitude, client_longtitude, server_city, server_latitude, server_longtitude
from reqs
group by client_city, client_latitude, client_longtitude, server_city, server_latitude, server_longtitude;
請求大小流量地圖
以地圖的形式展示全球的請求流量。
select sum(total_size), client_city, client_latitude, client_longtitude, server_city, server_latitude, server_longtitude
from reqs
group by client_city, client_latitude, client_longtitude, server_city, server_latitude, server_longtitude;
響應總大小流量地圖
以地圖的形式展示全球的響應流量。
select sum(resp_size), client_city, client_latitude, client_longtitude, server_city, server_latitude, server_longtitude
from reqs
group by client_city, client_latitude, client_longtitude, server_city, server_latitude, server_longtitude;
平均延時 Top 10 的上游地址
統計平均延時排名前 10 的上游地址。
select upstream_addr, avg(upstream_total_time_ms) as latency
from reqs
group by upstream_addr
order by latency desc
limit 10;