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"` // 上下文前后各取几条(可选)。不传按 DefaultContextLines, // 上限 MaxContextLines —— 原来前后各 5 条是写死的,不能调。 Before int `json:"before"` After int `json:"after"` }