You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
conch conchd # the per-node daemon (systemd unit; identical on every node)
11
+
conch conchd [--status-addr :9191] # the per-node daemon (systemd unit; identical on every node)
12
12
```
13
13
14
14
## Job spec
@@ -76,6 +76,63 @@ output goes to the journal of the node that ran it (conchd logs child stdout/std
76
76
slog). Keeping output out of etcd is deliberate: etcd is a coordination store, not a
77
77
log pipeline.
78
78
79
+
## `conchd` Status HTTP API
80
+
81
+
When starting `conchd`, you can enable a local/cluster HTTP status server by passing the `--status-addr` flag or setting the `CONCH_STATUS_ADDR` environment variable:
82
+
83
+
```sh
84
+
conch conchd --status-addr :9191
85
+
```
86
+
87
+
The daemon will run an HTTP server exposing status endpoints in JSON format:
88
+
89
+
***`GET /cron`**: Lists all registered cron jobs with their current status, schedules, last execution details (including duration, exit code, and node), and the next scheduled execution time:
90
+
```json
91
+
[
92
+
{
93
+
"name": "db-backup",
94
+
"schedule": "*/15 * * * *",
95
+
"next_tick": "2026-06-12T11:00:00Z",
96
+
"last_tick": "2026-06-12T10:45:00Z",
97
+
"node": "node3",
98
+
"exit": 0,
99
+
"duration": "4.2s"
100
+
}
101
+
]
102
+
```
103
+
***`GET /elect`**: Lists all active leader election offices, showing who currently holds the primary lease, the PID and start time of the supervised process:
104
+
```json
105
+
[
106
+
{
107
+
"office": "db-primary",
108
+
"leader": "node1",
109
+
"pid": 12053,
110
+
"started": "2026-06-12T08:00:00Z",
111
+
"cmd": "postgres",
112
+
"create_revision": 4512
113
+
}
114
+
]
115
+
```
116
+
***`GET /sema`**: Lists all semaphores, indicating maximum capacities along with holders and queued nodes currently waiting on slot availability:
117
+
```json
118
+
[
119
+
{
120
+
"name": "heavy-jobs",
121
+
"max": 2,
122
+
"holders": [
123
+
{
124
+
"host": "node2",
125
+
"pid": 9912,
126
+
"started": "2026-06-12T10:15:00Z",
127
+
"cmd": "/usr/local/bin/run-job.sh",
128
+
"create_revision": 8812
129
+
}
130
+
],
131
+
"waitlist": []
132
+
}
133
+
]
134
+
```
135
+
79
136
## Failure behavior
80
137
81
138
***Clock skew**: a fast node claims tick `T` early by (skew − jitter); a slow node
0 commit comments