NautheraAuditPartitionMissing
Docs version v1 (main)Nauthera is pre-1.0, in a design-partner program
No audit log partition is attached for the current month.
Meaning
nauthera_ has been above 0 for five minutes:
the audit log, partitioned by calendar month in UTC, has no partition for this month.
Partition maintenance has not run, or has failed, for longer than its headroom
(audit., 6). With audit.
(appendOnlyAudit in the chart) only nauthera-server maintain creates partitions; with
the default, internal, every replica's maintenance pass and every boot creates them,
so a failure there is usually a privilege or lock problem.
Impact
Records for this month land in the default partition, audit_events_default. Once it
holds a row for the month, that month's partition cannot be created until the row is
moved by hand, and partition creation, and with it every maintain run, fails. With
maintenance external, a pod that starts now refuses to start, so a rollout, a node drain
or a crash turns into an outage of sign-in. Auditors are not losing records, but the log
is in a state that needs manual repair.
Diagnosis
- Which mode:
audit.in the configuration (partition_ maintenance appendOnlyAudit.enabledin the chart means external). - External: the maintenance CronJob and its last runs:
kubectl -n <ns> get cronjob <name>-maintainandkubectl -n <ns> get jobs, thenkubectl -n <ns> logs job/for the failing run.<job> - Internal: the server log,
kubectl -n <ns> logs <pod> | jq 'select(..msg|startswith( "could not create audit log partitions"))' - With the database owner, whether rows already sit in the default partition:
SELECT count(*), min(occurred_at), max(occurred_ at) FROM audit_ events_ default;
Mitigation
- Do not roll out, restart or drain the server's pods until a partition is attached.
- External: run maintenance now:
kubectl -n <ns> create job --from=cronjob/and follow its log to<name>-maintain <name>-maintain-manual nauthera-server maintain finished. If it fails, fix what its log names (the owner credential insecrets.ownerDatabaseDsn, a lock, a timeout). - Internal: fix the cause the log names (usually the server's role not owning the audit table), then restart one pod; a boot creates the partitions.
- Rows already in the default partition for this month: creation fails until they are moved into the month's partition by a database administrator. Do not delete them: they are audit records.
Escalation
Page the identity platform owner and the database owner now; this is one restart away
from an outage. If maintenance fails although the owner credential and database are
healthy, or the server reports a missing partition that exists, open an issue with the
maintenance log, the list of partitions (SELECT inhrelid:) and the server version.
Alert runbooks · Generated from internal/ and operator/ in nauthera-server.