From ac94a67a499a4e37b7adb6a57e3935ba89a13e75 Mon Sep 17 00:00:00 2001 From: hsiegeln <37154749+hsiegeln@users.noreply.github.com> Date: Fri, 3 Apr 2026 22:05:29 +0200 Subject: [PATCH] =?UTF-8?q?fix:=20reduce=20ClickHouse=20CPU=20by=20increas?= =?UTF-8?q?ing=20flush=20interval,=20rename=20LIVE=E2=86=92AUTO=20labels?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Increase ingestion flush interval from 500ms to 5000ms to reduce MV merge storms - Reduce ClickHouse background_schedule_pool_size from 8 to 4 - Rename LIVE/PAUSED badge labels to AUTO/MANUAL across all pages - Update design system to v0.1.29 Co-Authored-By: Claude Opus 4.6 (1M context) --- cameleer3-server-app/src/main/resources/application.yml | 2 +- deploy/clickhouse.yaml | 2 +- ui/package-lock.json | 8 ++++---- ui/package.json | 2 +- ui/src/api/queries/use-refresh-interval.ts | 6 +++--- ui/src/pages/Admin/AuditLogPage.tsx | 2 +- ui/src/pages/Dashboard/Dashboard.tsx | 2 +- ui/src/pages/DashboardTab/DashboardL2.tsx | 2 +- ui/src/pages/Routes/RouteDetail.tsx | 2 +- ui/src/pages/Routes/RoutesMetrics.tsx | 2 +- 10 files changed, 15 insertions(+), 15 deletions(-) diff --git a/cameleer3-server-app/src/main/resources/application.yml b/cameleer3-server-app/src/main/resources/application.yml index 656ee68f..82e85261 100644 --- a/cameleer3-server-app/src/main/resources/application.yml +++ b/cameleer3-server-app/src/main/resources/application.yml @@ -35,7 +35,7 @@ agent-registry: ingestion: buffer-capacity: 50000 batch-size: 5000 - flush-interval-ms: 500 + flush-interval-ms: 5000 cameleer: body-size-limit: ${CAMELEER_BODY_SIZE_LIMIT:16384} diff --git a/deploy/clickhouse.yaml b/deploy/clickhouse.yaml index 2304a5f5..cb19e974 100644 --- a/deploy/clickhouse.yaml +++ b/deploy/clickhouse.yaml @@ -153,7 +153,7 @@ data: 1 1 2 - 8 + 4 1 1 0 diff --git a/ui/package-lock.json b/ui/package-lock.json index dae2de19..1f47cd0f 100644 --- a/ui/package-lock.json +++ b/ui/package-lock.json @@ -8,7 +8,7 @@ "name": "ui", "version": "0.0.0", "dependencies": { - "@cameleer/design-system": "^0.1.28", + "@cameleer/design-system": "^0.1.29", "@tanstack/react-query": "^5.90.21", "lucide-react": "^1.7.0", "openapi-fetch": "^0.17.0", @@ -278,9 +278,9 @@ } }, "node_modules/@cameleer/design-system": { - "version": "0.1.28", - "resolved": "https://gitea.siegeln.net/api/packages/cameleer/npm/%40cameleer%2Fdesign-system/-/0.1.28/design-system-0.1.28.tgz", - "integrity": "sha512-pDzuiIW2zpkYeX9mR1ENxO2Xk+GTMNUQzxsC7C+p0veEnOC1XObHse9Q06GKJQ9+mff0eFCk9cuYCwW3kwB0rA==", + "version": "0.1.29", + "resolved": "https://gitea.siegeln.net/api/packages/cameleer/npm/%40cameleer%2Fdesign-system/-/0.1.29/design-system-0.1.29.tgz", + "integrity": "sha512-Za4drshZhGqonR0QyZxDpo6UnhT+VaOCSRLIlmjRrVZD/8+E+wvjbCVO2/sX5EMCfho+x6Y6V7d4GHNwu38ioQ==", "dependencies": { "lucide-react": "^1.7.0", "react": "^19.0.0", diff --git a/ui/package.json b/ui/package.json index 2023fa07..3af36b36 100644 --- a/ui/package.json +++ b/ui/package.json @@ -14,7 +14,7 @@ "generate-api:live": "curl -s http://localhost:8081/api/v1/api-docs -o src/api/openapi.json && openapi-typescript src/api/openapi.json -o src/api/schema.d.ts" }, "dependencies": { - "@cameleer/design-system": "^0.1.28", + "@cameleer/design-system": "^0.1.29", "@tanstack/react-query": "^5.90.21", "lucide-react": "^1.7.0", "openapi-fetch": "^0.17.0", diff --git a/ui/src/api/queries/use-refresh-interval.ts b/ui/src/api/queries/use-refresh-interval.ts index 760f7d0c..374f99e7 100644 --- a/ui/src/api/queries/use-refresh-interval.ts +++ b/ui/src/api/queries/use-refresh-interval.ts @@ -10,9 +10,9 @@ export function useRefreshInterval(intervalMs: number): number | false { } /** - * Returns `enabled` and `refetchInterval` tied to the LIVE/PAUSED toggle. - * - LIVE: enabled=true, refetchInterval=intervalMs (fetch + poll) - * - PAUSED: enabled=true, refetchInterval=false (fetch once, no polling) + * Returns `enabled` and `refetchInterval` tied to the AUTO/MANUAL toggle. + * - AUTO: enabled=true, refetchInterval=intervalMs (fetch + poll) + * - MANUAL: enabled=true, refetchInterval=false (fetch once, no polling) */ export function useLiveQuery(intervalMs: number) { const { autoRefresh } = useGlobalFilters(); diff --git a/ui/src/pages/Admin/AuditLogPage.tsx b/ui/src/pages/Admin/AuditLogPage.tsx index bdf589ec..841748bf 100644 --- a/ui/src/pages/Admin/AuditLogPage.tsx +++ b/ui/src/pages/Admin/AuditLogPage.tsx @@ -124,7 +124,7 @@ export default function AuditLogPage() { {totalCount} events - + {rows.length.toLocaleString()} of {(searchResult?.total ?? 0).toLocaleString()} exchanges - {!textFilter && } + {!textFilter && } diff --git a/ui/src/pages/DashboardTab/DashboardL2.tsx b/ui/src/pages/DashboardTab/DashboardL2.tsx index 702d8076..0706bf3b 100644 --- a/ui/src/pages/DashboardTab/DashboardL2.tsx +++ b/ui/src/pages/DashboardTab/DashboardL2.tsx @@ -378,7 +378,7 @@ export default function DashboardL2() { Route Performance
{routeRows.length} routes - +
Processor Performance
{processorRows.length} processors - +
Per-Route Performance
{rows.length} routes - +