feat(traffic): разделить плоскости IPFIX и показать путь JH→EN
Docker images / prepare-release (push) Successful in 8s
Docker images / backend-image (push) Failing after 1m31s
Docker images / frontend-image (push) Successful in 2m36s
Docker images / notify-webhook (push) Skipped
Docker images / updater-image (push) Successful in 42s
Docker images / publish-release (push) Skipped
Docker images / prepare-release (push) Successful in 8s
Docker images / backend-image (push) Failing after 1m31s
Docker images / frontend-image (push) Successful in 2m36s
Docker images / notify-webhook (push) Skipped
Docker images / updater-image (push) Successful in 42s
Docker images / publish-release (push) Skipped
Считать payload отдельно от overlay GRE/ESP и mesh; вкладка Пути и KPI Wire из счётчиков iface. Co-authored-by: Cursor <[email protected]>
This commit is contained in:
@@ -80,11 +80,18 @@ export const flowTalkerDtoSchema = z.object({
|
||||
bps: z.number().nonnegative(),
|
||||
inIface: z.string(),
|
||||
inIfaceIndex: z.string().optional(),
|
||||
outIface: z.string().optional(),
|
||||
nextHop: z.string().optional(),
|
||||
application: z.string().optional(),
|
||||
category: z.string().optional(),
|
||||
service: z.string().optional(),
|
||||
dstCountry: z.string().optional(),
|
||||
dstAsn: z.number().int().optional(),
|
||||
clientId: z.string().optional(),
|
||||
clientName: z.string().optional(),
|
||||
enId: z.string().optional(),
|
||||
enName: z.string().optional(),
|
||||
plane: z.string().optional(),
|
||||
})
|
||||
|
||||
export const flowStatsDtoSchema = z.object({
|
||||
@@ -148,6 +155,26 @@ export const flowMapEdgeSchema = z.object({
|
||||
bps: z.number().nonnegative(),
|
||||
})
|
||||
|
||||
export const flowPathRowSchema = z.object({
|
||||
id: z.string(),
|
||||
clientId: z.string(),
|
||||
clientName: z.string(),
|
||||
ifaces: z.string(),
|
||||
serverId: z.string(),
|
||||
serverName: z.string(),
|
||||
inIface: z.string(),
|
||||
outIface: z.string(),
|
||||
enId: z.string(),
|
||||
enName: z.string(),
|
||||
dst: z.string(),
|
||||
service: z.string(),
|
||||
category: z.string(),
|
||||
plane: z.string(),
|
||||
bytes: z.number().nonnegative(),
|
||||
packets: z.number().nonnegative(),
|
||||
bps: z.number().nonnegative(),
|
||||
})
|
||||
|
||||
export const flowAnalyticsDtoSchema = z.object({
|
||||
bpsNow: z.number().nonnegative(),
|
||||
bytes: z.number().nonnegative(),
|
||||
@@ -171,10 +198,19 @@ export const flowAnalyticsDtoSchema = z.object({
|
||||
services: z.array(flowBreakdownRowSchema).optional(),
|
||||
mapEdges: z.array(flowMapEdgeSchema).optional(),
|
||||
conversationsList: z.array(flowTalkerDtoSchema),
|
||||
paths: z.array(flowPathRowSchema).optional(),
|
||||
ifaces: z.array(flowIfaceChipSchema),
|
||||
live: z.boolean(),
|
||||
dedupApplied: z.boolean().optional(),
|
||||
degraded: z.boolean().optional(),
|
||||
bytesPayload: z.number().nonnegative().optional(),
|
||||
bytesOverlay: z.number().nonnegative().optional(),
|
||||
bytesMesh: z.number().nonnegative().optional(),
|
||||
bytesWire: z.number().nonnegative().optional(),
|
||||
bpsOverlay: z.number().nonnegative().optional(),
|
||||
bpsWire: z.number().nonnegative().optional(),
|
||||
excludeMeshApplied: z.boolean().optional(),
|
||||
excludeOverlayApplied: z.boolean().optional(),
|
||||
})
|
||||
|
||||
export const flowExportersDtoSchema = z.object({
|
||||
@@ -199,13 +235,28 @@ export const flowMonthlyDtoSchema = z.object({
|
||||
asns: z.array(flowBreakdownRowSchema),
|
||||
})
|
||||
|
||||
export const flowPurgeDtoSchema = z.object({
|
||||
ok: z.literal(true),
|
||||
deleted: z.object({
|
||||
buckets: z.number().int().nonnegative(),
|
||||
minuteStats: z.number().int().nonnegative(),
|
||||
minuteDims: z.number().int().nonnegative(),
|
||||
dailyDims: z.number().int().nonnegative(),
|
||||
}),
|
||||
fileBytesBefore: z.number().int().nonnegative(),
|
||||
fileBytesAfter: z.number().int().nonnegative(),
|
||||
vacuumed: z.boolean(),
|
||||
})
|
||||
|
||||
export type FlowTalkerDto = z.infer<typeof flowTalkerDtoSchema>
|
||||
export type FlowStatsDto = z.infer<typeof flowStatsDtoSchema>
|
||||
export type FlowBreakdownRow = z.infer<typeof flowBreakdownRowSchema>
|
||||
export type FlowIfaceChip = z.infer<typeof flowIfaceChipSchema>
|
||||
export type FlowEntityCard = z.infer<typeof flowEntityCardSchema>
|
||||
export type FlowMapEdge = z.infer<typeof flowMapEdgeSchema>
|
||||
export type FlowPathRow = z.infer<typeof flowPathRowSchema>
|
||||
export type FlowAnalyticsDto = z.infer<typeof flowAnalyticsDtoSchema>
|
||||
export type FlowExportersDto = z.infer<typeof flowExportersDtoSchema>
|
||||
export type FlowClientsDto = z.infer<typeof flowClientsDtoSchema>
|
||||
export type FlowMonthlyDto = z.infer<typeof flowMonthlyDtoSchema>
|
||||
export type FlowPurgeDto = z.infer<typeof flowPurgeDtoSchema>
|
||||
|
||||
Reference in New Issue
Block a user