Platform Deployment

Observability

This page describes what a deployed platform reports about itself: the backend’s Actuator endpoints, the OpenTelemetry agent in its image, and its logs. The Studio frontend has no telemetry of its own; its Next.js server logs to standard output.

Actuator Endpoints

The backend runs Spring Boot Actuator on its HTTP port, and the ingress routes /actuator to it (Request Routing). It exposes two endpoints:

Endpoint Use

/actuator/health

The overall status. Elasticsearch, which is optional, and Neo4j, which the platform does not use, are kept out of it (Server and Infrastructure), so a missing Elasticsearch does not turn the status DOWN.

/actuator/metrics

The Micrometer meters of the process, for ad-hoc inspection: JVM, process and system, HTTP server requests, the MongoDB driver’s commands and connection pool, executors and Logback.

management.endpoints.web.exposure.include names prometheus as well, but the backend has no Micrometer Prometheus registry on its classpath, so /actuator/prometheus answers 404.

Spring Boot adds the health groups liveness and readiness when it runs on Kubernetes, but neither chart defines probes: Kubernetes replaces a pod when its process exits, not when its health turns DOWN.

OpenTelemetry

The backend image bundles the OpenTelemetry Java agent 1.31 (backend/lib/opentelemetry-javaagent.jar, copied to /app/lib). The backend chart attaches it and sets up the export through environment variables of the Deployment:

Variable Value

JAVA_TOOL_OPTIONS

-javaagent:app/lib/opentelemetry-javaagent.jar (chart value app.javaToolOpts)

OTEL_EXPORTER_OTLP_ENDPOINT

http://otel-collector.default:4317 (chart value app.otelExporter)

OTEL_TRACES_EXPORTER, OTEL_METRICS_EXPORTER, OTEL_LOGS_EXPORTER

otlp

OTEL_SERVICE_NAME

The Helm release name, promethist-platform-backend

Traces, metrics and logs of the backend therefore leave the pod over OTLP (gRPC, the default of this agent version) to the collector service in the cluster’s default namespace. What happens to them after that is cluster configuration outside this repository. A locally started backend runs without the agent.

Prometheus

The backend chart renders a ServiceMonitor for /actuator/prometheus on the Service port named http. The Service names its ports app and socketio, so the monitor matches no endpoint — and without the Prometheus registry the path would answer 404 anyway. The backend’s metrics reach monitoring through the OpenTelemetry agent only.

Logs

There is no Logback configuration in the repository: the backend logs to standard output in Spring Boot’s default format, which is what kubectl logs shows, and the agent exports the same records. Lines worth knowing:

  • At startup, whether the engine test identity of test_agent is usable, malformed or not configured — never the value itself (Test Suites configuration).

  • A warning when a startup index migration could not ensure its index; the reads it serves fall back to a slower plan.

  • The detail behind every generic error message an MCP tool returns (Errors).