Files
LokiStack/backend/dto/logs.go
T
opsx 16306a9532 feat(logs): metrics 指标代理端点(admin) + 快捷查询选中 App/Pod 即插入并执行
- POST /logs/metrics:LogQL 指标查询代理,[$step] 占位符按跨度自适应步长,返回多序列(httptest 假 Loki 单测)
- 快捷查询:选中 App/Pod 即写入输入框并立即查询,面板保持打开支持 Pod 级联;命名空间仅级联筛选不插入,切换时清理失效标签
- 删除冗余的「查询该范围日志」「指定副本日志」按钮;Ingress 按钮仅在选择 ingress 命名空间/app 时显示
- /logs 支持 ?q= 预填自动执行(表格「查看日志」跳转入口)
- 清理无引用死组件 LogResults/LogHistogram
2026-10-28 22:43:57 +08:00

49 lines
2.0 KiB
Go

package dto
import "lokistack/models"
// 日志查询域
type LogSourceRequest struct {
ID uint `json:"id"`
Name string `json:"name"`
TargetType string `json:"targetType" binding:"omitempty,oneof=cluster-svc url"`
ClusterID uint `json:"clusterID"`
Namespace string `json:"namespace"`
Service string `json:"service"`
Port int `json:"port"`
URL string `json:"url"`
AuthType string `json:"authType"`
BasicUser string `json:"basicUser"`
BasicPass string `json:"basicPass"`
BearerToken string `json:"bearerToken"`
Headers map[string]string `json:"headers"`
SkipTLSVerify bool `json:"skipTLSVerify"`
IsDefault bool `json:"isDefault"`
Access []models.LogSourceAccess `json:"access"`
}
type LogQueryRequest struct {
SourceID uint `json:"sourceId" binding:"required"`
Query string `json:"query" binding:"required"`
Start int64 `json:"start"` // epoch 纳秒
End int64 `json:"end"`
Limit int `json:"limit"`
Direction string `json:"direction"`
Cursor string `json:"cursor"`
}
// LogMetricQueryRequest 日志分析指标查询:Query 为完整 LogQL 指标表达式,
// 其中的 [$step] 占位符由服务端按时间跨度替换为自适应步长(与直方图同款)
type LogMetricQueryRequest struct {
SourceID uint `json:"sourceId" binding:"required"`
Query string `json:"query" binding:"required"`
Start int64 `json:"start"` // epoch 纳秒
End int64 `json:"end"`
}
type LogContextRequest struct {
SourceID uint `json:"sourceId" binding:"required"`
TimestampNs string `json:"timestampNs" binding:"required"`
Labels map[string]string `json:"labels" binding:"required"`
}