API
Log API
API endpoints for application log configuration, buffered log entries, and real-time system log streaming.
Get Log configuration
Returns the current logger configuration.
curl http://drydock:3000/api/v1/log
{
"level":"debug"
}Get application log entries
Returns log entries from the in-memory ring buffer (last 1,000 entries).
If DD_LOG_BUFFER_ENABLED=false, this endpoint returns an empty array.
curl http://drydock:3000/api/v1/log/entriesQuery parameters
| Parameter | Type | Description |
|---|---|---|
level | string | Filter by log level (trace, debug, info, warn, error, fatal) |
component | string | Filter by component name |
tail | integer | Number of most recent entries to return |
since | integer | Unix timestamp (milliseconds) — only return entries after this time |
Invalid level or component values return 400 Bad Request.
Example
curl "http://drydock:3000/api/v1/log/entries?level=error&tail=50"
[
{
"timestamp": 1771243200000,
"level": "error",
"component": "registry:hub",
"msg": "Rate limit exceeded"
}
]Stream application logs (WebSocket)
Streams system log entries over WebSocket. The server first sends a filtered backfill from the in-memory buffer, then pushes new entries in real time.
- Canonical endpoint:
WS /api/v1/log/stream - Compatibility alias:
WS /api/log/stream
Query parameters
| Parameter | Type | Description |
|---|---|---|
level | string | Minimum level filter (debug, trace, info, warn, error, fatal) |
component | string | Substring filter for component name |
tail | integer | Number of historical entries to backfill on connect (default: 100) |
Example
ws://drydock:3000/api/v1/log/stream?tail=100&level=warn&component=apiExample frame payload:
{
"timestamp": 1771262400000,
"level": "warn",
"component": "api:websocket",
"msg": "Client disconnected"
}Authentication and limits
- Requires an authenticated session (cookie-based auth).
- WebSocket upgrade origin checks must pass.
- Connection attempts are rate-limited (1,000 upgrades per 15-minute window per identity/IP key).
Get agent log entries
Returns log entries from a connected agent, proxied through the controller.
curl http://drydock:3000/api/v1/agents/:name/log/entriesAccepts the same query parameters as the application log entries endpoint above.