Performance Log Fields
Performance logs record every API call handled by a Kloudfuse query service, whatever its origin: a user in the UI, an API call from a service account or an MCP client, an internal service-to-service call, an alert evaluation, or a scheduled task such as a recording rule or a scheduled view. Each entry records who made the call, what it asked for, how long it took, and whether it failed.
Finding Performance Logs
Each query service writes its performance logs under its own source. Every performance entry carries the perf_log facet, so filter on that:
| Filter | What it selects |
|---|---|
|
Every performance log line from every service |
|
One line per completed API call. Use this as the base filter for all volume, latency, and error queries. |
|
Completed calls for a single service |
Every API call produces two lines. Received API is written when the request arrives and Finished API when the response is complete. Only the Finished API line carries the status, duration, and error fields. In addition, each Pinot query the call runs produces an Executed <table> Query line that carries the same kf_request_id, so a single request can be traced from receipt to every Pinot query it made.
Facets
All performance log fields are indexed as Facets. Not every service populates every field.
| Facet | Type | Description |
|---|---|---|
|
string |
Email of the user who issued the call, the service account name, or |
|
string |
Request identifier shared by the |
|
string |
HTTP method. Absent on scheduled tasks. |
|
string |
Where the call came from. UI pages send their own view name, such as |
|
string |
Dashboard title, on calls made by a dashboard panel |
|
string |
Panel title, on calls made by a dashboard panel |
|
string |
Alert rule name, on alert evaluation calls |
|
string |
Alert rule folder, on alert evaluation calls |
|
string |
|
| Facet | Type | Description |
|---|---|---|
|
string |
Name of the operation. For REST endpoints it is the route pattern, such as |
|
string |
The query the call ran: a PromQL, FuseQL, LogQL, or TraceQL expression, or the GraphQL request body. Empty when the API has no query. |
|
string |
Remaining request parameters as a JSON object, for example |
|
integer |
Time range covered by the query, in milliseconds |
| Facet | Type | Description |
|---|---|---|
|
string |
HTTP status code of the response, such as |
|
integer |
End-to-end duration of the call in milliseconds, measured at the service boundary and including Pinot execution time |
|
string |
|
|
string |
Failure class: |
|
string |
Component that produced the failure, such as |
|
string |
The error message returned to the caller |
|
string |
Additional diagnostic detail, when available |
The error types, their mapping to HTTP status codes, and the error payload the caller receives are documented in API Response Codes.