Request journal
The Request journal screen lets you read one line per span of your tenant, built from the bounded span
summaries (never a prompt nor an output), and filter it by level, service, trace and text. Portal path:
/observability/logs (menu Observability > Request journal). Support engineers and administrators use it
to read what happened around an error.
What the screen shows
| Area | Content |
|---|---|
| Filters | Level (error, info), Service, Trace id, Text (searched in the span name and attributes, 128 characters at most). |
| Journal table | Columns: At, Level (error when the span failed, else info), Service, Message (error type, or method, route and status code, or span name), Duration (ms), Trace id, Run id. Newest first, the last 24 hours, up to 100 lines. |
| Detail panel | A click on a row shows the line as JSON, with the allowed attributes of the span. |
| Empty state | No line in the window: widen the window or remove a filter. |
Actions
| Button or action | What it does | API call | Roles |
|---|---|---|---|
| Filter | Applies the filters filled in. | GET /v1/telemetry/logs (level, service, trace_id, q) | platform_admin, tenant_admin, auditor, viewer, support_engineer |
| Refresh (round arrow icon) | Reloads the journal. | GET /v1/telemetry/logs | Same roles |
| Click on a row | Opens the detail panel of the line. | None | Same roles |
| Retry (error panel) | Sends the request again. | GET /v1/telemetry/logs | Same roles |
Roles
| Role | Access |
|---|---|
platform_admin, tenant_admin, auditor, viewer, support_engineer | Open the screen and read the journal of their tenant (ROLES of services/control-plane/src/eai/domains/observability/slo.py, checked in services/control-plane/src/eai/domains/observability/live.py). |
| Other roles | The Observability section is hidden; the page shows Your roles do not open this page. |
The route needs a tenant context (tenant_required otherwise).
Typical tasks
Read the errors of a service
- Filter. Choose
errorin Level, enter the service in Service and click Filter. Expected result: the journal lists the failing spans of the service, newest first. If it fails: No line in the window means no error in the last 24 hours for this service. - Open a line. Click it to read the attributes (route, status code, error type). Expected result: the panel shows the line and its attributes. If it fails: close and reopen the panel.
- Open the whole trace. Copy the Trace id and open it in Traces. Expected result: you see every span of the request. If it fails: see the troubleshooting of the Traces page.
Search a route
- Search the text. Enter a part of the route, for example
/v1/finops, in Text and click Filter. Expected result: the lines whose name or attributes contain the text are listed. If it fails: an errorvalidation_errormeans the text is longer than 128 characters.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| No line in the window | No span in the last 24 hours, or the filters exclude everything. | Remove a filter. |
Error validation_error (HTTP 422) | Text longer than 128 characters. | Shorten the text. |
| No prompt nor output in the lines | By design: only the allowed attributes of the spans are stored. | Expected behaviour: the journal never keeps the content of a call. |
Error forbidden or tenant_required (HTTP 403) | No observability role, or no tenant. | Ask for the viewer or support_engineer role in your tenant. |