Skip to main content
Health and monitoring

What to probe, what to watch and what the probes cannot tell you.

Markdown

Probes​

EndpointAnswersUse for
GET /health/live200 {"status":"ok"} while the process serves requestsLiveness
GET /health/ready200 {"status":"ok"} when PostgreSQL answers, otherwise 503 {"status":"unavailable"}Readiness: route traffic only after it is ready
livenessProbe:
httpGet: { path: /health/live, port: 8080 }
readinessProbe:
httpGet: { path: /health/ready, port: 8080 }
timeoutSeconds: 5

Set timeoutSeconds on the readiness probe. If PostgreSQL accepts connections but stops answering, the check can wait much longer than that, and the timeout makes the probe fail instead of hang.

What readiness does not check​

Readiness only checks the database. It does not check that the access key is valid or that Unico is reachable. A wrong access key shows up as errors on create, not as a failed probe. Include a real create request in your post-deployment checks.

Logs​

Logs are JSON lines on standard output, with timestamp, severity, service and message. Failures that involve a stored process include its id. Mistakes made by the caller (400, 404, 409, 422) are not logged.

A healthy start logs these lines, in this order, among the PostgreSQL connection messages (the catalog version and count change with each catalog release):

{"severity":"INFO","timestamp":"2026-11-03T14:02:11.482913407Z","message":"attribute catalog loaded","service":"human-plugin","version":"2026-10-29.1","count":53,"url":"https://human-token-assets.unico.app/attribute-catalog.json"}
{"severity":"INFO","timestamp":"2026-11-03T14:02:11.731050212Z","message":"database schema ready","service":"human-plugin"}
{"severity":"INFO","timestamp":"2026-11-03T14:02:11.733418901Z","message":"human plugin listening","service":"human-plugin","addr":":8080"}

What to alert on​

  • Readiness failing: the database is unreachable.
  • Repeated 503 DATABASE_UNAVAILABLE or 502 UPSTREAM_UNAVAILABLE answers to your back-end's calls.
  • Container restarts: a restart loop usually means a missing setting, an unreachable catalog or a database problem. The log states which.
  • Error-level log lines, such as creating process or retrieving process.

Human Plugin does not export metrics. Use your gateway or service mesh for request rates and latency.