活動合約
查詢期望的欄位
| 欄位 | 型別 | 為什麼存在 |
|---|---|---|
| timestamp_utc | Timestamp | 請求完成時間(UTC)。 |
| route_template | Utf8 | 有界路由範本,而不是原始 URL。 |
| status_code | Int64 | HTTP 回應狀態。 |
| environment | Utf8 | 部署環境。 |
DataFusion SQL
複製查詢
sql
SELECT
route_template,
COUNT(*) AS requests,
SUM(CASE WHEN status_code >= 500 THEN 1 ELSE 0 END) AS errors,
60.0 * COUNT(*) / NULLIF(
date_part('epoch', MAX(timestamp_utc) - MIN(timestamp_utc)),
0
) AS requests_per_minute
FROM api_throughput_events
WHERE timestamp_utc >= now() - INTERVAL '24 hours'
AND environment = 'production'
GROUP BY route_template
ORDER BY requests_per_minute DESC, route_template;此只讀查詢是針對空型別資料表計劃和執行的 阿帕奇 DataFusion 45.2.0。確定性樣本輸出是綜合的並單獨審查;根據您自己的資料驗證欄位型別、閾值和業務定義。 閱讀測試方法。
查詢結果
按路由觀察的請求吞吐量
搜尋具有最高的觀察到的請求率,並且還有 5xx 回應需要調查。
/api/search
0.2 RPM
comparison 1 RPM
/api/checkout
0.13 RPM
comparison 0 RPM
| route_template | requests | errors | requests_per_minute |
|---|---|---|---|
| /api/search | 6 | 1 | 0.2 |
| /api/checkout | 4 | 0 | 0.13 |
綜合範例輸出。在將其用於操作決策之前,針對您自己的事件架構和閾值執行查詢。
SQL 是如何工作的
- 1對受控路由範本進行分組可避免每個資源識別符號或查詢字串有一個系列。
- 2分母使用每條路由的觀察到的跨度,這對於稀疏路由來說比除以整個回溯視窗更安全。
- 3錯誤計數保留在結果中,因此可以將流量激增與相同粒度的可靠性進行比較。
需要決定的邊緣情況
- 對於生產圖表,彙總到完整的固定時間段中,以便相鄰期間可以直接比較。
- 具有一個請求的路由沒有觀察到的跨度; NULLIF 返回 null 而不是發明比率。
- 如果內部健康檢查和合成流量會扭曲客戶需求,則將其分開。
推薦儀表板
- 趨勢:完整五分鐘桶中每分鐘的請求數
- 酒吧:requests_per_minute by route_template
- 疊加:錯誤率和部署標記
讓查詢範例發揮作用
相關埋點和指南
繼續分析
在真實事件中執行它
建立資料表,調整欄位並儲存結果
免費開始,傳送結構化事件,並將查詢結果用作圖表、共享儀表板小工具或警示輸入。