feat(alerting): Plan 03 — UI + backfills (SSRF guard, metrics caching, docker stack) #144
@@ -1,9 +1,9 @@
|
||||
import { FormField, Input, Select } from '@cameleer/design-system';
|
||||
import type { FormState } from '../form-state';
|
||||
|
||||
// Mirrors cameleer-server-core RouteMetric enum — keep in sync.
|
||||
const METRICS = [
|
||||
{ value: 'ERROR_RATE', label: 'Error rate' },
|
||||
{ value: 'P95_LATENCY_MS', label: 'P95 latency (ms)' },
|
||||
{ value: 'P99_LATENCY_MS', label: 'P99 latency (ms)' },
|
||||
{ value: 'AVG_DURATION_MS', label: 'Avg duration (ms)' },
|
||||
{ value: 'THROUGHPUT', label: 'Throughput (msg/s)' },
|
||||
|
||||
@@ -51,7 +51,17 @@ export function initialForm(existing?: AlertRuleResponse): FormState {
|
||||
routeId: '',
|
||||
agentId: '',
|
||||
conditionKind: 'ROUTE_METRIC',
|
||||
condition: { kind: 'ROUTE_METRIC' } as Partial<AlertCondition>,
|
||||
// Pre-populate a valid ROUTE_METRIC default so a rule can be saved without
|
||||
// the user needing to fill in every condition field. Values chosen to be
|
||||
// sane for "error rate" alerts on almost any route.
|
||||
condition: {
|
||||
kind: 'ROUTE_METRIC',
|
||||
scope: {},
|
||||
metric: 'ERROR_RATE',
|
||||
comparator: 'GT',
|
||||
threshold: 0.05,
|
||||
windowSeconds: 300,
|
||||
} as unknown as Partial<AlertCondition>,
|
||||
evaluationIntervalSeconds: 60,
|
||||
forDurationSeconds: 0,
|
||||
reNotifyMinutes: 60,
|
||||
|
||||
Reference in New Issue
Block a user