blob: 7b9754696d72c4c559b455fb0a891fcd9cfb408e [file] [view]
# Status API
The Status API is a set of read-only HTTP endpoints for inspecting cluster
membership, alarm runtime state, effective configuration / TTL settings,
and per-query debug traces. Hosted by the `status` feature module on the
admin-server REST host (default `17128`), alongside `/ui-management/*`,
`/inspect/*`, `/dsl-debugging/*`, and `/runtime/rule/*`. One handler
`/status/config/ttl` is also bound on the public REST host
(default `12800`) so ecosystem tools that discover TTL via REST before
issuing `/graphql` can fetch it without being aware of the admin port.
## Hosting
`status` registers all handlers on the admin-server REST host (default port
`17128`). Both `status` and `admin-server` are enabled by default, so the
surface is reachable out of the box. The admin port is gateway-protected per
the [admin-server security notice](readme.md#security-notice). To disable
status explicitly, unset `SW_STATUS`:
```bash
export SW_STATUS= # disable
export SW_STATUS=default # default (enabled)
```
## Configuration
```yaml
status:
selector: ${SW_STATUS:default}
default:
keywords4MaskingSecretsOfConfig: ${SW_DEBUGGING_QUERY_KEYWORDS_FOR_MASKING_SECRETS:user,password,token,accessKey,secretKey,authentication}
```
`keywords4MaskingSecretsOfConfig` is consumed by `/debugging/config/dump`
to redact configuration values whose key contains any listed substring.
## Endpoints
### `/status/cluster/nodes`
Returns the OAP cluster peer list as the cluster module sees it. Useful
for confirming that every node has joined and is reporting back.
```bash
curl http://oap:17128/status/cluster/nodes
```
### `/status/alarm/rules`
Lists registered alarm rules.
### `/status/alarm/{ruleId}`
Per-rule runtime status current window state, last evaluation, the
entities the rule has triggered against.
### `/status/alarm/{ruleId}/{entityName}`
Drill-down: status of one specific entity under a given rule.
### `/status/config/ttl`
Returns the effective TTL configuration the OAP loaded at boot.
**Reachable on both ports** `:17128` (admin) and `:12800` (public)
so ecosystem tools can call it without admin-port knowledge. Every
other `/status/*` handler is admin-only.
### `/debugging/config/dump`
Dumps the effective configuration that was applied at boot. Values whose
key contains any substring listed in `keywords4MaskingSecretsOfConfig` are
redacted. Output is YAML-shaped key=value lines.
The Inspect API uses this endpoint as its REST-URL discovery primitive
clients parse the dump for `core.restHost` / `core.restPort` (or the
sharing-server overrides) once at session start to learn where the public
GraphQL / MQE surface lives.
### `/debugging/query/...`
Runs a named query path with debug tracing enabled and returns the
captured DAO / storage spans alongside the result. Useful for diagnosing
why a query is slow or returning unexpected data.
| URI | Purpose |
|---|---|
| `/debugging/query/mqe` | Run an MQE expression with tracing. |
| `/debugging/query/trace/queryBasicTraces` | Trace search brief. |
| `/debugging/query/trace/queryTrace` | Trace detail. |
| `/debugging/query/zipkin/api/v2/traces` | Zipkin compat brief. |
| `/debugging/query/zipkin/api/v2/trace` | Zipkin compat detail. |
| `/debugging/query/topology/getGlobalTopology` | Global topology debug. |
| `/debugging/query/topology/getServicesTopology` | Per-service topology debug. |
| `/debugging/query/topology/getServiceInstanceTopology` | Per-instance topology debug. |
| `/debugging/query/topology/getEndpointDependencies` | Endpoint dependencies debug. |
| `/debugging/query/topology/getProcessTopology` | Process topology debug. |
| `/debugging/query/log/queryLogs` | Log query debug. |
The query parameters mirror the corresponding GraphQL inputs (consult the
schema definitions under
`oap-server/server-query-plugin/query-graphql-plugin/src/main/resources/query-protocol`).