Skip to main content

Configuration reference

This page is generated from the Kwatch configuration catalog. Edit the Go configuration source and catalog metadata instead of editing this page.

Performance

FieldTypeDefaultStatusDescription
workersinteger1activeNumber of Kubernetes work queues processed in parallel.
resyncSecondsinteger0activePeriodic safety resync interval in seconds; zero keeps event-driven mode.

Alerts

FieldTypeDefaultStatusDescription
maxRecentLogLinesinteger50activeMaximum recent log lines attached to an incident.
containerRestartThresholdinteger0activeAlert when a container reaches this cumulative restart count; zero disables it.
includeEventsbooleantrueactiveInclude recent Kubernetes events in incident messages.
includeLogsbooleantrueactiveInclude recent container logs in incident messages.
severityByOwnerKindjson{}activeJSON map overriding severity by workload owner kind.
severityByReasonjson{}activeJSON map overriding severity by detected reason.

Scope

FieldTypeDefaultStatusDescription
namespaceslistallactiveComma-separated namespaces to watch; leave empty to watch every namespace.
namespaceSelectorstringemptyactiveKubernetes label selector used to choose namespaces.
reasonslistallactiveComma-separated event reasons to allow or exclude with a leading !.

Noise reduction

FieldTypeDefaultStatusDescription
ignoreFailedGracefulShutdownbooleantrueactiveIgnore forceful container termination during an intentional shutdown.
ignoreDisruptionTerminationsbooleantrueactiveIgnore pods being deliberately evicted, preempted, or disrupted.
adaptiveThresholdsbooleantrueactiveAdd bounded grace during normal partial rollouts.
reportStartupBaselinebooleantrueactiveSummarize issues that already existed when kwatch started.
smartGrouping.windowSecondsinteger60activeSeconds for grouping related failures into one notification.
smartGrouping.namespaceFanOutThresholdinteger3activeOwners failing alike before a namespace fan-out incident is created.
inhibition.nodeSuppressesPodsbooleantrueactiveSuppress pod symptoms while their node has an active incident.
silencesjson[]activeJSON array of scoped silence rules, including eventMessages substring matches for attached Kubernetes Events.

Incident memory

FieldTypeDefaultStatusDescription
correlation.windowinteger10activeMinutes in which related signals are correlated.
correlation.lifecycleIntervalinteger1activeMinutes between lifecycle and resolution sweeps.
correlation.resolveHoldDowninteger300activeSeconds a signal must stay healthy before resolving.
correlation.cooldownMinutesinteger10deprecatedAccepted and ignored; the post-resolve cooldown is correlation.window.
correlation.maxBaselineinteger5000activeMaximum persisted baseline entries.
correlation.escalationjson{"enabled":true,"tiers":[3,10]}activeJSON object controlling restart-count severity escalation.
correlation.renotifyjson{"maxPerIncident":3}activeJSON object controlling periodic re-notification.

Monitors

