應用程式可觀察性
可用性
可觀測 API 是 partially implemented。目前有兩個有用的資料來源:
- 僅附加、手動填充的事件時間軸;和
- libvirt 報告的目前 VM 資源分配。
以下僅為合約預覽:
- 請求分析返回空匯總列表,因為訪問日誌攝取未運行;
- uptime-probe 配置仍然存在,但沒有調度程序執行 HTTP 檢查;
- 資源樣本為空,因為採樣器未運行;和
- 未實作應用程式日誌流。
沒有完整的可觀察性儀表板。儲存的探針配置並不能證明端點已被檢查。
目前 REST 表面
這些路線位於 /api/app-gateway 下方。
| 方法 | 路徑 | 今天證明了什麼 |
|---|---|---|
GET | /analytics/{slug}?days=7 | 合約是可以達成的; rollups 預計為空。 |
PUT | /probes/{slug} | 探頭配置經過驗證並儲存。 |
GET | /probes/{slug} | 可以讀取儲存的設定。運行時狀態保持未設定狀態。 |
DELETE | /probes/{slug} | 儲存的配置已被刪除。 |
POST | /events/{slug} | 附加了呼叫者提供的事件。 |
GET | /events/{slug}?limit=100 | 儲存的事件可以用最新先讀的方式讀取。 |
GET | /metrics/{slug}?vm_name={name} | 目前分配可能會被退回; samples 為空。 |
探針配置
PUT /api/app-gateway/probes/my-app
Content-Type: application/json
{
"path": "/healthz",
"interval_s": 60,
"expected_status": 200,
"timeout_s": 5,
"enabled": true
}目前的讀取如下所示:
{
"config": {
"path": "/healthz",
"interval_s": 60,
"expected_status": 200,
"timeout_s": 5,
"enabled": true
},
"last_run_at": null,
"last_status": null,
"last_http_status": null,
"consecutive_failures": 0
}null 運行時欄位是重要訊號:尚未執行任何檢查。使用外部監視器進行可用性警報,直到調度程序出貨。
活動
事件是透過 API 寫入的持久記錄,而不是自動完成的審核追蹤。部署、檢查點、域和 walker 掛鉤仍處於掛起狀態,因此呼叫者不得假設這些活動將在沒有明確附加的情況下出現。
將事件元資料視為呼叫者提供的資料。不要在其中放置秘密。
資源分配
當 libvirt 中存在匹配的 VM 時,指標路由可以報告分配的 vCPU、記憶體和磁碟。它尚未報告時間序列或應用程式層級的運行狀況。分配是容量配置,而不是應用程式使用該容量或在該容量下倖存下來的證據。
操作指導
直到部署攝取和工作循環:
- 使用外部 HTTP 監視器來確保正常運作時間;
- 使用運營商管理的機制收集應用程式日誌; 3.使用libvirt或主機遙測進行實際利用;和
- 將時間戳記和來源證據附加到事件記錄中,而不是僅依賴預覽事件清單。
只有在重新啟動安全的攝取、偵測、取樣和日誌流程工作人員通過端對端故障和復原測試後,此功能才能呈現為就緒狀態。