動態指標

動態指標可以透過編寫 Metric SQL 來動態地彙總想要的資料。

Metrics SQL 的語法細節可以參考這個文件

全域性動態指標

全域性動態指標記錄的是全域性的動態指標資料,如當前閘道器快取命中率的統計,上游和下游流量大小,請求狀態碼的分佈等。

和應用動態指標不同的是,全域性動態指標提供了一個閘道器服務的篩選項,可以檢視每個閘道器服務的資料。

Screenshot

我們可以點選新增按鈕手動建立一個動態指標,也可以直接啟用標準動態指標中的一些指標。

Screenshot

新增一個動態指標,我們可以自己編寫 Metric SQL 來動態地彙總想要的資料。

Metrics SQL 的語法細節可以參考這個文件

Screenshot

新增和剛啟用的動態指標,需等待一至兩分鐘才會有資料。

全域性標準動態指標

全域性標準動態指標彙集了很多常用的動態指標統計,極大的減少大家手動建立的成本。

以下是全域性標準動態指標的詳細介紹。

每秒請求數

每秒請求數 QPS(Queries Per Second),統計伺服器每秒查詢的數量。

select count(*) /60.0 as qps from http;

Screenshot

每分鐘請求數

統計伺服器每分鐘查詢的數量。

select count(*) as qpm from http;

Screenshot

狀態碼分佈

統計 HTTP 狀態碼的分佈情況。如 200, 301, 404, 500 等。

select status, count(*) from reqs group by status;

Screenshot

連線數

統計連線數,包括 writing,reading,reading 和 active 連線的數量。

select sum(writing_conns), sum(reading_conns), sum(waiting_conns), sum(active_conns)
from http;

Screenshot

Downstream 總流量

統計 downstream 總流量大小。

select sum(total_size) as downstream_bytes_total
from reqs;

Screenshot

Upstream 總流量

統計 upstream 總流量大小。

select sum(upstream_byte_total) as upstream_bytes_total
from reqs;

Screenshot

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;

Screenshot

流量 Top 10 的域名

統計流量排名前 10 的域名。

select host, sum(total_size) as size
from reqs
group by host
order by size desc
limit 10;

Screenshot

訪問量 Top 10 的域名

統計訪問量排名前 10 的域名。

select host, count(*) as count
from reqs
group by host
order by count desc
limit 10;

Screenshot

流量 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;

Screenshot

請求量 Top 10 客戶端 IP

統計請求量排名前 10 的客戶端 IP。

select client_ip, count(*)  as count
from reqs
group by client_ip
order by count desc
limit 10;

Screenshot

響應壓縮情況

統計響應壓縮情況,我們可以看到壓縮和未壓縮的資料。

select resp_is_compressed, count(*)
from reqs
group by resp_is_compressed;

Screenshot

HTTP 版本

HTTP 版本分佈情況,如 HTTP/1.0, HTTP/1.1, HTTP/2, HTTP/3 等的資料。

select http_ver, count(*)
from reqs
group by http_ver;

Screenshot

SSL 加密連線

統計 SSL 加密連線的分佈情況。

select is_ssl, count(*)
from reqs
group by is_ssl;

Screenshot

Keepalive 連線

統計 keepalive 的連線情況。

select keepalive, count(*)
from reqs
group by keepalive;

Screenshot

應用動態指標

應用動態指標和全域性動態指標類似,但是隻會統計屬於當前應用下的請求。

應用動態指標和全域性動態指標一樣,也可以手動編寫指標 SQL 來動態地彙總想要的資料,或者是直接啟用標準動態指標中的一些指標。

Metrics SQL 的語法細節可以參考這個文件

Screenshot

Screenshot

應用標準動態指標

應用標準動態指標彙集了很多常用的動態指標統計,極大的減少大家手動建立的成本。

應用標準動態指標和全域性動態指標相似,但只計算當前屬於應用的請求。

以下是每一個標準動態指標的詳細介紹。

每秒請求數

每秒請求數 QPS(Queries Per Second),統計伺服器每秒查詢的數量。

select count(*) /60.0 as qps from http;

Screenshot

每分鐘請求數

統計伺服器每分鐘查詢的數量。

select count(*) as qpm from http;

Screenshot

狀態碼分佈

統計 HTTP 狀態碼的分佈情況。如 200, 301, 404, 500 等。

select status, count(*) from reqs group by status;

Screenshot

連線數

統計連線數,包括 writing,reading,reading 和 active 連線的數量。

select sum(writing_conns), sum(reading_conns), sum(waiting_conns), sum(active_conns)
from http;

Screenshot

流量 Top 10 的 URI

統計流量排名前 10 的 URI。

select uri, sum(total_size) as size
from reqs
group by uri
order by size desc
limit 10;

Screenshot

訪問量 Top 10 的 URI

統計訪問量排名前 10 的 URI。

select uri, count(*) as count
from reqs
group by uri
order by count desc
limit 10;

Screenshot

平均延時 Top 10 的 URI

統計平均延時排名前 10 的 URI。

select uri, avg(latency_ms) as latency
from reqs
group by uri
order by latency desc
limit 10;

Screenshot

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;

Screenshot

響應壓縮情況

統計響應壓縮情況,我們可以看到壓縮和未壓縮的資料。

select resp_is_compressed, count(*)
from reqs
group by resp_is_compressed;

Screenshot

HTTP 版本

HTTP 版本分佈情況,如 HTTP/1.0, HTTP/1.1, HTTP/2, HTTP/3 等的資料。

select http_ver, count(*)
from reqs
group by http_ver;

Screenshot

SSL 加密連線

統計 SSL 加密連線的分佈情況。

select is_ssl, count(*)
from reqs
group by is_ssl;

Screenshot

Keepalive 連線

統計 keepalive 的連線情況。

select keepalive, count(*)
from reqs
group by keepalive;

Screenshot

流量 Top 10 的客戶端城市

統計流量排名前 10 的客戶端城市。

select client_city, count(*) as count
from reqs
group by client_city
order by count desc
limit 10;

Screenshot

流量 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;

Screenshot

請求量 Top 10 的客戶端 IP

統計請求量排名前 10 的客戶端 IP。

select client_ip, count(*) as count
from reqs
group by client_ip
order by count desc
limit 10;

Screenshot

平均延時 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;

Screenshot

請求數流量地圖

以地圖的形式展示全球請求數。

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;

Screenshot

請求大小流量地圖

以地圖的形式展示全球的請求流量。

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;

Screenshot

響應總大小流量地圖

以地圖的形式展示全球的響應流量。

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;

Screenshot

平均延時 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;

Screenshot