应用程序可观察性
可用性
可观测性 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或主机遥测进行实际利用;和
- 将时间戳和来源证据附加到事件记录中,而不是仅仅依赖预览事件列表。
仅当重新启动安全的摄取、探测、采样和日志流工作人员通过端到端故障和恢复测试后,该功能才能呈现为就绪状态。