FieldTypeDefaultStatusDescription
nodeMonitor.enabledbooleantrueactiveWatch node readiness and pressure conditions.
nodeMonitor.sustainedMinutesinteger3activeMinutes a node condition must persist before alerting.
pvcMonitor.enabledbooleantrueactiveWatch mounted PVC usage and storage pressure.
pvcMonitor.intervalinteger5activeMinutes between PVC usage checks.
pvcMonitor.thresholdfloat80activePVC usage percentage that creates a warning.
pvcMonitor.criticalThresholdfloat90activePVC usage percentage that creates a high-severity alert.
pvcMonitor.clearThresholdfloat75activePVC usage percentage below which an alert resolves.
rolloutMonitor.enabledbooleantrueactiveWatch Deployments for stuck rollouts.
rolloutMonitor.sustainedMinutesinteger5activeMinutes a Deployment may remain unavailable before alerting.
statefulSetMonitor.enabledbooleantrueactiveWatch StatefulSets for stuck updates.
statefulSetMonitor.sustainedMinutesinteger5activeMinutes a StatefulSet may remain unavailable before alerting.
daemonSetMonitor.enabledbooleantrueactiveWatch DaemonSets for unavailable pods and scheduling failures.
daemonSetMonitor.sustainedMinutesinteger5activeMinutes a DaemonSet may remain unavailable before alerting.
jobMonitor.enabledbooleantrueactiveWatch Jobs for failures and deadline problems.
cronJobMonitor.enabledbooleantrueactiveWatch CronJobs for missed or suspended work.
cronJobMonitor.sustainedMinutesinteger5activeMinutes a CronJob condition must persist before alerting.
hpaMonitor.enabledbooleantrueactiveWatch HPAs that remain constrained or maxed out.
hpaMonitor.sustainedMinutesinteger20activeMinutes an HPA must remain constrained before alerting.
serviceMonitor.enabledbooleantrueactiveWatch Services with no ready backends.
ingressMonitor.enabledbooleantrueactiveWatch Ingress backend availability.
networkPolicyMonitor.enabledbooleantrueactiveDetect evidence of restrictive NetworkPolicies.
admissionWebhookMonitor.enabledbooleantrueactiveWatch admission webhook availability and failures.
controlPlaneMonitor.enabledbooleantrueactiveWatch API server and control-plane health signals.
clusterResourceMonitor.enabledbooleantrueactiveWatch quota, namespace, and lease lifecycle failures.
clusterResourceMonitor.sustainedMinutesinteger10activeMinutes a terminating namespace or quota condition must persist before alerting.
clusterResourceMonitor.nodeLeaseStaleSecondsinteger90activeSeconds without a node lease renewal before reporting a stale heartbeat.
heartbeatMonitor.enabledbooleanfalseactiveSend a periodic external dead-man heartbeat.
heartbeatMonitor.intervalinteger300activeSeconds between heartbeat notifications.
scheduleMonitor.enabledbooleantrueactiveInclude scheduling delay and unschedulable diagnostics.
oomMonitor.enabledbooleantrueactiveTrack repeating OOM kills independently from current pod state.
oomMonitor.thresholdinteger3activeOOM kills within the window before raising a repeating-OOM incident.
oomMonitor.windowMinutesinteger60activeSliding window used for repeating OOM detection.
pendingPodMonitor.enabledbooleantrueactiveWatch pods that remain Pending.
pendingPodMonitor.thresholdinteger300activeSeconds a pod may remain Pending before alerting.
notReadyMonitor.enabledbooleantrueactiveWatch running pods that remain not ready.
pdbMonitor.enabledbooleantrueactiveWatch PodDisruptionBudgets that block voluntary disruption.
pdbMonitor.sustainedMinutesinteger5activeMinutes a PDB violation must persist before alerting.
nodeResourceMonitor.enabledbooleantrueactiveWatch node overcommit and filesystem/inode pressure.
nodeResourceMonitor.intervalSecondsinteger300activeSeconds between node resource checks.
nodeResourceMonitor.cpuWarningfloat2.0activeCPU requested-to-capacity ratio that raises a warning.
nodeResourceMonitor.cpuCriticalfloat4.0activeCPU requested-to-capacity ratio that raises a critical alert.
nodeResourceMonitor.memWarningfloat2.0activeMemory requested-to-capacity ratio that raises a warning.
nodeResourceMonitor.memCriticalfloat4.0activeMemory requested-to-capacity ratio that raises a critical alert.
nodeResourceMonitor.filesystemWarningPercentfloat90activeNode filesystem usage warning threshold.
nodeResourceMonitor.filesystemCriticalPercentfloat95activeNode filesystem usage critical threshold.
nodeResourceMonitor.inodeWarningPercentfloat90activeNode inode usage warning threshold.
nodeResourceMonitor.inodeCriticalPercentfloat95activeNode inode usage critical threshold.
runtimeMetricsMonitor.enabledbooleanfalseactiveUse metrics.k8s.io when available for workload usage diagnostics.
runtimeMetricsMonitor.intervalSecondsinteger60activeSeconds between runtime metrics checks.
runtimeMetricsMonitor.memoryWarningPercentinteger90activeMemory usage warning percentage when metrics.k8s.io is available.
runtimeMetricsMonitor.memoryCriticalPercentinteger95activeMemory usage critical percentage when metrics.k8s.io is available.
runtimeMetricsMonitor.cpuWarningPercentinteger90activeCPU usage warning percentage when metrics.k8s.io is available.
runtimeMetricsMonitor.cpuCriticalPercentinteger100activeCPU usage critical percentage when metrics.k8s.io is available.
clusterAutoscalerMonitor.enabledbooleantrueactiveWatch built-in cluster-autoscaler evidence from Kubernetes resources and events.
tlsMonitor.thresholdinteger30activeDays before certificate expiry to warn.
tlsMonitor.criticalThresholdinteger3activeDays before certificate expiry for a high-severity alert.
controlPlaneMonitor.intervalSecondsinteger30activeSeconds between API and control-plane health checks.
controlPlaneMonitor.apiServerLatencyWarningMsinteger1000activeAPI readyz latency warning threshold in milliseconds.
controlPlaneMonitor.failureThresholdinteger2activeConsecutive control-plane failures before alerting.
controlPlaneMonitor.recoveryThresholdinteger2activeConsecutive successful checks before resolving.
kubeletTelemetryMonitor.enabledbooleantrueactiveRead built-in kubelet telemetry without an agent.
kubeletTelemetryMonitor.intervalSecondsinteger60activeSeconds between built-in kubelet telemetry sweeps.
kubeletTelemetryMonitor.persistStatebooleantrueactivePersist telemetry counters across restarts.
kubeletTelemetryMonitor.failureThresholdinteger2activeConsecutive kubelet telemetry failures before alerting.
kubeletTelemetryMonitor.recoveryThresholdinteger2activeConsecutive successful telemetry checks before resolving.
kubeletTelemetryMonitor.memoryWarningPercentfloat90activeKubelet memory usage warning threshold.
kubeletTelemetryMonitor.memoryCriticalPercentfloat95activeKubelet memory usage critical threshold.
kubeletTelemetryMonitor.ephemeralStorageWarningPercentfloat90activeEphemeral-storage usage warning threshold.
kubeletTelemetryMonitor.ephemeralStorageCriticalPercentfloat95activeEphemeral-storage usage critical threshold.
kubeletTelemetryMonitor.cpuWarningPercentfloat90activeCPU usage warning threshold from kubelet telemetry.
kubeletTelemetryMonitor.cpuCriticalPercentfloat100activeCPU usage critical threshold from kubelet telemetry.
kubeletTelemetryMonitor.cpuThrottlingWarningPercentfloat50activeCPU throttling warning threshold.
kubeletTelemetryMonitor.cpuThrottlingCriticalPercentfloat75activeCPU throttling critical threshold.
kubeletTelemetryMonitor.psiWarningPercentfloat20activePressure stall warning threshold.
kubeletTelemetryMonitor.psiCriticalPercentfloat50activePressure stall critical threshold.
kubeletTelemetryMonitor.networkErrorRateWarningfloat1activeNetwork error rate warning threshold.
kubeletTelemetryMonitor.networkErrorRateCriticalfloat10activeNetwork error rate critical threshold.
kubeletTelemetryMonitor.runtimeErrorRateWarningfloat1activeContainer runtime error rate warning threshold.
kubeletTelemetryMonitor.runtimeErrorRateCriticalfloat10activeContainer runtime error rate critical threshold.
tlsMonitor.enabledbooleanfalseactiveWatch TLS certificates before expiry; reads certificate Secrets.
activeProbeMonitor.enabledbooleanfalseactiveRun explicitly configured application probes.
activeProbeMonitor.intervalSecondsinteger30activeSeconds between active probe rounds.
activeProbeMonitor.timeoutSecondsinteger5activeTimeout for each active probe.
activeProbeMonitor.failureThresholdinteger3activeConsecutive probe failures before alerting.
activeProbeMonitor.recoveryThresholdinteger2activeConsecutive successes before resolving a probe incident.
activeProbeMonitor.autoServicesbooleanfalseactiveProbe discoverable Service ports automatically; opt in to avoid unexpected traffic.
activeProbeMonitor.excludeNamespaceslist[]activeNamespaces automatic Service probing skips, for default-deny ingress that does not admit kwatch.
activeProbeMonitor.httpjson[]activeJSON array of HTTP probe targets with optional paths, headers, and latency limits.
activeProbeMonitor.tcpjson[]activeJSON array of TCP probe targets.
activeProbeMonitor.dnsjson[]activeJSON array of DNS probe targets.

