fix(frontend): 补齐 analysis 构建依赖与共享组件搬迁
补 commit hooks/图表组件、路由与 i18n domains、logs metrics API; StatCard/TimeRangePicker/ingress-access-log 抽到共享路径,干净 checkout 可编过。
This commit is contained in:
1 parent
f993d5b420
commit
11d0fff764
22 files changed
+552
-313
No files matched your search
@@ -14,6 +14,11 @@ export interface LogEntry { timestamp: string; timestampNs: string; level: strin
|
||||
export interface HistogramBucket { timestamp: string; count: number }
|
||||
export interface LogResult { entries: LogEntry[]; hasMore: boolean; nextCursor: string }
|
||||
export interface LogQuery { sourceId: number; query: string; start: number; end: number; limit?: number; direction?: 'backward' | 'forward'; cursor?: string }
|
||||
/** 指标序列采样点(日志分析页) */
|
||||
export interface MetricPoint { timestamp: string; value: number }
|
||||
/** 一条按标签分组的指标序列(如 sum by (app)(...) 中每个 app 一条) */
|
||||
export interface MetricSeries { labels: Record<string, string>; points: MetricPoint[] }
|
||||
export interface MetricQuery { sourceId: number; query: string; start: number; end: number }
|
||||
export const logsApi = {
|
||||
sources: () => http.get<PageData<LogSource>>('/logs/sources'),
|
||||
createSource: (source: Partial<LogSource> & { basicPass?: string; bearerToken?: string }) => http.post<LogSource>('/logs/sources', source),
|
||||
@@ -23,6 +28,8 @@ export const logsApi = {
|
||||
query: (data: LogQuery) => http.post<LogResult>('/logs/query', data, { timeout: 125000 }),
|
||||
context: (data: { sourceId: number; timestampNs: string; labels: Record<string, string> }) => http.post<{ before: LogEntry[]; after: LogEntry[] }>('/logs/context', data),
|
||||
histogram: (data: LogQuery) => http.post<Array<Record<string, unknown>>>('/logs/histogram', data, { timeout: 125000 }),
|
||||
/** LogQL 指标查询(admin):query 中的 [$step] 占位符由后端按时间跨度替换 */
|
||||
metrics: (data: MetricQuery, opts?: { signal?: AbortSignal }) => http.post<MetricSeries[]>('/logs/metrics', data, { timeout: 125000, ...opts }),
|
||||
labels: (sourceId: number, start?: number, end?: number) => http.get<string[]>(`/logs/labels${buildQuery({ sourceId, start, end } as { page?: number; pageSize?: number })}`),
|
||||
labelValues: (sourceId: number, name: string, query = '', start?: number, end?: number) => http.get<string[]>(`/logs/label/${encodeURIComponent(name)}/values${buildQuery({ sourceId, query, start, end } as { page?: number; pageSize?: number })}`),
|
||||
/** 当前用户在某数据源上的授权范围(策略 labels;管理员 unrestricted=true) */
|
||||
|
||||
Reference in new issue
Block a user