Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var AvailableSkipReasons = []SkipReason{ ReasonInvalidFrontmatter, ReasonDuplicateFrontmatterInvalid, ReasonEmptyStatus, ReasonInjectTaskIdentifierFailed, ReasonReadFailed, ReasonAutoInjectDisabled, ReasonRepairNotConverging, }
AvailableSkipReasons is the full closed set of skip reasons, used for counter pre-initialisation so every reason series exists at 0 before the first skip.
var ConflictResolutionsTotal = promauto.NewCounterVec( prometheus.CounterOpts{ Name: "agent_controller_conflict_resolutions_total", Help: "Total number of per-file conflict resolution attempts.", }, []string{"result"}, )
ConflictResolutionsTotal counts per-file conflict resolution attempts by outcome.
var FrontmatterCommandsTotal = promauto.NewCounterVec( prometheus.CounterOpts{ Name: "agent_controller_frontmatter_commands_total", Help: "Total number of atomic frontmatter commands processed, by operation and outcome.", }, []string{"operation", "outcome"}, )
FrontmatterCommandsTotal counts atomic frontmatter command executions by operation ("increment-frontmatter" | "update-frontmatter") and outcome ("success" | "error" | "not_found").
var GitPushTotal = promauto.NewCounterVec( prometheus.CounterOpts{ Name: "agent_controller_git_push_total", Help: "Total number of git push attempts.", }, []string{"result"}, )
GitPushTotal counts git push attempts by outcome.
var GitRestCallsTotal = promauto.NewCounterVec( prometheus.CounterOpts{ Name: "agent_controller_git_rest_calls_total", Help: "Total number of git-rest HTTP API calls by operation and outcome.", }, []string{"op", "status"}, )
GitRestCallsTotal counts git-rest HTTP API calls by operation and outcome.
var KafkaConsumePausedTotal = promauto.NewCounter(prometheus.CounterOpts{
Name: "controller_kafka_consume_paused_total",
Help: "Total number of times Kafka consumption was paused waiting for git-rest.",
})
KafkaConsumePausedTotal counts times a Kafka command executor blocked waiting for git-rest to become available (i.e. retry attempts after the first).
var PlanningRetryTotal = promauto.NewCounterVec( prometheus.CounterOpts{ Name: "agent_controller_planning_retry_total", Help: "Total number of controller-side pr-review planning-retry gate outcomes, by result.", }, []string{"result"}, )
PlanningRetryTotal counts controller-side pr-review planning-retry gate outcomes by result ("retry" | "exhausted"). "passthrough" is intentionally NOT a label — the metric fires only when the retry gate matches (spec DB 7).
var ResultsWrittenTotal = promauto.NewCounterVec( prometheus.CounterOpts{ Name: "agent_controller_results_written_total", Help: "Total number of task result write attempts.", }, []string{"result"}, )
ResultsWrittenTotal counts result write attempts by outcome.
var ScanCyclesTotal = promauto.NewCounterVec( prometheus.CounterOpts{ Name: "agent_controller_scan_cycles_total", Help: "Total number of scan cycles completed.", }, []string{"result"}, )
ScanCyclesTotal counts scan cycle completions by result.
var SkippedFilesTotal = promauto.NewCounterVec( prometheus.CounterOpts{ Name: "agent_controller_vault_scanner_skipped_files_total", Help: "Total number of vault task files the scanner skipped during a scan cycle, by reason. Increments once per skipped file per cycle for every reason except repair_not_converging, which is an edge that fires once per distinct file content and then goes flat while the file stays broken; see the doc comment for its increase(...[6h]) detection query.", }, []string{"reason"}, )
SkippedFilesTotal counts vault task files the scanner skipped during a scan cycle, labelled by the structured reason for the skip. A non-zero value on any label indicates operator-actionable vault health issues (broken frontmatter, empty status, unreadable files, injection failures). For every label EXCEPT repair_not_converging, a stuck broken file is re-read every cycle and keeps its label rate-positive until repaired, so rate(agent_controller_vault_scanner_skipped_files_total[5m]) > 0 is the detection query.
repair_not_converging is the documented exception: it is an edge, not a level. The scanner short-circuits on the file's content hash, so a file whose repair was halted is not re-processed while its bytes are unchanged, and the counter increments exactly once per distinct file content. Detect it with:
increase(agent_controller_vault_scanner_skipped_files_total{reason="repair_not_converging"}[6h]) > 0
A short-window rate is wrong for this label (it goes flat while the file stays broken), and a bare level check is wrong too (it survives forever after the file is repaired and resets on pod restart).
The closed set of reason values is declared as constants above and pre-initialised in init().
var TasksPublishedTotal = promauto.NewCounterVec( prometheus.CounterOpts{ Name: "agent_controller_tasks_published_total", Help: "Total number of task events published.", }, []string{"type"}, )
TasksPublishedTotal counts task events published by type.
Functions ¶
This section is empty.
Types ¶
type Metrics ¶
type Metrics interface {
ScanCyclesTotal(outcome string) prometheus.Counter
TasksPublishedTotal(outcome string) prometheus.Counter
PlanningRetryTotal(result string) prometheus.Counter
ResultsWrittenTotal(outcome string) prometheus.Counter
GitPushTotal(outcome string) prometheus.Counter
ConflictResolutionsTotal() prometheus.Counter
FrontmatterCommandsTotal(operation, outcome string) prometheus.Counter
GitRestCallsTotal(operation, status string) prometheus.Counter
KafkaConsumePausedTotal() prometheus.Counter
SkippedFilesTotal(reason SkipReason) prometheus.Counter
}
Metrics defines the interface for accessing Prometheus metrics. Use this interface in business logic packages to enable mock injection in tests.
type SkipReason ¶ added in v0.3.0
type SkipReason string
SkipReason is the closed set of structured reasons the vault scanner skips a task file.
const ( ReasonInvalidFrontmatter SkipReason = "invalid_frontmatter" ReasonDuplicateFrontmatterInvalid SkipReason = "duplicate_frontmatter_invalid" ReasonEmptyStatus SkipReason = "empty_status" ReasonInjectTaskIdentifierFailed SkipReason = "inject_task_identifier_failed" ReasonReadFailed SkipReason = "read_failed" ReasonAutoInjectDisabled SkipReason = "auto_inject_disabled" ReasonRepairNotConverging SkipReason = "repair_not_converging" )
func (SkipReason) String ¶ added in v0.3.0
func (r SkipReason) String() string
String returns the Prometheus label value for the reason.