活動合約
查詢期望的欄位
| 欄位 | 型別 | 為什麼存在 |
|---|---|---|
| timestamp_utc | Timestamp | 終端遷移時間(UTC)。 |
| migration_id | Utf8 | 來自原始碼控制的穩定遷移識別符號。 |
| service | Utf8 | 執行遷移的服務或部署作業。 |
| database_name | Utf8 | 批准的邏輯資料庫名稱。 |
| release | Utf8 | 應用程式或基礎設施發布。 |
| status | Utf8 | 成功、失敗或 rolled_back。 |
| duration_ms | Float64 | 遷移執行持續時間。 |
| error_type | Utf8 | 沒有原始資料庫輸出的受控故障類別。 |
| environment | Utf8 | 部署環境。 |
DataFusion SQL
複製查詢
sql
SELECT
release,
service,
database_name,
COUNT(*) AS migrations,
SUM(CASE WHEN status = 'success' THEN 1 ELSE 0 END) AS successful,
SUM(CASE WHEN status = 'failed' THEN 1 ELSE 0 END) AS failed,
SUM(CASE WHEN status = 'rolled_back' THEN 1 ELSE 0 END) AS rolled_back,
100.0 * SUM(CASE WHEN status = 'success' THEN 1 ELSE 0 END)
/ NULLIF(COUNT(*), 0) AS success_rate_pct,
AVG(duration_ms) AS average_duration_ms
FROM database_migration_events
WHERE timestamp_utc >= now() - INTERVAL '30 days'
AND environment = 'production'
GROUP BY release, service, database_name
ORDER BY release DESC;此只讀查詢是針對空型別資料表計劃和執行的 阿帕奇 DataFusion 45.2.0。確定性樣本輸出是綜合的並單獨審查;根據您自己的資料驗證欄位型別、閾值和業務定義。 閱讀測試方法。
查詢結果
按版本劃分的遷移成功率
較新的版本包含失敗的遷移和回滾的遷移,不應視為完成。
2026.07.2
60%
comparison 1%
2026.07.1
100%
comparison 0%
| release | service | database_name | migrations | successful | failed | rolled_back | success_rate_pct | average_duration_ms |
|---|---|---|---|---|---|---|---|---|
| 2026.07.2 | application-api | app_production | 5 | 3 | 1 | 1 | 60 | 1,470 |
| 2026.07.1 | application-api | app_production | 5 | 5 | 0 | 0 | 100 | 890 |
綜合範例輸出。在將其用於操作決策之前,針對您自己的事件架構和閾值執行查詢。
SQL 是如何工作的
- 1每次遷移的一個終端行可防止啟動和重試事件導致分母膨脹。
- 2失敗和回滾結果仍然是分開的,因為成功回滾仍然意味著遷移未交付。
- 3版本、服務和資料庫確定了需要審查的確切部署邊界。
需要決定的邊緣情況
- 某些遷移工具會自動重試。在發出一個最終結果時單獨保留嘗試計數。
- 成功的遷移在邏輯上仍然可能是錯誤的;將此檢視與應用程式執行狀況和部署後驗證配對。
- 不要記錄原始 DDL、連線字串或不受限制的資料庫錯誤文字。
推薦儀表板
- 條形:success_rate_pct(按版本)
- 資料表:失敗和回滾的遷移 ID
- 趨勢:遷移持續時間和部署計數
讓查詢範例發揮作用
相關埋點和指南
繼續分析
在真實事件中執行它
建立資料表,調整欄位並儲存結果
免費開始,傳送結構化事件,並將查詢結果用作圖表、共享儀表板小工具或警示輸入。