Operations

FieldTypeDefaultStatusDescription
upgrader.disableUpdateCheckbooleanfalseactiveDisable the update notification.
telemetry.enabledbooleantrueactiveSend the weekly adoption heartbeat.
maintenance.enabledbooleantrueactiveHonor maintenance annotations while preserving cluster-level alerts.
maintenance.annotationstringkwatch.io/maintenanceactiveAnnotation that marks deliberate maintenance on a resource.
maintenance.untilAnnotationstringkwatch.io/maintenance-untilactiveOptional annotation containing the maintenance expiry timestamp.
healthCheck.diagnosticsbooleanfalseactiveExpose diagnostic endpoints such as incidents and test-alert.
healthCheck.pprofbooleanfalseactiveExpose Go profiling endpoints; keep disabled in production.
app.clusterNamestringemptyactiveCluster name shown in notifications.
app.proxyURLstringemptyactiveOptional proxy for outbound provider requests.
app.disableStartupMessagebooleanfalseactiveDisable the startup notification.
app.logFormatterstringtextactiveLog output format: text or json.
healthCheck.enabledbooleantrueactiveExpose the built-in health endpoint.
healthCheck.portinteger8060activePort for health and optional diagnostic endpoints.
crd.enabledbooleantrueactiveWatch KwatchConfig and supported CRD status conditions; restart kwatch when configuration changes; enabled by the interactive installer after installing the CRD.
crd.failureConditionslistemptyactiveAdditional CRD condition rules such as Ready=False or Degraded=True.
crd.graphReferenceslistemptyactiveOptional CRD references used by dependency and impact analysis.
auditLog.enabledbooleantrueactiveWrite structured incident lifecycle records to the configured audit sink.
auditLog.outputstringstdoutactiveAudit output: stdout or a supported output sink.
templatesjson{}activeJSON map of optional reason-specific message templates.
runbooksjson{}activeJSON map of reason-to-runbook URLs.

Security

FieldTypeDefaultStatusDescription
app.insecureSkipTLSVerifybooleanfalseactiveSkip TLS verification for outbound providers; strongly discouraged.
app.caBundlePathstringemptyactivePath to a mounted PEM bundle for outbound provider TLS.
heartbeatMonitor.urlstringemptysecretExternal dead-man heartbeat URL; stored only through a mounted Secret.
healthCheck.diagnosticsTokenstringemptysecretBearer token for diagnostic endpoints; stored only through a mounted Secret.

Compatibility

FieldTypeDefaultStatusDescription
ignoreContainerNameslistlegacydeprecatedLegacy container suppression field.
ignorePodNameslistlegacydeprecatedLegacy pod-name suppression field.
ignoreLogPatternslistlegacydeprecatedLegacy log suppression field.
ignoreContainerMessageslistlegacydeprecatedLegacy container-message suppression field.
ignoreNodeReasonslistlegacydeprecatedLegacy node-reason suppression field.
ignoreNodeMessageslistlegacydeprecatedLegacy node-message suppression field.