1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# SPDX-License-Identifier: PMPL-1.0-or-later
#
# Vordr runtime monitoring configuration for {{PROJECT_NAME}}
#
# Vordr watches container health, detects crashes, tracks resource usage,
# and emits structured logs. It runs alongside the application stack and
# provides runtime observability without requiring in-process agents.
#
# Usage:
# vordr watch --config container/vordr.toml
# vordr status
# vordr report
[]
= "{{SERVICE_NAME}}"
= "{{VERSION}}"
# ============================================================================
# Health Monitoring
# ============================================================================
#
# Vordr periodically probes these endpoints. If a probe fails beyond the
# failure_threshold, vordr emits an alert and (optionally) restarts the
# container via Podman.
[]
# Primary health endpoint — must return 2xx.
= "http://localhost:{{PORT}}/health"
= "30s"
= "5s"
= 3
# Readiness endpoint — checked during startup and after restarts.
= "http://localhost:{{PORT}}/ready"
= "10s"
# Action on failure: "alert" (log + notify) or "restart" (alert + podman restart).
= "alert"
# ============================================================================
# Crash Detection
# ============================================================================
#
# Monitors container state via Podman. Detects OOM kills, segfaults,
# and unexpected exits.
[]
= true
# Maximum restarts within the window before vordr stops restarting.
= 5
= "10m"
# ============================================================================
# Resource Thresholds
# ============================================================================
#
# Alert when resource usage exceeds these thresholds. Values are percentages
# of the container's cgroup limits (or host limits if uncapped).
[]
= 80 # Percentage — warn at 80% sustained CPU.
= 95 # Percentage — critical alert at 95%.
= 75 # Percentage of memory limit.
= 90
= 80 # Percentage of volume usage.
= 95
# Sample interval for resource metrics.
= "15s"
# ============================================================================
# Log Output
# ============================================================================
#
# Vordr emits its own logs (not the application's) in structured format.
[]
= "json"
= "info"
# Write vordr logs to stdout (captured by Podman) and optionally to file.
= "stdout"
# file = "/var/log/vordr/{{SERVICE_NAME}}.log"
# ============================================================================
# Notifications (optional)
# ============================================================================
#
# Uncomment and configure to receive alerts via webhook or email.
# [notifications.webhook]
# url = "https://example.com/hooks/vordr"
# method = "POST"
# headers = { "Content-Type" = "application/json" }
# on = ["failure", "recovery", "resource_critical"]
# [notifications.email]
# to = "{{EMAIL}}"
# from = "vordr@{{SERVICE_NAME}}.local"
# smtp = "smtp://localhost:25"
# on = ["failure", "resource_critical"]