O11y
Your logs, metrics and traces: ship them in, query them, chart them.
Also for this capability: API · CLI · MCP · SDKs
Your logs, metrics and traces: ship them in, query them, chart them.
| Base URL | https://api.hanzo.ai |
| Operations | 381 |
| Auth | Authorization: Bearer $HANZO_API_KEY |
Specification
HIP-1240 · O11y — The Observability Plane — Draft · read the specification →
/v1/o11y is your logs, metrics, traces and errors: ship them in, query them,
chart them (apps/o11y/o11y.go:1). One subsystem owns the cloud's whole
observability plane — the tenant-scoped reads, the query engine, the dashboards
and alerts, the Sentry-compatible error face, and the public platform status
document. The implementation is hanzoai/cloud apps/o11y over the embedded
hanzoai/o11y runtime. o11y is a sanctioned abbreviation (HIP-0139 §2.5).
Motivation
This plane was five separately registered subsystems whose names leaked five
public concepts; they collapsed to one registration of the name o11y
(apps/o11y/o11y.go:23-31). The addresses have not finished following: the
manifest row still carries three roots outside the capability's own
(manifest/apps.go:84). This HIP states the surface the name rule settles.
Specification
The key words MUST, MUST NOT, SHOULD, SHOULD NOT and MAY are to be interpreted as in RFC 2119.
The addresses, and the three that fold
Every route this capability serves MUST be under /v1/o11y. Three families
still answer at other roots — /v1/sentinel, /v1/summary and
/ws/query_progress (manifest/apps.go:84); each pair is ledgered in cloud's
openapi/misfiled.txt and closes by fold, never by alias:
- The Sentry-compatible face — projects, issues, stats, traces, the reads a
signed-in person makes — moves to
/v1/o11y/sentinel/*. It is the SAME runtime under a second path family with no rewrite (apps/o11y/o11y.go:535), so it is one capability's second face, not a second capability. - The public status document moves to
/v1/o11y/summary(apps/o11y/summary.go:156). It stays unauthenticated — a status read must work when IAM is down and carries no tenant data — and unauthenticated is not un-prefixed. - The websocket progress read moves onto its own HTTP twin:
/ws/query_progressis the same read as/v1/o11y/query_progressdelivered over an Upgrade (apps/o11y/o11y.go:132,141), so the fold is one address, two protocols.
The beacon door is NOT this capability's address: /v1/event belongs to
event (HIP-1190), which forwards the Sentry wire through
the plane ops to this capability's sink (apps/o11y/o11y.go:651,
apps/o11y/obs_rpc.go). A minted DSN keeps addressing /v1/event unchanged.
The runtime names every route, and the typed ones carry their prose in their
own doc comments. The ones that cannot be values are declared with prose
beside the wire fact (apps/o11y/o11y.go init): the live tail and the
progress read are a stream and a long poll, with no single value to answer;
the raw export answers a file, not JSON; the sign-in callbacks answer a
Location header and no body; the DSN ingest paths carry a foreign wire the
SDKs own the spelling of; and the sentinel wildcard is a relay whose routes
the runtime carries.
The store
The capability owns the event.* plane on the shared warehouse — event.event,
event.log, event.span, event.metric, event.error, one shared envelope
(apps/o11y/LLM.md:437-438) whose DDL the hanzoai/o11y module owns — plus
the runtime's control-plane metadata in SQLite under cloud's data dir
(apps/o11y/embed.go:80-96).
The tenant
Telemetry is a tenant's OWN data, so org membership is the whole admission
test (apps/o11y/o11y.go:367): no validated principal is 403; a validated but
org-less principal is refused rather than served unscoped; the org is the
identity boundary's minted claim (HIP-0026), never a header the caller sends.
Platform sudo buys the cross-tenant fleet view one level in — it MUST NOT be
the product gate, because that would make the only way to see your own errors
a scope that shows you everyone's. Which operations are exempt is the module's
own answer (module.Anonymous); the DSN ingest authenticates by publishable
key, in constant time, failing closed, and derives the org from the key.
Price, events, emission, stage
It is free, in those words: telemetry ingest charges nothing and declares
cloud.Free (spend.go:196). It publishes no events on the bus, so a
customer's webhooks receive nothing from it; alert delivery leaves through the
module's own alert egress, which reports delivery as delivery, never arrival
(apps/o11y/alerts.go). Its own emission is the plane itself: cloud's spans
land in event.span (apps/o11y/LLM.md:494) and the fleet probes write
hanzo_service_up into event.metric every 30 seconds (apps/o11y/probes.go)
— the signal /v1/o11y/availability and the summary project. The stage is
ga, and the row is Eager (manifest/apps.go:84): a status document read
during an outage must not pay a cold start.
Upstream
The runtime is hanzoai/o11y v1.5.66 (go.mod:694), forked from SigNoz
(MIT Expat, copyright 2020–present SigNoz Inc.), synced to upstream main at
3e6339019. What survives in HEAD is the query service, dashboards, alerts,
rule manager and sqlstore, constructed in-process by the one builder the
standalone binary uses (apps/o11y/embed.go). The Sentry face implements
that wire (hanzoai/o11y pkg/modules/sentry/implsentry); it takes no code
from Sentry.
Rationale
The alternative to the sentinel fold is a split — errors as their own
capability. It is refused on the store: both faces read the same runtime over
the same event.* plane, and HIP-0139 §7.2 permits a split only along a store
boundary. The alternative for the websocket was keeping a transport-named
root; folding the Upgrade onto its HTTP twin leaves one address for one read.
Security Considerations
The dangerous case is the absent org, not the forged one: the gate reads only
server-minted identity headers, and an org-less request is refused rather than
served unscoped. The ingest exemption is matched by method plus prefix plus
suffix, never a bare prefix, so no read is reachable through it. The status
document never answers "operational" from an absence of data — when the
availability source cannot be read it answers 503, because a green status page
over a blind probe is the one output worse than none (apps/o11y/summary.go).
Four surfaces
| Surface | Reaches this capability as | Coverage |
|---|---|---|
| REST | o11y at its own prefix | 381 operations |
| CLI | hanzo o11y … | 381 of 381 |
| SDK | O11yApi in every published client | 365 of 381 — the clients are generated at their own release |
| MCP | tool o11y on https://api.hanzo.ai/v1/mcp | 340 operations, 189 under the document's own id — ask describe for the rest |
Quickstart
export HANZO_API_KEY=sk-... # console.hanzo.ai → API keysThen the first call — a read that needs nothing but the key. GET /v1/o11y/logs, operation get_o11y_logs:
hanzo o11y logs getimport { Configuration, O11yApi } from 'hanzoai';
const api = new O11yApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.getO11yLogs();from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import O11yApi
client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = O11yApi(client).get_o11y_logs()cfg := cloud.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := cloud.NewAPIClient(cfg)
resp, _, err := client.O11yAPI.GetO11yLogs(context.Background()).Execute()
if err != nil {
return err
}use hanzo_cloud::apis::{configuration::Configuration, o11y_api};
let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();
let result = o11y_api::get_o11y_logs(&cfg, Default::default()).await?;import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.O11yApi;
ApiClient client = new ApiClient();
client.setRequestInterceptor(b -> b.header("Authorization", "Bearer " + System.getenv("HANZO_API_KEY")));
var result = new O11yApi(client).getO11yLogs();curl https://api.hanzo.ai/v1/o11y/logs \
-H "Authorization: Bearer $HANZO_API_KEY"MCP reaches o11y through the o11y tool, which names its 340 operations with its own verbs — this one among them, under a name only MCP declares. describe explains any of them:
curl -X POST https://api.hanzo.ai/v1/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe",
"arguments": {
"op": "get_o11y_alert_last"
}
}
}'Answers 200 with object — ok.
Endpoints
| Endpoint | What it does |
|---|---|
POST /v1/o11y/alerts/{receiver} | Take an Alertmanager notification and page a human |
GET /v1/o11y/alerts/last | Replay the alert records this process took |
GET /v1/o11y/alerts | Returns the org's current alerts. |
POST /v1/o11y/api/{project_id}/envelope/ | Receive a Sentry envelope on the SDK's own DSN path |
POST /v1/o11y/api/{project_id}/store/ | Receive a single Sentry event on the SDK's own DSN path |
POST /v1/o11y/authz/check | Evaluates a batch of transactions — relation plus object — for the authenticated caller and answers each with its authorization verdict, in the order… |
POST /v1/o11y/auto_complete/attribute_values | Reads the attribute-value request from the body rather than off the query string — the spelling the newer builder uses to send its filters alongside… |
GET /v1/o11y/autocomplete/aggregate_attributes | Lists the attributes usable as an aggregate target for the given telemetry and operator — what a filter builder offers after the aggregation is… |
GET /v1/o11y/autocomplete/attribute_keys | Lists the attribute keys available for filtering the given telemetry, each with its data type and whether it is a materialized column. |
GET /v1/o11y/autocomplete/attribute_values | Lists the values one attribute key has taken — string, number and bool values in their own lists — for completing a filter. |
GET /v1/o11y/availability | Reports how much of the Hanzo fleet is up — the current per-service inventory plus an up-versus-reporting trend across the window. |
GET /v1/o11y/channels/{id} | Returns one notification channel, by id. |
PUT /v1/o11y/channels/{id} | Replaces a notification channel's receiver, by id. |
DELETE /v1/o11y/channels/{id} | Removes a notification channel, by id. |
POST /v1/o11y/channels/test | Sends a test notification to the posted receiver. |
GET /v1/o11y/channels | Lists the org's notification channels. |
POST /v1/o11y/channels | Creates a notification channel, answering with the stored channel. |
GET /v1/o11y/cloud_integrations/{cloud_provider}/accounts/{id}/services/{service_id} | Returns one service and its configuration for a connected account of the given provider, by account id and service id. |
PUT /v1/o11y/cloud_integrations/{cloud_provider}/accounts/{id}/services/{service_id} | Changes a service's configuration for one connected account of the given provider, by account id and service id. |
GET /v1/o11y/cloud_integrations/{cloud_provider}/accounts/{id}/services | Lists the services metadata for one connected account of the given provider, by account id. |
GET /v1/o11y/cloud_integrations/{cloud_provider}/accounts/{id} | Returns one connected account for the given provider, by id. |
PUT /v1/o11y/cloud_integrations/{cloud_provider}/accounts/{id} | Changes a connected account's configuration for the given provider, by id. |
DELETE /v1/o11y/cloud_integrations/{cloud_provider}/accounts/{id} | Tears down a connected account for the given provider, by id. |
POST /v1/o11y/cloud_integrations/{cloud_provider}/accounts/check_in | Is the deployed agent's check-in — the path consistent with the account surface, reporting the agent's account and telemetry state so the connection… |
GET /v1/o11y/cloud_integrations/{cloud_provider}/accounts | Lists the cloud-integration accounts connected for the given provider. |
POST /v1/o11y/cloud_integrations/{cloud_provider}/accounts | Connects a new cloud-integration account for the given provider from its posted config and credentials, answering with the account and the artifact… |
GET /v1/o11y/cloud_integrations/{cloud_provider}/credentials | Returns the credentials the connecting agent needs to establish the cloud integration, for the given cloud provider. |
GET /v1/o11y/cloud_integrations/{cloud_provider}/services/{service_id} | Returns one service the given provider can collect from, by service id, optionally scoped to one cloud integration. |
GET /v1/o11y/cloud_integrations/{cloud_provider}/services | Lists the services the given provider can collect from, optionally scoped to one cloud integration. |
POST /v1/o11y/cloud-integrations/{cloud_provider}/agent-check-in | Is the deployed agent's check-in on its original hyphenated path, kept for backward compatibility with agents already running. |
GET /v1/o11y/clusters/attribute_keys | Lists the metric attribute keys Kubernetes clusters report, for building cluster filters. |
GET /v1/o11y/clusters/attribute_values | Lists the values one cluster attribute key has taken, for building cluster filters. |
POST /v1/o11y/clusters/list | Lists Kubernetes clusters over a time range, each with its CPU and memory usage against allocatable capacity and its attributes; filterable,… |
GET /v1/o11y/complete/google | Complete a Google sign-in |
GET /v1/o11y/complete/oidc | Complete a generic OIDC sign-in |
POST /v1/o11y/complete/saml | Complete a SAML sign-in |
POST /v1/o11y/countErrors | Counts the grouped exceptions in the query window for the caller's org. |
GET /v1/o11y/daemonsets/attribute_keys | Lists the metric attribute keys Kubernetes daemonsets report, for building daemonset filters. |
GET /v1/o11y/daemonsets/attribute_values | Lists the values one daemonset attribute key has taken, for building daemonset filters. |
POST /v1/o11y/daemonsets/list | Lists Kubernetes daemonsets over a time range, each with the CPU and memory its pods used against request and limit, desired and available node… |
PUT /v1/o11y/dashboard_views/{id} | Replaces a saved view's name and data. |
DELETE /v1/o11y/dashboard_views/{id} | Removes a saved view. |
GET /v1/o11y/dashboard_views | Returns every saved view in the calling user's org. |
POST /v1/o11y/dashboard_views | Persists the calling user's dashboard-listing state (query, sort, order) as a named, reusable view shared across the org. |
POST /v1/o11y/dashboards/{id}/clone | Clones an existing v2-shape dashboard. |
PUT /v1/o11y/dashboards/{id}/lock | Locks a v2-shape dashboard. |
DELETE /v1/o11y/dashboards/{id}/lock | Unlocks a v2-shape dashboard. |
GET /v1/o11y/dashboards/{id}/public | Returns the public-sharing config for a dashboard. |
POST /v1/o11y/dashboards/{id}/public | Creates the public-sharing config for a dashboard and enables public sharing, answering with the new share's id. |
PUT /v1/o11y/dashboards/{id}/public | Updates the public-sharing config for a dashboard. |
DELETE /v1/o11y/dashboards/{id}/public | Deletes the public-sharing config and disables public sharing of a dashboard. |
GET /v1/o11y/dashboards/{id} | Returns a v2-shape dashboard. |
PUT /v1/o11y/dashboards/{id} | Updates a v2-shape dashboard's metadata, spec and tag set. |
PATCH /v1/o11y/dashboards/{id} | Applies an RFC 6902 JSON Patch to a v2-shape dashboard. |
DELETE /v1/o11y/dashboards/{id} | Deletes a v2-shape dashboard along with its tag relations. |
GET /v1/o11y/dashboards | Returns a page of v2-shape dashboards for the org. |
POST /v1/o11y/dashboards | Creates a dashboard in the v2 format that follows the Perses spec and answers with the stored dashboard. |
POST /v1/o11y/dependency_graph | Returns the service dependency graph over the requested window: every parent→child edge observed, with call and error rates and latency percentiles… |
GET /v1/o11y/deployments/attribute_keys | Lists the metric attribute keys Kubernetes deployments report, for building deployment filters. |
GET /v1/o11y/deployments/attribute_values | Lists the values one deployment attribute key has taken, for building deployment filters. |
POST /v1/o11y/deployments/list | Lists Kubernetes deployments over a time range, each with the CPU and memory its pods used against request and limit, desired and available replica… |
GET /v1/o11y/disks | Lists the storage disks the datastore reports, with their names and types. |
GET /v1/o11y/domains/{id} | Returns one auth domain with its SSO configuration, by id. |
PUT /v1/o11y/domains/{id} | Replaces one auth domain's SSO configuration, by id. |
DELETE /v1/o11y/domains/{id} | Releases an email domain and discards its SSO configuration, by id. |
GET /v1/o11y/domains | Lists the org's auth domains — the email domains whose SSO configuration this org owns. |
POST /v1/o11y/domains | Claims an email domain for the org and configures how its users sign in; the answer is the new domain's id. |
GET /v1/o11y/downtime_schedules/{id} | Returns one planned maintenance window, by id. |
PUT /v1/o11y/downtime_schedules/{id} | Replaces a planned maintenance window, by id. |
DELETE /v1/o11y/downtime_schedules/{id} | Removes a planned maintenance window, by id. |
GET /v1/o11y/downtime_schedules | Lists all planned maintenance windows, optionally narrowed to the active ones or the recurring ones. |
POST /v1/o11y/downtime_schedules | Creates a planned maintenance window, answering with the stored schedule. |
GET /v1/o11y/errorFromErrorID | Returns one exception instance and the span it happened on, by its error id within a group at a timestamp. |
GET /v1/o11y/errorFromGroupID | Returns the representative exception instance of a group at a timestamp, and the span it happened on. |
GET /v1/o11y/errortracking/issues/{id} | Returns one grouped issue with its latest occurrence sample. |
POST /v1/o11y/errortracking/issues/{id} | Changes an issue's lifecycle — resolve, ignore, reopen or assign — and returns the updated issue. |
GET /v1/o11y/errortracking/issues | Lists the caller's org's grouped error issues (by fingerprint) with status, level, counts and first/last-seen. |
POST /v1/o11y/event | Records one product-analytics event for the signed-in user — a track event with a name and free-form attributes. |
GET /v1/o11y/explorer/views/{viewId} | Returns one saved explorer view by id. |
PUT /v1/o11y/explorer/views/{viewId} | Replaces one saved explorer view by id with the given view and echoes it back. |
DELETE /v1/o11y/explorer/views/{viewId} | Deletes one saved explorer view by id. |
GET /v1/o11y/explorer/views | Lists the caller's org's saved explorer views, optionally narrowed to one source page, name or category. |
POST /v1/o11y/explorer/views | Saves a new explorer view for the caller's org and returns its id. |
POST /v1/o11y/export_raw_data | Export raw telemetry rows as a file |
POST /v1/o11y/factor_password/forgot | Starts the forgotten-password flow: the named user is mailed a reset link. |
GET /v1/o11y/features | Returns the supported feature flags and their resolved values for the caller's org. |
GET /v1/o11y/fields/keys | Returns the telemetry field keys matching the selector — the signal's fields grouped by name, and whether the catalog is complete. |
GET /v1/o11y/fields/values | Returns the values one telemetry field has taken — string, bool, number and related values — and whether the value list is complete. |
GET /v1/o11y/filter_suggestions | Suggests attribute keys and example filter queries for the query builder, seeded by what the org's own telemetry carries. |
POST /v1/o11y/gateway/ingestion_keys/{keyId}/limits | Sets a signal limit on an ingestion key, by key id, answering with the created limit. |
PATCH /v1/o11y/gateway/ingestion_keys/{keyId} | Changes an ingestion key, by id. |
DELETE /v1/o11y/gateway/ingestion_keys/{keyId} | Removes an ingestion key, by id. |
PATCH /v1/o11y/gateway/ingestion_keys/limits/{limitId} | Changes an ingestion key limit, by limit id. |
DELETE /v1/o11y/gateway/ingestion_keys/limits/{limitId} | Removes an ingestion key limit, by limit id. |
GET /v1/o11y/gateway/ingestion_keys/search | Lists the workspace's ingestion keys whose name matches the search, paginated. |
GET /v1/o11y/gateway/ingestion_keys | Lists the workspace's ingestion keys, paginated. |
POST /v1/o11y/gateway/ingestion_keys | Mints an ingestion key for the workspace, answering with the created key. |
GET /v1/o11y/getResetPasswordToken/{id} | Returns a user's password-reset token, creating one if none is live. |
GET /v1/o11y/global/config | Returns the deployment's global configuration: its public endpoints and which identity providers are enabled. |
GET /v1/o11y/health | Reports service health. |
GET /v1/o11y/healthz | Health of the observability runtime's services |
GET /v1/o11y/hosts/attribute_keys | Lists the metric attribute keys hosts report, for building host filters — each with its data type and whether it is a materialized column. |
GET /v1/o11y/hosts/attribute_values | Lists the values one host attribute key has taken, for building host filters — string, number and bool values in their own lists. |
POST /v1/o11y/hosts/list | Lists monitored hosts over a time range, each with its CPU, memory, I/O wait and 15-minute load, whether it is actively reporting, its OS and its… |
GET /v1/o11y/infra_monitoring/checks | Reports whether the metrics and attributes an infra-monitoring section needs are being received — for each collector receiver or processor involved,… |
POST /v1/o11y/infra_monitoring/clusters | Lists Kubernetes clusters with CPU and memory usage against allocatable capacity summed over their nodes, plus per-group node readiness and pod phase… |
POST /v1/o11y/infra_monitoring/daemonsets | Lists Kubernetes daemonsets with the CPU and memory their pods used against request and limit, the latest desired and current scheduled NODE counts… |
POST /v1/o11y/infra_monitoring/deployments | Lists Kubernetes deployments with the CPU and memory their pods used against request and limit, the latest desired and available replica counts, and… |
POST /v1/o11y/infra_monitoring/hosts | Lists hosts with key infrastructure metrics — CPU, memory, I/O wait and disk usage percentages and 15-minute load — plus an active/inactive status… |
POST /v1/o11y/infra_monitoring/jobs | Lists Kubernetes jobs with the CPU and memory their pods used against request and limit, the latest desired-successful, active, failed and successful… |
POST /v1/o11y/infra_monitoring/namespaces | Lists Kubernetes namespaces with the CPU and memory their pods used and per-group pod phase counts. |
POST /v1/o11y/infra_monitoring/nodes | Lists Kubernetes nodes with CPU and memory usage against allocatable capacity, per-group readiness counts and per-group phase counts for the pods… |
POST /v1/o11y/infra_monitoring/pods | Lists Kubernetes pods with CPU and memory usage against request and limit, the pod's phase and its age, plus its namespace, node, owning workload and… |
POST /v1/o11y/infra_monitoring/pvcs | Lists Kubernetes persistent volume claims with available, capacity and used bytes and inode counts, plus the claim's pod, namespace, node,… |
POST /v1/o11y/infra_monitoring/statefulsets | Lists Kubernetes statefulsets with the CPU and memory their pods used against request and limit, the latest desired and current replica counts, and… |
GET /v1/o11y/infra_onboarding/k8s/status | Reports how far Kubernetes infra onboarding has progressed: which metric families have arrived and, per pod, which required metadata labels are… |
GET /v1/o11y/integrations/{integrationId}/connection_status | Reports whether the integration's logs and metrics have been received over the lookback window, so the console can show a live connection state. |
GET /v1/o11y/integrations/{integrationId} | Returns one integration's full detail — its overview, configuration steps, collected data and assets — together with its installation record when the… |
POST /v1/o11y/integrations/install | Installs an integration into the caller's org from its id and configuration, answering with the installed catalog item. |
POST /v1/o11y/integrations/uninstall | Removes an integration from the caller's org by id. |
GET /v1/o11y/integrations | Lists the available integrations and whether each is installed in the caller's org, optionally narrowed to installed or not-installed. |
POST /v1/o11y/invite/bulk | Invites several people to the caller's org in one call, refusing the whole batch when any email repeats. |
POST /v1/o11y/invite | Invites one person to the caller's org by email, with the role they will hold when they accept. |
GET /v1/o11y/jobs/attribute_keys | Lists the metric attribute keys Kubernetes jobs report, for building job filters. |
GET /v1/o11y/jobs/attribute_values | Lists the values one job attribute key has taken, for building job filters. |
POST /v1/o11y/jobs/list | Lists Kubernetes jobs over a time range, each with the CPU and memory its pods used against request and limit, desired-successful, active, failed and… |
GET /v1/o11y/licenses/active | Activates the enterprise license. |
GET /v1/o11y/licenses | Lists the org's licenses. |
POST /v1/o11y/listErrors | Lists the grouped exceptions in the query window — each an exception type with its message, count, service and first/last-seen — for the caller's org. |
GET /v1/o11y/livez | Liveness of the observability process |
GET /v1/o11y/llm_pricing_rules/{id} | Returns a single LLM pricing rule by id. |
DELETE /v1/o11y/llm_pricing_rules/{id} | Hard-deletes a pricing rule by id. |
GET /v1/o11y/llm_pricing_rules | Returns the LLM pricing rules for the caller's org, with pagination and an optional search and override filter. |
PUT /v1/o11y/llm_pricing_rules | Writes the pricing-rule batch — the single write endpoint used by both the user and the Zeus sync job. |
GET /v1/o11y/llm/annotation | Lists human annotations on traces and observations, optionally scoped to one review queue. |
POST /v1/o11y/llm/annotation | Adds a human annotation to a trace or observation, optionally in a review queue. |
GET /v1/o11y/llm/observations | Lists gen_ai spans as LLM observations — each an LLM call with its model, token counts, cost and latency projected from gen_ai.* attributes, newest… |
GET /v1/o11y/llm/score/{id} | Returns a single score by id. |
DELETE /v1/o11y/llm/score/{id} | Hard-deletes a score by id. |
GET /v1/o11y/llm/scores | Lists eval scores and human-feedback signals attached to traces and observations, newest first. |
POST /v1/o11y/llm/scores | Attaches an eval score or human-feedback signal to a trace or a single observation. |
GET /v1/o11y/llm/sessions | Lists conversations — gen_ai spans grouped by session.id, with their trace and observation counts, tokens and cost. |
GET /v1/o11y/llm/traces | Lists LLM traces — gen_ai spans grouped by trace_id, with cost, tokens and latency rolled up across each trace. |
GET /v1/o11y/llm/users | Lists end users — gen_ai spans grouped by user.id, with their session, trace and observation counts, tokens and cost. |
GET /v1/o11y/login | Report why an observability sign-in did not complete |
GET /v1/o11y/logs/aggregate | Returns the logs aggregate buckets for the query window. |
GET /v1/o11y/logs/fields | Returns the log field catalog: the fields already selected as indexed columns, and the interesting ones seen in the data that could be. |
POST /v1/o11y/logs/fields | Changes how one log field is stored — selects or deselects it as a materialized column and tunes its index — and echoes the setting back. |
GET /v1/o11y/logs/livetail | Follow log records as they arrive |
GET /v1/o11y/logs/pipelines/{version} | Returns the caller's org's log parsing pipelines at one config version — "latest" for the newest — along with that version's deployment record and… |
POST /v1/o11y/logs/pipelines/preview | Runs the given log parsing pipelines over the given sample records without saving anything, and returns the transformed records plus whatever the… |
POST /v1/o11y/logs/pipelines | Saves the given log parsing pipelines as the new config version for the caller's org and starts deploying it. |
GET /v1/o11y/logs/promote_paths | Lists the log body paths already promoted or indexed, with the indexes each carries. |
POST /v1/o11y/logs/promote_paths | Promotes and indexes log body paths: each named path is lifted out of the JSON body into its own column, with the indexes the caller asked for. |
GET /v1/o11y/logs | Returns the most recent log records in the query window, newest first — each record an open object carrying its nanosecond timestamp and whatever… |
POST /v1/o11y/messaging-queues/kafka/consumer-lag/consumer-details | Returns the consumer side of a consumer-lag view: the consumer groups reading the topic/partition named in variables, with their throughput and… |
POST /v1/o11y/messaging-queues/kafka/consumer-lag/network-latency | Returns consumer network latency correlated per client: a throughput pass over the window finds the consumer clients, then their fetch latency joins… |
POST /v1/o11y/messaging-queues/kafka/consumer-lag/producer-details | Returns the producer side of a consumer-lag view: the producers writing to the topic/partition named in variables, with their throughput and latency… |
POST /v1/o11y/messaging-queues/kafka/onboarding/consumers | Checks whether the spans the Kafka consumer views need are arriving, row for row like producersOnboarding. |
POST /v1/o11y/messaging-queues/kafka/onboarding/kafka | Checks whether Kafka's own metrics — consumer lag and partition telemetry — are arriving, so the lag views can be lit up. |
POST /v1/o11y/messaging-queues/kafka/onboarding/producers | Checks whether the spans the Kafka producer views need are arriving — one row per required span attribute, with a pass/fail status and, on failure,… |
POST /v1/o11y/messaging-queues/kafka/partition-latency/consumer | Returns the consumer-group latency detail for the topic and partition named in the request's variables. |
POST /v1/o11y/messaging-queues/kafka/partition-latency/overview | Returns the per-partition latency overview for the window — each topic/partition with its throughput and latency profile. |
POST /v1/o11y/messaging-queues/kafka/span/evaluation | Correlates producer and consumer spans over the evaluation window (eval_time bounds the scan) and returns the pairings with their end-to-end delay —… |
POST /v1/o11y/messaging-queues/kafka/topic-throughput/consumer-details | Breaks one consumer topic's throughput down using the topic and service named in variables. |
POST /v1/o11y/messaging-queues/kafka/topic-throughput/consumer | Returns the consumer topic-throughput overview for the window — what each consumer group read, per topic. |
POST /v1/o11y/messaging-queues/kafka/topic-throughput/producer-details | Breaks one producer topic's throughput down using the topic and service named in variables. |
POST /v1/o11y/messaging-queues/kafka/topic-throughput/producer | Returns the producer topic-throughput overview for the window — what each producer service wrote, per topic. |
POST /v1/o11y/messaging-queues/queue-overview | Lists the messaging destinations observed in the window — one row per queue/destination/service combination with its throughput and latency columns. |
GET /v1/o11y/metric_reduction_rules/{id} | Returns one volume-control rule by its id. |
PUT /v1/o11y/metric_reduction_rules/{id} | Updates the match type and labels of a volume-control rule by its id; the metric name is immutable. |
DELETE /v1/o11y/metric_reduction_rules/{id} | Deletes a volume-control rule by its id. |
POST /v1/o11y/metric_reduction_rules/preview | Estimates the series reduction and the dashboards and alerts a candidate volume-control rule would touch, without persisting it. |
GET /v1/o11y/metric_reduction_rules/stats | Returns total ingested vs retained series and samples and the estimated monthly savings across all volume-control rules. |
GET /v1/o11y/metric_reduction_rules/timeseries | Returns ingested vs retained series over time across all volume-control rules, in hourly buckets, in the query-range time-series response shape. |
GET /v1/o11y/metric_reduction_rules | Lists the org's metric volume-control (label reduction) rules, pageable and sortable by name, volume or recency. |
POST /v1/o11y/metric_reduction_rules | Creates a volume-control rule for a metric and returns it with its id; a metric that already has a rule is refused. |
GET /v1/o11y/metric/metric_metadata | Serves the OLDER /metric/metric_metadata route. |
GET /v1/o11y/metrics/alerts | Lists the alert rules that reference a metric. |
GET /v1/o11y/metrics/attributes | Returns one metric's attribute keys, each with its unique values and their count. |
GET /v1/o11y/metrics/dashboards | Lists the dashboard panels that reference a metric. |
GET /v1/o11y/metrics/highlights | Returns one metric's headline numbers: data points, total and active time series, and when it was last received. |
POST /v1/o11y/metrics/inspect | Returns one metric's raw time series over a window of at most thirty minutes — each series with its labels and timestamp/value pairs. |
GET /v1/o11y/metrics/metadata | Returns one metric's metadata: description, type, unit, temporality and monotonicity. |
POST /v1/o11y/metrics/metadata | Updates one metric's metadata — description, type, unit, temporality, monotonicity — and answers with the bare success envelope. |
GET /v1/o11y/metrics/onboarding | Reports whether any non-O11y metrics have been ingested — the lightweight check onboarding polls. |
POST /v1/o11y/metrics/stats | Lists metrics with their sample and time-series counts for a time range — the volume view of the metrics explorer, pageable and sortable. |
POST /v1/o11y/metrics/treemap | Returns the proportional distribution of metrics by sample count or time-series count, as the entries of a treemap. |
GET /v1/o11y/metrics | Lists the distinct metric names seen in a time range, each with its description, type, unit, temporality and monotonicity. |
GET /v1/o11y/namespaces/attribute_keys | Lists the metric attribute keys Kubernetes namespaces report, for building namespace filters. |
GET /v1/o11y/namespaces/attribute_values | Lists the values one namespace attribute key has taken, for building namespace filters. |
POST /v1/o11y/namespaces/list | Lists Kubernetes namespaces over a time range, each with the CPU and memory its pods used, their phase counts and its attributes; filterable,… |
GET /v1/o11y/nextPrevErrorIDs | Returns the ids of the exception instances immediately after and before a given one within its group — the paging cursor the error detail view walks. |
GET /v1/o11y/nodes/attribute_keys | Lists the metric attribute keys Kubernetes nodes report, for building node filters. |
GET /v1/o11y/nodes/attribute_values | Lists the values one node attribute key has taken, for building node filters. |
POST /v1/o11y/nodes/list | Lists Kubernetes nodes over a time range, each with its CPU and memory usage against allocatable capacity, readiness condition counts and attributes;… |
GET /v1/o11y/org/preferences/{name} | Returns one org-scoped preference, by name. |
PUT /v1/o11y/org/preferences/{name} | Sets one org-scoped preference, by name. |
GET /v1/o11y/org/preferences | Lists every org-scoped preference, each with its current and default value. |
GET /v1/o11y/orgs/me/filters/{signal} | Returns the org's quick filters for one signal — traces, logs, metrics, exceptions or api_monitoring. |
GET /v1/o11y/orgs/me/filters | Returns the org's quick filters for every signal — the attribute shortlists its explorers offer as one-click filters. |
PUT /v1/o11y/orgs/me/filters | Replaces the org's quick filters for one signal with the attribute list given. |
GET /v1/o11y/orgs/me | Returns the caller's own organization. |
PUT /v1/o11y/orgs/me | Rewrites the caller's own organization record — display name, name, alias — always addressed as "me", never by id. |
GET /v1/o11y/pods/attribute_keys | Lists the metric attribute keys Kubernetes pods report, for building pod filters. |
GET /v1/o11y/pods/attribute_values | Lists the values one pod attribute key has taken, for building pod filters. |
POST /v1/o11y/pods/list | Lists Kubernetes pods over a time range, each with its CPU and memory usage against request and limit, restart count, phase counts and attributes;… |
GET /v1/o11y/processes/attribute_keys | Lists the metric attribute keys processes report, for building process filters. |
GET /v1/o11y/processes/attribute_values | Lists the values one process attribute key has taken, for building process filters. |
POST /v1/o11y/processes/list | Lists monitored processes over a time range, each with its name, PID, command line and CPU and memory usage; filterable, groupable and paginated. |
GET /v1/o11y/product/metrics | Returns one product's RED series — request rate, errors, p50 and p95 latency — for the caller's org, plus that org's LLM usage rollup over the same… |
GET /v1/o11y/public/dashboards/{id}/widgets/{idx}/query_range | Returns the query-range result for one widget of a public dashboard. |
GET /v1/o11y/public/dashboards/{id} | Returns the sanitized dashboard data for public access — the read a shared dashboard's public page makes. |
GET /v1/o11y/pvcs/attribute_keys | Lists the metric attribute keys persistent volume claims report, for building volume filters. |
GET /v1/o11y/pvcs/attribute_values | Lists the values one persistent-volume-claim attribute key has taken, for building volume filters. |
POST /v1/o11y/pvcs/list | Lists Kubernetes persistent volume claims over a time range, each with its available, capacity and used bytes, inode counts and attributes;… |
POST /v1/o11y/query_filter/analyze | Analyzes a query and extracts the metric names it reads and the columns it groups by. |
GET /v1/o11y/query_progress | Watch one running query's progress |
POST /v1/o11y/query_range/format | Parses a builder query and echoes it back normalized to the v3 shape — the endpoint the UI uses to canonicalize a query without running it. |
POST /v1/o11y/query_range/preview | Validates a composite query and renders the Datastore statements it would run WITHOUT executing it — a dry run for agentic and tooling use. |
GET /v1/o11y/query_range | Runs a Prometheus-style range query over metrics — the legacy read that predates the v5 querier — and returns the matrix, vector or scalar the query… |
POST /v1/o11y/query_range | Executes a composite query over a time range: builder queries over traces, logs and metrics, formulas, trace operators, PromQL and Datastore SQL,… |
GET /v1/o11y/query | Evaluates one instant PromQL query against the org's metrics and returns the result at a single point in time. |
GET /v1/o11y/readyz | Readiness of the observability runtime to serve |
POST /v1/o11y/register | Creates the FIRST organization and its admin user. |
POST /v1/o11y/reset_password_tokens/verify | Checks that a reset-password token exists and has not expired, without consuming it. |
POST /v1/o11y/resetPassword | Sets a new password for whoever the reset token was minted for, consuming the token. |
PATCH /v1/o11y/reviews/{id}/items/{itemId} | Moves one queue item between PENDING and COMPLETED and sets its assignee. |
GET /v1/o11y/reviews/{id}/items | Returns a page of one review queue's items, newest first, optionally filtered to PENDING or COMPLETED. |
POST /v1/o11y/reviews/{id}/items | Enqueues traces, observations or sessions on a review queue. |
GET /v1/o11y/reviews/{id} | Returns one review queue with its pending and completed counts and its first page of items. |
PATCH /v1/o11y/reviews/{id} | Changes a review queue's name, description or score-config set. |
DELETE /v1/o11y/reviews/{id} | Removes one review queue and every item in it. |
GET /v1/o11y/reviews | Returns a page of the caller org's human-review queues, newest first, narrowed to the caller's project. |
POST /v1/o11y/reviews | Creates a human-review queue in the caller's org and project. |
GET /v1/o11y/roles/{id}/users | Returns every org member holding a role, by role id. |
GET /v1/o11y/roles/{id} | Returns one role with the transaction groups it grants. |
PUT /v1/o11y/roles/{id} | Replaces a custom role's description and transaction groups. |
DELETE /v1/o11y/roles/{id} | Deletes a custom role. |
GET /v1/o11y/roles | Lists every role in the caller's org — the managed ones the platform seeds and the custom ones its admins created. |
POST /v1/o11y/roles | Creates a custom role in the caller's org from a name, an optional description and the transaction groups it grants, answering the new role's id. |
GET /v1/o11y/route_policies/{id} | Returns one route policy, by id. |
PUT /v1/o11y/route_policies/{id} | Replaces a route policy, by id, answering with the stored policy. |
DELETE /v1/o11y/route_policies/{id} | Removes a route policy, by id. |
GET /v1/o11y/route_policies | Lists the org's route policies. |
POST /v1/o11y/route_policies | Creates a route policy, answering with the stored policy. |
GET /v1/o11y/rules/{id}/history/filter_keys | Returns the distinct label keys present in a rule's history entries over the selected range, for building history filters. |
GET /v1/o11y/rules/{id}/history/filter_values | Returns the distinct values a given label key has taken across a rule's history entries. |
GET /v1/o11y/rules/{id}/history/overall_status | Returns the overall firing/inactive intervals for a rule over the selected range. |
POST /v1/o11y/rules/{id}/history/overall_status | Returns the overall firing/inactive windows for a rule, for the posted query range. |
GET /v1/o11y/rules/{id}/history/stats | Returns trigger and resolution statistics for a rule over the selected time range, current window against the prior one. |
POST /v1/o11y/rules/{id}/history/stats | Returns trigger and resolution statistics for a rule, current window against the prior one, for the posted query range. |
GET /v1/o11y/rules/{id}/history/timeline | Returns paginated timeline entries for a rule's state transitions, filterable by state and a label expression, cursor-paginated. |
POST /v1/o11y/rules/{id}/history/timeline | Returns a rule's state-transition timeline for the posted query range, each entry carrying its related-logs or related-traces link. |
GET /v1/o11y/rules/{id}/history/top_contributors | Returns the label combinations that contributed most to a rule firing over the selected range. |
POST /v1/o11y/rules/{id}/history/top_contributors | Returns the label combinations that contributed most to a rule firing, for the posted query range. |
GET /v1/o11y/rules/{id} | Returns one alert rule with its evaluation state, by id. |
PUT /v1/o11y/rules/{id} | Replaces an alert rule's definition, by id. |
PATCH /v1/o11y/rules/{id} | Applies a partial update to an alert rule, by id, answering with the stored rule — the common toggle for enabling or muting a rule. |
DELETE /v1/o11y/rules/{id} | Removes an alert rule, by id. |
POST /v1/o11y/rules/test | Fires a test notification for a rule definition without saving it, answering with how many series would alert. |
GET /v1/o11y/rules | Lists all alert rules with their current evaluation state. |
POST /v1/o11y/rules | Creates a new alert rule and answers with the stored rule. |
POST /v1/o11y/sentinel/discover | Aggregates a project's captured errors into a table — the caller names the filters, the groupings and the aggregations, and gets back the columns and… |
GET /v1/o11y/sentinel/events/{id} | Returns one captured error event of a project, by its id. |
GET /v1/o11y/sentinel/issues/{id}/events | Lists one issue's captured occurrences, scoped to a project — a project is an isolation unit, so the caller declares which project's occurrences to… |
GET /v1/o11y/sentinel/issues/{id} | Returns one grouped issue of the caller's org with its latest occurrence sample. |
PUT /v1/o11y/sentinel/issues/{id} | Changes an issue's lifecycle — resolve, ignore, reopen or assign — and returns the updated issue. |
GET /v1/o11y/sentinel/issues | Lists the caller's org's grouped error issues, optionally narrowed to one project and one time window, and filtered by status, level, environment,… |
GET /v1/o11y/sentinel/logs | Lists a project's captured error events, newest first, optionally narrowed to those whose message or exception text contains a search string. |
POST /v1/o11y/sentinel/projects/{id}/keys/rotate | Rotates a project's DSN key — bumping its rotation watermark so keys below it stop verifying — and returns the project with its new DSN. |
GET /v1/o11y/sentinel/projects/{id} | Returns one Sentry project of the caller's org, DSN included. |
DELETE /v1/o11y/sentinel/projects/{id} | Deletes one Sentry project of the caller's org. |
GET /v1/o11y/sentinel/projects | Lists the caller's org's Sentry projects, each with its freshly-derived DSN. |
POST /v1/o11y/sentinel/projects | Creates a Sentry project under the caller's org and returns it, DSN included. |
GET /v1/o11y/sentinel/stats | Returns a project's event-rate timeseries: one bucket per interval over the requested period, counting the events in it. |
GET /v1/o11y/sentinel/traces/{id} | Returns one trace's captured errors for a project — every error event that carried the trace id, in the order the events plane holds them. |
GET /v1/o11y/sentinel/traces | Lists the traces a project's captured errors reference, each with how many errors landed on it, when they started and stopped, and the latest message… |
PUT /v1/o11y/service_accounts/{id}/keys/{fid} | Renames an API key or moves its expiry. |
DELETE /v1/o11y/service_accounts/{id}/keys/{fid} | Revokes an API key. |
GET /v1/o11y/service_accounts/{id}/keys | Lists a service account's API keys — metadata only, never the secrets. |
POST /v1/o11y/service_accounts/{id}/keys | Mints an API key for a service account and answers the key's id and its secret — the one time the secret is ever shown. |
DELETE /v1/o11y/service_accounts/{id}/roles/{rid} | Removes a role from a service account. |
GET /v1/o11y/service_accounts/{id}/roles | Lists the roles a service account holds. |
POST /v1/o11y/service_accounts/{id}/roles | Assigns a role, named by its id, to a service account. |
GET /v1/o11y/service_accounts/{id} | Returns one service account with the roles it holds. |
PUT /v1/o11y/service_accounts/{id} | Renames a service account. |
DELETE /v1/o11y/service_accounts/{id} | Deletes a service account and revokes every key it holds. |
GET /v1/o11y/service_accounts/me | Returns the calling service account itself, with the roles it holds — the self-inspection read for a key-authenticated caller. |
PUT /v1/o11y/service_accounts/me | Renames the calling service account. |
GET /v1/o11y/service_accounts | Lists the caller's org's service accounts. |
POST /v1/o11y/service_accounts | Creates a service account in the caller's org, answering its id. |
POST /v1/o11y/service/entry_point_operations | Returns one service's entry-point operations with the same latency and error profile topOperations reports. |
POST /v1/o11y/service/top_level_operations | Maps each service to its entry-point span names — for the one service named in the request, or for every service when none is. |
POST /v1/o11y/service/top_operations | Returns one service's heaviest operations in the window, each with p50/p95/p99 latency, how often it ran and how often it errored. |
GET /v1/o11y/services/list | Lists the name of every service the trace store holds, with no window applied — the complete catalog, for pickers and autocomplete. |
POST /v1/o11y/services | Lists the instrumented services seen in the window, each with the request profile of its entry-point spans: p99 and average latency, call and error… |
GET /v1/o11y/sessions/context | Tells a sign-in page what an email address can do: which orgs the address belongs to and, per org, which password and SSO routes are open to it. |
POST /v1/o11y/sessions/email_password | Signs a user in with email and password and answers with the session's token pair. |
POST /v1/o11y/sessions/rotate | Exchanges a refresh token for a fresh token pair, retiring the old pair. |
GET /v1/o11y/sessions | List the caller org's LLM sessions |
DELETE /v1/o11y/sessions | Signs the calling session out, invalidating its tokens. |
GET /v1/o11y/settings/apdex | Returns apdex settings for the named services. |
POST /v1/o11y/settings/apdex | Sets one service's apdex threshold and the status codes excluded from its score. |
GET /v1/o11y/settings/ttl | Returns the org's current retention policy: default TTL, custom per-label rules, and cold-storage settings where configured. |
POST /v1/o11y/settings/ttl | Sets the org's retention policy for one signal: the default TTL in days, ordered per-label retention rules, and optional cold-storage settings. |
PATCH /v1/o11y/span_mapper_groups/{groupId}/span_mappers/{mapperId} | Changes a mapper's field context, config or enabled state. |
DELETE /v1/o11y/span_mapper_groups/{groupId}/span_mappers/{mapperId} | Deletes one mapper from a group. |
GET /v1/o11y/span_mapper_groups/{groupId}/span_mappers | Lists the mappers belonging to one group, in the order they are applied. |
POST /v1/o11y/span_mapper_groups/{groupId}/span_mappers | Adds a mapper to a group: which field context it reads, the move or copy it performs, and whether it is on. |
PATCH /v1/o11y/span_mapper_groups/{groupId} | Changes a group's name, condition or enabled state. |
DELETE /v1/o11y/span_mapper_groups/{groupId} | Deletes a mapping group and every mapper under it. |
GET /v1/o11y/span_mapper_groups | Lists the caller's org's mapping groups, optionally only the enabled ones. |
POST /v1/o11y/span_mapper_groups | Creates a mapping group: the name it is known by, the span and resource attributes whose presence selects a span into it, and whether it is on. |
POST /v1/o11y/span_percentile | Places one span's duration among its peers: the p50/p90/p99 durations of like spans, and the percentile the given duration lands at. |
GET /v1/o11y/statefulsets/attribute_keys | Lists the metric attribute keys Kubernetes statefulsets report, for building statefulset filters. |
GET /v1/o11y/statefulsets/attribute_values | Lists the values one statefulset attribute key has taken, for building statefulset filters. |
POST /v1/o11y/statefulsets/list | Lists Kubernetes statefulsets over a time range, each with the CPU and memory its pods used against request and limit, desired and available replica… |
GET /v1/o11y/stats | Returns the collected usage statistics for the caller's org, as the stats reporter aggregates them — a map whose keys are the reporter's own counter… |
GET /v1/o11y/status | Reports whether a product's service is live: an in-cluster health probe with its measured latency, fused with the per-replica up inventory. |
POST /v1/o11y/substitute_vars | Substitutes a query's variables and returns the resolved request, without running it — what a dashboard does before it queries. |
GET /v1/o11y/summary | Reports whether the platform is up. |
POST /v1/o11y/testChannel | Sends a test notification to the posted receiver. |
POST /v1/o11y/testRule | Fires a test notification for the posted rule definition and answers with how many series alerted and a status message. |
POST /v1/o11y/third-party-apis/overview/domain | Returns one external domain's endpoint-level breakdown — each endpoint with its rate, error and latency columns over the window. |
POST /v1/o11y/third-party-apis/overview/list | Lists the external domains the instrumented services call, with request rate, error percentage and latency per domain. |
POST /v1/o11y/trace-funnels/{funnel_id}/analytics/error-traces | Returns the errored traces through a step transition of a saved funnel — the entry point for "why is this step failing". |
POST /v1/o11y/trace-funnels/{funnel_id}/analytics/overview | Returns a saved funnel's conversion overview over a window: how many entered, how many converted, the rate and the latency. |
POST /v1/o11y/trace-funnels/{funnel_id}/analytics/slow-traces | Returns the slowest traces through a step transition of a saved funnel — the entry point for "why is this step slow". |
POST /v1/o11y/trace-funnels/{funnel_id}/analytics/steps/overview | Returns the conversion between two named steps of a saved funnel — the step-to-step drill-down behind the overview. |
POST /v1/o11y/trace-funnels/{funnel_id}/analytics/steps | Returns a saved funnel's per-step metrics over a window — the counts and latencies at each step, in step order. |
POST /v1/o11y/trace-funnels/{funnel_id}/analytics/validate | Lists the traces that match a saved funnel over a window — the read that answers "is this funnel finding anything at all". |
GET /v1/o11y/trace-funnels/{funnel_id} | Returns one funnel with its steps. |
PUT /v1/o11y/trace-funnels/{funnel_id} | Renames a funnel or rewrites its description, answering the funnel as it now stands. |
DELETE /v1/o11y/trace-funnels/{funnel_id} | Deletes a funnel. |
POST /v1/o11y/trace-funnels/analytics/error-traces | Returns the errored traces through a step transition of a funnel described inline. |
POST /v1/o11y/trace-funnels/analytics/overview | Returns the conversion overview of a funnel described inline. |
POST /v1/o11y/trace-funnels/analytics/slow-traces | Returns the slowest traces through a step transition of a funnel described inline. |
POST /v1/o11y/trace-funnels/analytics/steps/overview | Returns the conversion between two steps of a funnel described inline. |
POST /v1/o11y/trace-funnels/analytics/steps | Returns the per-step metrics of a funnel described inline. |
POST /v1/o11y/trace-funnels/analytics/validate | Lists the traces that match a funnel described inline — the builder's "try this" before anything is saved. |
GET /v1/o11y/trace-funnels/list | Lists the caller's org's funnels, each with its steps and who last touched it. |
POST /v1/o11y/trace-funnels/new | Creates an empty funnel with a name, answering the funnel it created. |
PUT /v1/o11y/trace-funnels/steps/update | Replaces a funnel's steps — the funnel is named in the body rather than the path — and answers the funnel as it now stands. |
POST /v1/o11y/traces/{traceId}/aggregations | Computes span aggregations over one trace — span count, duration or share of execution time — grouped by the resource field each aggregation names. |
POST /v1/o11y/traces/{traceId}/flamegraph | Returns a trace's flamegraph: spans bucketed by depth level, each level ordered as it is drawn, around the selected span. |
POST /v1/o11y/traces/{traceId}/waterfall | Returns a trace's waterfall: every span when the trace is small enough, a capped window around the selected span when it is not, with the uncollapsed… |
GET /v1/o11y/traces/{traceId} | Returns one trace's spans as a column/row table, optionally centred on a span and walked a fixed number of levels up and down from it — the read the… |
GET /v1/o11y/traces/fields | Returns the trace field catalog: the span fields already selected as indexed columns, and the interesting ones seen in the data that could be. |
POST /v1/o11y/traces/fields | Changes how one span field is stored — selects or deselects it as a materialized column and tunes its index — and echoes the setting back. |
GET /v1/o11y/traces | Lists the caller org's recent traces — one row per trace with its span count and wall-clock duration, most recently active first. |
GET /v1/o11y/usage | Returns ingestion usage counts bucketed over the requested window, optionally narrowed to one service. |
GET /v1/o11y/user/{id} | Returns one org member with their single legacy role, by user id. |
PUT /v1/o11y/user/{id} | Renames one org member and may move their legacy role, answering with the updated record. |
DELETE /v1/o11y/user/{id} | Removes one org member, by user id. |
GET /v1/o11y/user/me | Returns the calling user with their single legacy role. |
GET /v1/o11y/user/preferences/{name} | Returns one preference of the calling user, by name. |
PUT /v1/o11y/user/preferences/{name} | Sets one preference of the calling user, by name. |
GET /v1/o11y/user/preferences | Lists every preference of the calling user, each with its current and default value. |
GET /v1/o11y/user | Lists the org's members with their single legacy role. |
GET /v1/o11y/users/{id}/reset_password_tokens | Returns the reset-password token a user already has; absent one, the answer is a not-found rather than a fresh token. |
PUT /v1/o11y/users/{id}/reset_password_tokens | Creates or regenerates a user's reset-password token: a live token is returned as it is, an expired one is replaced. |
DELETE /v1/o11y/users/{id}/roles/{roleId} | Takes a role away from one org member, by user id and role id — someone else, never the caller. |
GET /v1/o11y/users/{id}/roles | Returns every role one org member holds, by user id. |
POST /v1/o11y/users/{id}/roles | Assigns a role, by role name, to one org member — someone else, never the caller. |
GET /v1/o11y/users/{id} | Returns one org member together with every role they hold, by user id. |
PUT /v1/o11y/users/{id} | Renames one org member, by user id — someone else, never the caller, who renames themselves through updateMyUser. |
DELETE /v1/o11y/users/{id} | Removes one org member, by user id. |
PUT /v1/o11y/users/me/dashboards/{id}/pins | Pins a dashboard for the calling user. |
DELETE /v1/o11y/users/me/dashboards/{id}/pins | Removes the caller's pin for a dashboard. |
GET /v1/o11y/users/me/dashboards | Is dashboardListV2 personalized for the calling user: each dashboard carries the caller's pinned state, and pinned dashboards float to the top of the… |
PUT /v1/o11y/users/me/factor_password | Replaces the calling user's password, refusing when the old one does not match. |
GET /v1/o11y/users/me | Returns the calling user together with every role they hold. |
PUT /v1/o11y/users/me | Renames the calling user. |
GET /v1/o11y/users | Lists the caller's org members. |
POST /v1/o11y/users | Creates a member of the caller's org in the pending-invite state and mails them their invitation; the answer is the new user's id. |
POST /v1/o11y/variables/query | Evaluates a dashboard variable query and returns the values the variable may take. |
GET /v1/o11y/version | Reports the running build: its version, whether an enterprise edition is present ("N" in this build), and whether first-user setup has completed. |
GET /v1/o11y/zeus/hosts | Returns the deployment's host info from Zeus. |
PUT /v1/o11y/zeus/hosts | Records the deployment's host in Zeus, overwriting any prior one. |
PUT /v1/o11y/zeus/profiles | Records the deployment's profile in Zeus — how the team uses observability today and what they plan — overwriting any prior one. |
How is this guide?