feat(logs): metrics 指标代理端点(admin) + 快捷查询选中 App/Pod 即插入并执行
- POST /logs/metrics:LogQL 指标查询代理,[$step] 占位符按跨度自适应步长,返回多序列(httptest 假 Loki 单测) - 快捷查询:选中 App/Pod 即写入输入框并立即查询,面板保持打开支持 Pod 级联;命名空间仅级联筛选不插入,切换时清理失效标签 - 删除冗余的「查询该范围日志」「指定副本日志」按钮;Ingress 按钮仅在选择 ingress 命名空间/app 时显示 - /logs 支持 ?q= 预填自动执行(表格「查看日志」跳转入口) - 清理无引用死组件 LogResults/LogHistogram
This commit is contained in:
1 parent
5ce90fe2e5
commit
16306a9532
10 files changed
+264
-295
No files matched your search
@@ -317,3 +317,27 @@ func (ctrl *LogsController) Histogram(c *gin.Context) {
|
||||
}
|
||||
utils.Success(c, buckets)
|
||||
}
|
||||
|
||||
// Metrics 日志分析指标查询(仅 admin,路由层 AdminAuth 拦截)
|
||||
func (ctrl *LogsController) Metrics(c *gin.Context) {
|
||||
var req dto.LogMetricQueryRequest
|
||||
if !utils.BindAndValidate(c, &req) {
|
||||
return
|
||||
}
|
||||
src := services.GetLogSource(req.SourceID)
|
||||
if src == nil {
|
||||
utils.BadRequest(c, "数据源不存在")
|
||||
return
|
||||
}
|
||||
query, err := services.AuthorizedLogQuery(src, c.GetUint("userId"), c.GetString("role") == "admin", req.Query)
|
||||
if err != nil {
|
||||
utils.Forbidden(c, err.Error())
|
||||
return
|
||||
}
|
||||
series, err := services.LokiMetrics(c.Request.Context(), src, query, req.Start, req.End)
|
||||
if err != nil {
|
||||
utils.Error(c, 502, err.Error())
|
||||
return
|
||||
}
|
||||
utils.Success(c, series)
|
||||
}
|
||||
Reference in new issue
Block a user