DrydockDrydock
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/entries

Query parameters

ParameterTypeDescription
levelstringFilter by log level (trace, debug, info, warn, error, fatal)
componentstringFilter by component name
tailintegerNumber of most recent entries to return
sinceintegerUnix 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

ParameterTypeDescription
levelstringMinimum level filter (debug, trace, info, warn, error, fatal)
componentstringSubstring filter for component name
tailintegerNumber of historical entries to backfill on connect (default: 100)

Example

ws://drydock:3000/api/v1/log/stream?tail=100&level=warn&component=api

Example 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/entries

Accepts the same query parameters as the application log entries endpoint above.

On this page