mirror of
https://github.com/hanzoai/o11y.git
synced 2026-10-15 12:58:33 +00:00
Hanzo CI/CD / test (linux-amd64) (push) Skipped
Hanzo CI/CD / test (linux-arm64) (push) Skipped
Hanzo CI/CD / test-advisory (push) Failing after 5m15s
Hanzo CI/CD / test-amd64 (push) Failing after 17m40s
Hanzo CI/CD / cicd (push) Skipped
CI/CD / cicd (push) Failing after 17m53s
The event plane folded every occurrence into event.fact, and the Sentry module still read and wrote event.error. Its reads now select the error signal of event.fact, mapping issue, env, origin and the severity band. Errors enter through /v1/event only. The Sentry envelope and store routes, DSN keys and their rotation leave the module; the consumer of event.error files each fact through Ingest(org, product), which keeps the issue lifecycle and returns the issues a batch created.
4854 lines
395 KiB
Go
4854 lines
395 KiB
Go
// Code generated by zipdoc; DO NOT EDIT.
|
|
|
|
package o11y
|
|
|
|
import (
|
|
"github.com/zap-proto/zip"
|
|
)
|
|
|
|
func init() {
|
|
zip.Describe("DELETE /v1/o11y/channels/:id", zip.Doc{
|
|
Description: "Removes a notification channel, by id. Admin gate.",
|
|
})
|
|
zip.Describe("DELETE /v1/o11y/cloud_integrations/:cloud_provider/accounts/:id", zip.Doc{
|
|
Description: "Tears down a connected account for the given provider, by\nid. Admin gate.",
|
|
})
|
|
zip.Describe("DELETE /v1/o11y/dashboard_views/:id", zip.Doc{
|
|
Description: "Removes a saved view. Saved views are shared org-wide.\nDeleting a non-existent view refuses with the runtime's not-found.\n\nCallers need the editor role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yDashboardIDIn.id": "ID is the resource id from the path.",
|
|
},
|
|
})
|
|
zip.Describe("DELETE /v1/o11y/dashboards/:id", zip.Doc{
|
|
Description: "Deletes a v2-shape dashboard along with its tag relations.\nLocked dashboards are rejected.\n\nCallers need the editor role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yDashboardIDIn.id": "ID is the resource id from the path.",
|
|
},
|
|
})
|
|
zip.Describe("DELETE /v1/o11y/dashboards/:id/lock", zip.Doc{
|
|
Description: "Unlocks a v2-shape dashboard. Only the dashboard's creator or\nan org admin may lock or unlock.\n\nCallers need the editor role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yDashboardIDIn.id": "ID is the resource id from the path.",
|
|
},
|
|
})
|
|
zip.Describe("DELETE /v1/o11y/dashboards/:id/public", zip.Doc{
|
|
Description: "Deletes the public-sharing config and disables public\nsharing of a dashboard.\n\nCallers need the admin role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yDashboardIDIn.id": "ID is the resource id from the path.",
|
|
},
|
|
})
|
|
zip.Describe("DELETE /v1/o11y/downtime_schedules/:id", zip.Doc{
|
|
Description: "Removes a planned maintenance window, by id. Editor gate.",
|
|
})
|
|
zip.Describe("DELETE /v1/o11y/explorer/views/:viewId", zip.Doc{
|
|
Description: "Deletes one saved explorer view by id.\n\nCallers need the editor role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11ySavedViewDeleteOut.status": "Status is \"success\".",
|
|
"O11ySavedViewRef.viewId": "ViewID is the view's id.",
|
|
},
|
|
})
|
|
zip.Describe("DELETE /v1/o11y/gateway/ingestion_keys/:keyId", zip.Doc{
|
|
Description: "Removes an ingestion key, by id. Editor gate.",
|
|
})
|
|
zip.Describe("DELETE /v1/o11y/gateway/ingestion_keys/limits/:limitId", zip.Doc{
|
|
Description: "Removes an ingestion key limit, by limit id. Editor\ngate.",
|
|
})
|
|
zip.Describe("DELETE /v1/o11y/llm/score/:id", zip.Doc{
|
|
Description: "Hard-deletes a score by id.\n\nCallers need the editor role; the runtime's own gate enforces it.",
|
|
})
|
|
zip.Describe("DELETE /v1/o11y/llm_pricing_rules/:id", zip.Doc{
|
|
Description: "Hard-deletes a pricing rule by id. If the rule was\nauto-synced, the next sync cycle recreates it.\n\nCallers need the admin role; the runtime's own gate enforces it.",
|
|
})
|
|
zip.Describe("DELETE /v1/o11y/metric_reduction_rules/:id", zip.Doc{
|
|
Description: "Deletes a volume-control rule by its id.",
|
|
Fields: map[string]string{
|
|
"O11yReductionRuleRef.id": "ID is the rule's id.",
|
|
},
|
|
})
|
|
zip.Describe("DELETE /v1/o11y/roles/:id", zip.Doc{
|
|
Description: "Deletes a custom role. A role that still has user or\nservice-account assignees, or an auth-domain mapping, is refused; managed\nroles cannot be deleted.",
|
|
})
|
|
zip.Describe("DELETE /v1/o11y/route_policies/:id", zip.Doc{
|
|
Description: "Removes a route policy, by id. Admin gate.",
|
|
})
|
|
zip.Describe("DELETE /v1/o11y/rules/:id", zip.Doc{
|
|
Description: "Removes an alert rule, by id. Editor gate.",
|
|
})
|
|
zip.Describe("DELETE /v1/o11y/service_accounts/:id", zip.Doc{
|
|
Description: "Deletes a service account and revokes every key it\nholds.",
|
|
})
|
|
zip.Describe("DELETE /v1/o11y/service_accounts/:id/keys/:fid", zip.Doc{
|
|
Description: "Revokes an API key. Revocation is immediate and\npermanent.",
|
|
})
|
|
zip.Describe("DELETE /v1/o11y/service_accounts/:id/roles/:rid", zip.Doc{
|
|
Description: "Removes a role from a service account.",
|
|
})
|
|
zip.Describe("DELETE /v1/o11y/span_mapper_groups/:groupId", zip.Doc{
|
|
Description: "Deletes a mapping group and every mapper under it.\n\nCallers need the admin role; the runtime's own gate enforces it.",
|
|
})
|
|
zip.Describe("DELETE /v1/o11y/span_mapper_groups/:groupId/span_mappers/:mapperId", zip.Doc{
|
|
Description: "Deletes one mapper from a group.\n\nCallers need the admin role; the runtime's own gate enforces it.",
|
|
})
|
|
zip.Describe("DELETE /v1/o11y/trace-funnels/:funnel_id", zip.Doc{
|
|
Description: "Deletes a funnel. The answer carries no data — the runtime\nacknowledges with the success envelope alone, which is what this Out says.\n\nCallers need the editor role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yFunnelDeleteOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("DELETE /v1/o11y/users/me/dashboards/:id/pins", zip.Doc{
|
|
Description: "Removes the caller's pin for a dashboard. Idempotent —\nunpinning a dashboard that was not pinned still succeeds.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yDashboardIDIn.id": "ID is the resource id from the path.",
|
|
},
|
|
})
|
|
zip.Describe("DELETE /v1/o11y/sentinel/projects/:id", zip.Doc{
|
|
Description: "Deletes one Sentry project of the caller's org; retained\nevents are not touched. Answers 204.\n\nCallers need the editor role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11ySentryProjectRef.id": "ID is the project id.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/alerts", zip.Doc{
|
|
Description: "Returns the org's current alerts. Viewer gate.",
|
|
Fields: map[string]string{
|
|
"O11yAlertsOut.data": "Data holds the alerts.",
|
|
"O11yAlertsOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/autocomplete/aggregate_attributes", zip.Doc{
|
|
Description: "Lists the attributes usable as an aggregate target for\nthe given telemetry and operator — what a filter builder offers after the\naggregation is chosen.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yAggregateAttributesIn.aggregateOperator": "AggregateOperator is the aggregation the attribute will be used under, e.g.\ncount, avg, sum. The runtime requires it for non-metrics sources.",
|
|
"O11yAggregateAttributesIn.dataSource": "DataSource is the telemetry the attributes come from — traces, logs,\nmetrics or meter. The runtime requires it.",
|
|
"O11yAggregateAttributesIn.limit": "Limit caps how many attributes come back. Absent means 50.",
|
|
"O11yAggregateAttributesIn.searchText": "SearchText narrows the attributes to those containing it.",
|
|
"O11yAggregateAttributesOut.data": "Data holds the attribute keys.",
|
|
"O11yAggregateAttributesOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/autocomplete/attribute_keys", zip.Doc{
|
|
Description: "Lists the attribute keys available for filtering the given\ntelemetry, each with its data type and whether it is a materialized column.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yAttributeKeysIn.aggregateAttribute": "AggregateAttribute is the metric the keys must appear on.",
|
|
"O11yAttributeKeysIn.aggregateOperator": "AggregateOperator is the aggregation the keys will be used under. The\nruntime requires it for non-metrics sources.",
|
|
"O11yAttributeKeysIn.dataSource": "DataSource is the telemetry the keys come from — traces, logs, metrics or\nmeter. The runtime requires it.",
|
|
"O11yAttributeKeysIn.limit": "Limit caps how many keys come back. Absent means 50.",
|
|
"O11yAttributeKeysIn.searchText": "SearchText narrows the keys to those containing it.",
|
|
"O11yAttributeKeysIn.tagType": "TagType narrows the keys to one kind — tag or resource. Empty means all;\nan invalid value reads as empty.",
|
|
"O11yAttributeKeysOut.data": "Data holds the attribute keys.",
|
|
"O11yAttributeKeysOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/autocomplete/attribute_values", zip.Doc{
|
|
Description: "Lists the values one attribute key has taken — string,\nnumber and bool values in their own lists — for completing a filter.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yAttributeValuesIn.aggregateAttribute": "AggregateAttribute is the metric the values must appear on.",
|
|
"O11yAttributeValuesIn.aggregateOperator": "AggregateOperator is the aggregation the values will be used under. The\nruntime requires it for non-metrics sources.",
|
|
"O11yAttributeValuesIn.attributeKey": "AttributeKey is the key whose values to list.",
|
|
"O11yAttributeValuesIn.dataSource": "DataSource is the telemetry the values come from — traces, logs or\nmetrics. The runtime requires it.",
|
|
"O11yAttributeValuesIn.filterAttributeKeyDataType": "FilterAttributeKeyDataType is the key's data type — string, int64, float64\nor bool. Empty means unspecified.",
|
|
"O11yAttributeValuesIn.limit": "Limit caps how many values come back. Absent means 50.",
|
|
"O11yAttributeValuesIn.searchText": "SearchText narrows the values to those containing it.",
|
|
"O11yAttributeValuesIn.tagType": "TagType narrows the search to one kind of key — tag or resource.",
|
|
"O11yAttributeValuesOut.data": "Data holds the values, split by data type.",
|
|
"O11yAttributeValuesOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/channels", zip.Doc{
|
|
Description: "Lists the org's notification channels. Viewer gate.",
|
|
Fields: map[string]string{
|
|
"O11yChannelsOut.data": "Data holds the channels.",
|
|
"O11yChannelsOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/channels/:id", zip.Doc{
|
|
Description: "Returns one notification channel, by id. Viewer gate.",
|
|
Fields: map[string]string{
|
|
"O11yChannelOut.data": "Data holds the channel.",
|
|
"O11yChannelOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/cloud_integrations/:cloud_provider/accounts", zip.Doc{
|
|
Description: "Lists the cloud-integration accounts connected for the given\nprovider. Admin gate.",
|
|
Fields: map[string]string{
|
|
"GCPAccountConfig.deploymentProjectId": "Project ID where central pub/sub for logs exist",
|
|
"GCPAccountConfig.deploymentRegion": "Project ID where otel collector will be deployed",
|
|
"GCPAccountConfig.projectIds": "List of project IDs to monitor",
|
|
"O11yAccountsOut.data": "Data holds the connected accounts.",
|
|
"O11yAccountsOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/cloud_integrations/:cloud_provider/accounts/:id", zip.Doc{
|
|
Description: "Returns one connected account for the given provider, by id. Admin\ngate.",
|
|
Fields: map[string]string{
|
|
"GCPAccountConfig.deploymentProjectId": "Project ID where central pub/sub for logs exist",
|
|
"GCPAccountConfig.deploymentRegion": "Project ID where otel collector will be deployed",
|
|
"GCPAccountConfig.projectIds": "List of project IDs to monitor",
|
|
"O11yAccountOut.data": "Data holds the account.",
|
|
"O11yAccountOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/cloud_integrations/:cloud_provider/accounts/:id/services", zip.Doc{
|
|
Description: "Lists the services metadata for one connected\naccount of the given provider, by account id. Admin gate.",
|
|
Fields: map[string]string{
|
|
"O11yServicesMetadataOut.data": "Data holds the services metadata.",
|
|
"O11yServicesMetadataOut.status": "Status is \"success\".",
|
|
"ServiceMetadata.enabled": "if the service is enabled for the account",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/cloud_integrations/:cloud_provider/accounts/:id/services/:service_id", zip.Doc{
|
|
Description: "Returns one service and its configuration for a connected\naccount of the given provider, by account id and service id. Admin gate.",
|
|
Fields: map[string]string{
|
|
"O11yServiceOut.data": "Data holds the service.",
|
|
"O11yServiceOut.status": "Status is \"success\".",
|
|
"Service.overview": "markdown",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/cloud_integrations/:cloud_provider/credentials", zip.Doc{
|
|
Description: "Returns the credentials the connecting agent needs\nto establish the cloud integration, for the given cloud provider. Admin gate.",
|
|
Fields: map[string]string{
|
|
"Credentials.o11yApiKey": "PAT",
|
|
"O11yCredentialsOut.data": "Data holds the connection credentials.",
|
|
"O11yCredentialsOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/cloud_integrations/:cloud_provider/services", zip.Doc{
|
|
Description: "Lists the services the given provider can collect from,\noptionally scoped to one cloud integration. Admin gate.",
|
|
Fields: map[string]string{
|
|
"O11yListServicesMetadataIn.cloud_integration_id": "CloudIntegrationID, when set, scopes the listing to one cloud integration.",
|
|
"O11yServicesMetadataOut.data": "Data holds the services metadata.",
|
|
"O11yServicesMetadataOut.status": "Status is \"success\".",
|
|
"ServiceMetadata.enabled": "if the service is enabled for the account",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/cloud_integrations/:cloud_provider/services/:service_id", zip.Doc{
|
|
Description: "Returns one service the given provider can collect from, by\nservice id, optionally scoped to one cloud integration. Admin gate.",
|
|
Fields: map[string]string{
|
|
"O11yGetServiceIn.cloud_integration_id": "CloudIntegrationID, when set, scopes the service to one cloud integration.",
|
|
"O11yServiceOut.data": "Data holds the service.",
|
|
"O11yServiceOut.status": "Status is \"success\".",
|
|
"Service.overview": "markdown",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/clusters/attribute_keys", zip.Doc{
|
|
Description: "Lists the metric attribute keys Kubernetes clusters\nreport, for building cluster filters.",
|
|
Fields: map[string]string{
|
|
"O11yInfraAttributeKeysIn.aggregateAttribute": "AggregateAttribute is the metric the keys must appear on.",
|
|
"O11yInfraAttributeKeysIn.aggregateOperator": "AggregateOperator is the aggregation the keys will be used under, e.g.\nnoop, count, avg. The runtime requires it for non-metrics sources.",
|
|
"O11yInfraAttributeKeysIn.dataSource": "DataSource is the telemetry the keys come from — metrics for the infra\nfaces. The runtime requires it.",
|
|
"O11yInfraAttributeKeysIn.limit": "Limit caps how many keys come back. Absent means 50.",
|
|
"O11yInfraAttributeKeysIn.searchText": "SearchText narrows the keys to those containing it.",
|
|
"O11yInfraAttributeKeysIn.tagType": "TagType narrows the keys to one kind — tag or resource. Empty means all;\nan invalid value reads as empty.",
|
|
"O11yInfraAttributeKeysOut.data": "Data holds the keys.",
|
|
"O11yInfraAttributeKeysOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/clusters/attribute_values", zip.Doc{
|
|
Description: "Lists the values one cluster attribute key has taken,\nfor building cluster filters.",
|
|
Fields: map[string]string{
|
|
"O11yInfraAttributeValuesIn.aggregateAttribute": "AggregateAttribute is the metric the values must appear on.",
|
|
"O11yInfraAttributeValuesIn.aggregateOperator": "AggregateOperator is the aggregation the values will be used under, e.g.\nnoop, count, avg. The runtime requires it for non-metrics sources.",
|
|
"O11yInfraAttributeValuesIn.attributeKey": "AttributeKey is the key whose values to list.",
|
|
"O11yInfraAttributeValuesIn.dataSource": "DataSource is the telemetry the values come from — metrics for the infra\nfaces. The runtime requires it.",
|
|
"O11yInfraAttributeValuesIn.filterAttributeKeyDataType": "FilterAttributeKeyDataType is the key's data type — string, int64,\nfloat64 or bool. Empty means unspecified.",
|
|
"O11yInfraAttributeValuesIn.limit": "Limit caps how many values come back. Absent means 50.",
|
|
"O11yInfraAttributeValuesIn.searchText": "SearchText narrows the values to those containing it.",
|
|
"O11yInfraAttributeValuesIn.tagType": "TagType narrows the search to one kind of key — tag or resource.",
|
|
"O11yInfraAttributeValuesOut.data": "Data holds the values, split by data type.",
|
|
"O11yInfraAttributeValuesOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/daemonsets/attribute_keys", zip.Doc{
|
|
Description: "Lists the metric attribute keys Kubernetes daemonsets\nreport, for building daemonset filters.",
|
|
Fields: map[string]string{
|
|
"O11yInfraAttributeKeysIn.aggregateAttribute": "AggregateAttribute is the metric the keys must appear on.",
|
|
"O11yInfraAttributeKeysIn.aggregateOperator": "AggregateOperator is the aggregation the keys will be used under, e.g.\nnoop, count, avg. The runtime requires it for non-metrics sources.",
|
|
"O11yInfraAttributeKeysIn.dataSource": "DataSource is the telemetry the keys come from — metrics for the infra\nfaces. The runtime requires it.",
|
|
"O11yInfraAttributeKeysIn.limit": "Limit caps how many keys come back. Absent means 50.",
|
|
"O11yInfraAttributeKeysIn.searchText": "SearchText narrows the keys to those containing it.",
|
|
"O11yInfraAttributeKeysIn.tagType": "TagType narrows the keys to one kind — tag or resource. Empty means all;\nan invalid value reads as empty.",
|
|
"O11yInfraAttributeKeysOut.data": "Data holds the keys.",
|
|
"O11yInfraAttributeKeysOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/daemonsets/attribute_values", zip.Doc{
|
|
Description: "Lists the values one daemonset attribute key has\ntaken, for building daemonset filters.",
|
|
Fields: map[string]string{
|
|
"O11yInfraAttributeValuesIn.aggregateAttribute": "AggregateAttribute is the metric the values must appear on.",
|
|
"O11yInfraAttributeValuesIn.aggregateOperator": "AggregateOperator is the aggregation the values will be used under, e.g.\nnoop, count, avg. The runtime requires it for non-metrics sources.",
|
|
"O11yInfraAttributeValuesIn.attributeKey": "AttributeKey is the key whose values to list.",
|
|
"O11yInfraAttributeValuesIn.dataSource": "DataSource is the telemetry the values come from — metrics for the infra\nfaces. The runtime requires it.",
|
|
"O11yInfraAttributeValuesIn.filterAttributeKeyDataType": "FilterAttributeKeyDataType is the key's data type — string, int64,\nfloat64 or bool. Empty means unspecified.",
|
|
"O11yInfraAttributeValuesIn.limit": "Limit caps how many values come back. Absent means 50.",
|
|
"O11yInfraAttributeValuesIn.searchText": "SearchText narrows the values to those containing it.",
|
|
"O11yInfraAttributeValuesIn.tagType": "TagType narrows the search to one kind of key — tag or resource.",
|
|
"O11yInfraAttributeValuesOut.data": "Data holds the values, split by data type.",
|
|
"O11yInfraAttributeValuesOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/dashboard_views", zip.Doc{
|
|
Description: "Returns every saved view in the calling user's org. Saved\nviews are shared org-wide.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yDashboardView.createdAt": "CreatedAt is when the view was created.",
|
|
"O11yDashboardView.data": "Data is the listing state the view captures.",
|
|
"O11yDashboardView.id": "ID is the saved view's id.",
|
|
"O11yDashboardView.name": "Name is the saved view's name.",
|
|
"O11yDashboardView.orgId": "OrgID is the org the view belongs to.",
|
|
"O11yDashboardView.updatedAt": "UpdatedAt is when it last changed.",
|
|
"O11yDashboardViewData.order": "Order is the captured sort direction.",
|
|
"O11yDashboardViewData.query": "Query is the captured filter DSL.",
|
|
"O11yDashboardViewData.sort": "Sort is the captured sort field.",
|
|
"O11yDashboardViewData.version": "Version is the saved-view schema version; must be v1.",
|
|
"O11yDashboardViewList.views": "Views are the saved views, shared org-wide.",
|
|
"O11yDashboardViewListOut.data": "Data is the saved views.",
|
|
"O11yDashboardViewListOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/dashboards", zip.Doc{
|
|
Description: "Returns a page of v2-shape dashboards for the org. This is the\npure, user-independent list — it carries no pin state; use\ndashboardListForUserV2 for the personalized, pin-aware list. Supports a filter\nDSL (query), sort (updated_at/created_at/name), order (asc/desc), and\noffset-based pagination (limit/offset).\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yDashboardDisplay.description": "Description says what the dashboard is for.",
|
|
"O11yDashboardDisplay.name": "Name is the human-facing dashboard name.",
|
|
"O11yDashboardList.dashboards": "Dashboards are the rows for this page.",
|
|
"O11yDashboardList.tags": "Tags are all tags in use across the org's dashboards.",
|
|
"O11yDashboardList.total": "Total is the count across all pages.",
|
|
"O11yDashboardListItem.createdAt": "CreatedAt is when the dashboard was created.",
|
|
"O11yDashboardListItem.createdBy": "CreatedBy is who created it.",
|
|
"O11yDashboardListItem.id": "ID is the dashboard's id.",
|
|
"O11yDashboardListItem.image": "Image is an optional cover image reference.",
|
|
"O11yDashboardListItem.locked": "Locked reports whether the dashboard is locked against edits.",
|
|
"O11yDashboardListItem.name": "Name is the dashboard's unique internal name.",
|
|
"O11yDashboardListItem.orgId": "OrgID is the org the dashboard belongs to.",
|
|
"O11yDashboardListItem.schemaVersion": "SchemaVersion is the dashboard schema version.",
|
|
"O11yDashboardListItem.source": "Source is where the dashboard came from: user, system or integration.",
|
|
"O11yDashboardListItem.spec": "Spec is the display-only slice of the dashboard spec.",
|
|
"O11yDashboardListItem.tags": "Tags are the dashboard's tags.",
|
|
"O11yDashboardListItem.updatedAt": "UpdatedAt is when it last changed.",
|
|
"O11yDashboardListItem.updatedBy": "UpdatedBy is who last changed it.",
|
|
"O11yDashboardListOut.data": "Data is the list page.",
|
|
"O11yDashboardListOut.status": "Status is \"success\".",
|
|
"O11yDashboardListParams.limit": "Limit caps how many dashboards come back. Zero means the default of 20;\nthe runtime caps it at 200.",
|
|
"O11yDashboardListParams.offset": "Offset is how many dashboards to skip for pagination.",
|
|
"O11yDashboardListParams.order": "Order is the sort direction: asc or desc. Empty orders desc.",
|
|
"O11yDashboardListParams.query": "Query is the filter DSL over dashboard columns and tags, e.g.\n`name:cpu source:user`. Empty lists everything.",
|
|
"O11yDashboardListParams.sort": "Sort is the sort field: updated_at, created_at or name. Empty sorts by\nupdated_at.",
|
|
"O11yDashboardListSpec.display": "Display is the dashboard's display metadata.",
|
|
"O11yDashboardTag.key": "Key is the tag key.",
|
|
"O11yDashboardTag.value": "Value is the tag value.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/dashboards/:id", zip.Doc{
|
|
Description: "Returns a v2-shape dashboard.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yDashboard.createdAt": "CreatedAt is when the dashboard was created.",
|
|
"O11yDashboard.createdBy": "CreatedBy is who created it.",
|
|
"O11yDashboard.id": "ID is the dashboard's id.",
|
|
"O11yDashboard.image": "Image is an optional cover image reference.",
|
|
"O11yDashboard.locked": "Locked reports whether the dashboard is locked against edits.",
|
|
"O11yDashboard.name": "Name is the dashboard's unique internal name.",
|
|
"O11yDashboard.orgId": "OrgID is the org the dashboard belongs to.",
|
|
"O11yDashboard.schemaVersion": "SchemaVersion is the dashboard schema version.",
|
|
"O11yDashboard.source": "Source is where the dashboard came from: user, system or integration.",
|
|
"O11yDashboard.spec": "Spec is the Perses dashboard spec, carried verbatim as open JSON.",
|
|
"O11yDashboard.tags": "Tags are the dashboard's tags.",
|
|
"O11yDashboard.updatedAt": "UpdatedAt is when it last changed.",
|
|
"O11yDashboard.updatedBy": "UpdatedBy is who last changed it.",
|
|
"O11yDashboardIDIn.id": "ID is the resource id from the path.",
|
|
"O11yDashboardOut.data": "Data is the dashboard.",
|
|
"O11yDashboardOut.status": "Status is \"success\".",
|
|
"O11yDashboardTag.key": "Key is the tag key.",
|
|
"O11yDashboardTag.value": "Value is the tag value.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/dashboards/:id/public", zip.Doc{
|
|
Description: "Returns the public-sharing config for a dashboard.\n\nCallers need the admin role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yDashboardIDIn.id": "ID is the resource id from the path.",
|
|
"O11yPublicDashboard.defaultTimeRange": "DefaultTimeRange is the fixed window when the range is not caller-chosen.",
|
|
"O11yPublicDashboard.publicPath": "PublicPath is the public URL path the share is reachable at.",
|
|
"O11yPublicDashboard.timeRangeEnabled": "TimeRangeEnabled reports whether the public page may pick its own range.",
|
|
"O11yPublicDashboardOut.data": "Data is the public-sharing config.",
|
|
"O11yPublicDashboardOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/deployments/attribute_keys", zip.Doc{
|
|
Description: "Lists the metric attribute keys Kubernetes\ndeployments report, for building deployment filters.",
|
|
Fields: map[string]string{
|
|
"O11yInfraAttributeKeysIn.aggregateAttribute": "AggregateAttribute is the metric the keys must appear on.",
|
|
"O11yInfraAttributeKeysIn.aggregateOperator": "AggregateOperator is the aggregation the keys will be used under, e.g.\nnoop, count, avg. The runtime requires it for non-metrics sources.",
|
|
"O11yInfraAttributeKeysIn.dataSource": "DataSource is the telemetry the keys come from — metrics for the infra\nfaces. The runtime requires it.",
|
|
"O11yInfraAttributeKeysIn.limit": "Limit caps how many keys come back. Absent means 50.",
|
|
"O11yInfraAttributeKeysIn.searchText": "SearchText narrows the keys to those containing it.",
|
|
"O11yInfraAttributeKeysIn.tagType": "TagType narrows the keys to one kind — tag or resource. Empty means all;\nan invalid value reads as empty.",
|
|
"O11yInfraAttributeKeysOut.data": "Data holds the keys.",
|
|
"O11yInfraAttributeKeysOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/deployments/attribute_values", zip.Doc{
|
|
Description: "Lists the values one deployment attribute key has\ntaken, for building deployment filters.",
|
|
Fields: map[string]string{
|
|
"O11yInfraAttributeValuesIn.aggregateAttribute": "AggregateAttribute is the metric the values must appear on.",
|
|
"O11yInfraAttributeValuesIn.aggregateOperator": "AggregateOperator is the aggregation the values will be used under, e.g.\nnoop, count, avg. The runtime requires it for non-metrics sources.",
|
|
"O11yInfraAttributeValuesIn.attributeKey": "AttributeKey is the key whose values to list.",
|
|
"O11yInfraAttributeValuesIn.dataSource": "DataSource is the telemetry the values come from — metrics for the infra\nfaces. The runtime requires it.",
|
|
"O11yInfraAttributeValuesIn.filterAttributeKeyDataType": "FilterAttributeKeyDataType is the key's data type — string, int64,\nfloat64 or bool. Empty means unspecified.",
|
|
"O11yInfraAttributeValuesIn.limit": "Limit caps how many values come back. Absent means 50.",
|
|
"O11yInfraAttributeValuesIn.searchText": "SearchText narrows the values to those containing it.",
|
|
"O11yInfraAttributeValuesIn.tagType": "TagType narrows the search to one kind of key — tag or resource.",
|
|
"O11yInfraAttributeValuesOut.data": "Data holds the values, split by data type.",
|
|
"O11yInfraAttributeValuesOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/disks", zip.Doc{
|
|
Description: "Lists the storage disks the datastore reports, with their names and\ntypes.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yDisk.name": "Name is the disk's name.",
|
|
"O11yDisk.type": "Type is the disk's type, e.g. local or s3.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/downtime_schedules", zip.Doc{
|
|
Description: "Lists all planned maintenance windows, optionally\nnarrowed to the active ones or the recurring ones. Viewer gate.",
|
|
Fields: map[string]string{
|
|
"O11yDowntimeSchedulesOut.data": "Data holds the schedules.",
|
|
"O11yDowntimeSchedulesOut.status": "Status is \"success\".",
|
|
"O11yListDowntimeSchedulesIn.active": "Active, when \"true\" or \"false\", keeps only the active or inactive windows.\nAbsent lists all.",
|
|
"O11yListDowntimeSchedulesIn.recurring": "Recurring, when \"true\" or \"false\", keeps only the recurring or one-off\nwindows. Absent lists all.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/downtime_schedules/:id", zip.Doc{
|
|
Description: "Returns one planned maintenance window, by id. Viewer gate.",
|
|
Fields: map[string]string{
|
|
"O11yDowntimeScheduleOut.data": "Data holds the schedule.",
|
|
"O11yDowntimeScheduleOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/errorFromErrorID", zip.Doc{
|
|
Description: "Returns one exception instance and the span it happened on,\nby its error id within a group at a timestamp.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yErrorLookupIn.errorID": "ErrorID is the exception instance id. Required by errorFromErrorID and\nnextPrevErrorIDs; unused by errorFromGroupID.",
|
|
"O11yErrorLookupIn.groupID": "GroupID is the exception group the instance belongs to. Required.",
|
|
"O11yErrorLookupIn.timestamp": "Timestamp is the instance's time as a nanosecond epoch spelled as a\nstring. Required.",
|
|
"O11yErrorWithSpan.errorId": "ErrorID is the exception instance id.",
|
|
"O11yErrorWithSpan.exceptionEscaped": "ExceptionEscaped marks an exception that escaped its span uncaught.",
|
|
"O11yErrorWithSpan.exceptionMessage": "ExceptionMsg is the exception's message.",
|
|
"O11yErrorWithSpan.exceptionStacktrace": "ExceptionStacktrace is the captured stack trace.",
|
|
"O11yErrorWithSpan.exceptionType": "ExceptionType is the exception's type.",
|
|
"O11yErrorWithSpan.groupID": "GroupID is the exception group it belongs to.",
|
|
"O11yErrorWithSpan.serviceName": "ServiceName is the service that reported it.",
|
|
"O11yErrorWithSpan.spanID": "SpanID is the span it happened on.",
|
|
"O11yErrorWithSpan.timestamp": "Timestamp is when it happened.",
|
|
"O11yErrorWithSpan.traceID": "TraceID is the trace the span belonged to.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/errorFromGroupID", zip.Doc{
|
|
Description: "Returns the representative exception instance of a group at a\ntimestamp, and the span it happened on.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yErrorLookupIn.errorID": "ErrorID is the exception instance id. Required by errorFromErrorID and\nnextPrevErrorIDs; unused by errorFromGroupID.",
|
|
"O11yErrorLookupIn.groupID": "GroupID is the exception group the instance belongs to. Required.",
|
|
"O11yErrorLookupIn.timestamp": "Timestamp is the instance's time as a nanosecond epoch spelled as a\nstring. Required.",
|
|
"O11yErrorWithSpan.errorId": "ErrorID is the exception instance id.",
|
|
"O11yErrorWithSpan.exceptionEscaped": "ExceptionEscaped marks an exception that escaped its span uncaught.",
|
|
"O11yErrorWithSpan.exceptionMessage": "ExceptionMsg is the exception's message.",
|
|
"O11yErrorWithSpan.exceptionStacktrace": "ExceptionStacktrace is the captured stack trace.",
|
|
"O11yErrorWithSpan.exceptionType": "ExceptionType is the exception's type.",
|
|
"O11yErrorWithSpan.groupID": "GroupID is the exception group it belongs to.",
|
|
"O11yErrorWithSpan.serviceName": "ServiceName is the service that reported it.",
|
|
"O11yErrorWithSpan.spanID": "SpanID is the span it happened on.",
|
|
"O11yErrorWithSpan.timestamp": "Timestamp is when it happened.",
|
|
"O11yErrorWithSpan.traceID": "TraceID is the trace the span belonged to.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/errortracking/issues", zip.Doc{
|
|
Description: "Lists the caller's org's grouped error issues (by\nfingerprint) with status, level, counts and first/last-seen.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yErrorIssue.assignee": "Assignee is who the issue is assigned to.",
|
|
"O11yErrorIssue.count": "Count is how many occurrences have landed on the issue.",
|
|
"O11yErrorIssue.createdAt": "CreatedAt is when the issue was first recorded.",
|
|
"O11yErrorIssue.culprit": "Culprit is where it came from — the function or route blamed for it.",
|
|
"O11yErrorIssue.environment": "Environment is the deployment the issue was seen in.",
|
|
"O11yErrorIssue.fingerprint": "Fingerprint is the grouping key that puts like errors in one issue.",
|
|
"O11yErrorIssue.firstSeen": "FirstSeen is when the earliest occurrence was recorded.",
|
|
"O11yErrorIssue.id": "ID is the issue id.",
|
|
"O11yErrorIssue.lastSeen": "LastSeen is when the latest was.",
|
|
"O11yErrorIssue.level": "Level is the issue's severity, e.g. error, warning, info.",
|
|
"O11yErrorIssue.platform": "Platform is the reporting runtime, e.g. go, python, javascript.",
|
|
"O11yErrorIssue.regressed": "Regressed marks an issue that reopened after being resolved.",
|
|
"O11yErrorIssue.release": "Release is the version that produced it.",
|
|
"O11yErrorIssue.resolvedAt": "ResolvedAt is when the issue was resolved, if it is.",
|
|
"O11yErrorIssue.serviceName": "ServiceName is the service that reported it.",
|
|
"O11yErrorIssue.status": "Status is the lifecycle state: unresolved, resolved or ignored.",
|
|
"O11yErrorIssue.type": "Type is the exception type.",
|
|
"O11yErrorIssue.updatedAt": "UpdatedAt is when the issue last changed.",
|
|
"O11yErrorIssue.value": "Value is the exception value.",
|
|
"O11yErrorIssues.items": "Items are the issues.",
|
|
"O11yErrorIssues.limit": "Limit is the page cap that was applied.",
|
|
"O11yErrorIssues.offset": "Offset is how many were skipped.",
|
|
"O11yErrorIssues.total": "Total is how many matched the filter.",
|
|
"O11yErrorIssuesIn.environment": "Environment narrows to one deployment environment.",
|
|
"O11yErrorIssuesIn.level": "Level narrows to one severity, e.g. error, warning, info.",
|
|
"O11yErrorIssuesIn.limit": "Limit caps how many issues come back. Zero means the default.",
|
|
"O11yErrorIssuesIn.offset": "Offset is how many issues to skip. Zero starts at the first.",
|
|
"O11yErrorIssuesIn.query": "Query narrows to issues whose text contains it.",
|
|
"O11yErrorIssuesIn.serviceName": "ServiceName narrows to one reporting service.",
|
|
"O11yErrorIssuesIn.sort": "Sort orders the page, e.g. lastSeen, firstSeen, count.",
|
|
"O11yErrorIssuesIn.status": "Status narrows to one lifecycle state: unresolved, resolved or ignored.",
|
|
"O11yErrorIssuesOut.data": "Data holds the issues.",
|
|
"O11yErrorIssuesOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/errortracking/issues/:id", zip.Doc{
|
|
Description: "Returns one grouped issue with its latest occurrence sample.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yErrorGettableIssue.issue": "Issue is the lifecycle row.",
|
|
"O11yErrorGettableIssue.latestEvent": "LatestEvent is the most recent occurrence that landed on the issue.",
|
|
"O11yErrorGettableIssueOut.data": "Data is the issue and its latest occurrence.",
|
|
"O11yErrorGettableIssueOut.status": "Status is \"success\".",
|
|
"O11yErrorIssue.assignee": "Assignee is who the issue is assigned to.",
|
|
"O11yErrorIssue.count": "Count is how many occurrences have landed on the issue.",
|
|
"O11yErrorIssue.createdAt": "CreatedAt is when the issue was first recorded.",
|
|
"O11yErrorIssue.culprit": "Culprit is where it came from — the function or route blamed for it.",
|
|
"O11yErrorIssue.environment": "Environment is the deployment the issue was seen in.",
|
|
"O11yErrorIssue.fingerprint": "Fingerprint is the grouping key that puts like errors in one issue.",
|
|
"O11yErrorIssue.firstSeen": "FirstSeen is when the earliest occurrence was recorded.",
|
|
"O11yErrorIssue.id": "ID is the issue id.",
|
|
"O11yErrorIssue.lastSeen": "LastSeen is when the latest was.",
|
|
"O11yErrorIssue.level": "Level is the issue's severity, e.g. error, warning, info.",
|
|
"O11yErrorIssue.platform": "Platform is the reporting runtime, e.g. go, python, javascript.",
|
|
"O11yErrorIssue.regressed": "Regressed marks an issue that reopened after being resolved.",
|
|
"O11yErrorIssue.release": "Release is the version that produced it.",
|
|
"O11yErrorIssue.resolvedAt": "ResolvedAt is when the issue was resolved, if it is.",
|
|
"O11yErrorIssue.serviceName": "ServiceName is the service that reported it.",
|
|
"O11yErrorIssue.status": "Status is the lifecycle state: unresolved, resolved or ignored.",
|
|
"O11yErrorIssue.type": "Type is the exception type.",
|
|
"O11yErrorIssue.updatedAt": "UpdatedAt is when the issue last changed.",
|
|
"O11yErrorIssue.value": "Value is the exception value.",
|
|
"O11yErrorIssueRef.id": "ID is the issue id.",
|
|
"O11yEventUser.email": "Email is that user's email.",
|
|
"O11yEventUser.id": "ID identifies the affected end user.",
|
|
"O11yEventUser.ipAddress": "IP is that user's address.",
|
|
"O11yEventUser.username": "Username is that user's name.",
|
|
"O11yOccurrence.culprit": "Culprit is where it came from.",
|
|
"O11yOccurrence.environment": "Environment is the deployment it happened in.",
|
|
"O11yOccurrence.eventId": "EventID is the occurrence's id.",
|
|
"O11yOccurrence.fingerprint": "Fingerprint is the grouping key it was bucketed by.",
|
|
"O11yOccurrence.frames": "Frames are the stack, innermost first.",
|
|
"O11yOccurrence.level": "Level is its severity, e.g. error, warning, info.",
|
|
"O11yOccurrence.platform": "Platform is the reporting runtime.",
|
|
"O11yOccurrence.release": "Release is the version that produced it.",
|
|
"O11yOccurrence.serverName": "ServerName is the host that reported it.",
|
|
"O11yOccurrence.serviceName": "ServiceName is the service that reported it.",
|
|
"O11yOccurrence.spanId": "SpanID is the span it belonged to.",
|
|
"O11yOccurrence.tags": "Tags are the reporter's own key/value labels.",
|
|
"O11yOccurrence.timestamp": "Timestamp is when the error happened.",
|
|
"O11yOccurrence.traceId": "TraceID is the trace it belonged to.",
|
|
"O11yOccurrence.transaction": "Transaction is the operation it happened in.",
|
|
"O11yOccurrence.type": "Type is the exception type.",
|
|
"O11yOccurrence.user": "User is the affected end-user context, when the reporter attached one.",
|
|
"O11yOccurrence.value": "Value is the exception value.",
|
|
"O11yOccurrenceFrame.absPath": "AbsPath is the file's absolute path.",
|
|
"O11yOccurrenceFrame.colno": "Colno is the column number.",
|
|
"O11yOccurrenceFrame.filename": "Filename is the file it is in.",
|
|
"O11yOccurrenceFrame.function": "Function is the function the frame is in.",
|
|
"O11yOccurrenceFrame.inApp": "InApp marks a frame in the reporting application's own code.",
|
|
"O11yOccurrenceFrame.lineno": "Lineno is the line number.",
|
|
"O11yOccurrenceFrame.module": "Module is the module the function is in.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/explorer/views", zip.Doc{
|
|
Description: "Lists the caller's org's saved explorer views, optionally\nnarrowed to one source page, name or category.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"CompositeQuery.fillGaps": "FillGaps is used to fill the gaps in the time series data",
|
|
"CompositeQuery.unit": "Unit for the time series data shown in the graph\nThis is used in alerts to format the value and threshold",
|
|
"O11ySavedViewListIn.category": "Category narrows the views to one category.",
|
|
"O11ySavedViewListIn.name": "Name narrows the views to one name.",
|
|
"O11ySavedViewListIn.sourcePage": "SourcePage narrows the views to one source page, e.g. traces, logs.",
|
|
"O11ySavedViewListOut.data": "Data holds the views.",
|
|
"O11ySavedViewListOut.status": "Status is \"success\".",
|
|
"QueryEnvelope.spec": "Spec is the deferred decoding of the query if any.",
|
|
"QueryEnvelope.type": "Type is the type of the query.",
|
|
"SavedView.extraData": "ExtraData is JSON encoded data used by frontend to store additional data",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/explorer/views/:viewId", zip.Doc{
|
|
Description: "Returns one saved explorer view by id.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"CompositeQuery.fillGaps": "FillGaps is used to fill the gaps in the time series data",
|
|
"CompositeQuery.unit": "Unit for the time series data shown in the graph\nThis is used in alerts to format the value and threshold",
|
|
"O11ySavedViewOut.data": "Data holds the view.",
|
|
"O11ySavedViewOut.status": "Status is \"success\".",
|
|
"O11ySavedViewRef.viewId": "ViewID is the view's id.",
|
|
"QueryEnvelope.spec": "Spec is the deferred decoding of the query if any.",
|
|
"QueryEnvelope.type": "Type is the type of the query.",
|
|
"SavedView.extraData": "ExtraData is JSON encoded data used by frontend to store additional data",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/features", zip.Doc{
|
|
Description: "Returns the supported feature flags and their resolved values for\nthe caller's org.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yFeature.defaultVariant": "DefaultVariant is the variant used when nothing overrides it.",
|
|
"O11yFeature.description": "Description says what the flag gates.",
|
|
"O11yFeature.kind": "Kind is the flag's value kind, e.g. boolean.",
|
|
"O11yFeature.name": "Name is the flag's name.",
|
|
"O11yFeature.resolvedValue": "ResolvedValue is the value resolved for the caller's org.",
|
|
"O11yFeature.stage": "Stage is the flag's lifecycle stage, e.g. stable.",
|
|
"O11yFeature.variants": "Variants are the flag's possible values, by variant name.",
|
|
"O11yFeaturesOut.data": "Data are the features.",
|
|
"O11yFeaturesOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/fields/keys", zip.Doc{
|
|
Description: "Returns the telemetry field keys matching the selector — the\nsignal's fields grouped by name, and whether the catalog is complete.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yFieldKeysIn.endUnixMilli": "EndUnixMilli is the window end as a unix millisecond epoch. Zero reads as\nunset.",
|
|
"O11yFieldKeysIn.fieldContext": "FieldContext narrows the keys to one context — resource, scope, attribute,\nspan, log or metric.",
|
|
"O11yFieldKeysIn.fieldDataType": "FieldDataType narrows the keys to one data type.",
|
|
"O11yFieldKeysIn.limit": "Limit caps how many keys come back.",
|
|
"O11yFieldKeysIn.metricName": "MetricName narrows the keys to those on one metric.",
|
|
"O11yFieldKeysIn.metricNamespace": "MetricNamespace narrows the keys to one metric namespace.",
|
|
"O11yFieldKeysIn.searchText": "SearchText narrows the keys to those containing it.",
|
|
"O11yFieldKeysIn.signal": "Signal is the telemetry to read the fields of — traces, logs or metrics.",
|
|
"O11yFieldKeysIn.source": "Source narrows the fields to one source within the signal.",
|
|
"O11yFieldKeysIn.startUnixMilli": "StartUnixMilli is the window start as a unix millisecond epoch. Zero reads\nas unset.",
|
|
"O11yFieldKeysOut.data": "Data holds the field keys grouped by name, and whether the catalog is\ncomplete.",
|
|
"O11yFieldKeysOut.status": "Status is \"success\".",
|
|
"TelemetryFieldKeySkipIndex.name": "Name is TelemetryFieldKey.Name not IndexName from Datastore",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/fields/values", zip.Doc{
|
|
Description: "Returns the values one telemetry field has taken — string, bool,\nnumber and related values — and whether the value list is complete.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yFieldValuesIn.endUnixMilli": "EndUnixMilli is the window end as a unix millisecond epoch. Zero reads as\nunset.",
|
|
"O11yFieldValuesIn.existingQuery": "ExistingQuery is the query the field appears in, so related values can be\nsuggested for it.",
|
|
"O11yFieldValuesIn.fieldContext": "FieldContext narrows the field to one context.",
|
|
"O11yFieldValuesIn.fieldDataType": "FieldDataType narrows the field to one data type.",
|
|
"O11yFieldValuesIn.limit": "Limit caps how many values come back.",
|
|
"O11yFieldValuesIn.metricName": "MetricName narrows the field to one metric.",
|
|
"O11yFieldValuesIn.metricNamespace": "MetricNamespace narrows the field to one metric namespace.",
|
|
"O11yFieldValuesIn.name": "Name is the field whose values to read.",
|
|
"O11yFieldValuesIn.searchText": "SearchText narrows the values to those containing it.",
|
|
"O11yFieldValuesIn.signal": "Signal is the telemetry to read the field of — traces, logs or metrics.",
|
|
"O11yFieldValuesIn.source": "Source narrows the field to one source within the signal.",
|
|
"O11yFieldValuesIn.startUnixMilli": "StartUnixMilli is the window start as a unix millisecond epoch. Zero reads\nas unset.",
|
|
"O11yFieldValuesOut.data": "Data holds the values by data type, and whether the value list is complete.",
|
|
"O11yFieldValuesOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/filter_suggestions", zip.Doc{
|
|
Description: "Suggests attribute keys and example filter queries for the\nquery builder, seeded by what the org's own telemetry carries. Only the logs\ndata source is supported today.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yAttributeKey.dataType": "DataType is the attribute's value type — string, int64, float64 or bool.",
|
|
"O11yAttributeKey.isColumn": "IsColumn marks an attribute materialized as its own column.",
|
|
"O11yAttributeKey.isJSON": "IsJSON marks an attribute extracted from a JSON body.",
|
|
"O11yAttributeKey.key": "Key is the attribute's name.",
|
|
"O11yAttributeKey.type": "Type says where the attribute lives: tag or resource.",
|
|
"O11yFilterItem.key": "Key is the attribute tested.",
|
|
"O11yFilterItem.op": "Operator is the comparison, e.g. =, !=, in, contains.",
|
|
"O11yFilterItem.value": "Value is what it is tested against; its type follows the attribute's.",
|
|
"O11yFilterSet.items": "Items are the conditions.",
|
|
"O11yFilterSet.op": "Operator combines the items — AND or OR.",
|
|
"O11yFilterSuggestions.attributes": "Attributes are the suggested attribute keys.",
|
|
"O11yFilterSuggestions.example_queries": "ExampleQueries are ready-to-run filter sets.",
|
|
"O11yFilterSuggestionsIn.attributesLimit": "AttributesLimit caps how many attribute keys come back.",
|
|
"O11yFilterSuggestionsIn.dataSource": "DataSource is the signal suggestions are drawn from; only logs is\nsupported today. Required.",
|
|
"O11yFilterSuggestionsIn.examplesLimit": "ExamplesLimit caps how many example queries come back.",
|
|
"O11yFilterSuggestionsIn.existingFilter": "ExistingFilter is the current filter set, JSON base64url-encoded, so\nexample queries build on it rather than repeat it.",
|
|
"O11yFilterSuggestionsIn.searchText": "SearchText narrows attribute suggestions to keys containing it.",
|
|
"O11yFilterSuggestionsOut.data": "Data holds the suggestions.",
|
|
"O11yFilterSuggestionsOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/gateway/ingestion_keys", zip.Doc{
|
|
Description: "Lists the workspace's ingestion keys, paginated. Editor\ngate.",
|
|
Fields: map[string]string{
|
|
"Limit.signal": "\"logs\", \"traces\", \"metrics\"",
|
|
"O11yIngestionKeysIn.page": "Page is the 1-based page number.",
|
|
"O11yIngestionKeysIn.per_page": "PerPage is the page size.",
|
|
"O11yIngestionKeysOut.data": "Data holds the ingestion keys.",
|
|
"O11yIngestionKeysOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/gateway/ingestion_keys/search", zip.Doc{
|
|
Description: "Lists the workspace's ingestion keys whose name matches\nthe search, paginated. Editor gate.",
|
|
Fields: map[string]string{
|
|
"Limit.signal": "\"logs\", \"traces\", \"metrics\"",
|
|
"O11yIngestionKeysOut.data": "Data holds the ingestion keys.",
|
|
"O11yIngestionKeysOut.status": "Status is \"success\".",
|
|
"O11ySearchIngestionKeysIn.name": "Name is the substring to match ingestion-key names against.",
|
|
"O11ySearchIngestionKeysIn.page": "Page is the 1-based page number.",
|
|
"O11ySearchIngestionKeysIn.per_page": "PerPage is the page size.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/global/config", zip.Doc{
|
|
Description: "Returns the deployment's global configuration: its public\nendpoints and which identity providers are enabled. Open by design — the\nsign-in page reads it before anyone is signed in.\n\nOpen by design; the runtime's own gate is OpenAccess.",
|
|
Fields: map[string]string{
|
|
"O11yGlobalConfig.ai_assistant_url": "AIAssistantURL is the AI assistant endpoint, when one is exposed.",
|
|
"O11yGlobalConfig.external_url": "ExternalURL is the deployment's public URL.",
|
|
"O11yGlobalConfig.identN": "IdentN says which identity providers are enabled.",
|
|
"O11yGlobalConfig.ingestion_url": "IngestionURL is where telemetry is sent.",
|
|
"O11yGlobalConfig.mcp_url": "MCPURL is the MCP endpoint, when one is exposed.",
|
|
"O11yGlobalConfigOut.data": "Data is the configuration.",
|
|
"O11yGlobalConfigOut.status": "Status is \"success\".",
|
|
"O11yIdentN.apikey": "APIKey is the API-key provider.",
|
|
"O11yIdentN.impersonation": "Impersonation is the impersonation provider.",
|
|
"O11yIdentN.tokenizer": "Tokenizer is the token-based provider.",
|
|
"O11yToggle.enabled": "Enabled says whether the feature is on.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/health", zip.Doc{
|
|
Description: "Reports service health. With live set, the datastore connection is\nchecked too and an unhealthy store refuses with 503.\n\nOpen by design; the runtime's own gate is OpenAccess.",
|
|
Fields: map[string]string{
|
|
"O11yHealthIn.live": "Live also checks the datastore connection; an unreachable store refuses\nwith 503.",
|
|
"O11yHealthOut.status": "Status is \"ok\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/hosts/attribute_keys", zip.Doc{
|
|
Description: "Lists the metric attribute keys hosts report, for building\nhost filters — each with its data type and whether it is a materialized\ncolumn.",
|
|
Fields: map[string]string{
|
|
"O11yInfraAttributeKeysIn.aggregateAttribute": "AggregateAttribute is the metric the keys must appear on.",
|
|
"O11yInfraAttributeKeysIn.aggregateOperator": "AggregateOperator is the aggregation the keys will be used under, e.g.\nnoop, count, avg. The runtime requires it for non-metrics sources.",
|
|
"O11yInfraAttributeKeysIn.dataSource": "DataSource is the telemetry the keys come from — metrics for the infra\nfaces. The runtime requires it.",
|
|
"O11yInfraAttributeKeysIn.limit": "Limit caps how many keys come back. Absent means 50.",
|
|
"O11yInfraAttributeKeysIn.searchText": "SearchText narrows the keys to those containing it.",
|
|
"O11yInfraAttributeKeysIn.tagType": "TagType narrows the keys to one kind — tag or resource. Empty means all;\nan invalid value reads as empty.",
|
|
"O11yInfraAttributeKeysOut.data": "Data holds the keys.",
|
|
"O11yInfraAttributeKeysOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/hosts/attribute_values", zip.Doc{
|
|
Description: "Lists the values one host attribute key has taken, for\nbuilding host filters — string, number and bool values in their own lists.",
|
|
Fields: map[string]string{
|
|
"O11yInfraAttributeValuesIn.aggregateAttribute": "AggregateAttribute is the metric the values must appear on.",
|
|
"O11yInfraAttributeValuesIn.aggregateOperator": "AggregateOperator is the aggregation the values will be used under, e.g.\nnoop, count, avg. The runtime requires it for non-metrics sources.",
|
|
"O11yInfraAttributeValuesIn.attributeKey": "AttributeKey is the key whose values to list.",
|
|
"O11yInfraAttributeValuesIn.dataSource": "DataSource is the telemetry the values come from — metrics for the infra\nfaces. The runtime requires it.",
|
|
"O11yInfraAttributeValuesIn.filterAttributeKeyDataType": "FilterAttributeKeyDataType is the key's data type — string, int64,\nfloat64 or bool. Empty means unspecified.",
|
|
"O11yInfraAttributeValuesIn.limit": "Limit caps how many values come back. Absent means 50.",
|
|
"O11yInfraAttributeValuesIn.searchText": "SearchText narrows the values to those containing it.",
|
|
"O11yInfraAttributeValuesIn.tagType": "TagType narrows the search to one kind of key — tag or resource.",
|
|
"O11yInfraAttributeValuesOut.data": "Data holds the values, split by data type.",
|
|
"O11yInfraAttributeValuesOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/infra_monitoring/checks", zip.Doc{
|
|
Description: "Reports whether the metrics and attributes an infra-monitoring\nsection needs are being received — for each collector receiver or processor\ninvolved, what is present and what is missing, with a user-facing message\nand a docs link per missing piece. Ready is true only when nothing is\nmissing.",
|
|
Fields: map[string]string{
|
|
"O11yInfraChecksIn.type": "Type is the section to check — hosts, processes, pods, nodes,\ndeployments, daemonsets, statefulsets, jobs, namespaces, clusters or\nvolumes. Required.",
|
|
"O11yInfraChecksOut.data": "Data holds what is present, what is missing and whether the section is\nready.",
|
|
"O11yInfraChecksOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/infra_onboarding/k8s/status", zip.Doc{
|
|
Description: "Reports how far Kubernetes infra onboarding has progressed:\nwhich metric families have arrived and, per pod, which required metadata\nlabels are present.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yK8sOnboarding.didSendClusterMetrics": "DidSendClusterMetrics says whether cluster metrics have arrived.",
|
|
"O11yK8sOnboarding.didSendNodeMetrics": "DidSendNodeMetrics says whether node metrics have arrived.",
|
|
"O11yK8sOnboarding.didSendPodMetrics": "DidSendPodMetrics says whether pod metrics have arrived.",
|
|
"O11yK8sOnboarding.isSendingOptionalPodMetrics": "IsSendingOptionalPodMetrics says whether optional pod metrics are\nflowing.",
|
|
"O11yK8sOnboarding.isSendingRequiredMetadata": "IsSendingRequiredMetadata reports, per pod, which required metadata\nlabels are present.",
|
|
"O11yOnboardingOut.data": "Data is the progress report.",
|
|
"O11yOnboardingOut.status": "Status is \"success\".",
|
|
"O11yPodOnboarding.clusterName": "ClusterName is the pod's cluster.",
|
|
"O11yPodOnboarding.hasClusterName": "HasClusterName says whether the cluster label is present.",
|
|
"O11yPodOnboarding.hasCronjobName": "HasCronjobName says whether the cronjob label is present.",
|
|
"O11yPodOnboarding.hasDaemonsetName": "HasDaemonsetName says whether the daemonset label is present.",
|
|
"O11yPodOnboarding.hasDeploymentName": "HasDeploymentName says whether the deployment label is present.",
|
|
"O11yPodOnboarding.hasJobName": "HasJobName says whether the job label is present.",
|
|
"O11yPodOnboarding.hasNamespaceName": "HasNamespaceName says whether the namespace label is present.",
|
|
"O11yPodOnboarding.hasNodeName": "HasNodeName says whether the node label is present.",
|
|
"O11yPodOnboarding.hasStatefulsetName": "HasStatefulsetName says whether the statefulset label is present.",
|
|
"O11yPodOnboarding.namespaceName": "NamespaceName is the pod's namespace.",
|
|
"O11yPodOnboarding.nodeName": "NodeName is the pod's node.",
|
|
"O11yPodOnboarding.podName": "PodName is the pod.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/integrations", zip.Doc{
|
|
Description: "Lists the available integrations and whether each is\ninstalled in the caller's org, optionally narrowed to installed or\nnot-installed. Viewer gate.",
|
|
Fields: map[string]string{
|
|
"IntegrationSummary.description": "A short description",
|
|
"O11yIntegrationsListOut.data": "Data holds the available integrations and their installed state.",
|
|
"O11yIntegrationsListOut.status": "Status is \"success\".",
|
|
"O11yListIntegrationsIn.is_installed": "IsInstalled, when \"true\" or \"false\", keeps only integrations in that\ninstalled state; empty lists them all.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/integrations/:integrationId", zip.Doc{
|
|
Description: "Returns one integration's full detail — its overview,\nconfiguration steps, collected data and assets — together with its\ninstallation record when the org has installed it. Viewer gate.",
|
|
Fields: map[string]string{
|
|
"AlertCompositeQuery.unit": "Unit for the time series data shown in the graph\nThis is used to format the value and threshold",
|
|
"IntegrationConnectionTests.metrics": "Metric names expected to have been received for the integration.",
|
|
"IntegrationDetails.overview": "markdown",
|
|
"IntegrationSummary.description": "A short description",
|
|
"NotificationSettings.newGroupEvalDelay": "NewGroupEvalDelay is the grace period for new series to be excluded from alerts evaluation",
|
|
"O11yIntegrationOut.data": "Data holds the integration and its installation record.",
|
|
"O11yIntegrationOut.status": "Status is \"success\".",
|
|
"PipelineOperator.enable_flattening": "json_parser fields",
|
|
"PipelineOperator.layout": "time_parser fields.",
|
|
"PipelineOperator.mapping": "Used in Severity Parsing and JSON Flattening mapping",
|
|
"PipelineOperator.orderId": "don't need the following in the final config",
|
|
"PipelineOperator.overwrite_text": "severity parser fields",
|
|
"PipelineOperator.parse_to": "optional keys depending on the type",
|
|
"PostableRule.source": "Source captures the source url where rule has been created",
|
|
"QueryEnvelope.spec": "Spec is the deferred decoding of the query if any.",
|
|
"QueryEnvelope.type": "Type is the type of the query.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/integrations/:integrationId/connection_status", zip.Doc{
|
|
Description: "Reports whether the integration's logs and\nmetrics have been received over the lookback window, so the console can show\na live connection state. An integration that is not installed answers with an\nempty status rather than an error. Viewer gate.",
|
|
Fields: map[string]string{
|
|
"O11yConnectionStatusIn.lookback_seconds": "LookbackSeconds is how far back to look for received telemetry, in\nseconds.",
|
|
"O11yConnectionStatusOut.data": "Data holds the logs and metrics connection status.",
|
|
"O11yConnectionStatusOut.status": "Status is \"success\".",
|
|
"SignalConnectionStatus.last_received_from": "resource identifier",
|
|
"SignalConnectionStatus.last_received_ts_ms": "epoch milliseconds",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/jobs/attribute_keys", zip.Doc{
|
|
Description: "Lists the metric attribute keys Kubernetes jobs report, for\nbuilding job filters.",
|
|
Fields: map[string]string{
|
|
"O11yInfraAttributeKeysIn.aggregateAttribute": "AggregateAttribute is the metric the keys must appear on.",
|
|
"O11yInfraAttributeKeysIn.aggregateOperator": "AggregateOperator is the aggregation the keys will be used under, e.g.\nnoop, count, avg. The runtime requires it for non-metrics sources.",
|
|
"O11yInfraAttributeKeysIn.dataSource": "DataSource is the telemetry the keys come from — metrics for the infra\nfaces. The runtime requires it.",
|
|
"O11yInfraAttributeKeysIn.limit": "Limit caps how many keys come back. Absent means 50.",
|
|
"O11yInfraAttributeKeysIn.searchText": "SearchText narrows the keys to those containing it.",
|
|
"O11yInfraAttributeKeysIn.tagType": "TagType narrows the keys to one kind — tag or resource. Empty means all;\nan invalid value reads as empty.",
|
|
"O11yInfraAttributeKeysOut.data": "Data holds the keys.",
|
|
"O11yInfraAttributeKeysOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/jobs/attribute_values", zip.Doc{
|
|
Description: "Lists the values one job attribute key has taken, for\nbuilding job filters.",
|
|
Fields: map[string]string{
|
|
"O11yInfraAttributeValuesIn.aggregateAttribute": "AggregateAttribute is the metric the values must appear on.",
|
|
"O11yInfraAttributeValuesIn.aggregateOperator": "AggregateOperator is the aggregation the values will be used under, e.g.\nnoop, count, avg. The runtime requires it for non-metrics sources.",
|
|
"O11yInfraAttributeValuesIn.attributeKey": "AttributeKey is the key whose values to list.",
|
|
"O11yInfraAttributeValuesIn.dataSource": "DataSource is the telemetry the values come from — metrics for the infra\nfaces. The runtime requires it.",
|
|
"O11yInfraAttributeValuesIn.filterAttributeKeyDataType": "FilterAttributeKeyDataType is the key's data type — string, int64,\nfloat64 or bool. Empty means unspecified.",
|
|
"O11yInfraAttributeValuesIn.limit": "Limit caps how many values come back. Absent means 50.",
|
|
"O11yInfraAttributeValuesIn.searchText": "SearchText narrows the values to those containing it.",
|
|
"O11yInfraAttributeValuesIn.tagType": "TagType narrows the search to one kind of key — tag or resource.",
|
|
"O11yInfraAttributeValuesOut.data": "Data holds the values, split by data type.",
|
|
"O11yInfraAttributeValuesOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/licenses", zip.Doc{
|
|
Description: "Lists the org's licenses. This build has no enterprise edition, so\nthe list is intentionally empty.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yLicensesOut.data": "Data are the licenses.",
|
|
"O11yLicensesOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/licenses/active", zip.Doc{
|
|
Description: "Activates the enterprise license. This build has no\nenterprise edition, so the licensing provider refuses it as unsupported.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yLicenseActiveOut.data": "Data is the license.",
|
|
"O11yLicenseActiveOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/llm/annotation", zip.Doc{
|
|
Description: "Lists human annotations on traces and observations,\noptionally scoped to one review queue.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yLLMAnnotation.author": "Author is who wrote it.",
|
|
"O11yLLMAnnotation.content": "Content is the note itself.",
|
|
"O11yLLMAnnotation.createdAt": "CreatedAt is when the annotation was stored.",
|
|
"O11yLLMAnnotation.id": "ID is the annotation's id.",
|
|
"O11yLLMAnnotation.observationId": "ObservationID is the observation the annotation attaches to, when narrowed.",
|
|
"O11yLLMAnnotation.queue": "Queue is the review queue the annotation sits in, when queued.",
|
|
"O11yLLMAnnotation.status": "Status is the annotation's review status, e.g. PENDING.",
|
|
"O11yLLMAnnotation.traceId": "TraceID is the trace the annotation attaches to.",
|
|
"O11yLLMAnnotation.updatedAt": "UpdatedAt is when the annotation last changed.",
|
|
"O11yLLMAnnotationsOut.data": "Data is the page.",
|
|
"O11yLLMAnnotationsOut.status": "Status is \"success\".",
|
|
"O11yLLMAnnotationsPage.items": "Items are the annotations, newest first.",
|
|
"O11yLLMAnnotationsPage.limit": "Limit is the page cap the read ran with.",
|
|
"O11yLLMAnnotationsPage.offset": "Offset is the row offset this page started at.",
|
|
"O11yLLMAnnotationsPage.total": "Total is how many annotations match, across all pages.",
|
|
"O11yLLMAnnotationsQuery.limit": "Limit caps how many rows come back.",
|
|
"O11yLLMAnnotationsQuery.offset": "Offset is how many rows to skip, for paging.",
|
|
"O11yLLMAnnotationsQuery.queue": "Queue narrows to one review queue.",
|
|
"O11yLLMAnnotationsQuery.status": "Status narrows to one review status, e.g. PENDING.",
|
|
"O11yLLMAnnotationsQuery.traceId": "TraceID narrows to annotations on one trace.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/llm/observations", zip.Doc{
|
|
Description: "Lists gen_ai spans as LLM observations — each an LLM call with\nits model, token counts, cost and latency projected from gen_ai.* attributes,\nnewest first, over the query window.\n\nCallers need the viewer role; the runtime's own gate enforces it, and scopes\nthe read to the caller's validated tenant.",
|
|
Fields: map[string]string{
|
|
"O11yLLMObservation.completionTokens": "CompletionTokens is the output token count.",
|
|
"O11yLLMObservation.id": "ID is the observation's id (the span id).",
|
|
"O11yLLMObservation.latencyMs": "LatencyMs is how long it took, in milliseconds.",
|
|
"O11yLLMObservation.model": "Model is the model that served it.",
|
|
"O11yLLMObservation.name": "Name is the observation's name.",
|
|
"O11yLLMObservation.parentObservationId": "ParentID is the parent observation, when the span has one.",
|
|
"O11yLLMObservation.promptTokens": "PromptTokens is the input token count.",
|
|
"O11yLLMObservation.provider": "Provider is the model's provider.",
|
|
"O11yLLMObservation.serviceName": "ServiceName is the app that emitted it.",
|
|
"O11yLLMObservation.sessionId": "SessionID is the conversation the observation belongs to.",
|
|
"O11yLLMObservation.startTime": "StartTime is when the observation started.",
|
|
"O11yLLMObservation.statusCode": "StatusCode is the observation's status, e.g. OK, ERROR.",
|
|
"O11yLLMObservation.totalCost": "TotalCost is the observation's cost.",
|
|
"O11yLLMObservation.totalTokens": "TotalTokens is the sum of prompt and completion tokens.",
|
|
"O11yLLMObservation.traceId": "TraceID is the trace the observation belongs to.",
|
|
"O11yLLMObservation.type": "Type is the observation kind, e.g. chat, embeddings, tool.",
|
|
"O11yLLMObservation.userId": "UserID is the end user the observation is attributed to.",
|
|
"O11yLLMObservationsOut.data": "Data is the page.",
|
|
"O11yLLMObservationsOut.status": "Status is \"success\".",
|
|
"O11yLLMObservationsPage.items": "Items are the observations, newest first.",
|
|
"O11yLLMObservationsPage.limit": "Limit is the page cap the read ran with.",
|
|
"O11yLLMObservationsPage.offset": "Offset is the row offset this page started at.",
|
|
"O11yLLMViewQuery.end": "End is the end of the window as a unix-millisecond epoch. Zero means now.",
|
|
"O11yLLMViewQuery.limit": "Limit caps how many rows come back.",
|
|
"O11yLLMViewQuery.model": "Model narrows the view to one model.",
|
|
"O11yLLMViewQuery.name": "Name narrows the view to observations of one name.",
|
|
"O11yLLMViewQuery.offset": "Offset is how many rows to skip, for paging.",
|
|
"O11yLLMViewQuery.sessionId": "SessionID narrows the view to one conversation.",
|
|
"O11yLLMViewQuery.start": "Start is the start of the window as a unix-millisecond epoch. Zero means\n24h before the end.",
|
|
"O11yLLMViewQuery.traceId": "TraceID narrows the view to one trace.",
|
|
"O11yLLMViewQuery.userId": "UserID narrows the view to one end user.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/llm/score/:id", zip.Doc{
|
|
Description: "Returns a single score by id.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yLLMScore.comment": "Comment is a free-text note.",
|
|
"O11yLLMScore.createdAt": "CreatedAt is when the score was stored.",
|
|
"O11yLLMScore.createdBy": "CreatedBy is who created the score.",
|
|
"O11yLLMScore.dataType": "DataType is the score's kind — NUMERIC or CATEGORICAL.",
|
|
"O11yLLMScore.id": "ID is the score's id.",
|
|
"O11yLLMScore.name": "Name is the score's name.",
|
|
"O11yLLMScore.observationId": "ObservationID is the observation the score attaches to, when narrowed.",
|
|
"O11yLLMScore.source": "Source is where the score came from, e.g. API, EVAL.",
|
|
"O11yLLMScore.stringValue": "StringValue is the categorical score, when the score is categorical.",
|
|
"O11yLLMScore.timestamp": "Timestamp is the score's own event time.",
|
|
"O11yLLMScore.traceId": "TraceID is the trace the score attaches to.",
|
|
"O11yLLMScore.updatedAt": "UpdatedAt is when the score last changed.",
|
|
"O11yLLMScore.value": "Value is the numeric score.",
|
|
"O11yLLMScoreOut.data": "Data is the score.",
|
|
"O11yLLMScoreOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/llm/scores", zip.Doc{
|
|
Description: "Lists eval scores and human-feedback signals attached to traces\nand observations, newest first.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yLLMScore.comment": "Comment is a free-text note.",
|
|
"O11yLLMScore.createdAt": "CreatedAt is when the score was stored.",
|
|
"O11yLLMScore.createdBy": "CreatedBy is who created the score.",
|
|
"O11yLLMScore.dataType": "DataType is the score's kind — NUMERIC or CATEGORICAL.",
|
|
"O11yLLMScore.id": "ID is the score's id.",
|
|
"O11yLLMScore.name": "Name is the score's name.",
|
|
"O11yLLMScore.observationId": "ObservationID is the observation the score attaches to, when narrowed.",
|
|
"O11yLLMScore.source": "Source is where the score came from, e.g. API, EVAL.",
|
|
"O11yLLMScore.stringValue": "StringValue is the categorical score, when the score is categorical.",
|
|
"O11yLLMScore.timestamp": "Timestamp is the score's own event time.",
|
|
"O11yLLMScore.traceId": "TraceID is the trace the score attaches to.",
|
|
"O11yLLMScore.updatedAt": "UpdatedAt is when the score last changed.",
|
|
"O11yLLMScore.value": "Value is the numeric score.",
|
|
"O11yLLMScoresOut.data": "Data is the page.",
|
|
"O11yLLMScoresOut.status": "Status is \"success\".",
|
|
"O11yLLMScoresPage.items": "Items are the scores, newest first.",
|
|
"O11yLLMScoresPage.limit": "Limit is the page cap the read ran with.",
|
|
"O11yLLMScoresPage.offset": "Offset is the row offset this page started at.",
|
|
"O11yLLMScoresPage.total": "Total is how many scores match, across all pages.",
|
|
"O11yLLMScoresQuery.limit": "Limit caps how many rows come back.",
|
|
"O11yLLMScoresQuery.name": "Name narrows to scores of one name.",
|
|
"O11yLLMScoresQuery.observationId": "ObservationID narrows to scores on one observation.",
|
|
"O11yLLMScoresQuery.offset": "Offset is how many rows to skip, for paging.",
|
|
"O11yLLMScoresQuery.source": "Source narrows to scores from one source, e.g. API, EVAL.",
|
|
"O11yLLMScoresQuery.traceId": "TraceID narrows to scores on one trace.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/llm/sessions", zip.Doc{
|
|
Description: "Lists conversations — gen_ai spans grouped by session.id, with\ntheir trace and observation counts, tokens and cost.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yLLMSession.completionTokens": "CompletionTokens is the conversation's total output tokens.",
|
|
"O11yLLMSession.id": "ID is the session id.",
|
|
"O11yLLMSession.observations": "Observations is how many observations the conversation holds.",
|
|
"O11yLLMSession.promptTokens": "PromptTokens is the conversation's total input tokens.",
|
|
"O11yLLMSession.totalCost": "TotalCost is the conversation's total cost.",
|
|
"O11yLLMSession.totalTokens": "TotalTokens is the conversation's total tokens.",
|
|
"O11yLLMSession.traces": "Traces is how many traces the conversation holds.",
|
|
"O11yLLMSession.userId": "UserID is the end user the conversation is attributed to.",
|
|
"O11yLLMSessionsOut.data": "Data is the page.",
|
|
"O11yLLMSessionsOut.status": "Status is \"success\".",
|
|
"O11yLLMSessionsPage.items": "Items are the conversations, newest first.",
|
|
"O11yLLMSessionsPage.limit": "Limit is the page cap the read ran with.",
|
|
"O11yLLMSessionsPage.offset": "Offset is the row offset this page started at.",
|
|
"O11yLLMViewQuery.end": "End is the end of the window as a unix-millisecond epoch. Zero means now.",
|
|
"O11yLLMViewQuery.limit": "Limit caps how many rows come back.",
|
|
"O11yLLMViewQuery.model": "Model narrows the view to one model.",
|
|
"O11yLLMViewQuery.name": "Name narrows the view to observations of one name.",
|
|
"O11yLLMViewQuery.offset": "Offset is how many rows to skip, for paging.",
|
|
"O11yLLMViewQuery.sessionId": "SessionID narrows the view to one conversation.",
|
|
"O11yLLMViewQuery.start": "Start is the start of the window as a unix-millisecond epoch. Zero means\n24h before the end.",
|
|
"O11yLLMViewQuery.traceId": "TraceID narrows the view to one trace.",
|
|
"O11yLLMViewQuery.userId": "UserID narrows the view to one end user.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/llm/traces", zip.Doc{
|
|
Description: "Lists LLM traces — gen_ai spans grouped by trace_id, with cost,\ntokens and latency rolled up across each trace.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yLLMTrace.completionTokens": "CompletionTokens is the trace's total output tokens.",
|
|
"O11yLLMTrace.id": "ID is the trace id.",
|
|
"O11yLLMTrace.latencyMs": "LatencyMs is the trace's span, in milliseconds.",
|
|
"O11yLLMTrace.observations": "Observations is how many observations the trace holds.",
|
|
"O11yLLMTrace.promptTokens": "PromptTokens is the trace's total input tokens.",
|
|
"O11yLLMTrace.serviceName": "ServiceName is the app that emitted it.",
|
|
"O11yLLMTrace.sessionId": "SessionID is the conversation the trace belongs to.",
|
|
"O11yLLMTrace.totalCost": "TotalCost is the trace's total cost.",
|
|
"O11yLLMTrace.totalTokens": "TotalTokens is the trace's total tokens.",
|
|
"O11yLLMTrace.userId": "UserID is the end user the trace is attributed to.",
|
|
"O11yLLMTracesOut.data": "Data is the page.",
|
|
"O11yLLMTracesOut.status": "Status is \"success\".",
|
|
"O11yLLMTracesPage.items": "Items are the traces, newest first.",
|
|
"O11yLLMTracesPage.limit": "Limit is the page cap the read ran with.",
|
|
"O11yLLMTracesPage.offset": "Offset is the row offset this page started at.",
|
|
"O11yLLMViewQuery.end": "End is the end of the window as a unix-millisecond epoch. Zero means now.",
|
|
"O11yLLMViewQuery.limit": "Limit caps how many rows come back.",
|
|
"O11yLLMViewQuery.model": "Model narrows the view to one model.",
|
|
"O11yLLMViewQuery.name": "Name narrows the view to observations of one name.",
|
|
"O11yLLMViewQuery.offset": "Offset is how many rows to skip, for paging.",
|
|
"O11yLLMViewQuery.sessionId": "SessionID narrows the view to one conversation.",
|
|
"O11yLLMViewQuery.start": "Start is the start of the window as a unix-millisecond epoch. Zero means\n24h before the end.",
|
|
"O11yLLMViewQuery.traceId": "TraceID narrows the view to one trace.",
|
|
"O11yLLMViewQuery.userId": "UserID narrows the view to one end user.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/llm/users", zip.Doc{
|
|
Description: "Lists end users — gen_ai spans grouped by user.id, with their\nsession, trace and observation counts, tokens and cost.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yLLMUser.completionTokens": "CompletionTokens is their total output tokens.",
|
|
"O11yLLMUser.id": "ID is the end user's id (user.id).",
|
|
"O11yLLMUser.observations": "Observations is how many observations they produced.",
|
|
"O11yLLMUser.promptTokens": "PromptTokens is their total input tokens.",
|
|
"O11yLLMUser.sessions": "Sessions is how many conversations they had.",
|
|
"O11yLLMUser.totalCost": "TotalCost is their total cost.",
|
|
"O11yLLMUser.totalTokens": "TotalTokens is their total tokens.",
|
|
"O11yLLMUser.traces": "Traces is how many traces they produced.",
|
|
"O11yLLMUsersOut.data": "Data is the page.",
|
|
"O11yLLMUsersOut.status": "Status is \"success\".",
|
|
"O11yLLMUsersPage.items": "Items are the end users, newest first.",
|
|
"O11yLLMUsersPage.limit": "Limit is the page cap the read ran with.",
|
|
"O11yLLMUsersPage.offset": "Offset is the row offset this page started at.",
|
|
"O11yLLMViewQuery.end": "End is the end of the window as a unix-millisecond epoch. Zero means now.",
|
|
"O11yLLMViewQuery.limit": "Limit caps how many rows come back.",
|
|
"O11yLLMViewQuery.model": "Model narrows the view to one model.",
|
|
"O11yLLMViewQuery.name": "Name narrows the view to observations of one name.",
|
|
"O11yLLMViewQuery.offset": "Offset is how many rows to skip, for paging.",
|
|
"O11yLLMViewQuery.sessionId": "SessionID narrows the view to one conversation.",
|
|
"O11yLLMViewQuery.start": "Start is the start of the window as a unix-millisecond epoch. Zero means\n24h before the end.",
|
|
"O11yLLMViewQuery.traceId": "TraceID narrows the view to one trace.",
|
|
"O11yLLMViewQuery.userId": "UserID narrows the view to one end user.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/llm_pricing_rules", zip.Doc{
|
|
Description: "Returns the LLM pricing rules for the caller's org, with\npagination and an optional search and override filter.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yLLMPricingCacheCosts.mode": "Mode is how cached tokens are counted — subtract (inside input_tokens,\nOpenAI-style), additive (reported separately, Anthropic-style) or unknown.",
|
|
"O11yLLMPricingCacheCosts.read": "Read is the cost per unit of cache-read tokens.",
|
|
"O11yLLMPricingCacheCosts.write": "Write is the cost per unit of cache-write tokens.",
|
|
"O11yLLMPricingRule.createdAt": "CreatedAt is when the rule was stored.",
|
|
"O11yLLMPricingRule.createdBy": "CreatedBy is who created the rule.",
|
|
"O11yLLMPricingRule.enabled": "Enabled says whether the rule is on.",
|
|
"O11yLLMPricingRule.id": "ID is the rule's id.",
|
|
"O11yLLMPricingRule.isOverride": "IsOverride marks the rule user-pinned; when true the sync job skips it.",
|
|
"O11yLLMPricingRule.modelName": "Model is the model the rule prices.",
|
|
"O11yLLMPricingRule.modelPattern": "ModelPattern are the model-name globs the rule matches.",
|
|
"O11yLLMPricingRule.orgId": "OrgID is the org the rule belongs to.",
|
|
"O11yLLMPricingRule.pricing": "Pricing is the per-unit cost.",
|
|
"O11yLLMPricingRule.provider": "Provider is the model's provider.",
|
|
"O11yLLMPricingRule.sourceId": "SourceID is the upstream source the rule was synced from, when synced.",
|
|
"O11yLLMPricingRule.syncedAt": "SyncedAt is when the rule was last synced, when it is synced.",
|
|
"O11yLLMPricingRule.unit": "Unit is the pricing unit, e.g. per_million_tokens.",
|
|
"O11yLLMPricingRule.updatedAt": "UpdatedAt is when the rule last changed.",
|
|
"O11yLLMPricingRule.updatedBy": "UpdatedBy is who last changed it.",
|
|
"O11yLLMPricingRulesOut.data": "Data is the page.",
|
|
"O11yLLMPricingRulesOut.status": "Status is \"success\".",
|
|
"O11yLLMPricingRulesPage.items": "Items are the rules.",
|
|
"O11yLLMPricingRulesPage.limit": "Limit is the page cap the read ran with.",
|
|
"O11yLLMPricingRulesPage.offset": "Offset is the row offset this page started at.",
|
|
"O11yLLMPricingRulesPage.total": "Total is how many rules match, across all pages.",
|
|
"O11yLLMPricingRulesQuery.isOverride": "IsOverride, when \"true\" or \"false\", narrows to user-pinned rules or to\nsynced ones; empty returns both. It is a string because a query param is a\nstring on the wire, and the runtime reads absent as \"no filter\".",
|
|
"O11yLLMPricingRulesQuery.limit": "Limit caps how many rows come back.",
|
|
"O11yLLMPricingRulesQuery.offset": "Offset is how many rows to skip, for paging.",
|
|
"O11yLLMPricingRulesQuery.q": "Search matches rules by model or provider.",
|
|
"O11yLLMRulePricing.cache": "Cache is the cost of cached tokens, when the model prices them.",
|
|
"O11yLLMRulePricing.input": "Input is the cost per unit of input tokens.",
|
|
"O11yLLMRulePricing.output": "Output is the cost per unit of output tokens.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/llm_pricing_rules/:id", zip.Doc{
|
|
Description: "Returns a single LLM pricing rule by id.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yLLMPricingCacheCosts.mode": "Mode is how cached tokens are counted — subtract (inside input_tokens,\nOpenAI-style), additive (reported separately, Anthropic-style) or unknown.",
|
|
"O11yLLMPricingCacheCosts.read": "Read is the cost per unit of cache-read tokens.",
|
|
"O11yLLMPricingCacheCosts.write": "Write is the cost per unit of cache-write tokens.",
|
|
"O11yLLMPricingRule.createdAt": "CreatedAt is when the rule was stored.",
|
|
"O11yLLMPricingRule.createdBy": "CreatedBy is who created the rule.",
|
|
"O11yLLMPricingRule.enabled": "Enabled says whether the rule is on.",
|
|
"O11yLLMPricingRule.id": "ID is the rule's id.",
|
|
"O11yLLMPricingRule.isOverride": "IsOverride marks the rule user-pinned; when true the sync job skips it.",
|
|
"O11yLLMPricingRule.modelName": "Model is the model the rule prices.",
|
|
"O11yLLMPricingRule.modelPattern": "ModelPattern are the model-name globs the rule matches.",
|
|
"O11yLLMPricingRule.orgId": "OrgID is the org the rule belongs to.",
|
|
"O11yLLMPricingRule.pricing": "Pricing is the per-unit cost.",
|
|
"O11yLLMPricingRule.provider": "Provider is the model's provider.",
|
|
"O11yLLMPricingRule.sourceId": "SourceID is the upstream source the rule was synced from, when synced.",
|
|
"O11yLLMPricingRule.syncedAt": "SyncedAt is when the rule was last synced, when it is synced.",
|
|
"O11yLLMPricingRule.unit": "Unit is the pricing unit, e.g. per_million_tokens.",
|
|
"O11yLLMPricingRule.updatedAt": "UpdatedAt is when the rule last changed.",
|
|
"O11yLLMPricingRule.updatedBy": "UpdatedBy is who last changed it.",
|
|
"O11yLLMPricingRuleOut.data": "Data is the rule.",
|
|
"O11yLLMPricingRuleOut.status": "Status is \"success\".",
|
|
"O11yLLMRulePricing.cache": "Cache is the cost of cached tokens, when the model prices them.",
|
|
"O11yLLMRulePricing.input": "Input is the cost per unit of input tokens.",
|
|
"O11yLLMRulePricing.output": "Output is the cost per unit of output tokens.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/logs", zip.Doc{
|
|
Description: "Returns the most recent log records in the query window, newest\nfirst — each record an open object carrying its nanosecond timestamp and\nwhatever fields the record was ingested with.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yLogRecordsIn.limit": "Limit caps how many records come back. Zero means the default of 100.",
|
|
"O11yLogRecordsIn.timestampEnd": "TimestampEnd is the end of the window as a nanosecond epoch. Zero means\nnow.",
|
|
"O11yLogRecordsIn.timestampStart": "TimestampStart is the start of the window as a nanosecond epoch. Zero\nmeans fifteen minutes before the end.",
|
|
"O11yLogRecordsOut.results": "Results are the records, newest first.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/logs/aggregate", zip.Doc{
|
|
Description: "Returns the logs aggregate buckets for the query window. The\nruntime currently answers the empty set; the shape is the contract.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yLogAggregateBucket.groupBy": "GroupBy carries the group's key values when the aggregate grouped.",
|
|
"O11yLogAggregateBucket.timestamp": "Timestamp is the start of the bucket.",
|
|
"O11yLogAggregateBucket.value": "Value is the bucket's aggregated value.",
|
|
"O11yLogAggregateOut.items": "Items are the buckets, keyed by bucket timestamp.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/logs/fields", zip.Doc{
|
|
Description: "Returns the log field catalog: the fields already selected as\nindexed columns, and the interesting ones seen in the data that could be.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yFieldCatalogOut.interesting": "Interesting are fields seen in the data that could be selected.",
|
|
"O11yFieldCatalogOut.selected": "Selected are the fields materialized as their own columns.",
|
|
"O11yTelemetryField.dataType": "DataType is the field's data type, e.g. string, int64, float64, bool.",
|
|
"O11yTelemetryField.name": "Name is the field's name.",
|
|
"O11yTelemetryField.type": "Type is where the field lives: attributes or resources.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/logs/pipelines/:version", zip.Doc{
|
|
Description: "Returns the caller's org's log parsing pipelines at one config\nversion — \"latest\" for the newest — along with that version's deployment\nrecord and the recent version history.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yLogConfigVersion.config": "Config is the rendered collector config the version deployed.",
|
|
"O11yLogConfigVersion.createdAt": "CreatedAt is when the version was created.",
|
|
"O11yLogConfigVersion.createdBy": "CreatedBy is the id of who created the version.",
|
|
"O11yLogConfigVersion.createdByName": "CreatedByName is the display name of who created the version.",
|
|
"O11yLogConfigVersion.deployResult": "DeployResult is the deployment's outcome message.",
|
|
"O11yLogConfigVersion.deploySequence": "DeploySequence orders this deployment among the version's deployments.",
|
|
"O11yLogConfigVersion.deployStatus": "DeployStatus is where the deployment stands, e.g. dirty, deploying,\ndeployed, in_progress, failed, unknown.",
|
|
"O11yLogConfigVersion.elementType": "ElementType is the config element the version carries — log_pipelines.",
|
|
"O11yLogConfigVersion.id": "ID is the version record's id.",
|
|
"O11yLogConfigVersion.lastHash": "LastHash is the deployed config's hash.",
|
|
"O11yLogConfigVersion.orgId": "OrgID is the org the version belongs to.",
|
|
"O11yLogConfigVersion.updatedAt": "UpdatedAt is when the version last changed.",
|
|
"O11yLogConfigVersion.updatedBy": "UpdatedBy is the id of who last changed it.",
|
|
"O11yLogConfigVersion.version": "Version is the config version number.",
|
|
"O11yLogFilter.items": "Items are the predicates.",
|
|
"O11yLogFilter.op": "Op combines the items: AND or OR.",
|
|
"O11yLogFilterItem.key": "Key is the field the predicate tests.",
|
|
"O11yLogFilterItem.op": "Op is the comparison, e.g. =, !=, in, contains.",
|
|
"O11yLogFilterItem.value": "Value is what it tests against, in the value's own JSON type.",
|
|
"O11yLogFilterKey.dataType": "DataType is the field's data type, e.g. string, int64, float64, bool.",
|
|
"O11yLogFilterKey.isColumn": "IsColumn marks a field materialized as its own column.",
|
|
"O11yLogFilterKey.isJSON": "IsJSON marks a path into the record's JSON body.",
|
|
"O11yLogFilterKey.key": "Key is the field's name.",
|
|
"O11yLogFilterKey.type": "Type is where the field lives: tag or resource.",
|
|
"O11yLogParseFrom.parse_from": "ParseFrom is the field to read.",
|
|
"O11yLogPipeline.alias": "Alias is the pipeline's short name.",
|
|
"O11yLogPipeline.config": "Config is the pipeline's processors, in order.",
|
|
"O11yLogPipeline.createdAt": "CreatedAt is when the pipeline was created.",
|
|
"O11yLogPipeline.createdBy": "CreatedBy is the id of who created the pipeline.",
|
|
"O11yLogPipeline.description": "Description says what the pipeline is for.",
|
|
"O11yLogPipeline.enabled": "Enabled says whether the pipeline is on.",
|
|
"O11yLogPipeline.filter": "Filter selects which records the pipeline processes.",
|
|
"O11yLogPipeline.id": "ID is the pipeline's id.",
|
|
"O11yLogPipeline.name": "Name is the pipeline's display name.",
|
|
"O11yLogPipeline.orderId": "OrderID is the pipeline's 1-based position in the set.",
|
|
"O11yLogPipeline.updatedAt": "UpdatedAt is when the pipeline last changed.",
|
|
"O11yLogPipeline.updatedBy": "UpdatedBy is the id of who last changed it.",
|
|
"O11yLogPipelineOperator.default": "Default is the id of the processor a router falls through to.",
|
|
"O11yLogPipelineOperator.enable_flattening": "EnableFlattening flattens parsed JSON one level when true.",
|
|
"O11yLogPipelineOperator.enable_paths": "EnablePaths keeps the JSON path in flattened keys when true.",
|
|
"O11yLogPipelineOperator.enabled": "Enabled turns the processor on.",
|
|
"O11yLogPipelineOperator.expr": "Expr is a router route's expression.",
|
|
"O11yLogPipelineOperator.field": "Field is the field an add/remove processor works on.",
|
|
"O11yLogPipelineOperator.fields": "Fields are the fields a retain processor keeps.",
|
|
"O11yLogPipelineOperator.from": "From is the source field of a move or copy.",
|
|
"O11yLogPipelineOperator.id": "ID is the processor's id, unique within the pipeline.",
|
|
"O11yLogPipelineOperator.if": "If gates the processor on an expression.",
|
|
"O11yLogPipelineOperator.layout": "Layout is a time parser's layout.",
|
|
"O11yLogPipelineOperator.layout_type": "LayoutType is the layout's kind, e.g. strptime, gotime, epoch.",
|
|
"O11yLogPipelineOperator.mapping": "Mapping maps severity levels (or flattened keys) to the values that\nmean them.",
|
|
"O11yLogPipelineOperator.name": "Name is the processor's display name.",
|
|
"O11yLogPipelineOperator.on_error": "OnError says what to do when the processor fails, e.g. send, drop.",
|
|
"O11yLogPipelineOperator.orderId": "OrderID is the processor's 1-based position in the pipeline.",
|
|
"O11yLogPipelineOperator.output": "Output is the id of the processor that runs next.",
|
|
"O11yLogPipelineOperator.overwrite_text": "OverwriteSeverityText rewrites the severity text alongside the number\nwhen true.",
|
|
"O11yLogPipelineOperator.parse_from": "ParseFrom is where a parser reads from.",
|
|
"O11yLogPipelineOperator.parse_to": "ParseTo is where a parser writes its result.",
|
|
"O11yLogPipelineOperator.path_prefix": "PathPrefix prefixes flattened keys.",
|
|
"O11yLogPipelineOperator.pattern": "Pattern is a grok parser's pattern.",
|
|
"O11yLogPipelineOperator.regex": "Regex is a regex parser's expression.",
|
|
"O11yLogPipelineOperator.routes": "Routes are a router processor's routes.",
|
|
"O11yLogPipelineOperator.span_id": "SpanID says where a trace parser reads the span id from.",
|
|
"O11yLogPipelineOperator.to": "To is the destination field of a move or copy.",
|
|
"O11yLogPipelineOperator.trace_flags": "TraceFlags says where a trace parser reads the trace flags from.",
|
|
"O11yLogPipelineOperator.trace_id": "TraceID says where a trace parser reads the trace id from.",
|
|
"O11yLogPipelineOperator.type": "Type is the processor type, e.g. grok_parser, regex_parser, json_parser,\ntrace_parser, time_parser, severity_parser, add, remove, move, copy.",
|
|
"O11yLogPipelineOperator.value": "Value is the value an add processor writes.",
|
|
"O11yLogPipelineRoute.expr": "Expr is the expression that selects the route.",
|
|
"O11yLogPipelineRoute.output": "Output is the id of the processor the route sends to.",
|
|
"O11yLogPipelines.config": "Config is the rendered collector config the version deployed.",
|
|
"O11yLogPipelines.createdAt": "CreatedAt is when the version was created.",
|
|
"O11yLogPipelines.createdBy": "CreatedBy is the id of who created the version.",
|
|
"O11yLogPipelines.createdByName": "CreatedByName is the display name of who created the version.",
|
|
"O11yLogPipelines.deployResult": "DeployResult is the deployment's outcome message.",
|
|
"O11yLogPipelines.deploySequence": "DeploySequence orders this deployment among the version's deployments.",
|
|
"O11yLogPipelines.deployStatus": "DeployStatus is where the deployment stands, e.g. dirty, deploying,\ndeployed, in_progress, failed, unknown.",
|
|
"O11yLogPipelines.elementType": "ElementType is the config element this version carries — log_pipelines.",
|
|
"O11yLogPipelines.history": "History is the recent version history, newest first.",
|
|
"O11yLogPipelines.id": "ID is the version record's id.",
|
|
"O11yLogPipelines.lastHash": "LastHash is the deployed config's hash.",
|
|
"O11yLogPipelines.orgId": "OrgID is the org the version belongs to.",
|
|
"O11yLogPipelines.pipelines": "Pipelines are the version's pipelines, in order.",
|
|
"O11yLogPipelines.updatedAt": "UpdatedAt is when the version last changed.",
|
|
"O11yLogPipelines.updatedBy": "UpdatedBy is the id of who last changed it.",
|
|
"O11yLogPipelines.version": "Version is the config version number.",
|
|
"O11yLogPipelinesIn.version": "Version is the config version to read — a positive number, or \"latest\".",
|
|
"O11yLogPipelinesOut.data": "Data is the config version.",
|
|
"O11yLogPipelinesOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/logs/promote_paths", zip.Doc{
|
|
Description: "Lists the log body paths already promoted or indexed, with the\nindexes each carries.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yLogPromoteIndex.fieldDataType": "FieldDataType is the path's data type, e.g. string, number, bool.",
|
|
"O11yLogPromoteIndex.granularity": "Granularity is the index granularity in rows.",
|
|
"O11yLogPromoteIndex.type": "Type is the index type, e.g. minmax, set(N), bloom_filter(P).",
|
|
"O11yLogPromotePath.indexes": "Indexes are the indexes to put on the path.",
|
|
"O11yLogPromotePath.path": "Path is the body path, e.g. body.user.id on the way in; listed without\nthe body. prefix.",
|
|
"O11yLogPromotePath.promote": "Promote lifts the path into its own column when true.",
|
|
"O11yLogPromotedOut.data": "Data holds the paths.",
|
|
"O11yLogPromotedOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/metric/metric_metadata", zip.Doc{
|
|
Description: "Serves the OLDER /metric/metric_metadata route. It is\nNOT the same op as metrics.go's metricMetadata (/metrics/metadata): different\npath, different input (this one also scopes by service). Two slices named one\nGo function for two routes; the route is the identity, so the name follows it.\nRenamed rather than merged — collapsing them would silently drop the service\nscope this one accepts.\nIt returns one metric's metadata — its type, unit, description,\ntemporality, monotonicity and histogram buckets — optionally scoped to the\nmetric as one service reports it.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yMetricMetadata.description": "Description describes the metric.",
|
|
"O11yMetricMetadata.isMonotonic": "IsMonotonic marks a sum that only ever increases.",
|
|
"O11yMetricMetadata.temporality": "Temporality is delta or cumulative.",
|
|
"O11yMetricMetadata.type": "Type is the metric type, e.g. gauge, sum, histogram.",
|
|
"O11yMetricMetadata.unit": "Unit is the metric's unit.",
|
|
"O11yMetricMetadataIn.metricName": "MetricName is the metric to read.",
|
|
"O11yMetricMetadataIn.serviceName": "ServiceName scopes the metadata to the metric as one service reports it.",
|
|
"O11yMetricMetadataOut.data": "Data holds the metadata.",
|
|
"O11yMetricMetadataOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/metric_reduction_rules", zip.Doc{
|
|
Description: "Lists the org's metric volume-control (label reduction)\nrules, pageable and sortable by name, volume or recency.",
|
|
Fields: map[string]string{
|
|
"O11yReductionRule.active": "Active says whether the rule is in force.",
|
|
"O11yReductionRule.createdAt": "CreatedAt is when the rule was created.",
|
|
"O11yReductionRule.createdBy": "CreatedBy is who created it.",
|
|
"O11yReductionRule.effectiveFrom": "EffectiveFrom is when the rule took effect.",
|
|
"O11yReductionRule.id": "ID is the rule's id.",
|
|
"O11yReductionRule.ingestedSamples": "IngestedSamples is how many samples arrived while the rule was active.",
|
|
"O11yReductionRule.ingestedSeries": "IngestedSeries is how many series arrived while the rule was active.",
|
|
"O11yReductionRule.labels": "Labels are the label names the rule matches.",
|
|
"O11yReductionRule.matchType": "MatchType is drop or keep.",
|
|
"O11yReductionRule.metricName": "MetricName is the metric the rule governs.",
|
|
"O11yReductionRule.retainedSamples": "RetainedSamples is how many of them were kept.",
|
|
"O11yReductionRule.retainedSeries": "RetainedSeries is how many of them were kept.",
|
|
"O11yReductionRule.updatedAt": "UpdatedAt is when the rule last changed.",
|
|
"O11yReductionRule.updatedBy": "UpdatedBy is who last changed it.",
|
|
"O11yReductionRuleListIn.limit": "Limit caps how many rules come back, at most 1000. Unset means 10.",
|
|
"O11yReductionRuleListIn.metricName": "MetricName narrows the page to one metric's rule.",
|
|
"O11yReductionRuleListIn.offset": "Offset is how many rules to skip, for paging.",
|
|
"O11yReductionRuleListIn.order": "Order is asc or desc. Unset means desc.",
|
|
"O11yReductionRuleListIn.orderBy": "OrderBy sorts the page: metric, ingested_volume, reduced_volume or\nlast_updated. Unset means ingested_volume.",
|
|
"O11yReductionRuleListIn.search": "Search narrows the page to rules whose metric name contains it.",
|
|
"O11yReductionRuleListOut.data": "Data holds the rules.",
|
|
"O11yReductionRuleListOut.status": "Status is \"success\".",
|
|
"O11yReductionRules.rules": "Rules are the rules.",
|
|
"O11yReductionRules.total": "Total is how many rules matched, across all pages.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/metric_reduction_rules/:id", zip.Doc{
|
|
Description: "Returns one volume-control rule by its id.",
|
|
Fields: map[string]string{
|
|
"O11yReductionRule.active": "Active says whether the rule is in force.",
|
|
"O11yReductionRule.createdAt": "CreatedAt is when the rule was created.",
|
|
"O11yReductionRule.createdBy": "CreatedBy is who created it.",
|
|
"O11yReductionRule.effectiveFrom": "EffectiveFrom is when the rule took effect.",
|
|
"O11yReductionRule.id": "ID is the rule's id.",
|
|
"O11yReductionRule.ingestedSamples": "IngestedSamples is how many samples arrived while the rule was active.",
|
|
"O11yReductionRule.ingestedSeries": "IngestedSeries is how many series arrived while the rule was active.",
|
|
"O11yReductionRule.labels": "Labels are the label names the rule matches.",
|
|
"O11yReductionRule.matchType": "MatchType is drop or keep.",
|
|
"O11yReductionRule.metricName": "MetricName is the metric the rule governs.",
|
|
"O11yReductionRule.retainedSamples": "RetainedSamples is how many of them were kept.",
|
|
"O11yReductionRule.retainedSeries": "RetainedSeries is how many of them were kept.",
|
|
"O11yReductionRule.updatedAt": "UpdatedAt is when the rule last changed.",
|
|
"O11yReductionRule.updatedBy": "UpdatedBy is who last changed it.",
|
|
"O11yReductionRuleOut.data": "Data holds the rule.",
|
|
"O11yReductionRuleOut.status": "Status is \"success\".",
|
|
"O11yReductionRuleRef.id": "ID is the rule's id.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/metric_reduction_rules/stats", zip.Doc{
|
|
Description: "Returns total ingested vs retained series and samples and\nthe estimated monthly savings across all volume-control rules.",
|
|
Fields: map[string]string{
|
|
"O11yReductionStats.estimatedMonthlySavingsUsd": "EstimatedMonthlySavingsUsd is the estimated monthly savings, in USD.",
|
|
"O11yReductionStats.ingestedSamples": "IngestedSamples is how many samples arrived across all rules.",
|
|
"O11yReductionStats.ingestedSeries": "IngestedSeries is how many series arrived across all rules.",
|
|
"O11yReductionStats.retainedSamples": "RetainedSamples is how many of them were kept.",
|
|
"O11yReductionStats.retainedSeries": "RetainedSeries is how many of them were kept.",
|
|
"O11yReductionStatsOut.data": "Data holds the totals.",
|
|
"O11yReductionStatsOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/metric_reduction_rules/timeseries", zip.Doc{
|
|
Description: "Returns ingested vs retained series over time across\nall volume-control rules, in hourly buckets, in the query-range time-series\nresponse shape.",
|
|
Fields: map[string]string{
|
|
"O11yAggregation.alias": "Alias is the aggregation's alias.",
|
|
"O11yAggregation.anomalyScores": "AnomalyScores are anomaly overlays.",
|
|
"O11yAggregation.index": "Index is the aggregation's position in the query.",
|
|
"O11yAggregation.lowerBoundSeries": "LowerBoundSeries are forecast lower bounds.",
|
|
"O11yAggregation.meta": "Meta describes the aggregation.",
|
|
"O11yAggregation.predictedSeries": "PredictedSeries are forecast overlays, when the query asked for them.",
|
|
"O11yAggregation.series": "Series are the aggregated time series.",
|
|
"O11yAggregation.upperBoundSeries": "UpperBoundSeries are forecast upper bounds.",
|
|
"O11yAggregationMeta.unit": "Unit is the aggregation's unit.",
|
|
"O11yMetricField.description": "Description describes the field.",
|
|
"O11yMetricField.fieldContext": "FieldContext is the context the field lives in, e.g. resource, attribute.",
|
|
"O11yMetricField.fieldDataType": "FieldDataType is the field's data type.",
|
|
"O11yMetricField.name": "Name is the field's name.",
|
|
"O11yMetricField.signal": "Signal is the telemetry signal the field belongs to.",
|
|
"O11yMetricField.unit": "Unit is the field's unit.",
|
|
"O11yMetricLabel.key": "Key is the label's field.",
|
|
"O11yMetricLabel.value": "Value is the label's value.",
|
|
"O11yMetricPoint.partial": "Partial marks a point whose bucket the window only partly covers.",
|
|
"O11yMetricPoint.timestamp": "Timestamp is the point's time as a Unix timestamp in milliseconds.",
|
|
"O11yMetricPoint.value": "Value is the point's value.",
|
|
"O11yMetricPoint.values": "Values carries the bucket values of a heatmap point.",
|
|
"O11yMetricSeries.labels": "Labels identify the series.",
|
|
"O11yMetricSeries.values": "Values are the series' points, in time order.",
|
|
"O11yQueryRange.data": "Data holds the results.",
|
|
"O11yQueryRange.meta": "Meta reports what the query scanned.",
|
|
"O11yQueryRange.type": "Type is the result kind; time_series here.",
|
|
"O11yQueryRange.warning": "Warning carries a non-fatal warning, when the query raised one.",
|
|
"O11yQueryRangeData.results": "Results are the per-query results, each a set of aggregated series.",
|
|
"O11yQueryStats.bytesScanned": "BytesScanned is how many bytes the query read.",
|
|
"O11yQueryStats.durationMs": "DurationMS is how long the query took, in milliseconds.",
|
|
"O11yQueryStats.rowsScanned": "RowsScanned is how many rows the query read.",
|
|
"O11yQueryStats.stepIntervals": "StepIntervals is the step used per query, in seconds.",
|
|
"O11yQueryWarning.message": "Message is the warning.",
|
|
"O11yQueryWarning.url": "URL points at the relevant documentation.",
|
|
"O11yQueryWarning.warnings": "Warnings carries additional notes.",
|
|
"O11yQueryWarningNote.message": "Message is the note.",
|
|
"O11yReductionSeriesOut.data": "Data holds the query-range answer.",
|
|
"O11yReductionSeriesOut.status": "Status is \"success\".",
|
|
"O11yReductionSeriesResult.aggregations": "Aggregations are the query's aggregation buckets.",
|
|
"O11yReductionSeriesResult.queryName": "QueryName names the query the result answers.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/metrics", zip.Doc{
|
|
Description: "Lists the distinct metric names seen in a time range, each with\nits description, type, unit, temporality and monotonicity.",
|
|
Fields: map[string]string{
|
|
"O11yMetricList.metrics": "Metrics are the metrics, with their metadata.",
|
|
"O11yMetricListIn.end": "End is the end of the window as a Unix timestamp in milliseconds.",
|
|
"O11yMetricListIn.limit": "Limit caps how many metrics come back; unset means 100, at most 5000.",
|
|
"O11yMetricListIn.searchText": "SearchText narrows the page to metric names containing it.",
|
|
"O11yMetricListIn.source": "Source narrows the page by ingestion source.",
|
|
"O11yMetricListIn.start": "Start is the start of the window as a Unix timestamp in milliseconds.",
|
|
"O11yMetricListOut.data": "Data holds the metrics.",
|
|
"O11yMetricListOut.status": "Status is \"success\".",
|
|
"O11yMetricSummary.description": "Description describes the metric.",
|
|
"O11yMetricSummary.isMonotonic": "IsMonotonic marks a sum that only ever increases.",
|
|
"O11yMetricSummary.metricName": "MetricName is the metric's name.",
|
|
"O11yMetricSummary.temporality": "Temporality is delta or cumulative.",
|
|
"O11yMetricSummary.type": "Type is the metric type, e.g. gauge, sum, histogram.",
|
|
"O11yMetricSummary.unit": "Unit is the metric's unit.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/metrics/alerts", zip.Doc{
|
|
Description: "Lists the alert rules that reference a metric.",
|
|
Fields: map[string]string{
|
|
"O11yMetricAlert.alertId": "AlertID is the alert rule's id.",
|
|
"O11yMetricAlert.alertName": "AlertName is the alert rule's name.",
|
|
"O11yMetricAlerts.alerts": "Alerts are the alert rules referencing the metric.",
|
|
"O11yMetricAlertsOut.data": "Data holds the alerts.",
|
|
"O11yMetricAlertsOut.status": "Status is \"success\".",
|
|
"O11yMetricNameIn.metricName": "MetricName is the metric's name; it may contain slashes, e.g.\nrun.googleapis.com/request_latencies. Required.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/metrics/attributes", zip.Doc{
|
|
Description: "Returns one metric's attribute keys, each with its unique\nvalues and their count.",
|
|
Fields: map[string]string{
|
|
"O11yMetricAttribute.key": "Key is the attribute's name.",
|
|
"O11yMetricAttribute.valueCount": "ValueCount is how many distinct values the attribute has.",
|
|
"O11yMetricAttribute.values": "Values are the attribute's distinct values.",
|
|
"O11yMetricAttributes.attributes": "Attributes are the keys, each with its values.",
|
|
"O11yMetricAttributes.totalKeys": "TotalKeys is how many keys the metric has.",
|
|
"O11yMetricAttributesIn.end": "End is the end of the window as a Unix timestamp in milliseconds.",
|
|
"O11yMetricAttributesIn.metricName": "MetricName is the metric's name; it may contain slashes. Required.",
|
|
"O11yMetricAttributesIn.start": "Start is the start of the window as a Unix timestamp in milliseconds.",
|
|
"O11yMetricAttributesOut.data": "Data holds the attributes.",
|
|
"O11yMetricAttributesOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/metrics/dashboards", zip.Doc{
|
|
Description: "Lists the dashboard panels that reference a metric.",
|
|
Fields: map[string]string{
|
|
"O11yMetricDashboards.dashboards": "Dashboards are the panels referencing the metric.",
|
|
"O11yMetricDashboardsOut.data": "Data holds the panels.",
|
|
"O11yMetricDashboardsOut.status": "Status is \"success\".",
|
|
"O11yMetricNameIn.metricName": "MetricName is the metric's name; it may contain slashes, e.g.\nrun.googleapis.com/request_latencies. Required.",
|
|
"O11yMetricPanel.dashboardId": "DashboardID is the dashboard's id.",
|
|
"O11yMetricPanel.dashboardName": "DashboardName is the dashboard's name.",
|
|
"O11yMetricPanel.filterBy": "FilterBy are the labels the panel filters the metric by.",
|
|
"O11yMetricPanel.groupBy": "GroupBy are the labels the panel groups the metric by.",
|
|
"O11yMetricPanel.panelId": "PanelID is the panel's id.",
|
|
"O11yMetricPanel.panelName": "PanelName is the panel's name.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/metrics/highlights", zip.Doc{
|
|
Description: "Returns one metric's headline numbers: data points, total\nand active time series, and when it was last received.",
|
|
Fields: map[string]string{
|
|
"O11yMetricHighlights.activeTimeSeries": "ActiveTimeSeries is how many of them are active.",
|
|
"O11yMetricHighlights.dataPoints": "DataPoints is how many data points the metric has.",
|
|
"O11yMetricHighlights.lastReceived": "LastReceived is when the metric last arrived, as a Unix timestamp in\nmilliseconds.",
|
|
"O11yMetricHighlights.totalTimeSeries": "TotalTimeSeries is how many time series the metric has ever had.",
|
|
"O11yMetricHighlightsOut.data": "Data holds the highlights.",
|
|
"O11yMetricHighlightsOut.status": "Status is \"success\".",
|
|
"O11yMetricNameIn.metricName": "MetricName is the metric's name; it may contain slashes, e.g.\nrun.googleapis.com/request_latencies. Required.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/metrics/metadata", zip.Doc{
|
|
Description: "Returns one metric's metadata: description, type, unit,\ntemporality and monotonicity.",
|
|
Fields: map[string]string{
|
|
"O11yMetricMetadata.description": "Description describes the metric.",
|
|
"O11yMetricMetadata.isMonotonic": "IsMonotonic marks a sum that only ever increases.",
|
|
"O11yMetricMetadata.temporality": "Temporality is delta or cumulative.",
|
|
"O11yMetricMetadata.type": "Type is the metric type, e.g. gauge, sum, histogram.",
|
|
"O11yMetricMetadata.unit": "Unit is the metric's unit.",
|
|
"O11yMetricMetadataOut.data": "Data holds the metadata.",
|
|
"O11yMetricMetadataOut.status": "Status is \"success\".",
|
|
"O11yMetricNameIn.metricName": "MetricName is the metric's name; it may contain slashes, e.g.\nrun.googleapis.com/request_latencies. Required.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/metrics/onboarding", zip.Doc{
|
|
Description: "Reports whether any non-O11y metrics have been ingested —\nthe lightweight check onboarding polls.",
|
|
Fields: map[string]string{
|
|
"O11yMetricOnboarding.hasMetrics": "HasMetrics is true once any non-O11y metric has been ingested.",
|
|
"O11yMetricOnboardingOut.data": "Data holds the flag.",
|
|
"O11yMetricOnboardingOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/namespaces/attribute_keys", zip.Doc{
|
|
Description: "Lists the metric attribute keys Kubernetes namespaces\nreport, for building namespace filters.",
|
|
Fields: map[string]string{
|
|
"O11yInfraAttributeKeysIn.aggregateAttribute": "AggregateAttribute is the metric the keys must appear on.",
|
|
"O11yInfraAttributeKeysIn.aggregateOperator": "AggregateOperator is the aggregation the keys will be used under, e.g.\nnoop, count, avg. The runtime requires it for non-metrics sources.",
|
|
"O11yInfraAttributeKeysIn.dataSource": "DataSource is the telemetry the keys come from — metrics for the infra\nfaces. The runtime requires it.",
|
|
"O11yInfraAttributeKeysIn.limit": "Limit caps how many keys come back. Absent means 50.",
|
|
"O11yInfraAttributeKeysIn.searchText": "SearchText narrows the keys to those containing it.",
|
|
"O11yInfraAttributeKeysIn.tagType": "TagType narrows the keys to one kind — tag or resource. Empty means all;\nan invalid value reads as empty.",
|
|
"O11yInfraAttributeKeysOut.data": "Data holds the keys.",
|
|
"O11yInfraAttributeKeysOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/namespaces/attribute_values", zip.Doc{
|
|
Description: "Lists the values one namespace attribute key has\ntaken, for building namespace filters.",
|
|
Fields: map[string]string{
|
|
"O11yInfraAttributeValuesIn.aggregateAttribute": "AggregateAttribute is the metric the values must appear on.",
|
|
"O11yInfraAttributeValuesIn.aggregateOperator": "AggregateOperator is the aggregation the values will be used under, e.g.\nnoop, count, avg. The runtime requires it for non-metrics sources.",
|
|
"O11yInfraAttributeValuesIn.attributeKey": "AttributeKey is the key whose values to list.",
|
|
"O11yInfraAttributeValuesIn.dataSource": "DataSource is the telemetry the values come from — metrics for the infra\nfaces. The runtime requires it.",
|
|
"O11yInfraAttributeValuesIn.filterAttributeKeyDataType": "FilterAttributeKeyDataType is the key's data type — string, int64,\nfloat64 or bool. Empty means unspecified.",
|
|
"O11yInfraAttributeValuesIn.limit": "Limit caps how many values come back. Absent means 50.",
|
|
"O11yInfraAttributeValuesIn.searchText": "SearchText narrows the values to those containing it.",
|
|
"O11yInfraAttributeValuesIn.tagType": "TagType narrows the search to one kind of key — tag or resource.",
|
|
"O11yInfraAttributeValuesOut.data": "Data holds the values, split by data type.",
|
|
"O11yInfraAttributeValuesOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/nextPrevErrorIDs", zip.Doc{
|
|
Description: "Returns the ids of the exception instances immediately after\nand before a given one within its group — the paging cursor the error detail\nview walks.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yErrorLookupIn.errorID": "ErrorID is the exception instance id. Required by errorFromErrorID and\nnextPrevErrorIDs; unused by errorFromGroupID.",
|
|
"O11yErrorLookupIn.groupID": "GroupID is the exception group the instance belongs to. Required.",
|
|
"O11yErrorLookupIn.timestamp": "Timestamp is the instance's time as a nanosecond epoch spelled as a\nstring. Required.",
|
|
"O11yNextPrevErrorIDs.groupID": "GroupID is the group both belong to.",
|
|
"O11yNextPrevErrorIDs.nextErrorID": "NextErrorID is the id of the instance immediately after this one.",
|
|
"O11yNextPrevErrorIDs.nextTimestamp": "NextTimestamp is that instance's time.",
|
|
"O11yNextPrevErrorIDs.prevErrorID": "PrevErrorID is the id of the instance immediately before this one.",
|
|
"O11yNextPrevErrorIDs.prevTimestamp": "PrevTimestamp is that instance's time.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/nodes/attribute_keys", zip.Doc{
|
|
Description: "Lists the metric attribute keys Kubernetes nodes report,\nfor building node filters.",
|
|
Fields: map[string]string{
|
|
"O11yInfraAttributeKeysIn.aggregateAttribute": "AggregateAttribute is the metric the keys must appear on.",
|
|
"O11yInfraAttributeKeysIn.aggregateOperator": "AggregateOperator is the aggregation the keys will be used under, e.g.\nnoop, count, avg. The runtime requires it for non-metrics sources.",
|
|
"O11yInfraAttributeKeysIn.dataSource": "DataSource is the telemetry the keys come from — metrics for the infra\nfaces. The runtime requires it.",
|
|
"O11yInfraAttributeKeysIn.limit": "Limit caps how many keys come back. Absent means 50.",
|
|
"O11yInfraAttributeKeysIn.searchText": "SearchText narrows the keys to those containing it.",
|
|
"O11yInfraAttributeKeysIn.tagType": "TagType narrows the keys to one kind — tag or resource. Empty means all;\nan invalid value reads as empty.",
|
|
"O11yInfraAttributeKeysOut.data": "Data holds the keys.",
|
|
"O11yInfraAttributeKeysOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/nodes/attribute_values", zip.Doc{
|
|
Description: "Lists the values one node attribute key has taken, for\nbuilding node filters.",
|
|
Fields: map[string]string{
|
|
"O11yInfraAttributeValuesIn.aggregateAttribute": "AggregateAttribute is the metric the values must appear on.",
|
|
"O11yInfraAttributeValuesIn.aggregateOperator": "AggregateOperator is the aggregation the values will be used under, e.g.\nnoop, count, avg. The runtime requires it for non-metrics sources.",
|
|
"O11yInfraAttributeValuesIn.attributeKey": "AttributeKey is the key whose values to list.",
|
|
"O11yInfraAttributeValuesIn.dataSource": "DataSource is the telemetry the values come from — metrics for the infra\nfaces. The runtime requires it.",
|
|
"O11yInfraAttributeValuesIn.filterAttributeKeyDataType": "FilterAttributeKeyDataType is the key's data type — string, int64,\nfloat64 or bool. Empty means unspecified.",
|
|
"O11yInfraAttributeValuesIn.limit": "Limit caps how many values come back. Absent means 50.",
|
|
"O11yInfraAttributeValuesIn.searchText": "SearchText narrows the values to those containing it.",
|
|
"O11yInfraAttributeValuesIn.tagType": "TagType narrows the search to one kind of key — tag or resource.",
|
|
"O11yInfraAttributeValuesOut.data": "Data holds the values, split by data type.",
|
|
"O11yInfraAttributeValuesOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/org/preferences", zip.Doc{
|
|
Description: "Lists every org-scoped preference, each with its current\nand default value. Admin gate.",
|
|
Fields: map[string]string{
|
|
"O11yPreference.allowedScopes": "AllowedScopes are the scopes the preference may be set at — org, user.",
|
|
"O11yPreference.allowedValues": "AllowedValues restricts a string preference to these values.",
|
|
"O11yPreference.defaultValue": "DefaultValue is the value before anyone set one.",
|
|
"O11yPreference.description": "Description says what the preference does.",
|
|
"O11yPreference.name": "Name is the preference name.",
|
|
"O11yPreference.value": "Value is the current value.",
|
|
"O11yPreference.valueType": "ValueType is the JSON type a value must have — string, integer, float or\nboolean.",
|
|
"O11yPreferencesOut.data": "Data holds the preferences.",
|
|
"O11yPreferencesOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/org/preferences/:name", zip.Doc{
|
|
Description: "Returns one org-scoped preference, by name. Admin gate.",
|
|
Fields: map[string]string{
|
|
"O11yPreference.allowedScopes": "AllowedScopes are the scopes the preference may be set at — org, user.",
|
|
"O11yPreference.allowedValues": "AllowedValues restricts a string preference to these values.",
|
|
"O11yPreference.defaultValue": "DefaultValue is the value before anyone set one.",
|
|
"O11yPreference.description": "Description says what the preference does.",
|
|
"O11yPreference.name": "Name is the preference name.",
|
|
"O11yPreference.value": "Value is the current value.",
|
|
"O11yPreference.valueType": "ValueType is the JSON type a value must have — string, integer, float or\nboolean.",
|
|
"O11yPreferenceOut.data": "Data is the preference.",
|
|
"O11yPreferenceOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/orgs/me", zip.Doc{
|
|
Description: "Returns the caller's own organization. Admin gate.",
|
|
Fields: map[string]string{
|
|
"O11yOrganization.alias": "Alias is an alternate name the org also answers to.",
|
|
"O11yOrganization.createdAt": "CreatedAt is when the org was created.",
|
|
"O11yOrganization.displayName": "DisplayName is what the console shows for the org.",
|
|
"O11yOrganization.id": "ID is the org id. On update it is ignored: the call always addresses the\ncaller's own org.",
|
|
"O11yOrganization.key": "Key is the org's stable numeric key, derived from its id.",
|
|
"O11yOrganization.name": "Name is the org's short name.",
|
|
"O11yOrganization.updatedAt": "UpdatedAt is when it last changed.",
|
|
"O11yOrganizationOut.data": "Data is the organization.",
|
|
"O11yOrganizationOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/orgs/me/filters", zip.Doc{
|
|
Description: "Returns the org's quick filters for every signal — the\nattribute shortlists its explorers offer as one-click filters. Viewer gate.",
|
|
Fields: map[string]string{
|
|
"O11yFilterKey.dataType": "DataType is the attribute's value type — string, int64, float64 or bool.",
|
|
"O11yFilterKey.isColumn": "IsColumn marks an attribute stored as its own column.",
|
|
"O11yFilterKey.isJSON": "IsJSON marks an attribute read out of a JSON body.",
|
|
"O11yFilterKey.key": "Key is the attribute name.",
|
|
"O11yFilterKey.type": "Type says where the attribute lives — tag or resource.",
|
|
"O11yQuickFiltersOut.data": "Data holds one entry per signal.",
|
|
"O11yQuickFiltersOut.status": "Status is \"success\".",
|
|
"O11ySignalFilters.filters": "Filters are the attributes offered, in display order.",
|
|
"O11ySignalFilters.signal": "Signal is the signal the filters belong to.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/orgs/me/filters/:signal", zip.Doc{
|
|
Description: "Returns the org's quick filters for one signal — traces,\nlogs, metrics, exceptions or api_monitoring. Viewer gate.",
|
|
Fields: map[string]string{
|
|
"O11yFilterKey.dataType": "DataType is the attribute's value type — string, int64, float64 or bool.",
|
|
"O11yFilterKey.isColumn": "IsColumn marks an attribute stored as its own column.",
|
|
"O11yFilterKey.isJSON": "IsJSON marks an attribute read out of a JSON body.",
|
|
"O11yFilterKey.key": "Key is the attribute name.",
|
|
"O11yFilterKey.type": "Type says where the attribute lives — tag or resource.",
|
|
"O11ySignalFilters.filters": "Filters are the attributes offered, in display order.",
|
|
"O11ySignalFilters.signal": "Signal is the signal the filters belong to.",
|
|
"O11ySignalFiltersOut.data": "Data is the signal's entry.",
|
|
"O11ySignalFiltersOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/pods/attribute_keys", zip.Doc{
|
|
Description: "Lists the metric attribute keys Kubernetes pods report, for\nbuilding pod filters.",
|
|
Fields: map[string]string{
|
|
"O11yInfraAttributeKeysIn.aggregateAttribute": "AggregateAttribute is the metric the keys must appear on.",
|
|
"O11yInfraAttributeKeysIn.aggregateOperator": "AggregateOperator is the aggregation the keys will be used under, e.g.\nnoop, count, avg. The runtime requires it for non-metrics sources.",
|
|
"O11yInfraAttributeKeysIn.dataSource": "DataSource is the telemetry the keys come from — metrics for the infra\nfaces. The runtime requires it.",
|
|
"O11yInfraAttributeKeysIn.limit": "Limit caps how many keys come back. Absent means 50.",
|
|
"O11yInfraAttributeKeysIn.searchText": "SearchText narrows the keys to those containing it.",
|
|
"O11yInfraAttributeKeysIn.tagType": "TagType narrows the keys to one kind — tag or resource. Empty means all;\nan invalid value reads as empty.",
|
|
"O11yInfraAttributeKeysOut.data": "Data holds the keys.",
|
|
"O11yInfraAttributeKeysOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/pods/attribute_values", zip.Doc{
|
|
Description: "Lists the values one pod attribute key has taken, for\nbuilding pod filters.",
|
|
Fields: map[string]string{
|
|
"O11yInfraAttributeValuesIn.aggregateAttribute": "AggregateAttribute is the metric the values must appear on.",
|
|
"O11yInfraAttributeValuesIn.aggregateOperator": "AggregateOperator is the aggregation the values will be used under, e.g.\nnoop, count, avg. The runtime requires it for non-metrics sources.",
|
|
"O11yInfraAttributeValuesIn.attributeKey": "AttributeKey is the key whose values to list.",
|
|
"O11yInfraAttributeValuesIn.dataSource": "DataSource is the telemetry the values come from — metrics for the infra\nfaces. The runtime requires it.",
|
|
"O11yInfraAttributeValuesIn.filterAttributeKeyDataType": "FilterAttributeKeyDataType is the key's data type — string, int64,\nfloat64 or bool. Empty means unspecified.",
|
|
"O11yInfraAttributeValuesIn.limit": "Limit caps how many values come back. Absent means 50.",
|
|
"O11yInfraAttributeValuesIn.searchText": "SearchText narrows the values to those containing it.",
|
|
"O11yInfraAttributeValuesIn.tagType": "TagType narrows the search to one kind of key — tag or resource.",
|
|
"O11yInfraAttributeValuesOut.data": "Data holds the values, split by data type.",
|
|
"O11yInfraAttributeValuesOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/processes/attribute_keys", zip.Doc{
|
|
Description: "Lists the metric attribute keys processes report, for\nbuilding process filters.",
|
|
Fields: map[string]string{
|
|
"O11yInfraAttributeKeysIn.aggregateAttribute": "AggregateAttribute is the metric the keys must appear on.",
|
|
"O11yInfraAttributeKeysIn.aggregateOperator": "AggregateOperator is the aggregation the keys will be used under, e.g.\nnoop, count, avg. The runtime requires it for non-metrics sources.",
|
|
"O11yInfraAttributeKeysIn.dataSource": "DataSource is the telemetry the keys come from — metrics for the infra\nfaces. The runtime requires it.",
|
|
"O11yInfraAttributeKeysIn.limit": "Limit caps how many keys come back. Absent means 50.",
|
|
"O11yInfraAttributeKeysIn.searchText": "SearchText narrows the keys to those containing it.",
|
|
"O11yInfraAttributeKeysIn.tagType": "TagType narrows the keys to one kind — tag or resource. Empty means all;\nan invalid value reads as empty.",
|
|
"O11yInfraAttributeKeysOut.data": "Data holds the keys.",
|
|
"O11yInfraAttributeKeysOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/processes/attribute_values", zip.Doc{
|
|
Description: "Lists the values one process attribute key has taken,\nfor building process filters.",
|
|
Fields: map[string]string{
|
|
"O11yInfraAttributeValuesIn.aggregateAttribute": "AggregateAttribute is the metric the values must appear on.",
|
|
"O11yInfraAttributeValuesIn.aggregateOperator": "AggregateOperator is the aggregation the values will be used under, e.g.\nnoop, count, avg. The runtime requires it for non-metrics sources.",
|
|
"O11yInfraAttributeValuesIn.attributeKey": "AttributeKey is the key whose values to list.",
|
|
"O11yInfraAttributeValuesIn.dataSource": "DataSource is the telemetry the values come from — metrics for the infra\nfaces. The runtime requires it.",
|
|
"O11yInfraAttributeValuesIn.filterAttributeKeyDataType": "FilterAttributeKeyDataType is the key's data type — string, int64,\nfloat64 or bool. Empty means unspecified.",
|
|
"O11yInfraAttributeValuesIn.limit": "Limit caps how many values come back. Absent means 50.",
|
|
"O11yInfraAttributeValuesIn.searchText": "SearchText narrows the values to those containing it.",
|
|
"O11yInfraAttributeValuesIn.tagType": "TagType narrows the search to one kind of key — tag or resource.",
|
|
"O11yInfraAttributeValuesOut.data": "Data holds the values, split by data type.",
|
|
"O11yInfraAttributeValuesOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/public/dashboards/:id", zip.Doc{
|
|
Description: "Returns the sanitized dashboard data for public access —\nthe read a shared dashboard's public page makes.\n\nAnonymous, scoped to the public dashboard's read scope; the runtime's own gate\nenforces it.",
|
|
Fields: map[string]string{
|
|
"O11yDashboardIDIn.id": "ID is the resource id from the path.",
|
|
"O11yPublicDashboard.defaultTimeRange": "DefaultTimeRange is the fixed window when the range is not caller-chosen.",
|
|
"O11yPublicDashboard.publicPath": "PublicPath is the public URL path the share is reachable at.",
|
|
"O11yPublicDashboard.timeRangeEnabled": "TimeRangeEnabled reports whether the public page may pick its own range.",
|
|
"O11yPublicDashboardData.dashboard": "Dashboard is the sanitized dashboard.",
|
|
"O11yPublicDashboardData.publicDashboard": "PublicDashboard is the public-sharing config.",
|
|
"O11yPublicDashboardDataOut.data": "Data is the sanitized dashboard and its share config.",
|
|
"O11yPublicDashboardDataOut.status": "Status is \"success\".",
|
|
"O11yPublicDashboardV1.createdAt": "CreatedAt is when the dashboard was created.",
|
|
"O11yPublicDashboardV1.createdBy": "CreatedBy is who created it.",
|
|
"O11yPublicDashboardV1.data": "Data is the sanitized widget data as stored, carried verbatim as open JSON.",
|
|
"O11yPublicDashboardV1.id": "ID is the dashboard's id.",
|
|
"O11yPublicDashboardV1.locked": "Locked reports whether the dashboard is locked.",
|
|
"O11yPublicDashboardV1.org_id": "OrgID is the org the dashboard belongs to.",
|
|
"O11yPublicDashboardV1.source": "Source is where the dashboard came from.",
|
|
"O11yPublicDashboardV1.updatedAt": "UpdatedAt is when it last changed.",
|
|
"O11yPublicDashboardV1.updatedBy": "UpdatedBy is who last changed it.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/public/dashboards/:id/widgets/:idx/query_range", zip.Doc{
|
|
Description: "Returns the query-range result for one widget\nof a public dashboard. When the share fixes its own time range the caller's\nstartTime/endTime are ignored; otherwise they bound the window as millisecond\nepochs.\n\nAnonymous, scoped to the public dashboard's read scope; the runtime's own gate\nenforces it.",
|
|
Fields: map[string]string{
|
|
"O11yWidgetQueryRange.data": "Data is the query result payload, carried verbatim as open JSON.",
|
|
"O11yWidgetQueryRange.meta": "Meta is the execution stats, carried verbatim as open JSON.",
|
|
"O11yWidgetQueryRange.type": "Type is the request type the result answers, e.g. time_series, scalar.",
|
|
"O11yWidgetQueryRange.warning": "Warning is any query warning, carried verbatim as open JSON when present.",
|
|
"O11yWidgetQueryRangeIn.endTime": "EndTime is the window end as a millisecond epoch. Used only when the share\nenables a caller-chosen time range.",
|
|
"O11yWidgetQueryRangeIn.id": "ID is the public dashboard id from the path.",
|
|
"O11yWidgetQueryRangeIn.idx": "Idx is the widget's index from the path.",
|
|
"O11yWidgetQueryRangeIn.startTime": "StartTime is the window start as a millisecond epoch. Used only when the\nshare enables a caller-chosen time range.",
|
|
"O11yWidgetQueryRangeOut.data": "Data is the query-range result.",
|
|
"O11yWidgetQueryRangeOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/pvcs/attribute_keys", zip.Doc{
|
|
Description: "Lists the metric attribute keys persistent volume claims\nreport, for building volume filters.",
|
|
Fields: map[string]string{
|
|
"O11yInfraAttributeKeysIn.aggregateAttribute": "AggregateAttribute is the metric the keys must appear on.",
|
|
"O11yInfraAttributeKeysIn.aggregateOperator": "AggregateOperator is the aggregation the keys will be used under, e.g.\nnoop, count, avg. The runtime requires it for non-metrics sources.",
|
|
"O11yInfraAttributeKeysIn.dataSource": "DataSource is the telemetry the keys come from — metrics for the infra\nfaces. The runtime requires it.",
|
|
"O11yInfraAttributeKeysIn.limit": "Limit caps how many keys come back. Absent means 50.",
|
|
"O11yInfraAttributeKeysIn.searchText": "SearchText narrows the keys to those containing it.",
|
|
"O11yInfraAttributeKeysIn.tagType": "TagType narrows the keys to one kind — tag or resource. Empty means all;\nan invalid value reads as empty.",
|
|
"O11yInfraAttributeKeysOut.data": "Data holds the keys.",
|
|
"O11yInfraAttributeKeysOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/pvcs/attribute_values", zip.Doc{
|
|
Description: "Lists the values one persistent-volume-claim attribute\nkey has taken, for building volume filters.",
|
|
Fields: map[string]string{
|
|
"O11yInfraAttributeValuesIn.aggregateAttribute": "AggregateAttribute is the metric the values must appear on.",
|
|
"O11yInfraAttributeValuesIn.aggregateOperator": "AggregateOperator is the aggregation the values will be used under, e.g.\nnoop, count, avg. The runtime requires it for non-metrics sources.",
|
|
"O11yInfraAttributeValuesIn.attributeKey": "AttributeKey is the key whose values to list.",
|
|
"O11yInfraAttributeValuesIn.dataSource": "DataSource is the telemetry the values come from — metrics for the infra\nfaces. The runtime requires it.",
|
|
"O11yInfraAttributeValuesIn.filterAttributeKeyDataType": "FilterAttributeKeyDataType is the key's data type — string, int64,\nfloat64 or bool. Empty means unspecified.",
|
|
"O11yInfraAttributeValuesIn.limit": "Limit caps how many values come back. Absent means 50.",
|
|
"O11yInfraAttributeValuesIn.searchText": "SearchText narrows the values to those containing it.",
|
|
"O11yInfraAttributeValuesIn.tagType": "TagType narrows the search to one kind of key — tag or resource.",
|
|
"O11yInfraAttributeValuesOut.data": "Data holds the values, split by data type.",
|
|
"O11yInfraAttributeValuesOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/query", zip.Doc{
|
|
Description: "Evaluates one instant PromQL query against the org's metrics and\nreturns the result at a single point in time.\n\nThe result is polymorphic by PromQL's own contract — a matrix, vector,\nscalar or string, discriminated by resultType — so it is carried verbatim\nrather than forced into one of its shapes.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yPromQueryIn.query": "Query is the PromQL expression to evaluate. Required.",
|
|
"O11yPromQueryIn.stats": "Stats set to any non-empty value includes query statistics in the answer.",
|
|
"O11yPromQueryIn.time": "Time is the evaluation timestamp — epoch seconds or RFC3339. Empty\nevaluates at now.",
|
|
"O11yPromQueryIn.timeout": "Timeout caps evaluation time, as a duration in seconds.",
|
|
"O11yPromQueryOut.data": "Data is the evaluation result.",
|
|
"O11yPromQueryOut.status": "Status is \"success\".",
|
|
"O11yPromResult.result": "Result is the result in PromQL's own wire shape for ResultType, carried\nverbatim.",
|
|
"O11yPromResult.resultType": "ResultType discriminates Result: matrix, vector, scalar or string.",
|
|
"O11yPromResult.stats": "Stats holds query statistics when the caller asked for them.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/query_range", zip.Doc{
|
|
Description: "Runs a Prometheus-style range query over metrics — the\nlegacy read that predates the v5 querier — and returns the matrix, vector or\nscalar the query resolved to.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yMetricsQueryRangeIn.end": "End is the window end, in the same form as Start, and not before it.\nRequired.",
|
|
"O11yMetricsQueryRangeIn.query": "Query is the PromQL expression to evaluate. Required.",
|
|
"O11yMetricsQueryRangeIn.start": "Start is the window start — a unix timestamp (seconds, with optional\nfraction) or an RFC 3339 time. Required.",
|
|
"O11yMetricsQueryRangeIn.stats": "Stats, when \"all\", asks for query statistics alongside the result.",
|
|
"O11yMetricsQueryRangeIn.step": "Step is the query resolution, e.g. 60s, 1m, 1h — a positive duration.\nRequired.",
|
|
"O11yMetricsQueryRangeIn.timeout": "Timeout caps how long the query may run, e.g. 30s, 1m — a positive\nduration. Absent means the server default.",
|
|
"O11yMetricsQueryRangeOut.data": "Data is the result — its result type, the value, and query stats when\nasked.",
|
|
"O11yMetricsQueryRangeOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/roles", zip.Doc{
|
|
Description: "Lists every role in the caller's org — the managed ones the\nplatform seeds and the custom ones its admins created.",
|
|
Fields: map[string]string{
|
|
"O11yRole.createdAt": "CreatedAt is when the role was created.",
|
|
"O11yRole.description": "Description says what the role is for.",
|
|
"O11yRole.id": "ID is the role id.",
|
|
"O11yRole.name": "Name is the role's name.",
|
|
"O11yRole.orgId": "OrgID is the org the role belongs to.",
|
|
"O11yRole.type": "Type is how the role came to be — managed by the platform or custom.",
|
|
"O11yRole.updatedAt": "UpdatedAt is when it last changed.",
|
|
"O11yRolesOut.data": "Data holds the roles.",
|
|
"O11yRolesOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/roles/:id", zip.Doc{
|
|
Description: "Returns one role with the transaction groups it grants.",
|
|
Fields: map[string]string{
|
|
"O11yObjectGroup.resource": "Resource is the objects' type and kind.",
|
|
"O11yObjectGroup.selectors": "Selectors pick the instances; a wildcard selects them all.",
|
|
"O11yResourceRef.kind": "Kind is the resource kind the type belongs to.",
|
|
"O11yResourceRef.type": "Type is the resource type, e.g. role, dashboard, serviceaccount.",
|
|
"O11yRoleDetail.createdAt": "CreatedAt is when the role was created.",
|
|
"O11yRoleDetail.description": "Description says what the role is for.",
|
|
"O11yRoleDetail.id": "ID is the role id.",
|
|
"O11yRoleDetail.name": "Name is the role's name.",
|
|
"O11yRoleDetail.orgId": "OrgID is the org the role belongs to.",
|
|
"O11yRoleDetail.transactionGroups": "TransactionGroups are the grants the role carries.",
|
|
"O11yRoleDetail.type": "Type is custom or managed.",
|
|
"O11yRoleDetail.updatedAt": "UpdatedAt is when it last changed.",
|
|
"O11yRoleOut.data": "Data holds the role and its transaction groups.",
|
|
"O11yRoleOut.status": "Status is \"success\".",
|
|
"O11yTransactionGroup.objectGroup": "ObjectGroup is the set of objects it allows the verb on.",
|
|
"O11yTransactionGroup.relation": "Relation is the verb the grant allows.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/route_policies", zip.Doc{
|
|
Description: "Lists the org's route policies. Viewer gate.",
|
|
Fields: map[string]string{
|
|
"O11yRoutePoliciesOut.data": "Data holds the policies.",
|
|
"O11yRoutePoliciesOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/route_policies/:id", zip.Doc{
|
|
Description: "Returns one route policy, by id. Viewer gate.",
|
|
Fields: map[string]string{
|
|
"O11yRoutePolicyOut.data": "Data holds the policy.",
|
|
"O11yRoutePolicyOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/rules", zip.Doc{
|
|
Description: "Lists all alert rules with their current evaluation state. Viewer gate.",
|
|
Fields: map[string]string{
|
|
"AlertCompositeQuery.unit": "Unit for the time series data shown in the graph\nThis is used to format the value and threshold",
|
|
"NotificationSettings.newGroupEvalDelay": "NewGroupEvalDelay is the grace period for new series to be excluded from alerts evaluation",
|
|
"O11yRulesOut.data": "Data holds the rules.",
|
|
"O11yRulesOut.status": "Status is \"success\".",
|
|
"PostableRule.source": "Source captures the source url where rule has been created",
|
|
"QueryEnvelope.spec": "Spec is the deferred decoding of the query if any.",
|
|
"QueryEnvelope.type": "Type is the type of the query.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/rules/:id", zip.Doc{
|
|
Description: "Returns one alert rule with its evaluation state, by id. Viewer gate.",
|
|
Fields: map[string]string{
|
|
"AlertCompositeQuery.unit": "Unit for the time series data shown in the graph\nThis is used to format the value and threshold",
|
|
"NotificationSettings.newGroupEvalDelay": "NewGroupEvalDelay is the grace period for new series to be excluded from alerts evaluation",
|
|
"O11yRuleOut.data": "Data holds the rule.",
|
|
"O11yRuleOut.status": "Status is \"success\".",
|
|
"PostableRule.source": "Source captures the source url where rule has been created",
|
|
"QueryEnvelope.spec": "Spec is the deferred decoding of the query if any.",
|
|
"QueryEnvelope.type": "Type is the type of the query.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/rules/:id/history/filter_keys", zip.Doc{
|
|
Description: "Returns the distinct label keys present in a rule's\nhistory entries over the selected range, for building history filters. Viewer gate.",
|
|
Fields: map[string]string{
|
|
"O11yRuleHistoryFilterKeysIn.endUnixMilli": "EndUnixMilli is the window end, unix milliseconds.",
|
|
"O11yRuleHistoryFilterKeysIn.limit": "Limit caps how many keys come back. Absent means 50, capped at 200.",
|
|
"O11yRuleHistoryFilterKeysIn.searchText": "SearchText narrows the keys to those containing it.",
|
|
"O11yRuleHistoryFilterKeysIn.startUnixMilli": "StartUnixMilli is the window start, unix milliseconds.",
|
|
"O11yRuleHistoryFilterKeysOut.data": "Data holds the keys.",
|
|
"O11yRuleHistoryFilterKeysOut.status": "Status is \"success\".",
|
|
"TelemetryFieldKeySkipIndex.name": "Name is TelemetryFieldKey.Name not IndexName from Datastore",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/rules/:id/history/filter_values", zip.Doc{
|
|
Description: "Returns the distinct values a given label key has\ntaken across a rule's history entries. Viewer gate.",
|
|
Fields: map[string]string{
|
|
"O11yRuleHistoryFilterKeysIn.endUnixMilli": "EndUnixMilli is the window end, unix milliseconds.",
|
|
"O11yRuleHistoryFilterKeysIn.limit": "Limit caps how many keys come back. Absent means 50, capped at 200.",
|
|
"O11yRuleHistoryFilterKeysIn.searchText": "SearchText narrows the keys to those containing it.",
|
|
"O11yRuleHistoryFilterKeysIn.startUnixMilli": "StartUnixMilli is the window start, unix milliseconds.",
|
|
"O11yRuleHistoryFilterValuesIn.existingQuery": "ExistingQuery is a filter expression scoping which values appear.",
|
|
"O11yRuleHistoryFilterValuesIn.name": "Name is the label key whose values to list. Required.",
|
|
"O11yRuleHistoryFilterValuesOut.data": "Data holds the values.",
|
|
"O11yRuleHistoryFilterValuesOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/rules/:id/history/overall_status", zip.Doc{
|
|
Description: "Returns the overall firing/inactive intervals for\na rule over the selected range. Viewer gate.",
|
|
Fields: map[string]string{
|
|
"O11yRuleHistoryBaseIn.end": "End is the window end, unix milliseconds. Required by the runtime.",
|
|
"O11yRuleHistoryBaseIn.start": "Start is the window start, unix milliseconds. Required by the runtime.",
|
|
"O11yRuleHistoryOverallStatusOut.data": "Data holds the windows.",
|
|
"O11yRuleHistoryOverallStatusOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/rules/:id/history/stats", zip.Doc{
|
|
Description: "Returns trigger and resolution statistics for a rule over\nthe selected time range, current window against the prior one. Viewer gate.",
|
|
Fields: map[string]string{
|
|
"O11yRuleHistoryBaseIn.end": "End is the window end, unix milliseconds. Required by the runtime.",
|
|
"O11yRuleHistoryBaseIn.start": "Start is the window start, unix milliseconds. Required by the runtime.",
|
|
"O11yRuleHistoryStatsOut.data": "Data holds the statistics.",
|
|
"O11yRuleHistoryStatsOut.status": "Status is \"success\".",
|
|
"TelemetryFieldKeySkipIndex.name": "Name is TelemetryFieldKey.Name not IndexName from Datastore",
|
|
"TimeSeriesValue.partial": "true if the value is \"partial\", i.e doesn't cover the complete interval.\nfor instance, if the query start time is 3:14:15 PM, and the step is 1 minute,\nthe ts is rounded to 3:14 but the value only covers 3:14:15 PM to 3:15:00 PM\nthis partial result cannot be cached and should be ignored.\non the client side, these partial values are rendered differently.",
|
|
"TimeSeriesValue.values": "for the heatmap type chart",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/rules/:id/history/timeline", zip.Doc{
|
|
Description: "Returns paginated timeline entries for a rule's state\ntransitions, filterable by state and a label expression, cursor-paginated. Viewer gate.",
|
|
Fields: map[string]string{
|
|
"O11yRuleHistoryTimelineIn.cursor": "Cursor resumes a previous page; opaque, returned as nextCursor.",
|
|
"O11yRuleHistoryTimelineIn.end": "End is the window end, unix milliseconds. Required by the runtime.",
|
|
"O11yRuleHistoryTimelineIn.filterExpression": "FilterExpression narrows entries to those whose labels match it.",
|
|
"O11yRuleHistoryTimelineIn.limit": "Limit caps how many entries come back. Absent means 50.",
|
|
"O11yRuleHistoryTimelineIn.order": "Order sorts by time, asc or desc.",
|
|
"O11yRuleHistoryTimelineIn.start": "Start is the window start, unix milliseconds. Required by the runtime.",
|
|
"O11yRuleHistoryTimelineIn.state": "State keeps only entries in one alert state, e.g. firing or normal.",
|
|
"O11yRuleHistoryTimelineOut.data": "Data holds the timeline and its paging cursor.",
|
|
"O11yRuleHistoryTimelineOut.status": "Status is \"success\".",
|
|
"TelemetryFieldKeySkipIndex.name": "Name is TelemetryFieldKey.Name not IndexName from Datastore",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/rules/:id/history/top_contributors", zip.Doc{
|
|
Description: "Returns the label combinations that contributed\nmost to a rule firing over the selected range. Viewer gate.",
|
|
Fields: map[string]string{
|
|
"O11yRuleHistoryBaseIn.end": "End is the window end, unix milliseconds. Required by the runtime.",
|
|
"O11yRuleHistoryBaseIn.start": "Start is the window start, unix milliseconds. Required by the runtime.",
|
|
"O11yRuleHistoryContributorsOut.data": "Data holds the contributors.",
|
|
"O11yRuleHistoryContributorsOut.status": "Status is \"success\".",
|
|
"TelemetryFieldKeySkipIndex.name": "Name is TelemetryFieldKey.Name not IndexName from Datastore",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/service_accounts", zip.Doc{
|
|
Description: "Lists the caller's org's service accounts.",
|
|
Fields: map[string]string{
|
|
"O11yServiceAccount.createdAt": "CreatedAt is when the account was created.",
|
|
"O11yServiceAccount.email": "Email is the address the account authenticates as.",
|
|
"O11yServiceAccount.id": "ID is the service account id.",
|
|
"O11yServiceAccount.name": "Name is the account's name.",
|
|
"O11yServiceAccount.orgId": "OrgID is the org the account belongs to.",
|
|
"O11yServiceAccount.status": "Status is active or deleted.",
|
|
"O11yServiceAccount.updatedAt": "UpdatedAt is when it last changed.",
|
|
"O11yServiceAccountsOut.data": "Data holds the service accounts.",
|
|
"O11yServiceAccountsOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/service_accounts/:id", zip.Doc{
|
|
Description: "Returns one service account with the roles it holds.",
|
|
Fields: map[string]string{
|
|
"O11yRole.createdAt": "CreatedAt is when the role was created.",
|
|
"O11yRole.description": "Description says what the role is for.",
|
|
"O11yRole.id": "ID is the role id.",
|
|
"O11yRole.name": "Name is the role's name.",
|
|
"O11yRole.orgId": "OrgID is the org the role belongs to.",
|
|
"O11yRole.type": "Type is how the role came to be — managed by the platform or custom.",
|
|
"O11yRole.updatedAt": "UpdatedAt is when it last changed.",
|
|
"O11yServiceAccountDetail.createdAt": "CreatedAt is when the account was created.",
|
|
"O11yServiceAccountDetail.email": "Email is the address the account authenticates as.",
|
|
"O11yServiceAccountDetail.id": "ID is the service account id.",
|
|
"O11yServiceAccountDetail.name": "Name is the account's name.",
|
|
"O11yServiceAccountDetail.orgId": "OrgID is the org the account belongs to.",
|
|
"O11yServiceAccountDetail.serviceAccountRoles": "ServiceAccountRoles are the account's role assignments.",
|
|
"O11yServiceAccountDetail.status": "Status is active or deleted.",
|
|
"O11yServiceAccountDetail.updatedAt": "UpdatedAt is when it last changed.",
|
|
"O11yServiceAccountOut.data": "Data holds the account and its role assignments.",
|
|
"O11yServiceAccountOut.status": "Status is \"success\".",
|
|
"O11yServiceAccountRole.createdAt": "CreatedAt is when the role was assigned.",
|
|
"O11yServiceAccountRole.id": "ID is the assignment's own id.",
|
|
"O11yServiceAccountRole.role": "Role is the role itself.",
|
|
"O11yServiceAccountRole.roleId": "RoleID is the role held.",
|
|
"O11yServiceAccountRole.serviceAccountId": "ServiceAccountID is the account holding the role.",
|
|
"O11yServiceAccountRole.updatedAt": "UpdatedAt is when the assignment last changed.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/service_accounts/:id/keys", zip.Doc{
|
|
Description: "Lists a service account's API keys — metadata only,\nnever the secrets.",
|
|
Fields: map[string]string{
|
|
"O11yAPIKey.createdAt": "CreatedAt is when the key was minted.",
|
|
"O11yAPIKey.expiresAt": "ExpiresAt is when the key stops working, as a unix timestamp in seconds;\nzero means never.",
|
|
"O11yAPIKey.id": "ID is the key id.",
|
|
"O11yAPIKey.lastObservedAt": "LastObservedAt is when the key was last seen authenticating.",
|
|
"O11yAPIKey.name": "Name is the key's name.",
|
|
"O11yAPIKey.serviceAccountId": "ServiceAccountID is the account the key belongs to.",
|
|
"O11yAPIKey.updatedAt": "UpdatedAt is when it last changed.",
|
|
"O11yAPIKeysOut.data": "Data holds the keys.",
|
|
"O11yAPIKeysOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/service_accounts/:id/roles", zip.Doc{
|
|
Description: "Lists the roles a service account holds.",
|
|
Fields: map[string]string{
|
|
"O11yRole.createdAt": "CreatedAt is when the role was created.",
|
|
"O11yRole.description": "Description says what the role is for.",
|
|
"O11yRole.id": "ID is the role id.",
|
|
"O11yRole.name": "Name is the role's name.",
|
|
"O11yRole.orgId": "OrgID is the org the role belongs to.",
|
|
"O11yRole.type": "Type is how the role came to be — managed by the platform or custom.",
|
|
"O11yRole.updatedAt": "UpdatedAt is when it last changed.",
|
|
"O11yServiceAccountRolesOut.data": "Data holds the roles.",
|
|
"O11yServiceAccountRolesOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/service_accounts/me", zip.Doc{
|
|
Description: "Returns the calling service account itself, with the\nroles it holds — the self-inspection read for a key-authenticated caller.",
|
|
Fields: map[string]string{
|
|
"O11yRole.createdAt": "CreatedAt is when the role was created.",
|
|
"O11yRole.description": "Description says what the role is for.",
|
|
"O11yRole.id": "ID is the role id.",
|
|
"O11yRole.name": "Name is the role's name.",
|
|
"O11yRole.orgId": "OrgID is the org the role belongs to.",
|
|
"O11yRole.type": "Type is how the role came to be — managed by the platform or custom.",
|
|
"O11yRole.updatedAt": "UpdatedAt is when it last changed.",
|
|
"O11yServiceAccountDetail.createdAt": "CreatedAt is when the account was created.",
|
|
"O11yServiceAccountDetail.email": "Email is the address the account authenticates as.",
|
|
"O11yServiceAccountDetail.id": "ID is the service account id.",
|
|
"O11yServiceAccountDetail.name": "Name is the account's name.",
|
|
"O11yServiceAccountDetail.orgId": "OrgID is the org the account belongs to.",
|
|
"O11yServiceAccountDetail.serviceAccountRoles": "ServiceAccountRoles are the account's role assignments.",
|
|
"O11yServiceAccountDetail.status": "Status is active or deleted.",
|
|
"O11yServiceAccountDetail.updatedAt": "UpdatedAt is when it last changed.",
|
|
"O11yServiceAccountOut.data": "Data holds the account and its role assignments.",
|
|
"O11yServiceAccountOut.status": "Status is \"success\".",
|
|
"O11yServiceAccountRole.createdAt": "CreatedAt is when the role was assigned.",
|
|
"O11yServiceAccountRole.id": "ID is the assignment's own id.",
|
|
"O11yServiceAccountRole.role": "Role is the role itself.",
|
|
"O11yServiceAccountRole.roleId": "RoleID is the role held.",
|
|
"O11yServiceAccountRole.serviceAccountId": "ServiceAccountID is the account holding the role.",
|
|
"O11yServiceAccountRole.updatedAt": "UpdatedAt is when the assignment last changed.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/services/list", zip.Doc{
|
|
Description: "Lists the name of every service the trace store holds, with no\nwindow applied — the complete catalog, for pickers and autocomplete.",
|
|
})
|
|
zip.Describe("GET /v1/o11y/settings/apdex", zip.Doc{
|
|
Description: "Returns apdex settings for the named services.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yApdexIn.services": "Services are the service names, comma separated.",
|
|
"O11yApdexOut.data": "Data holds one settings row per service.",
|
|
"O11yApdexOut.status": "Status is \"success\".",
|
|
"O11yApdexSettings.excludeStatusCodes": "ExcludeStatusCodes are status codes excluded from the score, comma\nseparated.",
|
|
"O11yApdexSettings.id": "ID is the settings row's id.",
|
|
"O11yApdexSettings.orgId": "OrgID is the org the settings belong to.",
|
|
"O11yApdexSettings.serviceName": "ServiceName is the service.",
|
|
"O11yApdexSettings.threshold": "Threshold is the satisfied-response time in seconds.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/settings/ttl", zip.Doc{
|
|
Description: "Returns the org's current retention policy: default TTL, custom\nper-label rules, and cold-storage settings where configured.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yRetentionMatch.key": "Key is the label to test.",
|
|
"O11yRetentionMatch.values": "Values are the label values the rule matches.",
|
|
"O11yRetentionOut.cold_storage_ttl_days": "ColdStorageTTLDays is how old data must be before it moves, in days.",
|
|
"O11yRetentionOut.cold_storage_volume": "ColdStorageVolume names the volume aged data moves to.",
|
|
"O11yRetentionOut.default_ttl_days": "DefaultTTLDays is the retention for data no rule matches, in days.",
|
|
"O11yRetentionOut.expected_logs_move_ttl_duration_hrs": "ExpectedLogsMoveTTLHours is the pending logs cold-storage move TTL, in\nhours.",
|
|
"O11yRetentionOut.expected_logs_ttl_duration_hrs": "ExpectedLogsTTLHours is the pending logs TTL, in hours.",
|
|
"O11yRetentionOut.status": "Status is the last TTL operation's state.",
|
|
"O11yRetentionOut.ttl_conditions": "TTLConditions are the ordered per-label rules; the first match wins.",
|
|
"O11yRetentionOut.version": "Version is the policy format version.",
|
|
"O11yRetentionRule.conditions": "Conditions all have to hold for the rule to match.",
|
|
"O11yRetentionRule.ttlDays": "TTLDays is the retention applied when it does, in days.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/span_mapper_groups", zip.Doc{
|
|
Description: "Lists the caller's org's mapping groups, optionally only the\nenabled ones.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11ySpanMapperGroupsOut.data": "Data holds the groups.",
|
|
"O11ySpanMapperGroupsOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/span_mapper_groups/:groupId/span_mappers", zip.Doc{
|
|
Description: "Lists the mappers belonging to one group, in the order they are\napplied.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11ySpanMappersOut.data": "Data holds the mappers.",
|
|
"O11ySpanMappersOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/statefulsets/attribute_keys", zip.Doc{
|
|
Description: "Lists the metric attribute keys Kubernetes\nstatefulsets report, for building statefulset filters.",
|
|
Fields: map[string]string{
|
|
"O11yInfraAttributeKeysIn.aggregateAttribute": "AggregateAttribute is the metric the keys must appear on.",
|
|
"O11yInfraAttributeKeysIn.aggregateOperator": "AggregateOperator is the aggregation the keys will be used under, e.g.\nnoop, count, avg. The runtime requires it for non-metrics sources.",
|
|
"O11yInfraAttributeKeysIn.dataSource": "DataSource is the telemetry the keys come from — metrics for the infra\nfaces. The runtime requires it.",
|
|
"O11yInfraAttributeKeysIn.limit": "Limit caps how many keys come back. Absent means 50.",
|
|
"O11yInfraAttributeKeysIn.searchText": "SearchText narrows the keys to those containing it.",
|
|
"O11yInfraAttributeKeysIn.tagType": "TagType narrows the keys to one kind — tag or resource. Empty means all;\nan invalid value reads as empty.",
|
|
"O11yInfraAttributeKeysOut.data": "Data holds the keys.",
|
|
"O11yInfraAttributeKeysOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/statefulsets/attribute_values", zip.Doc{
|
|
Description: "Lists the values one statefulset attribute key\nhas taken, for building statefulset filters.",
|
|
Fields: map[string]string{
|
|
"O11yInfraAttributeValuesIn.aggregateAttribute": "AggregateAttribute is the metric the values must appear on.",
|
|
"O11yInfraAttributeValuesIn.aggregateOperator": "AggregateOperator is the aggregation the values will be used under, e.g.\nnoop, count, avg. The runtime requires it for non-metrics sources.",
|
|
"O11yInfraAttributeValuesIn.attributeKey": "AttributeKey is the key whose values to list.",
|
|
"O11yInfraAttributeValuesIn.dataSource": "DataSource is the telemetry the values come from — metrics for the infra\nfaces. The runtime requires it.",
|
|
"O11yInfraAttributeValuesIn.filterAttributeKeyDataType": "FilterAttributeKeyDataType is the key's data type — string, int64,\nfloat64 or bool. Empty means unspecified.",
|
|
"O11yInfraAttributeValuesIn.limit": "Limit caps how many values come back. Absent means 50.",
|
|
"O11yInfraAttributeValuesIn.searchText": "SearchText narrows the values to those containing it.",
|
|
"O11yInfraAttributeValuesIn.tagType": "TagType narrows the search to one kind of key — tag or resource.",
|
|
"O11yInfraAttributeValuesOut.data": "Data holds the values, split by data type.",
|
|
"O11yInfraAttributeValuesOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/stats", zip.Doc{
|
|
Description: "Returns the collected usage statistics for the caller's org, as the\nstats reporter aggregates them — a map whose keys are the reporter's own\ncounter names.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yOrgStatsOut.data": "Data are the statistics, keyed by the reporter's own counter names.",
|
|
"O11yOrgStatsOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/trace-funnels/:funnel_id", zip.Doc{
|
|
Description: "Returns one funnel with its steps.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"FunnelStep.description": "step description",
|
|
"FunnelStep.name": "step name",
|
|
"O11yFunnelOut.data": "Data is the funnel with its steps.",
|
|
"O11yFunnelOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/trace-funnels/list", zip.Doc{
|
|
Description: "Lists the caller's org's funnels, each with its steps and who last\ntouched it.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"FunnelStep.description": "step description",
|
|
"FunnelStep.name": "step name",
|
|
"O11yFunnelsOut.data": "Data are the funnels.",
|
|
"O11yFunnelsOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/traces/:traceId", zip.Doc{
|
|
Description: "Returns one trace's spans as a column/row table, optionally\ncentred on a span and walked a fixed number of levels up and down from it —\nthe read the trace explorer opens a trace with.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yTraceSpanWindow.columns": "Columns names the fields each row carries, in row order.",
|
|
"O11yTraceSpanWindow.endTimestampMillis": "EndTimestampMillis is when it closes.",
|
|
"O11yTraceSpanWindow.events": "Events are the rows, each positionally matching Columns.",
|
|
"O11yTraceSpanWindow.isSubTree": "IsSubTree says the window is a subtree of the trace rather than the whole\nof it.",
|
|
"O11yTraceSpanWindow.startTimestampMillis": "StartTimestampMillis is when the window opens.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/traces/fields", zip.Doc{
|
|
Description: "Returns the trace field catalog: the span fields already selected\nas indexed columns, and the interesting ones seen in the data that could be.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yFieldCatalogOut.interesting": "Interesting are fields seen in the data that could be selected.",
|
|
"O11yFieldCatalogOut.selected": "Selected are the fields materialized as their own columns.",
|
|
"O11yTelemetryField.dataType": "DataType is the field's data type, e.g. string, int64, float64, bool.",
|
|
"O11yTelemetryField.name": "Name is the field's name.",
|
|
"O11yTelemetryField.type": "Type is where the field lives: attributes or resources.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/usage", zip.Doc{
|
|
Description: "Returns ingestion usage counts bucketed over the requested window,\noptionally narrowed to one service.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yUsageIn.end": "End is the window end, as epoch nanoseconds. Required.",
|
|
"O11yUsageIn.service": "Service narrows usage to one service. Empty covers all.",
|
|
"O11yUsageIn.start": "Start is the window start, as epoch nanoseconds. Required.",
|
|
"O11yUsageIn.step": "Step is the bucket width in seconds. The runtime requires it.",
|
|
"O11yUsageItem.count": "Count is how many spans were ingested in the bucket.",
|
|
"O11yUsageItem.time": "Time is the bucket start.",
|
|
"O11yUsageItem.timestamp": "Timestamp is the bucket start, as epoch nanoseconds.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/user/preferences", zip.Doc{
|
|
Description: "Lists every preference of the calling user, each with\nits current and default value. Viewer gate.",
|
|
Fields: map[string]string{
|
|
"O11yPreference.allowedScopes": "AllowedScopes are the scopes the preference may be set at — org, user.",
|
|
"O11yPreference.allowedValues": "AllowedValues restricts a string preference to these values.",
|
|
"O11yPreference.defaultValue": "DefaultValue is the value before anyone set one.",
|
|
"O11yPreference.description": "Description says what the preference does.",
|
|
"O11yPreference.name": "Name is the preference name.",
|
|
"O11yPreference.value": "Value is the current value.",
|
|
"O11yPreference.valueType": "ValueType is the JSON type a value must have — string, integer, float or\nboolean.",
|
|
"O11yPreferencesOut.data": "Data holds the preferences.",
|
|
"O11yPreferencesOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/user/preferences/:name", zip.Doc{
|
|
Description: "Returns one preference of the calling user, by name.\nViewer gate.",
|
|
Fields: map[string]string{
|
|
"O11yPreference.allowedScopes": "AllowedScopes are the scopes the preference may be set at — org, user.",
|
|
"O11yPreference.allowedValues": "AllowedValues restricts a string preference to these values.",
|
|
"O11yPreference.defaultValue": "DefaultValue is the value before anyone set one.",
|
|
"O11yPreference.description": "Description says what the preference does.",
|
|
"O11yPreference.name": "Name is the preference name.",
|
|
"O11yPreference.value": "Value is the current value.",
|
|
"O11yPreference.valueType": "ValueType is the JSON type a value must have — string, integer, float or\nboolean.",
|
|
"O11yPreferenceOut.data": "Data is the preference.",
|
|
"O11yPreferenceOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/users/me", zip.Doc{
|
|
Description: "Returns the calling user together with every role they hold. Open\nto any authenticated caller.",
|
|
Fields: map[string]string{
|
|
"O11yRole.createdAt": "CreatedAt is when the role was created.",
|
|
"O11yRole.description": "Description says what the role is for.",
|
|
"O11yRole.id": "ID is the role id.",
|
|
"O11yRole.name": "Name is the role's name.",
|
|
"O11yRole.orgId": "OrgID is the org the role belongs to.",
|
|
"O11yRole.type": "Type is how the role came to be — managed by the platform or custom.",
|
|
"O11yRole.updatedAt": "UpdatedAt is when it last changed.",
|
|
"O11yUserRole.createdAt": "CreatedAt is when it was assigned.",
|
|
"O11yUserRole.id": "ID is the assignment's own id.",
|
|
"O11yUserRole.role": "Role is the role itself.",
|
|
"O11yUserRole.roleId": "RoleID is the role held.",
|
|
"O11yUserRole.updatedAt": "UpdatedAt is when the assignment last changed.",
|
|
"O11yUserRole.userId": "UserID is the user holding the role.",
|
|
"O11yUserWithRoles.createdAt": "CreatedAt is when they joined.",
|
|
"O11yUserWithRoles.displayName": "DisplayName is what the console shows for them.",
|
|
"O11yUserWithRoles.email": "Email is their address.",
|
|
"O11yUserWithRoles.id": "ID is the user id.",
|
|
"O11yUserWithRoles.isRoot": "IsRoot marks the org's root user.",
|
|
"O11yUserWithRoles.orgId": "OrgID is the org they belong to.",
|
|
"O11yUserWithRoles.status": "Status is their lifecycle state — active, pending_invite or deleted.",
|
|
"O11yUserWithRoles.updatedAt": "UpdatedAt is when their record last changed.",
|
|
"O11yUserWithRoles.userRoles": "UserRoles are their role assignments.",
|
|
"O11yUserWithRolesOut.data": "Data is the member.",
|
|
"O11yUserWithRolesOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/users/me/dashboards", zip.Doc{
|
|
Description: "Is dashboardListV2 personalized for the calling user:\neach dashboard carries the caller's pinned state, and pinned dashboards float to\nthe top of the requested ordering. Supports the same filter DSL, sort, order and\npagination.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yDashboardDisplay.description": "Description says what the dashboard is for.",
|
|
"O11yDashboardDisplay.name": "Name is the human-facing dashboard name.",
|
|
"O11yDashboardListForUser.dashboards": "Dashboards are the rows for this page, each with the caller's pin state.",
|
|
"O11yDashboardListForUser.tags": "Tags are all tags in use across the org's dashboards.",
|
|
"O11yDashboardListForUser.total": "Total is the count across all pages.",
|
|
"O11yDashboardListForUserOut.data": "Data is the list page with pins.",
|
|
"O11yDashboardListForUserOut.status": "Status is \"success\".",
|
|
"O11yDashboardListItem.createdAt": "CreatedAt is when the dashboard was created.",
|
|
"O11yDashboardListItem.createdBy": "CreatedBy is who created it.",
|
|
"O11yDashboardListItem.id": "ID is the dashboard's id.",
|
|
"O11yDashboardListItem.image": "Image is an optional cover image reference.",
|
|
"O11yDashboardListItem.locked": "Locked reports whether the dashboard is locked against edits.",
|
|
"O11yDashboardListItem.name": "Name is the dashboard's unique internal name.",
|
|
"O11yDashboardListItem.orgId": "OrgID is the org the dashboard belongs to.",
|
|
"O11yDashboardListItem.schemaVersion": "SchemaVersion is the dashboard schema version.",
|
|
"O11yDashboardListItem.source": "Source is where the dashboard came from: user, system or integration.",
|
|
"O11yDashboardListItem.spec": "Spec is the display-only slice of the dashboard spec.",
|
|
"O11yDashboardListItem.tags": "Tags are the dashboard's tags.",
|
|
"O11yDashboardListItem.updatedAt": "UpdatedAt is when it last changed.",
|
|
"O11yDashboardListItem.updatedBy": "UpdatedBy is who last changed it.",
|
|
"O11yDashboardListItemForUser.pinned": "Pinned reports whether the calling user has pinned this dashboard.",
|
|
"O11yDashboardListParams.limit": "Limit caps how many dashboards come back. Zero means the default of 20;\nthe runtime caps it at 200.",
|
|
"O11yDashboardListParams.offset": "Offset is how many dashboards to skip for pagination.",
|
|
"O11yDashboardListParams.order": "Order is the sort direction: asc or desc. Empty orders desc.",
|
|
"O11yDashboardListParams.query": "Query is the filter DSL over dashboard columns and tags, e.g.\n`name:cpu source:user`. Empty lists everything.",
|
|
"O11yDashboardListParams.sort": "Sort is the sort field: updated_at, created_at or name. Empty sorts by\nupdated_at.",
|
|
"O11yDashboardListSpec.display": "Display is the dashboard's display metadata.",
|
|
"O11yDashboardTag.key": "Key is the tag key.",
|
|
"O11yDashboardTag.value": "Value is the tag value.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/version", zip.Doc{
|
|
Description: "Reports the running build: its version, whether an enterprise\nedition is present (\"N\" in this build), and whether first-user setup has\ncompleted.\n\nOpen by design; the runtime's own gate is OpenAccess.",
|
|
Fields: map[string]string{
|
|
"O11yVersionOut.ee": "EE says whether an enterprise edition is present; \"N\" in this build.",
|
|
"O11yVersionOut.setupCompleted": "SetupCompleted says whether the first user has been created.",
|
|
"O11yVersionOut.version": "Version is the build version.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/zeus/hosts", zip.Doc{
|
|
Description: "Returns the deployment's host info from Zeus. Viewer gate.",
|
|
Fields: map[string]string{
|
|
"O11yGettableHostOut.data": "Data holds the host info.",
|
|
"O11yGettableHostOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/sentinel/events/:id", zip.Doc{
|
|
Description: "Returns one captured error event of a project, by its id.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yEvent.culprit": "Culprit is where it came from — the function or route blamed for it.",
|
|
"O11yEvent.environment": "Environment is the deployment it happened in.",
|
|
"O11yEvent.eventId": "EventID is its own id.",
|
|
"O11yEvent.fingerprint": "Fingerprint is the grouping key that puts like errors in one issue.",
|
|
"O11yEvent.frames": "Frames are the stack, innermost first.",
|
|
"O11yEvent.handled": "Handled says whether the application caught it.",
|
|
"O11yEvent.level": "Level is its severity, e.g. error, warning, info.",
|
|
"O11yEvent.message": "Message is the human-readable message.",
|
|
"O11yEvent.orgId": "OrgID is the org that owns it.",
|
|
"O11yEvent.platform": "Platform is the reporting runtime, e.g. go, python, javascript.",
|
|
"O11yEvent.projectId": "ProjectID is the project it was captured for.",
|
|
"O11yEvent.receivedAt": "ReceivedAt is when it arrived here.",
|
|
"O11yEvent.release": "Release is the version that produced it.",
|
|
"O11yEvent.serverName": "ServerName is the host that reported it.",
|
|
"O11yEvent.serviceName": "ServiceName is the service that reported it.",
|
|
"O11yEvent.spanId": "SpanID is the span it belonged to.",
|
|
"O11yEvent.tags": "Tags are the reporter's own key/value labels.",
|
|
"O11yEvent.timestamp": "Timestamp is when the error happened, as the reporter recorded it.",
|
|
"O11yEvent.traceId": "TraceID is the trace it belonged to.",
|
|
"O11yEvent.transaction": "Transaction is the operation it happened in.",
|
|
"O11yEvent.type": "Type is the exception type.",
|
|
"O11yEvent.userEmail": "UserEmail is that user's email, when attached.",
|
|
"O11yEvent.userId": "UserID identifies the affected end user, when the reporter attached one.",
|
|
"O11yEvent.userIp": "UserIP is that user's address, when attached.",
|
|
"O11yEvent.value": "Value is the exception value.",
|
|
"O11yFrame.column": "Column is the column number.",
|
|
"O11yFrame.file": "File is the file it is in.",
|
|
"O11yFrame.function": "Function is the function the frame is in.",
|
|
"O11yFrame.line": "Line is the line number.",
|
|
"O11yFrame.own": "Own marks a frame in the reporting application's own code rather than in a\ndependency or the runtime.",
|
|
"O11ySentryEventOut.data": "Data is the event.",
|
|
"O11ySentryEventOut.status": "Status is \"success\".",
|
|
"O11ySentryEventRef.id": "ID is the event id.",
|
|
"O11ySentryEventRef.project": "Project is the project the event belongs to, by its id. Required.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/sentinel/issues", zip.Doc{
|
|
Description: "Lists the caller's org's grouped error issues, optionally\nnarrowed to one project and one time window, and filtered by status, level,\nenvironment, service, a free-text query and a sort.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yErrorIssue.assignee": "Assignee is who the issue is assigned to.",
|
|
"O11yErrorIssue.count": "Count is how many occurrences have landed on the issue.",
|
|
"O11yErrorIssue.createdAt": "CreatedAt is when the issue was first recorded.",
|
|
"O11yErrorIssue.culprit": "Culprit is where it came from — the function or route blamed for it.",
|
|
"O11yErrorIssue.environment": "Environment is the deployment the issue was seen in.",
|
|
"O11yErrorIssue.fingerprint": "Fingerprint is the grouping key that puts like errors in one issue.",
|
|
"O11yErrorIssue.firstSeen": "FirstSeen is when the earliest occurrence was recorded.",
|
|
"O11yErrorIssue.id": "ID is the issue id.",
|
|
"O11yErrorIssue.lastSeen": "LastSeen is when the latest was.",
|
|
"O11yErrorIssue.level": "Level is the issue's severity, e.g. error, warning, info.",
|
|
"O11yErrorIssue.platform": "Platform is the reporting runtime, e.g. go, python, javascript.",
|
|
"O11yErrorIssue.regressed": "Regressed marks an issue that reopened after being resolved.",
|
|
"O11yErrorIssue.release": "Release is the version that produced it.",
|
|
"O11yErrorIssue.resolvedAt": "ResolvedAt is when the issue was resolved, if it is.",
|
|
"O11yErrorIssue.serviceName": "ServiceName is the service that reported it.",
|
|
"O11yErrorIssue.status": "Status is the lifecycle state: unresolved, resolved or ignored.",
|
|
"O11yErrorIssue.type": "Type is the exception type.",
|
|
"O11yErrorIssue.updatedAt": "UpdatedAt is when the issue last changed.",
|
|
"O11yErrorIssue.value": "Value is the exception value.",
|
|
"O11yErrorIssues.items": "Items are the issues.",
|
|
"O11yErrorIssues.limit": "Limit is the page cap that was applied.",
|
|
"O11yErrorIssues.offset": "Offset is how many were skipped.",
|
|
"O11yErrorIssues.total": "Total is how many matched the filter.",
|
|
"O11yErrorIssuesOut.data": "Data holds the issues.",
|
|
"O11yErrorIssuesOut.status": "Status is \"success\".",
|
|
"O11ySentryIssuesIn.environment": "Environment narrows to one deployment environment.",
|
|
"O11ySentryIssuesIn.level": "Level narrows to one severity, e.g. error, warning, info.",
|
|
"O11ySentryIssuesIn.limit": "Limit caps how many issues come back. Zero means the default.",
|
|
"O11ySentryIssuesIn.offset": "Offset is how many issues to skip. Zero starts at the first.",
|
|
"O11ySentryIssuesIn.period": "Period is the window to read, relative to now — 1h, 24h, 7d, 14d, 30d.",
|
|
"O11ySentryIssuesIn.project": "Project narrows the org's issues to one project, by its id.",
|
|
"O11ySentryIssuesIn.query": "Query narrows to issues whose text contains it.",
|
|
"O11ySentryIssuesIn.serviceName": "ServiceName narrows to one reporting service.",
|
|
"O11ySentryIssuesIn.sort": "Sort orders the page, e.g. lastSeen, firstSeen, count.",
|
|
"O11ySentryIssuesIn.status": "Status narrows to one lifecycle state: unresolved, resolved or ignored.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/sentinel/issues/:id", zip.Doc{
|
|
Description: "Returns one grouped issue of the caller's org with its latest\noccurrence sample.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yErrorGettableIssue.issue": "Issue is the lifecycle row.",
|
|
"O11yErrorGettableIssue.latestEvent": "LatestEvent is the most recent occurrence that landed on the issue.",
|
|
"O11yErrorGettableIssueOut.data": "Data is the issue and its latest occurrence.",
|
|
"O11yErrorGettableIssueOut.status": "Status is \"success\".",
|
|
"O11yErrorIssue.assignee": "Assignee is who the issue is assigned to.",
|
|
"O11yErrorIssue.count": "Count is how many occurrences have landed on the issue.",
|
|
"O11yErrorIssue.createdAt": "CreatedAt is when the issue was first recorded.",
|
|
"O11yErrorIssue.culprit": "Culprit is where it came from — the function or route blamed for it.",
|
|
"O11yErrorIssue.environment": "Environment is the deployment the issue was seen in.",
|
|
"O11yErrorIssue.fingerprint": "Fingerprint is the grouping key that puts like errors in one issue.",
|
|
"O11yErrorIssue.firstSeen": "FirstSeen is when the earliest occurrence was recorded.",
|
|
"O11yErrorIssue.id": "ID is the issue id.",
|
|
"O11yErrorIssue.lastSeen": "LastSeen is when the latest was.",
|
|
"O11yErrorIssue.level": "Level is the issue's severity, e.g. error, warning, info.",
|
|
"O11yErrorIssue.platform": "Platform is the reporting runtime, e.g. go, python, javascript.",
|
|
"O11yErrorIssue.regressed": "Regressed marks an issue that reopened after being resolved.",
|
|
"O11yErrorIssue.release": "Release is the version that produced it.",
|
|
"O11yErrorIssue.resolvedAt": "ResolvedAt is when the issue was resolved, if it is.",
|
|
"O11yErrorIssue.serviceName": "ServiceName is the service that reported it.",
|
|
"O11yErrorIssue.status": "Status is the lifecycle state: unresolved, resolved or ignored.",
|
|
"O11yErrorIssue.type": "Type is the exception type.",
|
|
"O11yErrorIssue.updatedAt": "UpdatedAt is when the issue last changed.",
|
|
"O11yErrorIssue.value": "Value is the exception value.",
|
|
"O11yEventUser.email": "Email is that user's email.",
|
|
"O11yEventUser.id": "ID identifies the affected end user.",
|
|
"O11yEventUser.ipAddress": "IP is that user's address.",
|
|
"O11yEventUser.username": "Username is that user's name.",
|
|
"O11yOccurrence.culprit": "Culprit is where it came from.",
|
|
"O11yOccurrence.environment": "Environment is the deployment it happened in.",
|
|
"O11yOccurrence.eventId": "EventID is the occurrence's id.",
|
|
"O11yOccurrence.fingerprint": "Fingerprint is the grouping key it was bucketed by.",
|
|
"O11yOccurrence.frames": "Frames are the stack, innermost first.",
|
|
"O11yOccurrence.level": "Level is its severity, e.g. error, warning, info.",
|
|
"O11yOccurrence.platform": "Platform is the reporting runtime.",
|
|
"O11yOccurrence.release": "Release is the version that produced it.",
|
|
"O11yOccurrence.serverName": "ServerName is the host that reported it.",
|
|
"O11yOccurrence.serviceName": "ServiceName is the service that reported it.",
|
|
"O11yOccurrence.spanId": "SpanID is the span it belonged to.",
|
|
"O11yOccurrence.tags": "Tags are the reporter's own key/value labels.",
|
|
"O11yOccurrence.timestamp": "Timestamp is when the error happened.",
|
|
"O11yOccurrence.traceId": "TraceID is the trace it belonged to.",
|
|
"O11yOccurrence.transaction": "Transaction is the operation it happened in.",
|
|
"O11yOccurrence.type": "Type is the exception type.",
|
|
"O11yOccurrence.user": "User is the affected end-user context, when the reporter attached one.",
|
|
"O11yOccurrence.value": "Value is the exception value.",
|
|
"O11yOccurrenceFrame.absPath": "AbsPath is the file's absolute path.",
|
|
"O11yOccurrenceFrame.colno": "Colno is the column number.",
|
|
"O11yOccurrenceFrame.filename": "Filename is the file it is in.",
|
|
"O11yOccurrenceFrame.function": "Function is the function the frame is in.",
|
|
"O11yOccurrenceFrame.inApp": "InApp marks a frame in the reporting application's own code.",
|
|
"O11yOccurrenceFrame.lineno": "Lineno is the line number.",
|
|
"O11yOccurrenceFrame.module": "Module is the module the function is in.",
|
|
"O11ySentryIssueRef.id": "ID is the issue id.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/sentinel/issues/:id/events", zip.Doc{
|
|
Description: "Lists one issue's captured occurrences, scoped to a project\n— a project is an isolation unit, so the caller declares which project's\noccurrences to read.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yEvent.culprit": "Culprit is where it came from — the function or route blamed for it.",
|
|
"O11yEvent.environment": "Environment is the deployment it happened in.",
|
|
"O11yEvent.eventId": "EventID is its own id.",
|
|
"O11yEvent.fingerprint": "Fingerprint is the grouping key that puts like errors in one issue.",
|
|
"O11yEvent.frames": "Frames are the stack, innermost first.",
|
|
"O11yEvent.handled": "Handled says whether the application caught it.",
|
|
"O11yEvent.level": "Level is its severity, e.g. error, warning, info.",
|
|
"O11yEvent.message": "Message is the human-readable message.",
|
|
"O11yEvent.orgId": "OrgID is the org that owns it.",
|
|
"O11yEvent.platform": "Platform is the reporting runtime, e.g. go, python, javascript.",
|
|
"O11yEvent.projectId": "ProjectID is the project it was captured for.",
|
|
"O11yEvent.receivedAt": "ReceivedAt is when it arrived here.",
|
|
"O11yEvent.release": "Release is the version that produced it.",
|
|
"O11yEvent.serverName": "ServerName is the host that reported it.",
|
|
"O11yEvent.serviceName": "ServiceName is the service that reported it.",
|
|
"O11yEvent.spanId": "SpanID is the span it belonged to.",
|
|
"O11yEvent.tags": "Tags are the reporter's own key/value labels.",
|
|
"O11yEvent.timestamp": "Timestamp is when the error happened, as the reporter recorded it.",
|
|
"O11yEvent.traceId": "TraceID is the trace it belonged to.",
|
|
"O11yEvent.transaction": "Transaction is the operation it happened in.",
|
|
"O11yEvent.type": "Type is the exception type.",
|
|
"O11yEvent.userEmail": "UserEmail is that user's email, when attached.",
|
|
"O11yEvent.userId": "UserID identifies the affected end user, when the reporter attached one.",
|
|
"O11yEvent.userIp": "UserIP is that user's address, when attached.",
|
|
"O11yEvent.value": "Value is the exception value.",
|
|
"O11yEvents.items": "Items are the events, newest first.",
|
|
"O11yFrame.column": "Column is the column number.",
|
|
"O11yFrame.file": "File is the file it is in.",
|
|
"O11yFrame.function": "Function is the function the frame is in.",
|
|
"O11yFrame.line": "Line is the line number.",
|
|
"O11yFrame.own": "Own marks a frame in the reporting application's own code rather than in a\ndependency or the runtime.",
|
|
"O11ySentryIssueEventsIn.id": "ID is the issue id.",
|
|
"O11ySentryIssueEventsIn.limit": "Limit caps how many occurrences come back. Zero means the default.",
|
|
"O11ySentryIssueEventsIn.project": "Project is the project whose occurrences to read, by its id. Required.",
|
|
"O11ySentryIssueEventsOut.data": "Data holds the occurrences.",
|
|
"O11ySentryIssueEventsOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/sentinel/logs", zip.Doc{
|
|
Description: "Lists a project's captured error events, newest first, optionally\nnarrowed to those whose message or exception text contains a search string.",
|
|
Fields: map[string]string{
|
|
"O11yEvent.culprit": "Culprit is where it came from — the function or route blamed for it.",
|
|
"O11yEvent.environment": "Environment is the deployment it happened in.",
|
|
"O11yEvent.eventId": "EventID is its own id.",
|
|
"O11yEvent.fingerprint": "Fingerprint is the grouping key that puts like errors in one issue.",
|
|
"O11yEvent.frames": "Frames are the stack, innermost first.",
|
|
"O11yEvent.handled": "Handled says whether the application caught it.",
|
|
"O11yEvent.level": "Level is its severity, e.g. error, warning, info.",
|
|
"O11yEvent.message": "Message is the human-readable message.",
|
|
"O11yEvent.orgId": "OrgID is the org that owns it.",
|
|
"O11yEvent.platform": "Platform is the reporting runtime, e.g. go, python, javascript.",
|
|
"O11yEvent.projectId": "ProjectID is the project it was captured for.",
|
|
"O11yEvent.receivedAt": "ReceivedAt is when it arrived here.",
|
|
"O11yEvent.release": "Release is the version that produced it.",
|
|
"O11yEvent.serverName": "ServerName is the host that reported it.",
|
|
"O11yEvent.serviceName": "ServiceName is the service that reported it.",
|
|
"O11yEvent.spanId": "SpanID is the span it belonged to.",
|
|
"O11yEvent.tags": "Tags are the reporter's own key/value labels.",
|
|
"O11yEvent.timestamp": "Timestamp is when the error happened, as the reporter recorded it.",
|
|
"O11yEvent.traceId": "TraceID is the trace it belonged to.",
|
|
"O11yEvent.transaction": "Transaction is the operation it happened in.",
|
|
"O11yEvent.type": "Type is the exception type.",
|
|
"O11yEvent.userEmail": "UserEmail is that user's email, when attached.",
|
|
"O11yEvent.userId": "UserID identifies the affected end user, when the reporter attached one.",
|
|
"O11yEvent.userIp": "UserIP is that user's address, when attached.",
|
|
"O11yEvent.value": "Value is the exception value.",
|
|
"O11yEvents.items": "Items are the events, newest first.",
|
|
"O11yFrame.column": "Column is the column number.",
|
|
"O11yFrame.file": "File is the file it is in.",
|
|
"O11yFrame.function": "Function is the function the frame is in.",
|
|
"O11yFrame.line": "Line is the line number.",
|
|
"O11yFrame.own": "Own marks a frame in the reporting application's own code rather than in a\ndependency or the runtime.",
|
|
"O11yLogsIn.limit": "Limit caps how many events come back.",
|
|
"O11yLogsIn.period": "Period is the window to read, relative to now — 1h, 24h, 7d, 14d, 30d.",
|
|
"O11yLogsIn.project": "Project is the project to read, as its id. Required.",
|
|
"O11yLogsIn.query": "Query narrows the page to events whose text contains it.",
|
|
"O11yLogsOut.data": "Data holds the events.",
|
|
"O11yLogsOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/sentinel/projects", zip.Doc{
|
|
Description: "Lists the caller's org's Sentry projects — one per product\nthat has reported an error, plus any created by hand.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11ySentryProject.createdAt": "CreatedAt is when the project was created.",
|
|
"O11ySentryProject.id": "ID is the project id.",
|
|
"O11ySentryProject.name": "Name is the project's display name.",
|
|
"O11ySentryProject.platform": "Platform is the reporting runtime, e.g. go, python, javascript.",
|
|
"O11ySentryProject.slug": "Slug is the project's short name.",
|
|
"O11ySentryProject.status": "Status is the project's lifecycle state: active or disabled.",
|
|
"O11ySentryProject.updatedAt": "UpdatedAt is when the project last changed.",
|
|
"O11ySentryProjects.items": "Items are the projects.",
|
|
"O11ySentryProjects.total": "Total is how many the org has.",
|
|
"O11ySentryProjectsOut.data": "Data holds the projects.",
|
|
"O11ySentryProjectsOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/sentinel/projects/:id", zip.Doc{
|
|
Description: "Returns one Sentry project of the caller's org.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11ySentryProject.createdAt": "CreatedAt is when the project was created.",
|
|
"O11ySentryProject.id": "ID is the project id.",
|
|
"O11ySentryProject.name": "Name is the project's display name.",
|
|
"O11ySentryProject.platform": "Platform is the reporting runtime, e.g. go, python, javascript.",
|
|
"O11ySentryProject.slug": "Slug is the project's short name.",
|
|
"O11ySentryProject.status": "Status is the project's lifecycle state: active or disabled.",
|
|
"O11ySentryProject.updatedAt": "UpdatedAt is when the project last changed.",
|
|
"O11ySentryProjectOut.data": "Data is the project.",
|
|
"O11ySentryProjectOut.status": "Status is \"success\".",
|
|
"O11ySentryProjectRef.id": "ID is the project id.",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/sentinel/stats", zip.Doc{
|
|
Description: "Returns a project's event-rate timeseries: one bucket per interval over\nthe requested period, counting the events in it.",
|
|
Fields: map[string]string{
|
|
"O11yStat.time": "Time is the start of the bucket.",
|
|
"O11yStat.value": "Value is how many events fell in it.",
|
|
"O11yStats.items": "Items are the buckets, oldest first.",
|
|
"O11yStatsIn.field": "Field is the dimension to count over. Empty counts all events.",
|
|
"O11yStatsIn.period": "Period is the window to read, relative to now — 1h, 24h, 7d, 14d, 30d.",
|
|
"O11yStatsIn.project": "Project is the project to read, as its id. Required.",
|
|
"O11yStatsOut.data": "Data holds the buckets.",
|
|
"O11yStatsOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/sentinel/traces", zip.Doc{
|
|
Description: "Lists the traces a project's captured errors reference, each with how\nmany errors landed on it, when they started and stopped, and the latest\nmessage seen — the entry point for \"which requests are failing\".",
|
|
Fields: map[string]string{
|
|
"O11yTrace.count": "Count is how many captured errors carried it.",
|
|
"O11yTrace.firstSeen": "FirstSeen is when the earliest of them was recorded.",
|
|
"O11yTrace.lastSeen": "LastSeen is when the latest was.",
|
|
"O11yTrace.message": "Message is the latest error message seen on the trace.",
|
|
"O11yTrace.traceId": "TraceID is the trace id.",
|
|
"O11yTraces.items": "Items are the traces, most recent first.",
|
|
"O11yTracesIn.limit": "Limit caps how many traces come back.",
|
|
"O11yTracesIn.period": "Period is the window to read, relative to now — 1h, 24h, 7d, 14d, 30d.",
|
|
"O11yTracesIn.project": "Project is the project to read, as its id. Required.",
|
|
"O11yTracesOut.data": "Data holds the traces.",
|
|
"O11yTracesOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("GET /v1/o11y/sentinel/traces/:id", zip.Doc{
|
|
Description: "Returns one trace's captured errors for a project — every error event\nthat carried the trace id, in the order the events plane holds them.",
|
|
Fields: map[string]string{
|
|
"O11yEvent.culprit": "Culprit is where it came from — the function or route blamed for it.",
|
|
"O11yEvent.environment": "Environment is the deployment it happened in.",
|
|
"O11yEvent.eventId": "EventID is its own id.",
|
|
"O11yEvent.fingerprint": "Fingerprint is the grouping key that puts like errors in one issue.",
|
|
"O11yEvent.frames": "Frames are the stack, innermost first.",
|
|
"O11yEvent.handled": "Handled says whether the application caught it.",
|
|
"O11yEvent.level": "Level is its severity, e.g. error, warning, info.",
|
|
"O11yEvent.message": "Message is the human-readable message.",
|
|
"O11yEvent.orgId": "OrgID is the org that owns it.",
|
|
"O11yEvent.platform": "Platform is the reporting runtime, e.g. go, python, javascript.",
|
|
"O11yEvent.projectId": "ProjectID is the project it was captured for.",
|
|
"O11yEvent.receivedAt": "ReceivedAt is when it arrived here.",
|
|
"O11yEvent.release": "Release is the version that produced it.",
|
|
"O11yEvent.serverName": "ServerName is the host that reported it.",
|
|
"O11yEvent.serviceName": "ServiceName is the service that reported it.",
|
|
"O11yEvent.spanId": "SpanID is the span it belonged to.",
|
|
"O11yEvent.tags": "Tags are the reporter's own key/value labels.",
|
|
"O11yEvent.timestamp": "Timestamp is when the error happened, as the reporter recorded it.",
|
|
"O11yEvent.traceId": "TraceID is the trace it belonged to.",
|
|
"O11yEvent.transaction": "Transaction is the operation it happened in.",
|
|
"O11yEvent.type": "Type is the exception type.",
|
|
"O11yEvent.userEmail": "UserEmail is that user's email, when attached.",
|
|
"O11yEvent.userId": "UserID identifies the affected end user, when the reporter attached one.",
|
|
"O11yEvent.userIp": "UserIP is that user's address, when attached.",
|
|
"O11yEvent.value": "Value is the exception value.",
|
|
"O11yFrame.column": "Column is the column number.",
|
|
"O11yFrame.file": "File is the file it is in.",
|
|
"O11yFrame.function": "Function is the function the frame is in.",
|
|
"O11yFrame.line": "Line is the line number.",
|
|
"O11yFrame.own": "Own marks a frame in the reporting application's own code rather than in a\ndependency or the runtime.",
|
|
"O11yTraceDetail.events": "Events are the error events carrying the trace id.",
|
|
"O11yTraceDetail.traceId": "TraceID is the trace that was read.",
|
|
"O11yTraceIn.id": "ID is the trace id.",
|
|
"O11yTraceIn.project": "Project is the project the trace's errors belong to. Required.",
|
|
"O11yTraceOut.data": "Data holds the trace and its events.",
|
|
"O11yTraceOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("PATCH /v1/o11y/dashboards/:id", zip.Doc{
|
|
Description: "Applies an RFC 6902 JSON Patch to a v2-shape dashboard. The\npatch is applied against the postable view (metadata, spec, tags), so individual\npanels, queries, variables, layouts or tags can be updated without re-sending the\nrest. Apply is lenient — remove on a missing path is a no-op and add creates any\nmissing parent objects — and the result is still validated. Locked dashboards are\nrejected. The request body is the bare JSON Patch operations array.\n\nCallers need the editor role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yDashboard.createdAt": "CreatedAt is when the dashboard was created.",
|
|
"O11yDashboard.createdBy": "CreatedBy is who created it.",
|
|
"O11yDashboard.id": "ID is the dashboard's id.",
|
|
"O11yDashboard.image": "Image is an optional cover image reference.",
|
|
"O11yDashboard.locked": "Locked reports whether the dashboard is locked against edits.",
|
|
"O11yDashboard.name": "Name is the dashboard's unique internal name.",
|
|
"O11yDashboard.orgId": "OrgID is the org the dashboard belongs to.",
|
|
"O11yDashboard.schemaVersion": "SchemaVersion is the dashboard schema version.",
|
|
"O11yDashboard.source": "Source is where the dashboard came from: user, system or integration.",
|
|
"O11yDashboard.spec": "Spec is the Perses dashboard spec, carried verbatim as open JSON.",
|
|
"O11yDashboard.tags": "Tags are the dashboard's tags.",
|
|
"O11yDashboard.updatedAt": "UpdatedAt is when it last changed.",
|
|
"O11yDashboard.updatedBy": "UpdatedBy is who last changed it.",
|
|
"O11yDashboardOut.data": "Data is the dashboard.",
|
|
"O11yDashboardOut.status": "Status is \"success\".",
|
|
"O11yDashboardPatchIn.id": "ID is the dashboard id from the path.",
|
|
"O11yDashboardPatchIn.ops": "Ops are the JSON Patch operations, applied in order. On the wire this IS the\nrequest body — a bare array, not an object.",
|
|
"O11yDashboardPatchOp.from": "From is the source JSON Pointer for move and copy; ignored otherwise.",
|
|
"O11yDashboardPatchOp.op": "Op is the verb: add, remove, replace, move, copy or test.",
|
|
"O11yDashboardPatchOp.path": "Path is a JSON Pointer into the postable dashboard, e.g.\n/spec/display/name, /spec/panels/<id>, /tags/-.",
|
|
"O11yDashboardPatchOp.value": "Value is the value to add/replace/test; its type depends on Path. Required\nfor add, replace and test; ignored otherwise.",
|
|
"O11yDashboardTag.key": "Key is the tag key.",
|
|
"O11yDashboardTag.value": "Value is the tag value.",
|
|
},
|
|
})
|
|
zip.Describe("PATCH /v1/o11y/gateway/ingestion_keys/:keyId", zip.Doc{
|
|
Description: "Changes an ingestion key, by id. Editor gate.",
|
|
})
|
|
zip.Describe("PATCH /v1/o11y/gateway/ingestion_keys/limits/:limitId", zip.Doc{
|
|
Description: "Changes an ingestion key limit, by limit id. Editor\ngate.",
|
|
})
|
|
zip.Describe("PATCH /v1/o11y/rules/:id", zip.Doc{
|
|
Description: "Applies a partial update to an alert rule, by id, answering\nwith the stored rule — the common toggle for enabling or muting a rule.\nEditor gate.",
|
|
Fields: map[string]string{
|
|
"AlertCompositeQuery.unit": "Unit for the time series data shown in the graph\nThis is used to format the value and threshold",
|
|
"NotificationSettings.newGroupEvalDelay": "NewGroupEvalDelay is the grace period for new series to be excluded from alerts evaluation",
|
|
"O11yRuleOut.data": "Data holds the rule.",
|
|
"O11yRuleOut.status": "Status is \"success\".",
|
|
"PostableRule.source": "Source captures the source url where rule has been created",
|
|
"QueryEnvelope.spec": "Spec is the deferred decoding of the query if any.",
|
|
"QueryEnvelope.type": "Type is the type of the query.",
|
|
},
|
|
})
|
|
zip.Describe("PATCH /v1/o11y/span_mapper_groups/:groupId", zip.Doc{
|
|
Description: "Changes a group's name, condition or enabled state.\nEvery field is optional and only the ones sent are applied.\n\nCallers need the admin role; the runtime's own gate enforces it.",
|
|
})
|
|
zip.Describe("PATCH /v1/o11y/span_mapper_groups/:groupId/span_mappers/:mapperId", zip.Doc{
|
|
Description: "Changes a mapper's field context, config or enabled state.\nEvery field is optional and only the ones sent are applied.\n\nCallers need the admin role; the runtime's own gate enforces it.",
|
|
})
|
|
zip.Describe("POST /v1/o11y/authz/check", zip.Doc{
|
|
Description: "Evaluates a batch of transactions — relation plus object — for\nthe authenticated caller and answers each with its authorization verdict, in\nthe order they were asked. It is the read a UI uses to decide which controls\nto show.",
|
|
Fields: map[string]string{
|
|
"O11yCheckOut.data": "Data holds the verdicts.",
|
|
"O11yCheckOut.status": "Status is \"success\".",
|
|
"O11yObject.resource": "Resource is the resource's type and kind.",
|
|
"O11yObject.selector": "Selector picks the instance — an FGA object string, wildcard allowed.",
|
|
"O11yResourceRef.kind": "Kind is the resource kind the type belongs to.",
|
|
"O11yResourceRef.type": "Type is the resource type, e.g. role, dashboard, serviceaccount.",
|
|
"O11yTransaction.object": "Object is the resource the verb would act on.",
|
|
"O11yTransaction.relation": "Relation is the verb being asked about, e.g. read, create, update, delete.",
|
|
"O11yTransactionResult.authorized": "Authorized says whether the caller may do it.",
|
|
"O11yTransactionResult.object": "Object is the resource it would act on.",
|
|
"O11yTransactionResult.relation": "Relation is the verb that was asked about.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/auto_complete/attribute_values", zip.Doc{
|
|
Description: "Reads the attribute-value request from the body rather\nthan off the query string — the spelling the newer builder uses to send its\nfilters alongside the request.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yAttributeValuesOut.data": "Data holds the values, split by data type.",
|
|
"O11yAttributeValuesOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/channels", zip.Doc{
|
|
Description: "Creates a notification channel, answering with the stored\nchannel. Admin gate.",
|
|
Fields: map[string]string{
|
|
"Authorization.credentials_ref": "CredentialsRef is the name of the secret within the secret manager to use as credentials.",
|
|
"BasicAuth.password_ref": "PasswordRef is the name of the secret within the secret manager to use as the password.",
|
|
"BasicAuth.username_ref": "UsernameRef is the name of the secret within the secret manager to use as the username.",
|
|
"EmailConfig.force_implicit_tls": "ForceImplicitTLS controls whether to use implicit TLS (direct TLS connection).\ntrue: force use of implicit TLS (direct TLS connection)\nfalse: force disable implicit TLS (use explicit TLS/STARTTLS if required)\nnil (default): auto-detect based on port (465=implicit, other=explicit) for backward compatibility",
|
|
"EmailConfig.to": "Email address to notify.",
|
|
"HTTPClientConfig.ProxyConfig": "Proxy configuration.",
|
|
"HTTPClientConfig.authorization": "The HTTP authorization credentials for the targets.",
|
|
"HTTPClientConfig.basic_auth": "The HTTP basic authentication credentials for the targets.",
|
|
"HTTPClientConfig.bearer_token": "The bearer token for the targets. Deprecated in favour of\nAuthorization.Credentials.",
|
|
"HTTPClientConfig.bearer_token_file": "The bearer token file for the targets. Deprecated in favour of\nAuthorization.CredentialsFile.",
|
|
"HTTPClientConfig.enable_http2": "EnableHTTP2 specifies whether the client should configure HTTP2.\nThe omitempty flag is not set, because it would be hidden from the\nmarshalled configuration when set to false.",
|
|
"HTTPClientConfig.follow_redirects": "FollowRedirects specifies whether the client should follow HTTP 3xx redirects.\nThe omitempty flag is not set, because it would be hidden from the\nmarshalled configuration when set to false.",
|
|
"HTTPClientConfig.http_headers": "HTTPHeaders specify headers to inject in the requests. Those headers\ncould be marshalled back to the users.",
|
|
"HTTPClientConfig.oauth2": "The OAuth2 client credentials used to fetch a token for the targets.",
|
|
"HTTPClientConfig.tls_config": "TLSConfig to use to connect to the targets.",
|
|
"IncidentioConfig.alert_source_token": "AlertSourceToken is the key used to authenticate with the alert source in incident.io.",
|
|
"IncidentioConfig.max_alerts": "MaxAlerts is the maximum number of alerts to be sent per incident.io message.\nAlerts exceeding this threshold will be truncated. Setting this to 0\nallows an unlimited number of alerts. Note that if the payload exceeds\nincident.io's size limits, you will receive a 429 response and alerts\nwill not be ingested.",
|
|
"IncidentioConfig.timeout": "Timeout is the maximum time allowed to invoke incident.io. Setting this to 0\ndoes not impose a timeout.",
|
|
"IncidentioConfig.url": "URL to send POST request to.",
|
|
"JiraFieldConfig.enable_update": "EnableUpdate indicates whether this field should be omitted when updating an existing issue.",
|
|
"JiraFieldConfig.template": "Template is the template string used to render the field.",
|
|
"O11yChannelOut.data": "Data holds the channel.",
|
|
"O11yChannelOut.status": "Status is \"success\".",
|
|
"OAuth2.audience": "Audience optionally specifies the intended audience of the\nrequest. If empty, the value of TokenURL is used as the\nintended audience. Only used if\nGrantType is set to \"urn:ietf:params:oauth:grant-type:jwt-bearer\".",
|
|
"OAuth2.claims": "Claims is a map of claims to be added to the JWT token. Only used if\nGrantType is set to \"urn:ietf:params:oauth:grant-type:jwt-bearer\".",
|
|
"OAuth2.client_certificate_key_ref": "ClientCertificateKeyRef is the name of the secret within the secret manager to use as the client\nsecret.",
|
|
"OAuth2.client_secret_ref": "ClientSecretRef is the name of the secret within the secret manager to use as the client\nsecret.",
|
|
"OAuth2.grant_type": "GrantType is the OAuth2 grant type to use. It can be one of\n\"client_credentials\" or \"urn:ietf:params:oauth:grant-type:jwt-bearer\" (RFC 7523).\nDefault value is \"client_credentials\"",
|
|
"OAuth2.iss": "Iss is the OAuth client identifier used when communicating with\nthe configured OAuth provider. Default value is client_id. Only used if\nGrantType is set to \"urn:ietf:params:oauth:grant-type:jwt-bearer\".",
|
|
"OAuth2.signature_algorithm": "SignatureAlgorithm is the RSA algorithm used to sign JWT token. Only used if\nGrantType is set to \"urn:ietf:params:oauth:grant-type:jwt-bearer\".\nDefault value is RS256 and valid values RS256, RS384, RS512",
|
|
"OpsGenieConfigResponder.id": "One of those 3 should be filled.",
|
|
"OpsGenieConfigResponder.type": "team, user, escalation, schedule etc.",
|
|
"PagerdutyConfig.timeout": "Timeout is the maximum time allowed to invoke the pagerduty. Setting this to 0\ndoes not impose a timeout.",
|
|
"ProxyConfig.no_proxy": "NoProxy contains addresses that should not use a proxy.",
|
|
"ProxyConfig.proxy_connect_header": "ProxyConnectHeader optionally specifies headers to send to\nproxies during CONNECT requests. Assume that at least _some_ of\nthese headers are going to contain secrets and use Secret as the\nvalue type instead of string.",
|
|
"ProxyConfig.proxy_from_environment": "ProxyFromEnvironment makes use of net/http ProxyFromEnvironment function\nto determine proxies.",
|
|
"ProxyConfig.proxy_url": "HTTP proxy server to use to connect to the targets.",
|
|
"Receiver.name": "A unique identifier for this receiver.",
|
|
"RocketchatConfig.channel": "RocketChat channel override, (like #other-channel or @username).",
|
|
"SlackConfig.channel": "Slack channel override, (like #other-channel or @username).",
|
|
"SlackConfig.timeout": "Timeout is the maximum time allowed to invoke the slack. Setting this to 0\ndoes not impose a timeout.",
|
|
"TLSConfig.ca": "Text of the CA cert to use for the targets.",
|
|
"TLSConfig.ca_file": "The CA cert to use for the targets.",
|
|
"TLSConfig.ca_ref": "CARef is the name of the secret within the secret manager to use as the CA cert for the\ntargets.",
|
|
"TLSConfig.cert": "Text of the client cert file for the targets.",
|
|
"TLSConfig.cert_file": "The client cert file for the targets.",
|
|
"TLSConfig.cert_ref": "CertRef is the name of the secret within the secret manager to use as the client cert for\nthe targets.",
|
|
"TLSConfig.insecure_skip_verify": "Disable target certificate validation.",
|
|
"TLSConfig.key": "Text of the client key file for the targets.",
|
|
"TLSConfig.key_file": "The client key file for the targets.",
|
|
"TLSConfig.key_ref": "KeyRef is the name of the secret within the secret manager to use as the client key for\nthe targets.",
|
|
"TLSConfig.max_version": "Maximum TLS version.",
|
|
"TLSConfig.min_version": "Minimum TLS version.",
|
|
"TLSConfig.server_name": "Used to verify the hostname for the targets.",
|
|
"WebhookConfig.max_alerts": "MaxAlerts is the maximum number of alerts to be sent per webhook message.\nAlerts exceeding this threshold will be truncated. Setting this to 0\nallows an unlimited number of alerts.",
|
|
"WebhookConfig.timeout": "Timeout is the maximum time allowed to invoke the webhook. Setting this to 0\ndoes not impose a timeout.",
|
|
"WebhookConfig.url": "URL to send POST request to.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/channels/test", zip.Doc{
|
|
Description: "Sends a test notification to the posted receiver. Editor gate.",
|
|
Fields: map[string]string{
|
|
"Authorization.credentials_ref": "CredentialsRef is the name of the secret within the secret manager to use as credentials.",
|
|
"BasicAuth.password_ref": "PasswordRef is the name of the secret within the secret manager to use as the password.",
|
|
"BasicAuth.username_ref": "UsernameRef is the name of the secret within the secret manager to use as the username.",
|
|
"EmailConfig.force_implicit_tls": "ForceImplicitTLS controls whether to use implicit TLS (direct TLS connection).\ntrue: force use of implicit TLS (direct TLS connection)\nfalse: force disable implicit TLS (use explicit TLS/STARTTLS if required)\nnil (default): auto-detect based on port (465=implicit, other=explicit) for backward compatibility",
|
|
"EmailConfig.to": "Email address to notify.",
|
|
"HTTPClientConfig.ProxyConfig": "Proxy configuration.",
|
|
"HTTPClientConfig.authorization": "The HTTP authorization credentials for the targets.",
|
|
"HTTPClientConfig.basic_auth": "The HTTP basic authentication credentials for the targets.",
|
|
"HTTPClientConfig.bearer_token": "The bearer token for the targets. Deprecated in favour of\nAuthorization.Credentials.",
|
|
"HTTPClientConfig.bearer_token_file": "The bearer token file for the targets. Deprecated in favour of\nAuthorization.CredentialsFile.",
|
|
"HTTPClientConfig.enable_http2": "EnableHTTP2 specifies whether the client should configure HTTP2.\nThe omitempty flag is not set, because it would be hidden from the\nmarshalled configuration when set to false.",
|
|
"HTTPClientConfig.follow_redirects": "FollowRedirects specifies whether the client should follow HTTP 3xx redirects.\nThe omitempty flag is not set, because it would be hidden from the\nmarshalled configuration when set to false.",
|
|
"HTTPClientConfig.http_headers": "HTTPHeaders specify headers to inject in the requests. Those headers\ncould be marshalled back to the users.",
|
|
"HTTPClientConfig.oauth2": "The OAuth2 client credentials used to fetch a token for the targets.",
|
|
"HTTPClientConfig.tls_config": "TLSConfig to use to connect to the targets.",
|
|
"IncidentioConfig.alert_source_token": "AlertSourceToken is the key used to authenticate with the alert source in incident.io.",
|
|
"IncidentioConfig.max_alerts": "MaxAlerts is the maximum number of alerts to be sent per incident.io message.\nAlerts exceeding this threshold will be truncated. Setting this to 0\nallows an unlimited number of alerts. Note that if the payload exceeds\nincident.io's size limits, you will receive a 429 response and alerts\nwill not be ingested.",
|
|
"IncidentioConfig.timeout": "Timeout is the maximum time allowed to invoke incident.io. Setting this to 0\ndoes not impose a timeout.",
|
|
"IncidentioConfig.url": "URL to send POST request to.",
|
|
"JiraFieldConfig.enable_update": "EnableUpdate indicates whether this field should be omitted when updating an existing issue.",
|
|
"JiraFieldConfig.template": "Template is the template string used to render the field.",
|
|
"OAuth2.audience": "Audience optionally specifies the intended audience of the\nrequest. If empty, the value of TokenURL is used as the\nintended audience. Only used if\nGrantType is set to \"urn:ietf:params:oauth:grant-type:jwt-bearer\".",
|
|
"OAuth2.claims": "Claims is a map of claims to be added to the JWT token. Only used if\nGrantType is set to \"urn:ietf:params:oauth:grant-type:jwt-bearer\".",
|
|
"OAuth2.client_certificate_key_ref": "ClientCertificateKeyRef is the name of the secret within the secret manager to use as the client\nsecret.",
|
|
"OAuth2.client_secret_ref": "ClientSecretRef is the name of the secret within the secret manager to use as the client\nsecret.",
|
|
"OAuth2.grant_type": "GrantType is the OAuth2 grant type to use. It can be one of\n\"client_credentials\" or \"urn:ietf:params:oauth:grant-type:jwt-bearer\" (RFC 7523).\nDefault value is \"client_credentials\"",
|
|
"OAuth2.iss": "Iss is the OAuth client identifier used when communicating with\nthe configured OAuth provider. Default value is client_id. Only used if\nGrantType is set to \"urn:ietf:params:oauth:grant-type:jwt-bearer\".",
|
|
"OAuth2.signature_algorithm": "SignatureAlgorithm is the RSA algorithm used to sign JWT token. Only used if\nGrantType is set to \"urn:ietf:params:oauth:grant-type:jwt-bearer\".\nDefault value is RS256 and valid values RS256, RS384, RS512",
|
|
"OpsGenieConfigResponder.id": "One of those 3 should be filled.",
|
|
"OpsGenieConfigResponder.type": "team, user, escalation, schedule etc.",
|
|
"PagerdutyConfig.timeout": "Timeout is the maximum time allowed to invoke the pagerduty. Setting this to 0\ndoes not impose a timeout.",
|
|
"ProxyConfig.no_proxy": "NoProxy contains addresses that should not use a proxy.",
|
|
"ProxyConfig.proxy_connect_header": "ProxyConnectHeader optionally specifies headers to send to\nproxies during CONNECT requests. Assume that at least _some_ of\nthese headers are going to contain secrets and use Secret as the\nvalue type instead of string.",
|
|
"ProxyConfig.proxy_from_environment": "ProxyFromEnvironment makes use of net/http ProxyFromEnvironment function\nto determine proxies.",
|
|
"ProxyConfig.proxy_url": "HTTP proxy server to use to connect to the targets.",
|
|
"Receiver.name": "A unique identifier for this receiver.",
|
|
"RocketchatConfig.channel": "RocketChat channel override, (like #other-channel or @username).",
|
|
"SlackConfig.channel": "Slack channel override, (like #other-channel or @username).",
|
|
"SlackConfig.timeout": "Timeout is the maximum time allowed to invoke the slack. Setting this to 0\ndoes not impose a timeout.",
|
|
"TLSConfig.ca": "Text of the CA cert to use for the targets.",
|
|
"TLSConfig.ca_file": "The CA cert to use for the targets.",
|
|
"TLSConfig.ca_ref": "CARef is the name of the secret within the secret manager to use as the CA cert for the\ntargets.",
|
|
"TLSConfig.cert": "Text of the client cert file for the targets.",
|
|
"TLSConfig.cert_file": "The client cert file for the targets.",
|
|
"TLSConfig.cert_ref": "CertRef is the name of the secret within the secret manager to use as the client cert for\nthe targets.",
|
|
"TLSConfig.insecure_skip_verify": "Disable target certificate validation.",
|
|
"TLSConfig.key": "Text of the client key file for the targets.",
|
|
"TLSConfig.key_file": "The client key file for the targets.",
|
|
"TLSConfig.key_ref": "KeyRef is the name of the secret within the secret manager to use as the client key for\nthe targets.",
|
|
"TLSConfig.max_version": "Maximum TLS version.",
|
|
"TLSConfig.min_version": "Minimum TLS version.",
|
|
"TLSConfig.server_name": "Used to verify the hostname for the targets.",
|
|
"WebhookConfig.max_alerts": "MaxAlerts is the maximum number of alerts to be sent per webhook message.\nAlerts exceeding this threshold will be truncated. Setting this to 0\nallows an unlimited number of alerts.",
|
|
"WebhookConfig.timeout": "Timeout is the maximum time allowed to invoke the webhook. Setting this to 0\ndoes not impose a timeout.",
|
|
"WebhookConfig.url": "URL to send POST request to.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/cloud-integrations/:cloud_provider/agent-check-in", zip.Doc{
|
|
Description: "Is the deployed agent's check-in on its original\nhyphenated path, kept for backward compatibility with agents already\nrunning. Viewer gate — the agent's role is viewer.",
|
|
Fields: map[string]string{
|
|
"AWSCloudWatchLogsSubscription.filterPattern": "https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html\n\"\" implies no filtering is required",
|
|
"AWSCloudWatchLogsSubscription.logGroupNamePrefix": "subscribe to all logs groups with specified prefix.\neg: `/aws/rds/`",
|
|
"AWSCloudWatchMetricStreamFilter.namespace": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-metricstream-metricstreamfilter.html",
|
|
"AWSMetricsCollectionStrategy.streamFilters": "to be used as https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-metricstream.html#cfn-cloudwatch-metricstream-includefilters",
|
|
"AWSTelemetryCollectionStrategy.s3Buckets": "Only available in S3 Sync Service Type in AWS",
|
|
"AzureLogsCollectionStrategy.categoryGroups": "List of categories to enable for diagnostic settings, to start with it will have 'allLogs' and no filtering.",
|
|
"AzureTelemetryCollectionStrategy.resourceProvider": "https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/resource-providers-and-types",
|
|
"GettableAgentCheckIn.account_id": "Older fields for backward compatibility with existing AWS agents",
|
|
"IntegrationConfig.enabled_regions": "backward compatible",
|
|
"IntegrationConfig.telemetry": "backward compatible",
|
|
"O11yAgentCheckInOut.data": "Data holds the check-in result.",
|
|
"O11yAgentCheckInOut.status": "Status is \"success\".",
|
|
"PostableAgentCheckIn.account_id": "following are backward compatible fields for older running agents, hence snake case JSON keys.\nWhich get mapped to new fields in AgentCheckInRequest",
|
|
"PostableAgentCheckIn.cloud_account_id": "=> ProviderAccountID",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/cloud_integrations/:cloud_provider/accounts", zip.Doc{
|
|
Description: "Connects a new cloud-integration account for the given\nprovider from its posted config and credentials, answering with the account\nand the artifact the agent deploys to complete the connection. Admin gate.",
|
|
Fields: map[string]string{
|
|
"ConnectionArtifact.aws": "required till new providers are added",
|
|
"Credentials.o11yApiKey": "PAT",
|
|
"O11yCreateAccountOut.data": "Data holds the account and the connection artifact.",
|
|
"O11yCreateAccountOut.status": "Status is \"success\".",
|
|
"PostableAccountConfig.AgentVersion": "as agent version is common for all providers, we can keep it at top level of this struct",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/cloud_integrations/:cloud_provider/accounts/check_in", zip.Doc{
|
|
Description: "Is the deployed agent's check-in — the path consistent with the\naccount surface, reporting the agent's account and telemetry state so the\nconnection can be tracked. Viewer gate — the agent's role is viewer.",
|
|
Fields: map[string]string{
|
|
"AWSCloudWatchLogsSubscription.filterPattern": "https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html\n\"\" implies no filtering is required",
|
|
"AWSCloudWatchLogsSubscription.logGroupNamePrefix": "subscribe to all logs groups with specified prefix.\neg: `/aws/rds/`",
|
|
"AWSCloudWatchMetricStreamFilter.namespace": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-metricstream-metricstreamfilter.html",
|
|
"AWSMetricsCollectionStrategy.streamFilters": "to be used as https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-metricstream.html#cfn-cloudwatch-metricstream-includefilters",
|
|
"AWSTelemetryCollectionStrategy.s3Buckets": "Only available in S3 Sync Service Type in AWS",
|
|
"AzureLogsCollectionStrategy.categoryGroups": "List of categories to enable for diagnostic settings, to start with it will have 'allLogs' and no filtering.",
|
|
"AzureTelemetryCollectionStrategy.resourceProvider": "https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/resource-providers-and-types",
|
|
"GettableAgentCheckIn.account_id": "Older fields for backward compatibility with existing AWS agents",
|
|
"IntegrationConfig.enabled_regions": "backward compatible",
|
|
"IntegrationConfig.telemetry": "backward compatible",
|
|
"O11yAgentCheckInOut.data": "Data holds the check-in result.",
|
|
"O11yAgentCheckInOut.status": "Status is \"success\".",
|
|
"PostableAgentCheckIn.account_id": "following are backward compatible fields for older running agents, hence snake case JSON keys.\nWhich get mapped to new fields in AgentCheckInRequest",
|
|
"PostableAgentCheckIn.cloud_account_id": "=> ProviderAccountID",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/clusters/list", zip.Doc{
|
|
Description: "Lists Kubernetes clusters over a time range, each with its CPU\nand memory usage against allocatable capacity and its attributes;\nfilterable, groupable and paginated.",
|
|
Fields: map[string]string{
|
|
"ClusterListRequest.end": "epoch time in ms",
|
|
"ClusterListRequest.start": "epoch time in ms",
|
|
"O11yClusterListOut.data": "Data holds the cluster records.",
|
|
"O11yClusterListOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/countErrors", zip.Doc{
|
|
Description: "Counts the grouped exceptions in the query window for the caller's\norg.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yErrorsCountIn.end": "End is the window end, as a nanosecond epoch spelled as a string.",
|
|
"O11yErrorsCountIn.exceptionType": "ExceptionType narrows to one exception type.",
|
|
"O11yErrorsCountIn.serviceName": "ServiceName narrows to one reporting service.",
|
|
"O11yErrorsCountIn.start": "Start is the window start, as a nanosecond epoch spelled as a string.",
|
|
"O11yErrorsCountIn.tags": "Tags narrow the scan to spans carrying the given tag values.",
|
|
"O11yTagQuery.boolValues": "BoolValues are the boolean values to test against.",
|
|
"O11yTagQuery.key": "Key is the tag to test.",
|
|
"O11yTagQuery.numberValues": "NumberValues are the numeric values to test against.",
|
|
"O11yTagQuery.operator": "Operator is the comparison, e.g. in, nin, contains, exists.",
|
|
"O11yTagQuery.stringValues": "StringValues are the string values to test against.",
|
|
"O11yTagQuery.tagType": "TagType is where the tag lives, e.g. ResourceAttribute, SpanAttribute.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/daemonsets/list", zip.Doc{
|
|
Description: "Lists Kubernetes daemonsets over a time range, each with the\nCPU and memory its pods used against request and limit, desired and\navailable node counts, restarts and attributes; filterable, groupable and\npaginated.",
|
|
Fields: map[string]string{
|
|
"DaemonSetListRequest.end": "epoch time in ms",
|
|
"DaemonSetListRequest.start": "epoch time in ms",
|
|
"O11yDaemonSetListOut.data": "Data holds the daemonset records.",
|
|
"O11yDaemonSetListOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/dashboard_views", zip.Doc{
|
|
Description: "Persists the calling user's dashboard-listing state (query,\nsort, order) as a named, reusable view shared across the org.\n\nCallers need the editor role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yDashboardView.createdAt": "CreatedAt is when the view was created.",
|
|
"O11yDashboardView.data": "Data is the listing state the view captures.",
|
|
"O11yDashboardView.id": "ID is the saved view's id.",
|
|
"O11yDashboardView.name": "Name is the saved view's name.",
|
|
"O11yDashboardView.orgId": "OrgID is the org the view belongs to.",
|
|
"O11yDashboardView.updatedAt": "UpdatedAt is when it last changed.",
|
|
"O11yDashboardViewData.order": "Order is the captured sort direction.",
|
|
"O11yDashboardViewData.query": "Query is the captured filter DSL.",
|
|
"O11yDashboardViewData.sort": "Sort is the captured sort field.",
|
|
"O11yDashboardViewData.version": "Version is the saved-view schema version; must be v1.",
|
|
"O11yDashboardViewOut.data": "Data is the saved view.",
|
|
"O11yDashboardViewOut.status": "Status is \"success\".",
|
|
"O11yDashboardViewPostable.data": "Data is the listing state the view captures.",
|
|
"O11yDashboardViewPostable.name": "Name is the saved view's name; at most 32 characters, no surrounding space.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/dashboards", zip.Doc{
|
|
Description: "Creates a dashboard in the v2 format that follows the Perses\nspec and answers with the stored dashboard.\n\nCallers need the editor role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yDashboard.createdAt": "CreatedAt is when the dashboard was created.",
|
|
"O11yDashboard.createdBy": "CreatedBy is who created it.",
|
|
"O11yDashboard.id": "ID is the dashboard's id.",
|
|
"O11yDashboard.image": "Image is an optional cover image reference.",
|
|
"O11yDashboard.locked": "Locked reports whether the dashboard is locked against edits.",
|
|
"O11yDashboard.name": "Name is the dashboard's unique internal name.",
|
|
"O11yDashboard.orgId": "OrgID is the org the dashboard belongs to.",
|
|
"O11yDashboard.schemaVersion": "SchemaVersion is the dashboard schema version.",
|
|
"O11yDashboard.source": "Source is where the dashboard came from: user, system or integration.",
|
|
"O11yDashboard.spec": "Spec is the Perses dashboard spec, carried verbatim as open JSON.",
|
|
"O11yDashboard.tags": "Tags are the dashboard's tags.",
|
|
"O11yDashboard.updatedAt": "UpdatedAt is when it last changed.",
|
|
"O11yDashboard.updatedBy": "UpdatedBy is who last changed it.",
|
|
"O11yDashboardOut.data": "Data is the dashboard.",
|
|
"O11yDashboardOut.status": "Status is \"success\".",
|
|
"O11yDashboardPostable.generateName": "GenerateName derives a fresh unique name from spec.display.name instead of\ntaking Name.",
|
|
"O11yDashboardPostable.image": "Image is an optional cover image reference.",
|
|
"O11yDashboardPostable.name": "Name is the dashboard's unique internal name (a DNS-1123 label). Omit it\nwith generateName to derive one from the display name.",
|
|
"O11yDashboardPostable.schemaVersion": "SchemaVersion is the dashboard schema version; must be the current v6.",
|
|
"O11yDashboardPostable.spec": "Spec is the Perses dashboard spec (display, variables, panels, layouts,\ndatasources). Its plugin-defined leaves are open JSON, carried verbatim.",
|
|
"O11yDashboardPostable.tags": "Tags are the dashboard's tags; at most ten, and none may use a reserved DSL\nkey.",
|
|
"O11yDashboardPostableTag.key": "Key is the tag key.",
|
|
"O11yDashboardPostableTag.value": "Value is the tag value.",
|
|
"O11yDashboardTag.key": "Key is the tag key.",
|
|
"O11yDashboardTag.value": "Value is the tag value.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/dashboards/:id/clone", zip.Doc{
|
|
Description: "Clones an existing v2-shape dashboard. User and integration\ndashboards can be cloned; system dashboards are rejected. The clone keeps the\nsource's display name, panels and tags, but gets a freshly generated unique\ninternal name and is always created as an unlocked user dashboard owned by the\ncaller.\n\nCallers need the editor role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yDashboard.createdAt": "CreatedAt is when the dashboard was created.",
|
|
"O11yDashboard.createdBy": "CreatedBy is who created it.",
|
|
"O11yDashboard.id": "ID is the dashboard's id.",
|
|
"O11yDashboard.image": "Image is an optional cover image reference.",
|
|
"O11yDashboard.locked": "Locked reports whether the dashboard is locked against edits.",
|
|
"O11yDashboard.name": "Name is the dashboard's unique internal name.",
|
|
"O11yDashboard.orgId": "OrgID is the org the dashboard belongs to.",
|
|
"O11yDashboard.schemaVersion": "SchemaVersion is the dashboard schema version.",
|
|
"O11yDashboard.source": "Source is where the dashboard came from: user, system or integration.",
|
|
"O11yDashboard.spec": "Spec is the Perses dashboard spec, carried verbatim as open JSON.",
|
|
"O11yDashboard.tags": "Tags are the dashboard's tags.",
|
|
"O11yDashboard.updatedAt": "UpdatedAt is when it last changed.",
|
|
"O11yDashboard.updatedBy": "UpdatedBy is who last changed it.",
|
|
"O11yDashboardIDIn.id": "ID is the resource id from the path.",
|
|
"O11yDashboardOut.data": "Data is the dashboard.",
|
|
"O11yDashboardOut.status": "Status is \"success\".",
|
|
"O11yDashboardTag.key": "Key is the tag key.",
|
|
"O11yDashboardTag.value": "Value is the tag value.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/dashboards/:id/public", zip.Doc{
|
|
Description: "Creates the public-sharing config for a dashboard and\nenables public sharing, answering with the new share's id.\n\nCallers need the admin role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yIdentifiable.id": "ID is the created resource's id.",
|
|
"O11yIdentifiableOut.data": "Data is the created resource's id.",
|
|
"O11yIdentifiableOut.status": "Status is \"success\".",
|
|
"O11yPublicDashboardWrite.defaultTimeRange": "DefaultTimeRange is the fixed window as a Go duration, e.g. 1h, 30m.",
|
|
"O11yPublicDashboardWrite.timeRangeEnabled": "TimeRangeEnabled lets the public page pick its own time range; when false\nthe share fixes DefaultTimeRange.",
|
|
"O11yPublicDashboardWriteIn.id": "ID is the dashboard id from the path.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/dependency_graph", zip.Doc{
|
|
Description: "Returns the service dependency graph over the requested\nwindow: every parent→child edge observed, with call and error rates and\nlatency percentiles per edge.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yDependency.callCount": "CallCount is how many calls crossed the edge in the window.",
|
|
"O11yDependency.callRate": "CallRate is calls per second.",
|
|
"O11yDependency.child": "Child is the called service.",
|
|
"O11yDependency.errorRate": "ErrorRate is the percentage of calls that erred.",
|
|
"O11yDependency.p50": "P50 is the median call duration, in nanoseconds.",
|
|
"O11yDependency.p75": "P75 is the 75th-percentile call duration, in nanoseconds.",
|
|
"O11yDependency.p90": "P90 is the 90th-percentile call duration, in nanoseconds.",
|
|
"O11yDependency.p95": "P95 is the 95th-percentile call duration, in nanoseconds.",
|
|
"O11yDependency.p99": "P99 is the 99th-percentile call duration, in nanoseconds.",
|
|
"O11yDependency.parent": "Parent is the calling service.",
|
|
"O11yDependencyGraphIn.end": "End is the window end, as epoch nanoseconds. Required.",
|
|
"O11yDependencyGraphIn.start": "Start is the window start, as epoch nanoseconds. Required.",
|
|
"O11yDependencyGraphIn.tags": "Tags narrow the graph to spans matching every condition.",
|
|
"O11yTagFilter.boolValues": "BoolValues are the values matched when the tag holds booleans.",
|
|
"O11yTagFilter.key": "Key is the tag to test.",
|
|
"O11yTagFilter.numberValues": "NumberValues are the values matched when the tag holds numbers.",
|
|
"O11yTagFilter.operator": "Operator is the comparison to apply — in, not_in, equals, contains and\nthe other operators the trace filter grammar names.",
|
|
"O11yTagFilter.stringValues": "StringValues are the values matched when the tag holds strings.",
|
|
"O11yTagFilter.tagType": "TagType says which kind of value the tag holds: string, number or bool.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/deployments/list", zip.Doc{
|
|
Description: "Lists Kubernetes deployments over a time range, each with the\nCPU and memory its pods used against request and limit, desired and\navailable replica counts, restarts and attributes; filterable, groupable and\npaginated.",
|
|
Fields: map[string]string{
|
|
"DeploymentListRequest.end": "epoch time in ms",
|
|
"DeploymentListRequest.start": "epoch time in ms",
|
|
"O11yDeploymentListOut.data": "Data holds the deployment records.",
|
|
"O11yDeploymentListOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/downtime_schedules", zip.Doc{
|
|
Description: "Creates a planned maintenance window, answering with\nthe stored schedule. Editor gate.",
|
|
Fields: map[string]string{
|
|
"O11yDowntimeScheduleOut.data": "Data holds the schedule.",
|
|
"O11yDowntimeScheduleOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/errortracking/issues/:id", zip.Doc{
|
|
Description: "Changes an issue's lifecycle — resolve, ignore, reopen or\nassign — and returns the updated issue. Fields left unset are left unchanged.\n\nCallers need the editor role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yErrorIssue.assignee": "Assignee is who the issue is assigned to.",
|
|
"O11yErrorIssue.count": "Count is how many occurrences have landed on the issue.",
|
|
"O11yErrorIssue.createdAt": "CreatedAt is when the issue was first recorded.",
|
|
"O11yErrorIssue.culprit": "Culprit is where it came from — the function or route blamed for it.",
|
|
"O11yErrorIssue.environment": "Environment is the deployment the issue was seen in.",
|
|
"O11yErrorIssue.fingerprint": "Fingerprint is the grouping key that puts like errors in one issue.",
|
|
"O11yErrorIssue.firstSeen": "FirstSeen is when the earliest occurrence was recorded.",
|
|
"O11yErrorIssue.id": "ID is the issue id.",
|
|
"O11yErrorIssue.lastSeen": "LastSeen is when the latest was.",
|
|
"O11yErrorIssue.level": "Level is the issue's severity, e.g. error, warning, info.",
|
|
"O11yErrorIssue.platform": "Platform is the reporting runtime, e.g. go, python, javascript.",
|
|
"O11yErrorIssue.regressed": "Regressed marks an issue that reopened after being resolved.",
|
|
"O11yErrorIssue.release": "Release is the version that produced it.",
|
|
"O11yErrorIssue.resolvedAt": "ResolvedAt is when the issue was resolved, if it is.",
|
|
"O11yErrorIssue.serviceName": "ServiceName is the service that reported it.",
|
|
"O11yErrorIssue.status": "Status is the lifecycle state: unresolved, resolved or ignored.",
|
|
"O11yErrorIssue.type": "Type is the exception type.",
|
|
"O11yErrorIssue.updatedAt": "UpdatedAt is when the issue last changed.",
|
|
"O11yErrorIssue.value": "Value is the exception value.",
|
|
"O11yErrorIssueOut.data": "Data is the issue.",
|
|
"O11yErrorIssueOut.status": "Status is \"success\".",
|
|
"O11yErrorUpdateIssueIn.assignee": "Assignee is who the issue is assigned to.",
|
|
"O11yErrorUpdateIssueIn.id": "ID is the issue id.",
|
|
"O11yErrorUpdateIssueIn.status": "Status is the new lifecycle state: unresolved, resolved or ignored.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/event", zip.Doc{
|
|
Description: "Records one product-analytics event for the signed-in user — a track\nevent with a name and free-form attributes.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yEventIn.attributes": "Attributes are free-form event properties.",
|
|
"O11yEventIn.eventName": "EventName names the event; required for track events.",
|
|
"O11yEventIn.eventType": "EventType is the kind of event — track, identify or group. Required.",
|
|
"O11yEventIn.rateLimited": "RateLimited marks an event the reporting client rate-limited.",
|
|
"O11yMessage.data": "Data is the acknowledgment message.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/explorer/views", zip.Doc{
|
|
Description: "Saves a new explorer view for the caller's org and returns its\nid.\n\nCallers need the editor role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"CompositeQuery.fillGaps": "FillGaps is used to fill the gaps in the time series data",
|
|
"CompositeQuery.unit": "Unit for the time series data shown in the graph\nThis is used in alerts to format the value and threshold",
|
|
"O11ySavedViewCreateOut.data": "Data is the new view's id.",
|
|
"O11ySavedViewCreateOut.status": "Status is \"success\".",
|
|
"QueryEnvelope.spec": "Spec is the deferred decoding of the query if any.",
|
|
"QueryEnvelope.type": "Type is the type of the query.",
|
|
"SavedView.extraData": "ExtraData is JSON encoded data used by frontend to store additional data",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/gateway/ingestion_keys", zip.Doc{
|
|
Description: "Mints an ingestion key for the workspace, answering with\nthe created key. Editor gate.",
|
|
Fields: map[string]string{
|
|
"O11yCreatedIngestionKeyOut.data": "Data holds the created ingestion key.",
|
|
"O11yCreatedIngestionKeyOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/gateway/ingestion_keys/:keyId/limits", zip.Doc{
|
|
Description: "Sets a signal limit on an ingestion key, by key id,\nanswering with the created limit. Editor gate.",
|
|
Fields: map[string]string{
|
|
"O11yCreatedLimitOut.data": "Data holds the created limit.",
|
|
"O11yCreatedLimitOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/hosts/list", zip.Doc{
|
|
Description: "Lists monitored hosts over a time range, each with its CPU,\nmemory, I/O wait and 15-minute load, whether it is actively reporting, its\nOS and its attributes; filterable, groupable and paginated. The answer also\nsays whether any host metrics were received at all and which clusters and\nnodes sent them, so an empty page is distinguishable from a fleet that never\nreported.",
|
|
Fields: map[string]string{
|
|
"HostListRequest.end": "epoch time in ms",
|
|
"HostListRequest.start": "epoch time in ms",
|
|
"O11yHostListOut.data": "Data holds the host records and the fleet's reporting state.",
|
|
"O11yHostListOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/infra_monitoring/clusters", zip.Doc{
|
|
Description: "Lists Kubernetes clusters with CPU and memory usage against\nallocatable capacity summed over their nodes, plus per-group node readiness\nand pod phase counts. Rows answer as 'list' under the default\nk8s.cluster.name grouping or 'grouped_list' under a custom groupBy; a metric\nwith no data in the window answers -1. Filterable by expression, orderable\nby usage or allocatable, paginated by offset and limit.",
|
|
Fields: map[string]string{
|
|
"ClusterRecord.clusterName": "TODO(nikhilmantri0902): once the underlying attr key is migrated to\nk8s.cluster.uid (see ClusterNameAttrKey), surface ClusterUID alongside\n(or replace) ClusterName.",
|
|
"Filter.expression": "expression to filter by following the filter syntax",
|
|
"O11yInfraClustersOut.data": "Data holds the rows.",
|
|
"O11yInfraClustersOut.status": "Status is \"success\".",
|
|
"OrderBy.direction": "direction to order by",
|
|
"OrderBy.key": "key to order by",
|
|
"TelemetryFieldKeySkipIndex.name": "Name is TelemetryFieldKey.Name not IndexName from Datastore",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/infra_monitoring/daemonsets", zip.Doc{
|
|
Description: "Lists Kubernetes daemonsets with the CPU and memory their\npods used against request and limit, the latest desired and current\nscheduled NODE counts (node counts, not pod counts), and per-group pod phase\ncounts. Rows answer as 'list' under the default k8s.daemonset.name grouping\nor 'grouped_list' under a custom groupBy; a metric with no data in the\nwindow answers -1. Filterable by expression, orderable by the pod metrics or\nthe node counts, paginated by offset and limit.",
|
|
Fields: map[string]string{
|
|
"Filter.expression": "expression to filter by following the filter syntax",
|
|
"O11yInfraDaemonSetsOut.data": "Data holds the rows.",
|
|
"O11yInfraDaemonSetsOut.status": "Status is \"success\".",
|
|
"OrderBy.direction": "direction to order by",
|
|
"OrderBy.key": "key to order by",
|
|
"TelemetryFieldKeySkipIndex.name": "Name is TelemetryFieldKey.Name not IndexName from Datastore",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/infra_monitoring/deployments", zip.Doc{
|
|
Description: "Lists Kubernetes deployments with the CPU and memory their\npods used against request and limit, the latest desired and available\nreplica counts, and per-group pod phase counts. Rows answer as 'list' under\nthe default k8s.deployment.name grouping or 'grouped_list' under a custom\ngroupBy; a metric with no data in the window answers -1. Filterable by\nexpression, orderable by the pod metrics or the replica counts, paginated by\noffset and limit.",
|
|
Fields: map[string]string{
|
|
"Filter.expression": "expression to filter by following the filter syntax",
|
|
"O11yInfraDeploymentsOut.data": "Data holds the rows.",
|
|
"O11yInfraDeploymentsOut.status": "Status is \"success\".",
|
|
"OrderBy.direction": "direction to order by",
|
|
"OrderBy.key": "key to order by",
|
|
"TelemetryFieldKeySkipIndex.name": "Name is TelemetryFieldKey.Name not IndexName from Datastore",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/infra_monitoring/hosts", zip.Doc{
|
|
Description: "Lists hosts with key infrastructure metrics — CPU, memory, I/O\nwait and disk usage percentages and 15-minute load — plus an\nactive/inactive status from whether the host reported in the last ten\nminutes. Rows answer as 'list' under the default host.name grouping or\n'grouped_list' under a custom groupBy; a metric with no data in the window\nanswers -1. Filterable by expression and by status, orderable by any of the\nfive metrics, paginated by offset and limit.",
|
|
Fields: map[string]string{
|
|
"Filter.expression": "expression to filter by following the filter syntax",
|
|
"O11yInfraHostsOut.data": "Data holds the rows.",
|
|
"O11yInfraHostsOut.status": "Status is \"success\".",
|
|
"OrderBy.direction": "direction to order by",
|
|
"OrderBy.key": "key to order by",
|
|
"TelemetryFieldKeySkipIndex.name": "Name is TelemetryFieldKey.Name not IndexName from Datastore",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/infra_monitoring/jobs", zip.Doc{
|
|
Description: "Lists Kubernetes jobs with the CPU and memory their pods used\nagainst request and limit, the latest desired-successful, active, failed and\nsuccessful pod counters, and per-group pod phase counts — the phase counts\nare current state while the counters are cumulative over the job's life.\nRows answer as 'list' under the default k8s.job.name grouping or\n'grouped_list' under a custom groupBy; a metric with no data in the window\nanswers -1. Filterable by expression, orderable by the pod metrics or the\njob counters, paginated by offset and limit.",
|
|
Fields: map[string]string{
|
|
"Filter.expression": "expression to filter by following the filter syntax",
|
|
"O11yInfraJobsOut.data": "Data holds the rows.",
|
|
"O11yInfraJobsOut.status": "Status is \"success\".",
|
|
"OrderBy.direction": "direction to order by",
|
|
"OrderBy.key": "key to order by",
|
|
"TelemetryFieldKeySkipIndex.name": "Name is TelemetryFieldKey.Name not IndexName from Datastore",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/infra_monitoring/namespaces", zip.Doc{
|
|
Description: "Lists Kubernetes namespaces with the CPU and memory their\npods used and per-group pod phase counts. Rows answer as 'list' under the\ndefault k8s.namespace.name grouping or 'grouped_list' under a custom\ngroupBy, aggregating pods either way; a metric with no data in the window\nanswers -1. Filterable by expression, orderable by cpu or memory, paginated\nby offset and limit.",
|
|
Fields: map[string]string{
|
|
"Filter.expression": "expression to filter by following the filter syntax",
|
|
"O11yInfraNamespacesOut.data": "Data holds the rows.",
|
|
"O11yInfraNamespacesOut.status": "Status is \"success\".",
|
|
"OrderBy.direction": "direction to order by",
|
|
"OrderBy.key": "key to order by",
|
|
"TelemetryFieldKeySkipIndex.name": "Name is TelemetryFieldKey.Name not IndexName from Datastore",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/infra_monitoring/nodes", zip.Doc{
|
|
Description: "Lists Kubernetes nodes with CPU and memory usage against\nallocatable capacity, per-group readiness counts and per-group phase counts\nfor the pods scheduled on them. Rows answer as 'list' under the default\nk8s.node.name grouping (each row one node with its readiness condition) or\n'grouped_list' under a custom groupBy; a metric with no data in the window\nanswers -1. Filterable by expression, orderable by usage or allocatable,\npaginated by offset and limit.",
|
|
Fields: map[string]string{
|
|
"Filter.expression": "expression to filter by following the filter syntax",
|
|
"O11yInfraNodesOut.data": "Data holds the rows.",
|
|
"O11yInfraNodesOut.status": "Status is \"success\".",
|
|
"OrderBy.direction": "direction to order by",
|
|
"OrderBy.key": "key to order by",
|
|
"TelemetryFieldKeySkipIndex.name": "Name is TelemetryFieldKey.Name not IndexName from Datastore",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/infra_monitoring/pods", zip.Doc{
|
|
Description: "Lists Kubernetes pods with CPU and memory usage against request\nand limit, the pod's phase and its age, plus its namespace, node, owning\nworkload and cluster attributes. Rows answer as 'list' under the default\nk8s.pod.uid grouping (each row one pod) or 'grouped_list' under a custom\ngroupBy (each row aggregating its pods with per-phase counts); a metric with\nno data in the window answers -1. Filterable by expression, orderable by the\nsix pod metrics, paginated by offset and limit.",
|
|
Fields: map[string]string{
|
|
"Filter.expression": "expression to filter by following the filter syntax",
|
|
"O11yInfraPodsOut.data": "Data holds the rows.",
|
|
"O11yInfraPodsOut.status": "Status is \"success\".",
|
|
"OrderBy.direction": "direction to order by",
|
|
"OrderBy.key": "key to order by",
|
|
"TelemetryFieldKeySkipIndex.name": "Name is TelemetryFieldKey.Name not IndexName from Datastore",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/infra_monitoring/pvcs", zip.Doc{
|
|
Description: "Lists Kubernetes persistent volume claims with available,\ncapacity and used bytes and inode counts, plus the claim's pod, namespace,\nnode, statefulset and cluster attributes. Rows answer as 'list' under the\ndefault k8s.persistentvolumeclaim.name grouping or 'grouped_list' under a\ncustom groupBy; a metric with no data in the window answers -1. Filterable\nby expression, orderable by the six volume metrics, paginated by offset and\nlimit.",
|
|
Fields: map[string]string{
|
|
"Filter.expression": "expression to filter by following the filter syntax",
|
|
"O11yInfraVolumesOut.data": "Data holds the rows.",
|
|
"O11yInfraVolumesOut.status": "Status is \"success\".",
|
|
"OrderBy.direction": "direction to order by",
|
|
"OrderBy.key": "key to order by",
|
|
"TelemetryFieldKeySkipIndex.name": "Name is TelemetryFieldKey.Name not IndexName from Datastore",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/infra_monitoring/statefulsets", zip.Doc{
|
|
Description: "Lists Kubernetes statefulsets with the CPU and memory\ntheir pods used against request and limit, the latest desired and current\nreplica counts, and per-group pod phase counts. Rows answer as 'list' under\nthe default k8s.statefulset.name grouping or 'grouped_list' under a custom\ngroupBy; a metric with no data in the window answers -1. Filterable by\nexpression, orderable by the pod metrics or the replica counts, paginated by\noffset and limit.",
|
|
Fields: map[string]string{
|
|
"Filter.expression": "expression to filter by following the filter syntax",
|
|
"O11yInfraStatefulSetsOut.data": "Data holds the rows.",
|
|
"O11yInfraStatefulSetsOut.status": "Status is \"success\".",
|
|
"OrderBy.direction": "direction to order by",
|
|
"OrderBy.key": "key to order by",
|
|
"TelemetryFieldKeySkipIndex.name": "Name is TelemetryFieldKey.Name not IndexName from Datastore",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/integrations/install", zip.Doc{
|
|
Description: "Installs an integration into the caller's org from its id\nand configuration, answering with the installed catalog item. Viewer gate.",
|
|
Fields: map[string]string{
|
|
"IntegrationSummary.description": "A short description",
|
|
"O11yInstallOut.data": "Data holds the installed integration.",
|
|
"O11yInstallOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/integrations/uninstall", zip.Doc{
|
|
Description: "Removes an integration from the caller's org by id.\nViewer gate.",
|
|
Fields: map[string]string{
|
|
"O11yIntegrationAck.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/jobs/list", zip.Doc{
|
|
Description: "Lists Kubernetes jobs over a time range, each with the CPU and\nmemory its pods used against request and limit, desired-successful, active,\nfailed and successful pod counts, restarts and attributes; filterable,\ngroupable and paginated.",
|
|
Fields: map[string]string{
|
|
"JobListRequest.end": "epoch time in ms",
|
|
"JobListRequest.start": "epoch time in ms",
|
|
"O11yJobListOut.data": "Data holds the job records.",
|
|
"O11yJobListOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/listErrors", zip.Doc{
|
|
Description: "Lists the grouped exceptions in the query window — each an\nexception type with its message, count, service and first/last-seen — for the\ncaller's org.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yErrorsListIn.end": "End is the window end, as a nanosecond epoch spelled as a string.",
|
|
"O11yErrorsListIn.exceptionType": "ExceptionType narrows to one exception type.",
|
|
"O11yErrorsListIn.limit": "Limit caps how many exception groups come back. Required, non-zero.",
|
|
"O11yErrorsListIn.offset": "Offset is how many groups to skip.",
|
|
"O11yErrorsListIn.order": "Order is the direction: ascending or descending.",
|
|
"O11yErrorsListIn.orderParam": "OrderParam is the column to order by, e.g. exceptionCount, lastSeen.",
|
|
"O11yErrorsListIn.serviceName": "ServiceName narrows to one reporting service.",
|
|
"O11yErrorsListIn.start": "Start is the window start, as a nanosecond epoch spelled as a string.",
|
|
"O11yErrorsListIn.tags": "Tags narrow the scan to spans carrying the given tag values.",
|
|
"O11yListError.exceptionCount": "ExceptionCount is how many instances the group holds in the window.",
|
|
"O11yListError.exceptionMessage": "ExceptionMsg is its message.",
|
|
"O11yListError.exceptionType": "ExceptionType is the exception's type.",
|
|
"O11yListError.firstSeen": "FirstSeen is when the earliest was.",
|
|
"O11yListError.groupID": "GroupID is the group's id.",
|
|
"O11yListError.lastSeen": "LastSeen is when the latest instance was recorded.",
|
|
"O11yListError.serviceName": "ServiceName is the service that reported them.",
|
|
"O11yTagQuery.boolValues": "BoolValues are the boolean values to test against.",
|
|
"O11yTagQuery.key": "Key is the tag to test.",
|
|
"O11yTagQuery.numberValues": "NumberValues are the numeric values to test against.",
|
|
"O11yTagQuery.operator": "Operator is the comparison, e.g. in, nin, contains, exists.",
|
|
"O11yTagQuery.stringValues": "StringValues are the string values to test against.",
|
|
"O11yTagQuery.tagType": "TagType is where the tag lives, e.g. ResourceAttribute, SpanAttribute.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/llm/annotation", zip.Doc{
|
|
Description: "Adds a human annotation to a trace or observation,\noptionally in a review queue.\n\nCallers need the editor role; the runtime's own gate enforces it, and it\nvalidates the payload and stamps the annotation's author and org.",
|
|
Fields: map[string]string{
|
|
"O11yLLMAnnotation.author": "Author is who wrote it.",
|
|
"O11yLLMAnnotation.content": "Content is the note itself.",
|
|
"O11yLLMAnnotation.createdAt": "CreatedAt is when the annotation was stored.",
|
|
"O11yLLMAnnotation.id": "ID is the annotation's id.",
|
|
"O11yLLMAnnotation.observationId": "ObservationID is the observation the annotation attaches to, when narrowed.",
|
|
"O11yLLMAnnotation.queue": "Queue is the review queue the annotation sits in, when queued.",
|
|
"O11yLLMAnnotation.status": "Status is the annotation's review status, e.g. PENDING.",
|
|
"O11yLLMAnnotation.traceId": "TraceID is the trace the annotation attaches to.",
|
|
"O11yLLMAnnotation.updatedAt": "UpdatedAt is when the annotation last changed.",
|
|
"O11yLLMAnnotationOut.data": "Data is the annotation.",
|
|
"O11yLLMAnnotationOut.status": "Status is \"success\".",
|
|
"O11yLLMIngestAnnotation.content": "Content is the note itself. Required.",
|
|
"O11yLLMIngestAnnotation.observationId": "ObservationID is the single observation the annotation attaches to, when\nnarrowed to one.",
|
|
"O11yLLMIngestAnnotation.queue": "Queue is the review queue to file the annotation in.",
|
|
"O11yLLMIngestAnnotation.status": "Status is the annotation's initial review status. Defaults to PENDING.",
|
|
"O11yLLMIngestAnnotation.traceId": "TraceID is the trace the annotation attaches to. Required.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/llm/scores", zip.Doc{
|
|
Description: "Attaches an eval score or human-feedback signal to a trace or a\nsingle observation.\n\nCallers need the editor role; the runtime's own gate enforces it, and it\nvalidates the payload and stamps the score's author and org.",
|
|
Fields: map[string]string{
|
|
"O11yLLMIngestScore.comment": "Comment is a free-text note.",
|
|
"O11yLLMIngestScore.dataType": "DataType is the score's kind — NUMERIC or CATEGORICAL. Defaults from the\nvalue when empty.",
|
|
"O11yLLMIngestScore.name": "Name is the score's name, e.g. helpfulness. Required.",
|
|
"O11yLLMIngestScore.observationId": "ObservationID is the single observation the score attaches to, when\nnarrowed to one.",
|
|
"O11yLLMIngestScore.source": "Source is where the score came from, e.g. API, EVAL. Defaults to API.",
|
|
"O11yLLMIngestScore.stringValue": "StringValue is the categorical score, when the score is categorical.",
|
|
"O11yLLMIngestScore.traceId": "TraceID is the trace the score attaches to. Required.",
|
|
"O11yLLMIngestScore.value": "Value is the numeric score.",
|
|
"O11yLLMScore.comment": "Comment is a free-text note.",
|
|
"O11yLLMScore.createdAt": "CreatedAt is when the score was stored.",
|
|
"O11yLLMScore.createdBy": "CreatedBy is who created the score.",
|
|
"O11yLLMScore.dataType": "DataType is the score's kind — NUMERIC or CATEGORICAL.",
|
|
"O11yLLMScore.id": "ID is the score's id.",
|
|
"O11yLLMScore.name": "Name is the score's name.",
|
|
"O11yLLMScore.observationId": "ObservationID is the observation the score attaches to, when narrowed.",
|
|
"O11yLLMScore.source": "Source is where the score came from, e.g. API, EVAL.",
|
|
"O11yLLMScore.stringValue": "StringValue is the categorical score, when the score is categorical.",
|
|
"O11yLLMScore.timestamp": "Timestamp is the score's own event time.",
|
|
"O11yLLMScore.traceId": "TraceID is the trace the score attaches to.",
|
|
"O11yLLMScore.updatedAt": "UpdatedAt is when the score last changed.",
|
|
"O11yLLMScore.value": "Value is the numeric score.",
|
|
"O11yLLMScoreOut.data": "Data is the score.",
|
|
"O11yLLMScoreOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/logs/fields", zip.Doc{
|
|
Description: "Changes how one log field is stored — selects or deselects it\nas a materialized column and tunes its index — and echoes the setting back.\n\nCallers need the editor role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yFieldSetting.dataType": "DataType is the field's data type, e.g. string, int64, float64, bool.\nRequired.",
|
|
"O11yFieldSetting.index": "Index is the index expression to put on the column, e.g. minmax,\nset(N), bloom_filter(P), tokenbf_v1(S,H,SEED). Empty keeps the default.",
|
|
"O11yFieldSetting.indexGranularity": "IndexGranularity is the index granularity in rows.",
|
|
"O11yFieldSetting.name": "Name is the field to tune. Required.",
|
|
"O11yFieldSetting.selected": "Selected materializes the field as its own column when true.",
|
|
"O11yFieldSetting.type": "Type is where the field lives: attributes or resources. Required.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/logs/pipelines", zip.Doc{
|
|
Description: "Saves the given log parsing pipelines as the new config\nversion for the caller's org and starts deploying it. The set REPLACES the\ncurrent one: a pipeline left out of the request is dropped from the new\nversion, and an empty set drops them all.\n\nCallers need the editor role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yLogConfigVersion.config": "Config is the rendered collector config the version deployed.",
|
|
"O11yLogConfigVersion.createdAt": "CreatedAt is when the version was created.",
|
|
"O11yLogConfigVersion.createdBy": "CreatedBy is the id of who created the version.",
|
|
"O11yLogConfigVersion.createdByName": "CreatedByName is the display name of who created the version.",
|
|
"O11yLogConfigVersion.deployResult": "DeployResult is the deployment's outcome message.",
|
|
"O11yLogConfigVersion.deploySequence": "DeploySequence orders this deployment among the version's deployments.",
|
|
"O11yLogConfigVersion.deployStatus": "DeployStatus is where the deployment stands, e.g. dirty, deploying,\ndeployed, in_progress, failed, unknown.",
|
|
"O11yLogConfigVersion.elementType": "ElementType is the config element the version carries — log_pipelines.",
|
|
"O11yLogConfigVersion.id": "ID is the version record's id.",
|
|
"O11yLogConfigVersion.lastHash": "LastHash is the deployed config's hash.",
|
|
"O11yLogConfigVersion.orgId": "OrgID is the org the version belongs to.",
|
|
"O11yLogConfigVersion.updatedAt": "UpdatedAt is when the version last changed.",
|
|
"O11yLogConfigVersion.updatedBy": "UpdatedBy is the id of who last changed it.",
|
|
"O11yLogConfigVersion.version": "Version is the config version number.",
|
|
"O11yLogFilter.items": "Items are the predicates.",
|
|
"O11yLogFilter.op": "Op combines the items: AND or OR.",
|
|
"O11yLogFilterItem.key": "Key is the field the predicate tests.",
|
|
"O11yLogFilterItem.op": "Op is the comparison, e.g. =, !=, in, contains.",
|
|
"O11yLogFilterItem.value": "Value is what it tests against, in the value's own JSON type.",
|
|
"O11yLogFilterKey.dataType": "DataType is the field's data type, e.g. string, int64, float64, bool.",
|
|
"O11yLogFilterKey.isColumn": "IsColumn marks a field materialized as its own column.",
|
|
"O11yLogFilterKey.isJSON": "IsJSON marks a path into the record's JSON body.",
|
|
"O11yLogFilterKey.key": "Key is the field's name.",
|
|
"O11yLogFilterKey.type": "Type is where the field lives: tag or resource.",
|
|
"O11yLogParseFrom.parse_from": "ParseFrom is the field to read.",
|
|
"O11yLogPipeline.alias": "Alias is the pipeline's short name.",
|
|
"O11yLogPipeline.config": "Config is the pipeline's processors, in order.",
|
|
"O11yLogPipeline.createdAt": "CreatedAt is when the pipeline was created.",
|
|
"O11yLogPipeline.createdBy": "CreatedBy is the id of who created the pipeline.",
|
|
"O11yLogPipeline.description": "Description says what the pipeline is for.",
|
|
"O11yLogPipeline.enabled": "Enabled says whether the pipeline is on.",
|
|
"O11yLogPipeline.filter": "Filter selects which records the pipeline processes.",
|
|
"O11yLogPipeline.id": "ID is the pipeline's id.",
|
|
"O11yLogPipeline.name": "Name is the pipeline's display name.",
|
|
"O11yLogPipeline.orderId": "OrderID is the pipeline's 1-based position in the set.",
|
|
"O11yLogPipeline.updatedAt": "UpdatedAt is when the pipeline last changed.",
|
|
"O11yLogPipeline.updatedBy": "UpdatedBy is the id of who last changed it.",
|
|
"O11yLogPipelineCreateIn.pipelines": "Pipelines are the pipelines the new version holds, in order.",
|
|
"O11yLogPipelineOperator.default": "Default is the id of the processor a router falls through to.",
|
|
"O11yLogPipelineOperator.enable_flattening": "EnableFlattening flattens parsed JSON one level when true.",
|
|
"O11yLogPipelineOperator.enable_paths": "EnablePaths keeps the JSON path in flattened keys when true.",
|
|
"O11yLogPipelineOperator.enabled": "Enabled turns the processor on.",
|
|
"O11yLogPipelineOperator.expr": "Expr is a router route's expression.",
|
|
"O11yLogPipelineOperator.field": "Field is the field an add/remove processor works on.",
|
|
"O11yLogPipelineOperator.fields": "Fields are the fields a retain processor keeps.",
|
|
"O11yLogPipelineOperator.from": "From is the source field of a move or copy.",
|
|
"O11yLogPipelineOperator.id": "ID is the processor's id, unique within the pipeline.",
|
|
"O11yLogPipelineOperator.if": "If gates the processor on an expression.",
|
|
"O11yLogPipelineOperator.layout": "Layout is a time parser's layout.",
|
|
"O11yLogPipelineOperator.layout_type": "LayoutType is the layout's kind, e.g. strptime, gotime, epoch.",
|
|
"O11yLogPipelineOperator.mapping": "Mapping maps severity levels (or flattened keys) to the values that\nmean them.",
|
|
"O11yLogPipelineOperator.name": "Name is the processor's display name.",
|
|
"O11yLogPipelineOperator.on_error": "OnError says what to do when the processor fails, e.g. send, drop.",
|
|
"O11yLogPipelineOperator.orderId": "OrderID is the processor's 1-based position in the pipeline.",
|
|
"O11yLogPipelineOperator.output": "Output is the id of the processor that runs next.",
|
|
"O11yLogPipelineOperator.overwrite_text": "OverwriteSeverityText rewrites the severity text alongside the number\nwhen true.",
|
|
"O11yLogPipelineOperator.parse_from": "ParseFrom is where a parser reads from.",
|
|
"O11yLogPipelineOperator.parse_to": "ParseTo is where a parser writes its result.",
|
|
"O11yLogPipelineOperator.path_prefix": "PathPrefix prefixes flattened keys.",
|
|
"O11yLogPipelineOperator.pattern": "Pattern is a grok parser's pattern.",
|
|
"O11yLogPipelineOperator.regex": "Regex is a regex parser's expression.",
|
|
"O11yLogPipelineOperator.routes": "Routes are a router processor's routes.",
|
|
"O11yLogPipelineOperator.span_id": "SpanID says where a trace parser reads the span id from.",
|
|
"O11yLogPipelineOperator.to": "To is the destination field of a move or copy.",
|
|
"O11yLogPipelineOperator.trace_flags": "TraceFlags says where a trace parser reads the trace flags from.",
|
|
"O11yLogPipelineOperator.trace_id": "TraceID says where a trace parser reads the trace id from.",
|
|
"O11yLogPipelineOperator.type": "Type is the processor type, e.g. grok_parser, regex_parser, json_parser,\ntrace_parser, time_parser, severity_parser, add, remove, move, copy.",
|
|
"O11yLogPipelineOperator.value": "Value is the value an add processor writes.",
|
|
"O11yLogPipelineRoute.expr": "Expr is the expression that selects the route.",
|
|
"O11yLogPipelineRoute.output": "Output is the id of the processor the route sends to.",
|
|
"O11yLogPipelines.config": "Config is the rendered collector config the version deployed.",
|
|
"O11yLogPipelines.createdAt": "CreatedAt is when the version was created.",
|
|
"O11yLogPipelines.createdBy": "CreatedBy is the id of who created the version.",
|
|
"O11yLogPipelines.createdByName": "CreatedByName is the display name of who created the version.",
|
|
"O11yLogPipelines.deployResult": "DeployResult is the deployment's outcome message.",
|
|
"O11yLogPipelines.deploySequence": "DeploySequence orders this deployment among the version's deployments.",
|
|
"O11yLogPipelines.deployStatus": "DeployStatus is where the deployment stands, e.g. dirty, deploying,\ndeployed, in_progress, failed, unknown.",
|
|
"O11yLogPipelines.elementType": "ElementType is the config element this version carries — log_pipelines.",
|
|
"O11yLogPipelines.history": "History is the recent version history, newest first.",
|
|
"O11yLogPipelines.id": "ID is the version record's id.",
|
|
"O11yLogPipelines.lastHash": "LastHash is the deployed config's hash.",
|
|
"O11yLogPipelines.orgId": "OrgID is the org the version belongs to.",
|
|
"O11yLogPipelines.pipelines": "Pipelines are the version's pipelines, in order.",
|
|
"O11yLogPipelines.updatedAt": "UpdatedAt is when the version last changed.",
|
|
"O11yLogPipelines.updatedBy": "UpdatedBy is the id of who last changed it.",
|
|
"O11yLogPipelines.version": "Version is the config version number.",
|
|
"O11yLogPipelinesOut.data": "Data is the config version.",
|
|
"O11yLogPipelinesOut.status": "Status is \"success\".",
|
|
"O11yLogPostablePipeline.alias": "Alias is the pipeline's short name.",
|
|
"O11yLogPostablePipeline.config": "Config is the pipeline's processors, in order.",
|
|
"O11yLogPostablePipeline.description": "Description says what the pipeline is for.",
|
|
"O11yLogPostablePipeline.enabled": "Enabled turns the pipeline on.",
|
|
"O11yLogPostablePipeline.filter": "Filter selects which records the pipeline processes.",
|
|
"O11yLogPostablePipeline.id": "ID is the pipeline's id. Empty on a new pipeline; the id it was listed\nwith to keep an existing one.",
|
|
"O11yLogPostablePipeline.name": "Name is the pipeline's display name.",
|
|
"O11yLogPostablePipeline.orderId": "OrderID is the pipeline's 1-based position in the set.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/logs/pipelines/preview", zip.Doc{
|
|
Description: "Runs the given log parsing pipelines over the given\nsample records without saving anything, and returns the transformed records\nplus whatever the collector logged while simulating them.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yLogFilter.items": "Items are the predicates.",
|
|
"O11yLogFilter.op": "Op combines the items: AND or OR.",
|
|
"O11yLogFilterItem.key": "Key is the field the predicate tests.",
|
|
"O11yLogFilterItem.op": "Op is the comparison, e.g. =, !=, in, contains.",
|
|
"O11yLogFilterItem.value": "Value is what it tests against, in the value's own JSON type.",
|
|
"O11yLogFilterKey.dataType": "DataType is the field's data type, e.g. string, int64, float64, bool.",
|
|
"O11yLogFilterKey.isColumn": "IsColumn marks a field materialized as its own column.",
|
|
"O11yLogFilterKey.isJSON": "IsJSON marks a path into the record's JSON body.",
|
|
"O11yLogFilterKey.key": "Key is the field's name.",
|
|
"O11yLogFilterKey.type": "Type is where the field lives: tag or resource.",
|
|
"O11yLogParseFrom.parse_from": "ParseFrom is the field to read.",
|
|
"O11yLogPipeline.alias": "Alias is the pipeline's short name.",
|
|
"O11yLogPipeline.config": "Config is the pipeline's processors, in order.",
|
|
"O11yLogPipeline.createdAt": "CreatedAt is when the pipeline was created.",
|
|
"O11yLogPipeline.createdBy": "CreatedBy is the id of who created the pipeline.",
|
|
"O11yLogPipeline.description": "Description says what the pipeline is for.",
|
|
"O11yLogPipeline.enabled": "Enabled says whether the pipeline is on.",
|
|
"O11yLogPipeline.filter": "Filter selects which records the pipeline processes.",
|
|
"O11yLogPipeline.id": "ID is the pipeline's id.",
|
|
"O11yLogPipeline.name": "Name is the pipeline's display name.",
|
|
"O11yLogPipeline.orderId": "OrderID is the pipeline's 1-based position in the set.",
|
|
"O11yLogPipeline.updatedAt": "UpdatedAt is when the pipeline last changed.",
|
|
"O11yLogPipeline.updatedBy": "UpdatedBy is the id of who last changed it.",
|
|
"O11yLogPipelineOperator.default": "Default is the id of the processor a router falls through to.",
|
|
"O11yLogPipelineOperator.enable_flattening": "EnableFlattening flattens parsed JSON one level when true.",
|
|
"O11yLogPipelineOperator.enable_paths": "EnablePaths keeps the JSON path in flattened keys when true.",
|
|
"O11yLogPipelineOperator.enabled": "Enabled turns the processor on.",
|
|
"O11yLogPipelineOperator.expr": "Expr is a router route's expression.",
|
|
"O11yLogPipelineOperator.field": "Field is the field an add/remove processor works on.",
|
|
"O11yLogPipelineOperator.fields": "Fields are the fields a retain processor keeps.",
|
|
"O11yLogPipelineOperator.from": "From is the source field of a move or copy.",
|
|
"O11yLogPipelineOperator.id": "ID is the processor's id, unique within the pipeline.",
|
|
"O11yLogPipelineOperator.if": "If gates the processor on an expression.",
|
|
"O11yLogPipelineOperator.layout": "Layout is a time parser's layout.",
|
|
"O11yLogPipelineOperator.layout_type": "LayoutType is the layout's kind, e.g. strptime, gotime, epoch.",
|
|
"O11yLogPipelineOperator.mapping": "Mapping maps severity levels (or flattened keys) to the values that\nmean them.",
|
|
"O11yLogPipelineOperator.name": "Name is the processor's display name.",
|
|
"O11yLogPipelineOperator.on_error": "OnError says what to do when the processor fails, e.g. send, drop.",
|
|
"O11yLogPipelineOperator.orderId": "OrderID is the processor's 1-based position in the pipeline.",
|
|
"O11yLogPipelineOperator.output": "Output is the id of the processor that runs next.",
|
|
"O11yLogPipelineOperator.overwrite_text": "OverwriteSeverityText rewrites the severity text alongside the number\nwhen true.",
|
|
"O11yLogPipelineOperator.parse_from": "ParseFrom is where a parser reads from.",
|
|
"O11yLogPipelineOperator.parse_to": "ParseTo is where a parser writes its result.",
|
|
"O11yLogPipelineOperator.path_prefix": "PathPrefix prefixes flattened keys.",
|
|
"O11yLogPipelineOperator.pattern": "Pattern is a grok parser's pattern.",
|
|
"O11yLogPipelineOperator.regex": "Regex is a regex parser's expression.",
|
|
"O11yLogPipelineOperator.routes": "Routes are a router processor's routes.",
|
|
"O11yLogPipelineOperator.span_id": "SpanID says where a trace parser reads the span id from.",
|
|
"O11yLogPipelineOperator.to": "To is the destination field of a move or copy.",
|
|
"O11yLogPipelineOperator.trace_flags": "TraceFlags says where a trace parser reads the trace flags from.",
|
|
"O11yLogPipelineOperator.trace_id": "TraceID says where a trace parser reads the trace id from.",
|
|
"O11yLogPipelineOperator.type": "Type is the processor type, e.g. grok_parser, regex_parser, json_parser,\ntrace_parser, time_parser, severity_parser, add, remove, move, copy.",
|
|
"O11yLogPipelineOperator.value": "Value is the value an add processor writes.",
|
|
"O11yLogPipelinePreview.collectorLogs": "CollectorLogs is what the collector logged while simulating.",
|
|
"O11yLogPipelinePreview.logs": "Logs are the sample records after the pipelines ran over them.",
|
|
"O11yLogPipelinePreviewIn.logs": "Logs are the sample records to transform.",
|
|
"O11yLogPipelinePreviewIn.pipelines": "Pipelines are the pipelines to simulate, in order.",
|
|
"O11yLogPipelinePreviewOut.data": "Data is the dry run's result.",
|
|
"O11yLogPipelinePreviewOut.status": "Status is \"success\".",
|
|
"O11yLogPipelineRoute.expr": "Expr is the expression that selects the route.",
|
|
"O11yLogPipelineRoute.output": "Output is the id of the processor the route sends to.",
|
|
"O11yLogRecord.attributes_bool": "AttributesBool are the record's boolean attributes.",
|
|
"O11yLogRecord.attributes_float": "AttributesFloat are the record's float attributes.",
|
|
"O11yLogRecord.attributes_int": "AttributesInt are the record's integer attributes.",
|
|
"O11yLogRecord.attributes_string": "AttributesString are the record's string attributes.",
|
|
"O11yLogRecord.body": "Body is the record's body.",
|
|
"O11yLogRecord.id": "ID is the record's id.",
|
|
"O11yLogRecord.resources_string": "ResourcesString are the record's string resource attributes.",
|
|
"O11yLogRecord.severity_number": "SeverityNumber is the record's severity as a number.",
|
|
"O11yLogRecord.severity_text": "SeverityText is the record's severity as text, e.g. ERROR.",
|
|
"O11yLogRecord.span_id": "SpanID is the span the record belongs to.",
|
|
"O11yLogRecord.timestamp": "Timestamp is the record's time as a nanosecond epoch.",
|
|
"O11yLogRecord.trace_flags": "TraceFlags are the record's trace flags.",
|
|
"O11yLogRecord.trace_id": "TraceID is the trace the record belongs to.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/logs/promote_paths", zip.Doc{
|
|
Description: "Promotes and indexes log body paths: each named path is lifted\nout of the JSON body into its own column, with the indexes the caller asked\nfor. Paths must start with \"body.\".\n\nCallers need the editor role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yLogPromoteIndex.fieldDataType": "FieldDataType is the path's data type, e.g. string, number, bool.",
|
|
"O11yLogPromoteIndex.granularity": "Granularity is the index granularity in rows.",
|
|
"O11yLogPromoteIndex.type": "Type is the index type, e.g. minmax, set(N), bloom_filter(P).",
|
|
"O11yLogPromoteOut.status": "Status is \"success\".",
|
|
"O11yLogPromotePath.indexes": "Indexes are the indexes to put on the path.",
|
|
"O11yLogPromotePath.path": "Path is the body path, e.g. body.user.id on the way in; listed without\nthe body. prefix.",
|
|
"O11yLogPromotePath.promote": "Promote lifts the path into its own column when true.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/messaging-queues/kafka/consumer-lag/consumer-details", zip.Doc{
|
|
Description: "Returns the consumer side of a consumer-lag view: the\nconsumer groups reading the topic/partition named in variables, with their\nthroughput and latency over the window.",
|
|
Fields: map[string]string{
|
|
"O11yQueryRangeOut.data": "Data is the query result — the result type, the result set, execution stats\nand any warning — as the engine rendered it.",
|
|
"O11yQueryRangeOut.status": "Status is \"success\".",
|
|
"O11yQueueIn.end": "End is the window's end, epoch nanoseconds.",
|
|
"O11yQueueIn.eval_time": "EvalTime bounds the span-evaluation scan, nanoseconds; only the\nspan/evaluation view reads it.",
|
|
"O11yQueueIn.start": "Start is the window's start, epoch nanoseconds.",
|
|
"O11yQueueIn.variables": "Variables name what the view drills into — topic, partition, service,\nconsumer_group — keyed by the name the view expects.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/messaging-queues/kafka/consumer-lag/network-latency", zip.Doc{
|
|
Description: "Returns consumer network latency correlated per client:\na throughput pass over the window finds the consumer clients, then their\nfetch latency joins in as a latency column per client/instance/service.",
|
|
Fields: map[string]string{
|
|
"O11yQueryRangeOut.data": "Data is the query result — the result type, the result set, execution stats\nand any warning — as the engine rendered it.",
|
|
"O11yQueryRangeOut.status": "Status is \"success\".",
|
|
"O11yQueueIn.end": "End is the window's end, epoch nanoseconds.",
|
|
"O11yQueueIn.eval_time": "EvalTime bounds the span-evaluation scan, nanoseconds; only the\nspan/evaluation view reads it.",
|
|
"O11yQueueIn.start": "Start is the window's start, epoch nanoseconds.",
|
|
"O11yQueueIn.variables": "Variables name what the view drills into — topic, partition, service,\nconsumer_group — keyed by the name the view expects.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/messaging-queues/kafka/consumer-lag/producer-details", zip.Doc{
|
|
Description: "Returns the producer side of a consumer-lag view: the\nproducers writing to the topic/partition named in variables, with their\nthroughput and latency over the window.",
|
|
Fields: map[string]string{
|
|
"O11yQueryRangeOut.data": "Data is the query result — the result type, the result set, execution stats\nand any warning — as the engine rendered it.",
|
|
"O11yQueryRangeOut.status": "Status is \"success\".",
|
|
"O11yQueueIn.end": "End is the window's end, epoch nanoseconds.",
|
|
"O11yQueueIn.eval_time": "EvalTime bounds the span-evaluation scan, nanoseconds; only the\nspan/evaluation view reads it.",
|
|
"O11yQueueIn.start": "Start is the window's start, epoch nanoseconds.",
|
|
"O11yQueueIn.variables": "Variables name what the view drills into — topic, partition, service,\nconsumer_group — keyed by the name the view expects.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/messaging-queues/kafka/onboarding/consumers", zip.Doc{
|
|
Description: "Checks whether the spans the Kafka consumer views need\nare arriving, row for row like producersOnboarding.",
|
|
Fields: map[string]string{
|
|
"O11yQueueCheck.attribute": "Attribute is the span attribute or telemetry the check looked for.",
|
|
"O11yQueueCheck.error_message": "Message says what is missing when the check fails; empty on a pass. Its\nwire key is error_message.",
|
|
"O11yQueueCheck.status": "Status is \"1\" when the telemetry is present, \"0\" when it is not.",
|
|
"O11yQueueChecksOut.data": "Data holds one check per required attribute, sorted by attribute.",
|
|
"O11yQueueChecksOut.status": "Status is \"success\".",
|
|
"O11yQueueIn.end": "End is the window's end, epoch nanoseconds.",
|
|
"O11yQueueIn.eval_time": "EvalTime bounds the span-evaluation scan, nanoseconds; only the\nspan/evaluation view reads it.",
|
|
"O11yQueueIn.start": "Start is the window's start, epoch nanoseconds.",
|
|
"O11yQueueIn.variables": "Variables name what the view drills into — topic, partition, service,\nconsumer_group — keyed by the name the view expects.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/messaging-queues/kafka/onboarding/kafka", zip.Doc{
|
|
Description: "Checks whether Kafka's own metrics — consumer lag and\npartition telemetry — are arriving, so the lag views can be lit up.",
|
|
Fields: map[string]string{
|
|
"O11yQueueCheck.attribute": "Attribute is the span attribute or telemetry the check looked for.",
|
|
"O11yQueueCheck.error_message": "Message says what is missing when the check fails; empty on a pass. Its\nwire key is error_message.",
|
|
"O11yQueueCheck.status": "Status is \"1\" when the telemetry is present, \"0\" when it is not.",
|
|
"O11yQueueChecksOut.data": "Data holds one check per required attribute, sorted by attribute.",
|
|
"O11yQueueChecksOut.status": "Status is \"success\".",
|
|
"O11yQueueIn.end": "End is the window's end, epoch nanoseconds.",
|
|
"O11yQueueIn.eval_time": "EvalTime bounds the span-evaluation scan, nanoseconds; only the\nspan/evaluation view reads it.",
|
|
"O11yQueueIn.start": "Start is the window's start, epoch nanoseconds.",
|
|
"O11yQueueIn.variables": "Variables name what the view drills into — topic, partition, service,\nconsumer_group — keyed by the name the view expects.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/messaging-queues/kafka/onboarding/producers", zip.Doc{
|
|
Description: "Checks whether the spans the Kafka producer views need\nare arriving — one row per required span attribute, with a pass/fail status\nand, on failure, what is missing from the instrumentation.",
|
|
Fields: map[string]string{
|
|
"O11yQueueCheck.attribute": "Attribute is the span attribute or telemetry the check looked for.",
|
|
"O11yQueueCheck.error_message": "Message says what is missing when the check fails; empty on a pass. Its\nwire key is error_message.",
|
|
"O11yQueueCheck.status": "Status is \"1\" when the telemetry is present, \"0\" when it is not.",
|
|
"O11yQueueChecksOut.data": "Data holds one check per required attribute, sorted by attribute.",
|
|
"O11yQueueChecksOut.status": "Status is \"success\".",
|
|
"O11yQueueIn.end": "End is the window's end, epoch nanoseconds.",
|
|
"O11yQueueIn.eval_time": "EvalTime bounds the span-evaluation scan, nanoseconds; only the\nspan/evaluation view reads it.",
|
|
"O11yQueueIn.start": "Start is the window's start, epoch nanoseconds.",
|
|
"O11yQueueIn.variables": "Variables name what the view drills into — topic, partition, service,\nconsumer_group — keyed by the name the view expects.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/messaging-queues/kafka/partition-latency/consumer", zip.Doc{
|
|
Description: "Returns the consumer-group latency detail for the\ntopic and partition named in the request's variables.",
|
|
Fields: map[string]string{
|
|
"O11yQueryRangeOut.data": "Data is the query result — the result type, the result set, execution stats\nand any warning — as the engine rendered it.",
|
|
"O11yQueryRangeOut.status": "Status is \"success\".",
|
|
"O11yQueueIn.end": "End is the window's end, epoch nanoseconds.",
|
|
"O11yQueueIn.eval_time": "EvalTime bounds the span-evaluation scan, nanoseconds; only the\nspan/evaluation view reads it.",
|
|
"O11yQueueIn.start": "Start is the window's start, epoch nanoseconds.",
|
|
"O11yQueueIn.variables": "Variables name what the view drills into — topic, partition, service,\nconsumer_group — keyed by the name the view expects.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/messaging-queues/kafka/partition-latency/overview", zip.Doc{
|
|
Description: "Returns the per-partition latency overview for the window —\neach topic/partition with its throughput and latency profile.",
|
|
Fields: map[string]string{
|
|
"O11yQueryRangeOut.data": "Data is the query result — the result type, the result set, execution stats\nand any warning — as the engine rendered it.",
|
|
"O11yQueryRangeOut.status": "Status is \"success\".",
|
|
"O11yQueueIn.end": "End is the window's end, epoch nanoseconds.",
|
|
"O11yQueueIn.eval_time": "EvalTime bounds the span-evaluation scan, nanoseconds; only the\nspan/evaluation view reads it.",
|
|
"O11yQueueIn.start": "Start is the window's start, epoch nanoseconds.",
|
|
"O11yQueueIn.variables": "Variables name what the view drills into — topic, partition, service,\nconsumer_group — keyed by the name the view expects.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/messaging-queues/kafka/span/evaluation", zip.Doc{
|
|
Description: "Correlates producer and consumer spans over the evaluation\nwindow (eval_time bounds the scan) and returns the pairings with their\nend-to-end delay — the check that messages produced are being consumed.",
|
|
Fields: map[string]string{
|
|
"O11yQueryRangeOut.data": "Data is the query result — the result type, the result set, execution stats\nand any warning — as the engine rendered it.",
|
|
"O11yQueryRangeOut.status": "Status is \"success\".",
|
|
"O11yQueueIn.end": "End is the window's end, epoch nanoseconds.",
|
|
"O11yQueueIn.eval_time": "EvalTime bounds the span-evaluation scan, nanoseconds; only the\nspan/evaluation view reads it.",
|
|
"O11yQueueIn.start": "Start is the window's start, epoch nanoseconds.",
|
|
"O11yQueueIn.variables": "Variables name what the view drills into — topic, partition, service,\nconsumer_group — keyed by the name the view expects.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/messaging-queues/kafka/topic-throughput/consumer", zip.Doc{
|
|
Description: "Returns the consumer topic-throughput overview for the\nwindow — what each consumer group read, per topic.",
|
|
Fields: map[string]string{
|
|
"O11yQueryRangeOut.data": "Data is the query result — the result type, the result set, execution stats\nand any warning — as the engine rendered it.",
|
|
"O11yQueryRangeOut.status": "Status is \"success\".",
|
|
"O11yQueueIn.end": "End is the window's end, epoch nanoseconds.",
|
|
"O11yQueueIn.eval_time": "EvalTime bounds the span-evaluation scan, nanoseconds; only the\nspan/evaluation view reads it.",
|
|
"O11yQueueIn.start": "Start is the window's start, epoch nanoseconds.",
|
|
"O11yQueueIn.variables": "Variables name what the view drills into — topic, partition, service,\nconsumer_group — keyed by the name the view expects.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/messaging-queues/kafka/topic-throughput/consumer-details", zip.Doc{
|
|
Description: "Breaks one consumer topic's throughput down using\nthe topic and service named in variables.",
|
|
Fields: map[string]string{
|
|
"O11yQueryRangeOut.data": "Data is the query result — the result type, the result set, execution stats\nand any warning — as the engine rendered it.",
|
|
"O11yQueryRangeOut.status": "Status is \"success\".",
|
|
"O11yQueueIn.end": "End is the window's end, epoch nanoseconds.",
|
|
"O11yQueueIn.eval_time": "EvalTime bounds the span-evaluation scan, nanoseconds; only the\nspan/evaluation view reads it.",
|
|
"O11yQueueIn.start": "Start is the window's start, epoch nanoseconds.",
|
|
"O11yQueueIn.variables": "Variables name what the view drills into — topic, partition, service,\nconsumer_group — keyed by the name the view expects.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/messaging-queues/kafka/topic-throughput/producer", zip.Doc{
|
|
Description: "Returns the producer topic-throughput overview for the\nwindow — what each producer service wrote, per topic.",
|
|
Fields: map[string]string{
|
|
"O11yQueryRangeOut.data": "Data is the query result — the result type, the result set, execution stats\nand any warning — as the engine rendered it.",
|
|
"O11yQueryRangeOut.status": "Status is \"success\".",
|
|
"O11yQueueIn.end": "End is the window's end, epoch nanoseconds.",
|
|
"O11yQueueIn.eval_time": "EvalTime bounds the span-evaluation scan, nanoseconds; only the\nspan/evaluation view reads it.",
|
|
"O11yQueueIn.start": "Start is the window's start, epoch nanoseconds.",
|
|
"O11yQueueIn.variables": "Variables name what the view drills into — topic, partition, service,\nconsumer_group — keyed by the name the view expects.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/messaging-queues/kafka/topic-throughput/producer-details", zip.Doc{
|
|
Description: "Breaks one producer topic's throughput down using\nthe topic and service named in variables.",
|
|
Fields: map[string]string{
|
|
"O11yQueryRangeOut.data": "Data is the query result — the result type, the result set, execution stats\nand any warning — as the engine rendered it.",
|
|
"O11yQueryRangeOut.status": "Status is \"success\".",
|
|
"O11yQueueIn.end": "End is the window's end, epoch nanoseconds.",
|
|
"O11yQueueIn.eval_time": "EvalTime bounds the span-evaluation scan, nanoseconds; only the\nspan/evaluation view reads it.",
|
|
"O11yQueueIn.start": "Start is the window's start, epoch nanoseconds.",
|
|
"O11yQueueIn.variables": "Variables name what the view drills into — topic, partition, service,\nconsumer_group — keyed by the name the view expects.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/messaging-queues/queue-overview", zip.Doc{
|
|
Description: "Lists the messaging destinations observed in the window — one\nrow per queue/destination/service combination with its throughput and\nlatency columns. Filters narrow by queue system, destination, service or any\nspan attribute.",
|
|
Fields: map[string]string{
|
|
"O11yQueueFilterKey.dataType": "DataType is the attribute's type: string, int64, float64 or bool.",
|
|
"O11yQueueFilterKey.isColumn": "IsColumn marks an attribute materialized as its own store column.",
|
|
"O11yQueueFilterKey.isJSON": "IsJSON marks an attribute read out of the span's JSON body.",
|
|
"O11yQueueFilterKey.key": "Key is the attribute name.",
|
|
"O11yQueueFilterKey.type": "Type says which plane the attribute lives on: tag or resource.",
|
|
"O11yQueueFilterRule.key": "Key names the attribute the predicate tests.",
|
|
"O11yQueueFilterRule.op": "Op is the comparison, e.g. =, !=, in, contains.",
|
|
"O11yQueueFilterRule.value": "Value is the operand; its JSON type follows the attribute's dataType.",
|
|
"O11yQueueFilterSet.items": "Items are the predicates.",
|
|
"O11yQueueFilterSet.op": "Op combines the items: AND or OR.",
|
|
"O11yQueueListIn.end": "End is the window's end, epoch nanoseconds.",
|
|
"O11yQueueListIn.filters": "Filters narrow the rows by span attribute; null means all rows.",
|
|
"O11yQueueListIn.limit": "Limit caps how many rows come back.",
|
|
"O11yQueueListIn.start": "Start is the window's start, epoch nanoseconds.",
|
|
"O11yQueueRow.data": "Data holds the row's cells keyed by column name; each cell's JSON type is\nthe column's own, so the bytes pass through verbatim.",
|
|
"O11yQueueRow.timestamp": "Timestamp anchors the row in time.",
|
|
"O11yQueueRowsOut.data": "Data holds one row per messaging destination.",
|
|
"O11yQueueRowsOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/metric_reduction_rules", zip.Doc{
|
|
Description: "Creates a volume-control rule for a metric and returns\nit with its id; a metric that already has a rule is refused.",
|
|
Fields: map[string]string{
|
|
"O11yReductionRule.active": "Active says whether the rule is in force.",
|
|
"O11yReductionRule.createdAt": "CreatedAt is when the rule was created.",
|
|
"O11yReductionRule.createdBy": "CreatedBy is who created it.",
|
|
"O11yReductionRule.effectiveFrom": "EffectiveFrom is when the rule took effect.",
|
|
"O11yReductionRule.id": "ID is the rule's id.",
|
|
"O11yReductionRule.ingestedSamples": "IngestedSamples is how many samples arrived while the rule was active.",
|
|
"O11yReductionRule.ingestedSeries": "IngestedSeries is how many series arrived while the rule was active.",
|
|
"O11yReductionRule.labels": "Labels are the label names the rule matches.",
|
|
"O11yReductionRule.matchType": "MatchType is drop or keep.",
|
|
"O11yReductionRule.metricName": "MetricName is the metric the rule governs.",
|
|
"O11yReductionRule.retainedSamples": "RetainedSamples is how many of them were kept.",
|
|
"O11yReductionRule.retainedSeries": "RetainedSeries is how many of them were kept.",
|
|
"O11yReductionRule.updatedAt": "UpdatedAt is when the rule last changed.",
|
|
"O11yReductionRule.updatedBy": "UpdatedBy is who last changed it.",
|
|
"O11yReductionRuleCreateIn.labels": "Labels are the label names the rule matches. Required, at least one.",
|
|
"O11yReductionRuleCreateIn.matchType": "MatchType is drop or keep: drop the named labels, or keep only them. Required.",
|
|
"O11yReductionRuleCreateIn.metricName": "MetricName is the metric the rule governs; one rule per metric. Required.",
|
|
"O11yReductionRuleOut.data": "Data holds the rule.",
|
|
"O11yReductionRuleOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/metric_reduction_rules/preview", zip.Doc{
|
|
Description: "Estimates the series reduction and the dashboards and\nalerts a candidate volume-control rule would touch, without persisting it.",
|
|
Fields: map[string]string{
|
|
"O11yAffectedAsset.id": "ID is the asset's id.",
|
|
"O11yAffectedAsset.impactedLabels": "ImpactedLabels are the rule labels the asset uses.",
|
|
"O11yAffectedAsset.name": "Name is the asset's name.",
|
|
"O11yAffectedAsset.type": "Type is dashboard or alert_rule.",
|
|
"O11yAffectedAsset.widget": "Widget is the affected panel, for a dashboard.",
|
|
"O11yAffectedWidget.id": "ID is the panel's id.",
|
|
"O11yAffectedWidget.name": "Name is the panel's name.",
|
|
"O11yReductionRulePreview.affectedAssets": "AffectedAssets are the dashboards and alerts the rule would touch.",
|
|
"O11yReductionRulePreview.currentRetainedSeries": "CurrentRetainedSeries is how many survive the rules in force today.",
|
|
"O11yReductionRulePreview.droppedLabels": "DroppedLabels are the labels the rule would drop.",
|
|
"O11yReductionRulePreview.effectiveFrom": "EffectiveFrom is when the rule would take effect.",
|
|
"O11yReductionRulePreview.ingestedSeries": "IngestedSeries is how many series the metric ingests today.",
|
|
"O11yReductionRulePreview.reductionPercent": "ReductionPercent is the estimated reduction, in percent.",
|
|
"O11yReductionRulePreview.retainedSeries": "RetainedSeries is how many would survive with the candidate rule.",
|
|
"O11yReductionRulePreviewIn.labels": "Labels are the label names the rule would match. Required, at least one.",
|
|
"O11yReductionRulePreviewIn.lookbackMs": "LookbackMs is how far back to sample when estimating.",
|
|
"O11yReductionRulePreviewIn.matchType": "MatchType is drop or keep. Required.",
|
|
"O11yReductionRulePreviewIn.metricName": "MetricName is the metric the rule would govern. Required.",
|
|
"O11yReductionRulePreviewOut.data": "Data holds the estimate.",
|
|
"O11yReductionRulePreviewOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/metrics/inspect", zip.Doc{
|
|
Description: "Returns one metric's raw time series over a window of at most\nthirty minutes — each series with its labels and timestamp/value pairs.",
|
|
Fields: map[string]string{
|
|
"O11yMetricField.description": "Description describes the field.",
|
|
"O11yMetricField.fieldContext": "FieldContext is the context the field lives in, e.g. resource, attribute.",
|
|
"O11yMetricField.fieldDataType": "FieldDataType is the field's data type.",
|
|
"O11yMetricField.name": "Name is the field's name.",
|
|
"O11yMetricField.signal": "Signal is the telemetry signal the field belongs to.",
|
|
"O11yMetricField.unit": "Unit is the field's unit.",
|
|
"O11yMetricFilter.expression": "Expression is the filter, in the query-builder filter syntax.",
|
|
"O11yMetricInspectIn.end": "End is the end of the window as a Unix timestamp in milliseconds, at most\nthirty minutes after start. Required.",
|
|
"O11yMetricInspectIn.filter": "Filter narrows the series returned.",
|
|
"O11yMetricInspectIn.metricName": "MetricName is the metric to inspect. Required.",
|
|
"O11yMetricInspectIn.start": "Start is the start of the window as a Unix timestamp in milliseconds. Required.",
|
|
"O11yMetricInspectOut.data": "Data holds the series.",
|
|
"O11yMetricInspectOut.status": "Status is \"success\".",
|
|
"O11yMetricLabel.key": "Key is the label's field.",
|
|
"O11yMetricLabel.value": "Value is the label's value.",
|
|
"O11yMetricPoint.partial": "Partial marks a point whose bucket the window only partly covers.",
|
|
"O11yMetricPoint.timestamp": "Timestamp is the point's time as a Unix timestamp in milliseconds.",
|
|
"O11yMetricPoint.value": "Value is the point's value.",
|
|
"O11yMetricPoint.values": "Values carries the bucket values of a heatmap point.",
|
|
"O11yMetricSeries.labels": "Labels identify the series.",
|
|
"O11yMetricSeries.values": "Values are the series' points, in time order.",
|
|
"O11yMetricSeriesSet.series": "Series are the time series.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/metrics/metadata", zip.Doc{
|
|
Description: "Updates one metric's metadata — description, type, unit,\ntemporality, monotonicity — and answers with the bare success envelope.",
|
|
Fields: map[string]string{
|
|
"O11yMetricAckOut.status": "Status is \"success\".",
|
|
"O11yMetricMetadataSaveIn.description": "Description describes the metric.",
|
|
"O11yMetricMetadataSaveIn.isMonotonic": "IsMonotonic marks a sum that only ever increases.",
|
|
"O11yMetricMetadataSaveIn.metricName": "MetricName is the metric to update. Required.",
|
|
"O11yMetricMetadataSaveIn.temporality": "Temporality is delta or cumulative.",
|
|
"O11yMetricMetadataSaveIn.type": "Type is the metric type, e.g. gauge, sum, histogram.",
|
|
"O11yMetricMetadataSaveIn.unit": "Unit is the metric's unit.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/metrics/stats", zip.Doc{
|
|
Description: "Lists metrics with their sample and time-series counts for a\ntime range — the volume view of the metrics explorer, pageable and sortable.",
|
|
Fields: map[string]string{
|
|
"O11yMetricField.description": "Description describes the field.",
|
|
"O11yMetricField.fieldContext": "FieldContext is the context the field lives in, e.g. resource, attribute.",
|
|
"O11yMetricField.fieldDataType": "FieldDataType is the field's data type.",
|
|
"O11yMetricField.name": "Name is the field's name.",
|
|
"O11yMetricField.signal": "Signal is the telemetry signal the field belongs to.",
|
|
"O11yMetricField.unit": "Unit is the field's unit.",
|
|
"O11yMetricFilter.expression": "Expression is the filter, in the query-builder filter syntax.",
|
|
"O11yMetricOrder.direction": "Direction is asc or desc.",
|
|
"O11yMetricOrder.key": "Key is the field to order by.",
|
|
"O11yMetricStat.description": "Description describes the metric.",
|
|
"O11yMetricStat.metricName": "MetricName is the metric's name.",
|
|
"O11yMetricStat.samples": "Samples is how many samples the metric had.",
|
|
"O11yMetricStat.timeseries": "TimeSeries is how many time series the metric had.",
|
|
"O11yMetricStat.type": "Type is the metric type.",
|
|
"O11yMetricStat.unit": "Unit is the metric's unit.",
|
|
"O11yMetricStats.metrics": "Metrics are the counted metrics.",
|
|
"O11yMetricStats.total": "Total is how many metrics matched, across all pages.",
|
|
"O11yMetricStatsIn.end": "End is the end of the window as a Unix timestamp in milliseconds. Required.",
|
|
"O11yMetricStatsIn.filter": "Filter narrows the metrics counted.",
|
|
"O11yMetricStatsIn.limit": "Limit caps how many metrics come back, between 1 and 5000. Required.",
|
|
"O11yMetricStatsIn.offset": "Offset is how many metrics to skip, for paging.",
|
|
"O11yMetricStatsIn.orderBy": "OrderBy sorts the page, by samples or timeseries.",
|
|
"O11yMetricStatsIn.start": "Start is the start of the window as a Unix timestamp in milliseconds. Required.",
|
|
"O11yMetricStatsOut.data": "Data holds the statistics.",
|
|
"O11yMetricStatsOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/metrics/treemap", zip.Doc{
|
|
Description: "Returns the proportional distribution of metrics by sample\ncount or time-series count, as the entries of a treemap.",
|
|
Fields: map[string]string{
|
|
"O11yMetricFilter.expression": "Expression is the filter, in the query-builder filter syntax.",
|
|
"O11yMetricTreemap.samples": "Samples are the entries when measuring by sample count.",
|
|
"O11yMetricTreemap.timeseries": "TimeSeries are the entries when measuring by time-series count.",
|
|
"O11yMetricTreemapIn.end": "End is the end of the window as a Unix timestamp in milliseconds. Required.",
|
|
"O11yMetricTreemapIn.filter": "Filter narrows the metrics counted.",
|
|
"O11yMetricTreemapIn.limit": "Limit caps how many entries come back, between 1 and 5000. Required.",
|
|
"O11yMetricTreemapIn.mode": "Mode picks the measure: timeseries or samples. Required.",
|
|
"O11yMetricTreemapIn.start": "Start is the start of the window as a Unix timestamp in milliseconds. Required.",
|
|
"O11yMetricTreemapOut.data": "Data holds the treemap.",
|
|
"O11yMetricTreemapOut.status": "Status is \"success\".",
|
|
"O11yTreemapEntry.metricName": "MetricName is the metric's name.",
|
|
"O11yTreemapEntry.percentage": "Percentage is the metric's share, in percent.",
|
|
"O11yTreemapEntry.totalValue": "TotalValue is the metric's absolute count.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/namespaces/list", zip.Doc{
|
|
Description: "Lists Kubernetes namespaces over a time range, each with the\nCPU and memory its pods used, their phase counts and its attributes;\nfilterable, groupable and paginated.",
|
|
Fields: map[string]string{
|
|
"NamespaceListRequest.end": "epoch time in ms",
|
|
"NamespaceListRequest.start": "epoch time in ms",
|
|
"O11yNamespaceListOut.data": "Data holds the namespace records.",
|
|
"O11yNamespaceListOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/nodes/list", zip.Doc{
|
|
Description: "Lists Kubernetes nodes over a time range, each with its CPU and\nmemory usage against allocatable capacity, readiness condition counts and\nattributes; filterable, groupable and paginated.",
|
|
Fields: map[string]string{
|
|
"NodeListRequest.end": "epoch time in ms",
|
|
"NodeListRequest.start": "epoch time in ms",
|
|
"O11yNodeListOut.data": "Data holds the node records.",
|
|
"O11yNodeListOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/pods/list", zip.Doc{
|
|
Description: "Lists Kubernetes pods over a time range, each with its CPU and\nmemory usage against request and limit, restart count, phase counts and\nattributes; filterable, groupable and paginated.",
|
|
Fields: map[string]string{
|
|
"O11yPodListOut.data": "Data holds the pod records.",
|
|
"O11yPodListOut.status": "Status is \"success\".",
|
|
"PodListRequest.end": "epoch time in ms",
|
|
"PodListRequest.start": "epoch time in ms",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/processes/list", zip.Doc{
|
|
Description: "Lists monitored processes over a time range, each with its name,\nPID, command line and CPU and memory usage; filterable, groupable and\npaginated.",
|
|
Fields: map[string]string{
|
|
"O11yProcessListOut.data": "Data holds the process records.",
|
|
"O11yProcessListOut.status": "Status is \"success\".",
|
|
"ProcessListRequest.end": "epoch time in ms",
|
|
"ProcessListRequest.start": "epoch time in ms",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/pvcs/list", zip.Doc{
|
|
Description: "Lists Kubernetes persistent volume claims over a time range, each\nwith its available, capacity and used bytes, inode counts and attributes;\nfilterable, groupable and paginated.",
|
|
Fields: map[string]string{
|
|
"O11yPvcListOut.data": "Data holds the volume records.",
|
|
"O11yPvcListOut.status": "Status is \"success\".",
|
|
"VolumeListRequest.end": "epoch time in ms",
|
|
"VolumeListRequest.start": "epoch time in ms",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/query_filter/analyze", zip.Doc{
|
|
Description: "Analyzes a query and extracts the metric names it reads\nand the columns it groups by.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yAnalyzeIn.query": "Query is the query text. Required.",
|
|
"O11yAnalyzeIn.queryType": "QueryType says which language the query is in — promql or the datastore's\nSQL dialect. Required.",
|
|
"O11yAnalyzeOut.data": "Data is the analysis.",
|
|
"O11yAnalyzeOut.status": "Status is \"success\".",
|
|
"O11yColumnInfo.columnAlias": "Alias is the column's alias in the query, when it has one.",
|
|
"O11yColumnInfo.columnName": "Name is the column's name.",
|
|
"O11yQueryFilterAnalysis.groups": "Groups are the columns the query groups by.",
|
|
"O11yQueryFilterAnalysis.metricNames": "MetricNames are the metrics the query reads.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/query_range", zip.Doc{
|
|
Description: "Executes a composite query over a time range: builder\nqueries over traces, logs and metrics, formulas, trace operators, PromQL and\nDatastore SQL, answering time series, scalars or raw records as the request\ntype asks.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"CompositeQuery.queries": "Queries is the queries to use for the request.",
|
|
"O11yQueryRangeOut.data": "Data is the query result — the result type, the result set, execution stats\nand any warning — as the engine rendered it.",
|
|
"O11yQueryRangeOut.status": "Status is \"success\".",
|
|
"QueryEnvelope.spec": "Spec is the deferred decoding of the query if any.",
|
|
"QueryEnvelope.type": "Type is the type of the query.",
|
|
"QueryRangeRequest.compositeQuery": "CompositeQuery is the composite query to use for the request.",
|
|
"QueryRangeRequest.end": "End is the end time of the query in epoch milliseconds.",
|
|
"QueryRangeRequest.noCache": "NoCache is a flag to disable caching for the request.",
|
|
"QueryRangeRequest.requestType": "RequestType is the type of the request.",
|
|
"QueryRangeRequest.schemaVersion": "SchemaVersion is the version of the schema to use for the request payload.",
|
|
"QueryRangeRequest.start": "Start is the start time of the query in epoch milliseconds.",
|
|
"QueryRangeRequest.variables": "Variables is the variables to use for the request.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/query_range/format", zip.Doc{
|
|
Description: "Parses a builder query and echoes it back normalized to the\nv3 shape — the endpoint the UI uses to canonicalize a query without running\nit.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"CompositeQuery.fillGaps": "FillGaps is used to fill the gaps in the time series data",
|
|
"CompositeQuery.unit": "Unit for the time series data shown in the graph\nThis is used in alerts to format the value and threshold",
|
|
"O11yQueryRangeFormatOut.data": "Data is the query, normalized to the v3 shape.",
|
|
"O11yQueryRangeFormatOut.status": "Status is \"success\".",
|
|
"QueryEnvelope.spec": "Spec is the deferred decoding of the query if any.",
|
|
"QueryEnvelope.type": "Type is the type of the query.",
|
|
"QueryRangeParamsV3.step": "step is in seconds; used for prometheus queries",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/query_range/preview", zip.Doc{
|
|
Description: "Validates a composite query and renders the Datastore\nstatements it would run WITHOUT executing it — a dry run for agentic and\ntooling use. verbose=false trades the rendered SQL and EXPLAIN for a\nlightweight per-query verdict.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"CompositeQuery.queries": "Queries is the queries to use for the request.",
|
|
"O11yQueryRangePreviewIn.QueryRangeRequest": "QueryRangeRequest is the composite query to render, embedded so the request\nbody stays the bare query the execute endpoint takes.",
|
|
"O11yQueryRangePreviewIn.verbose": "Verbose selects the answer's depth. Empty or \"true\" renders the underlying\nDatastore SQL with EXPLAIN and granule analysis; \"false\" returns only the\nper-query valid/error/warnings verdict with no Datastore round trips.",
|
|
"O11yQueryRangePreviewOut.data": "Data holds one preview per query, keyed by query name — the rendered\nstatements with optional EXPLAIN and granule analysis, or the per-query\nverdict.",
|
|
"O11yQueryRangePreviewOut.status": "Status is \"success\".",
|
|
"QueryEnvelope.spec": "Spec is the deferred decoding of the query if any.",
|
|
"QueryEnvelope.type": "Type is the type of the query.",
|
|
"QueryRangeRequest.compositeQuery": "CompositeQuery is the composite query to use for the request.",
|
|
"QueryRangeRequest.end": "End is the end time of the query in epoch milliseconds.",
|
|
"QueryRangeRequest.noCache": "NoCache is a flag to disable caching for the request.",
|
|
"QueryRangeRequest.requestType": "RequestType is the type of the request.",
|
|
"QueryRangeRequest.schemaVersion": "SchemaVersion is the version of the schema to use for the request payload.",
|
|
"QueryRangeRequest.start": "Start is the start time of the query in epoch milliseconds.",
|
|
"QueryRangeRequest.variables": "Variables is the variables to use for the request.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/roles", zip.Doc{
|
|
Description: "Creates a custom role in the caller's org from a name, an optional\ndescription and the transaction groups it grants, answering the new role's id.\n\nNames are lowercase letters and hyphens only, and may not start with the\nreserved managed-role prefix; the runtime refuses anything else.",
|
|
Fields: map[string]string{
|
|
"O11yCreated.id": "ID is the new record's id.",
|
|
"O11yObjectGroup.resource": "Resource is the objects' type and kind.",
|
|
"O11yObjectGroup.selectors": "Selectors pick the instances; a wildcard selects them all.",
|
|
"O11yResourceRef.kind": "Kind is the resource kind the type belongs to.",
|
|
"O11yResourceRef.type": "Type is the resource type, e.g. role, dashboard, serviceaccount.",
|
|
"O11yRoleCreateIn.description": "Description says what the role is for.",
|
|
"O11yRoleCreateIn.name": "Name is the role's name: lowercase letters and hyphens, at most 50\ncharacters, not starting with the reserved managed-role prefix. Required.",
|
|
"O11yRoleCreateIn.transactionGroups": "TransactionGroups are the grants the role carries.",
|
|
"O11yRoleCreateOut.data": "Data carries the new role's id.",
|
|
"O11yRoleCreateOut.status": "Status is \"success\".",
|
|
"O11yTransactionGroup.objectGroup": "ObjectGroup is the set of objects it allows the verb on.",
|
|
"O11yTransactionGroup.relation": "Relation is the verb the grant allows.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/route_policies", zip.Doc{
|
|
Description: "Creates a route policy, answering with the stored policy. Admin gate.",
|
|
Fields: map[string]string{
|
|
"O11yRoutePolicyOut.data": "Data holds the policy.",
|
|
"O11yRoutePolicyOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/rules", zip.Doc{
|
|
Description: "Creates a new alert rule and answers with the stored rule. Editor gate.",
|
|
Fields: map[string]string{
|
|
"AlertCompositeQuery.unit": "Unit for the time series data shown in the graph\nThis is used to format the value and threshold",
|
|
"NotificationSettings.newGroupEvalDelay": "NewGroupEvalDelay is the grace period for new series to be excluded from alerts evaluation",
|
|
"O11yRuleOut.data": "Data holds the rule.",
|
|
"O11yRuleOut.status": "Status is \"success\".",
|
|
"PostableRule.source": "Source captures the source url where rule has been created",
|
|
"QueryEnvelope.spec": "Spec is the deferred decoding of the query if any.",
|
|
"QueryEnvelope.type": "Type is the type of the query.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/rules/:id/history/overall_status", zip.Doc{
|
|
Description: "Returns the overall firing/inactive windows for a\nrule, for the posted query range. Viewer gate.",
|
|
Fields: map[string]string{
|
|
"O11yOverallStateTransitionsOut.data": "Data holds the windows.",
|
|
"O11yOverallStateTransitionsOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/rules/:id/history/stats", zip.Doc{
|
|
Description: "Returns trigger and resolution statistics for a rule, current\nwindow against the prior one, for the posted query range. Viewer gate.",
|
|
Fields: map[string]string{
|
|
"O11yRuleStatsOut.data": "Data holds the statistics.",
|
|
"O11yRuleStatsOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/rules/:id/history/timeline", zip.Doc{
|
|
Description: "Returns a rule's state-transition timeline for the posted\nquery range, each entry carrying its related-logs or related-traces link. Viewer gate.",
|
|
Fields: map[string]string{
|
|
"O11yRuleStateTimelineOut.data": "Data holds the timeline.",
|
|
"O11yRuleStateTimelineOut.status": "Status is \"success\".",
|
|
"RuleStateHistory.overallState": "One of [\"normal\", \"firing\"]",
|
|
"RuleStateHistory.state": "One of [\"normal\", \"firing\", \"nodata\", \"muted\"]",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/rules/:id/history/top_contributors", zip.Doc{
|
|
Description: "Returns the label combinations that\ncontributed most to a rule firing, for the posted query range. Viewer gate.",
|
|
Fields: map[string]string{
|
|
"O11yRuleStateContributorsOut.data": "Data holds the contributors.",
|
|
"O11yRuleStateContributorsOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/rules/test", zip.Doc{
|
|
Description: "Fires a test notification for a rule definition without saving it,\nanswering with how many series would alert. Editor gate.",
|
|
Fields: map[string]string{
|
|
"AlertCompositeQuery.unit": "Unit for the time series data shown in the graph\nThis is used to format the value and threshold",
|
|
"NotificationSettings.newGroupEvalDelay": "NewGroupEvalDelay is the grace period for new series to be excluded from alerts evaluation",
|
|
"O11yTestRuleOut.data": "Data holds how many series would alert.",
|
|
"O11yTestRuleOut.status": "Status is \"success\".",
|
|
"PostableRule.source": "Source captures the source url where rule has been created",
|
|
"QueryEnvelope.spec": "Spec is the deferred decoding of the query if any.",
|
|
"QueryEnvelope.type": "Type is the type of the query.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/service/entry_point_operations", zip.Doc{
|
|
Description: "Returns one service's entry-point operations with the\nsame latency and error profile topOperations reports.",
|
|
Fields: map[string]string{
|
|
"O11yOperation.errorCount": "ErrorCount is how many of those runs errored.",
|
|
"O11yOperation.name": "Name is the operation (span name).",
|
|
"O11yOperation.numCalls": "NumCalls is how many times it ran in the window.",
|
|
"O11yOperation.p50": "P50 is its median latency, nanoseconds.",
|
|
"O11yOperation.p95": "P95 is its p95 latency, nanoseconds.",
|
|
"O11yOperation.p99": "P99 is its p99 latency, nanoseconds.",
|
|
"O11yOperationsIn.end": "End is the window's end, epoch nanoseconds as a string.",
|
|
"O11yOperationsIn.limit": "Limit caps how many operations come back.",
|
|
"O11yOperationsIn.service": "Service is the service whose operations are read.",
|
|
"O11yOperationsIn.start": "Start is the window's start, epoch nanoseconds as a string.",
|
|
"O11yOperationsIn.tags": "Tags narrow the spans counted, each a span-attribute predicate.",
|
|
"O11yOperationsOut.data": "Data holds one entry per operation.",
|
|
"O11yOperationsOut.status": "Status is \"success\".",
|
|
"O11yServiceTag.BoolValues": "BoolValues are the boolean operands, when the attribute is a bool.",
|
|
"O11yServiceTag.Key": "Key is the span attribute to test.",
|
|
"O11yServiceTag.NumberValues": "NumberValues are the numeric operands, when the attribute is a number.",
|
|
"O11yServiceTag.Operator": "Operator is how to test it, e.g. in, not_in.",
|
|
"O11yServiceTag.StringValues": "StringValues are the string operands, when the attribute is a string.",
|
|
"O11yServiceTag.TagType": "TagType says which plane the attribute lives on, e.g. tag or resource.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/service/top_level_operations", zip.Doc{
|
|
Description: "Maps each service to its entry-point span names — for the\none service named in the request, or for every service when none is.",
|
|
Fields: map[string]string{
|
|
"O11yTopLevelOpsIn.end": "End is the window's end, epoch nanoseconds as a string; empty means\nunbounded.",
|
|
"O11yTopLevelOpsIn.service": "Service narrows the map to one service when set.",
|
|
"O11yTopLevelOpsIn.start": "Start is the window's start, epoch nanoseconds as a string; empty means\nunbounded.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/service/top_operations", zip.Doc{
|
|
Description: "Returns one service's heaviest operations in the window, each\nwith p50/p95/p99 latency, how often it ran and how often it errored.",
|
|
Fields: map[string]string{
|
|
"O11yOperation.errorCount": "ErrorCount is how many of those runs errored.",
|
|
"O11yOperation.name": "Name is the operation (span name).",
|
|
"O11yOperation.numCalls": "NumCalls is how many times it ran in the window.",
|
|
"O11yOperation.p50": "P50 is its median latency, nanoseconds.",
|
|
"O11yOperation.p95": "P95 is its p95 latency, nanoseconds.",
|
|
"O11yOperation.p99": "P99 is its p99 latency, nanoseconds.",
|
|
"O11yOperationsIn.end": "End is the window's end, epoch nanoseconds as a string.",
|
|
"O11yOperationsIn.limit": "Limit caps how many operations come back.",
|
|
"O11yOperationsIn.service": "Service is the service whose operations are read.",
|
|
"O11yOperationsIn.start": "Start is the window's start, epoch nanoseconds as a string.",
|
|
"O11yOperationsIn.tags": "Tags narrow the spans counted, each a span-attribute predicate.",
|
|
"O11yOperationsOut.data": "Data holds one entry per operation.",
|
|
"O11yOperationsOut.status": "Status is \"success\".",
|
|
"O11yServiceTag.BoolValues": "BoolValues are the boolean operands, when the attribute is a bool.",
|
|
"O11yServiceTag.Key": "Key is the span attribute to test.",
|
|
"O11yServiceTag.NumberValues": "NumberValues are the numeric operands, when the attribute is a number.",
|
|
"O11yServiceTag.Operator": "Operator is how to test it, e.g. in, not_in.",
|
|
"O11yServiceTag.StringValues": "StringValues are the string operands, when the attribute is a string.",
|
|
"O11yServiceTag.TagType": "TagType says which plane the attribute lives on, e.g. tag or resource.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/service_accounts", zip.Doc{
|
|
Description: "Creates a service account in the caller's org,\nanswering its id. The name — a lowercase letter followed by lowercase\nletters, digits or hyphens — becomes the account's email local part.",
|
|
Fields: map[string]string{
|
|
"O11yCreated.id": "ID is the new record's id.",
|
|
"O11yServiceAccountCreateIn.name": "Name is the account's name: a lowercase letter followed by lowercase\nletters, digits or hyphens, at most 50 characters. Required.",
|
|
"O11yServiceAccountCreateOut.data": "Data carries the new account's id.",
|
|
"O11yServiceAccountCreateOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/service_accounts/:id/keys", zip.Doc{
|
|
Description: "Mints an API key for a service account and answers\nthe key's id and its secret — the one time the secret is ever shown.\n\nExpiresAt is a unix timestamp in seconds; zero means the key never expires,\nand a timestamp in the past is refused.",
|
|
Fields: map[string]string{
|
|
"O11yAPIKeyCreateIn.expiresAt": "ExpiresAt is when the key stops working, as a unix timestamp in seconds.\nZero means it never expires; a past timestamp is refused.",
|
|
"O11yAPIKeyCreateIn.name": "Name is the key's name: a lowercase letter followed by lowercase letters,\ndigits or hyphens, at most 80 characters. Required.",
|
|
"O11yAPIKeyCreateOut.data": "Data carries the key's id and secret.",
|
|
"O11yAPIKeyCreateOut.status": "Status is \"success\".",
|
|
"O11yAPIKeySecret.id": "ID is the key id.",
|
|
"O11yAPIKeySecret.key": "Key is the secret the service account authenticates with.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/service_accounts/:id/roles", zip.Doc{
|
|
Description: "Assigns a role, named by its id, to a service\naccount.",
|
|
Fields: map[string]string{
|
|
"O11yServiceAccountRoleGrantIn.id": "RoleID is the id of the role to assign. Required.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/services", zip.Doc{
|
|
Description: "Lists the instrumented services seen in the window, each with the\nrequest profile of its entry-point spans: p99 and average latency, call and\nerror rates, and the entry-point operations the numbers were computed over.",
|
|
Fields: map[string]string{
|
|
"O11yService.avgDuration": "AvgDuration is their average latency, nanoseconds.",
|
|
"O11yService.callRate": "CallRate is calls per second over the window.",
|
|
"O11yService.dataWarning": "DataWarning carries the entry-point operations the numbers were computed\nover.",
|
|
"O11yService.errorRate": "ErrorRate is the percentage of calls that errored.",
|
|
"O11yService.fourXXRate": "FourXXRate is the percentage of calls that answered 4xx.",
|
|
"O11yService.num4XX": "Num4XX is how many of the calls answered 4xx.",
|
|
"O11yService.numCalls": "NumCalls is how many entry-point spans landed in the window.",
|
|
"O11yService.numErrors": "NumErrors is how many of the calls errored.",
|
|
"O11yService.p99": "Percentile99 is the p99 latency of its entry-point spans, nanoseconds.",
|
|
"O11yService.serviceName": "ServiceName is the service.",
|
|
"O11yServiceTag.BoolValues": "BoolValues are the boolean operands, when the attribute is a bool.",
|
|
"O11yServiceTag.Key": "Key is the span attribute to test.",
|
|
"O11yServiceTag.NumberValues": "NumberValues are the numeric operands, when the attribute is a number.",
|
|
"O11yServiceTag.Operator": "Operator is how to test it, e.g. in, not_in.",
|
|
"O11yServiceTag.StringValues": "StringValues are the string operands, when the attribute is a string.",
|
|
"O11yServiceTag.TagType": "TagType says which plane the attribute lives on, e.g. tag or resource.",
|
|
"O11yServiceWarning.topLevelOps": "TopLevelOps are the entry-point operations the profile was computed over.",
|
|
"O11yServicesIn.end": "End is the window's end, epoch nanoseconds as a string.",
|
|
"O11yServicesIn.start": "Start is the window's start, epoch nanoseconds as a string.",
|
|
"O11yServicesIn.tags": "Tags narrow the spans counted, each a span-attribute predicate.",
|
|
"O11yServicesOut.data": "Data holds one entry per service.",
|
|
"O11yServicesOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/settings/apdex", zip.Doc{
|
|
Description: "Sets one service's apdex threshold and the status codes excluded\nfrom its score.\n\nAdmin only, as the mux tree has always gated it (AdminAccess); the runtime's\nown gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yApdexSetIn.excludeStatusCodes": "ExcludeStatusCodes are status codes excluded from the score, comma\nseparated.",
|
|
"O11yApdexSetIn.serviceName": "ServiceName is the service the threshold applies to.",
|
|
"O11yApdexSetIn.threshold": "Threshold is the satisfied-response time in seconds.",
|
|
"O11yApdexSetOut.data": "Data is the acknowledgment.",
|
|
"O11yApdexSetOut.status": "Status is \"success\".",
|
|
"O11yMessage.data": "Data is the acknowledgment message.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/settings/ttl", zip.Doc{
|
|
Description: "Sets the org's retention policy for one signal: the default TTL\nin days, ordered per-label retention rules, and optional cold-storage\nsettings.\n\nAdmin only, as the mux tree has always gated it (AdminAccess); the runtime's\nown gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yRetentionMatch.key": "Key is the label to test.",
|
|
"O11yRetentionMatch.values": "Values are the label values the rule matches.",
|
|
"O11yRetentionRule.conditions": "Conditions all have to hold for the rule to match.",
|
|
"O11yRetentionRule.ttlDays": "TTLDays is the retention applied when it does, in days.",
|
|
"O11yRetentionSetIn.coldStorageDurationDays": "ColdStorageDurationDays is how old data must be before it moves, in days.",
|
|
"O11yRetentionSetIn.coldStorageVolume": "ColdStorageVolume names the volume aged data moves to, when set.",
|
|
"O11yRetentionSetIn.defaultTTLDays": "DefaultTTLDays is the retention for data no rule matches, in days.",
|
|
"O11yRetentionSetIn.ttlConditions": "TTLConditions are ordered per-label rules; the first matching rule wins.",
|
|
"O11yRetentionSetIn.type": "Type is the signal the policy applies to — traces, metrics or logs.",
|
|
"O11yRetentionSetOut.message": "Message says what was done.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/span_mapper_groups", zip.Doc{
|
|
Description: "Creates a mapping group: the name it is known by, the\nspan and resource attributes whose presence selects a span into it, and\nwhether it is on.\n\nCallers need the admin role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11ySpanMapperGroupOut.data": "Data is the group.",
|
|
"O11ySpanMapperGroupOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/span_mapper_groups/:groupId/span_mappers", zip.Doc{
|
|
Description: "Adds a mapper to a group: which field context it reads, the\nmove or copy it performs, and whether it is on.\n\nCallers need the admin role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11ySpanMapperOut.data": "Data is the mapper.",
|
|
"O11ySpanMapperOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/span_percentile", zip.Doc{
|
|
Description: "Places one span's duration among its peers: the p50/p90/p99\ndurations of like spans, and the percentile the given duration lands at.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yPercentilePosition.description": "Description says the same in words.",
|
|
"O11yPercentilePosition.percentile": "Percentile is the percentile the duration lands at.",
|
|
"O11yPercentiles.p50": "P50 is the median.",
|
|
"O11yPercentiles.p90": "P90 is the 90th percentile.",
|
|
"O11yPercentiles.p99": "P99 is the 99th percentile.",
|
|
"O11ySpanPercentile.percentiles": "Percentiles are the peer group's duration percentiles.",
|
|
"O11ySpanPercentile.position": "Position is where the given duration lands.",
|
|
"O11ySpanPercentileIn.end": "End is the window end, as epoch nanoseconds.",
|
|
"O11ySpanPercentileIn.name": "Name is the span name whose peers are compared. Required.",
|
|
"O11ySpanPercentileIn.resourceAttributes": "ResourceAttributes narrow the peer group to spans carrying them all.",
|
|
"O11ySpanPercentileIn.serviceName": "ServiceName is the service the span belongs to. Required.",
|
|
"O11ySpanPercentileIn.spanDuration": "SpanDuration is the span's duration in nanoseconds.",
|
|
"O11ySpanPercentileIn.start": "Start is the window start, as epoch nanoseconds.",
|
|
"O11ySpanPercentileOut.data": "Data is the placement.",
|
|
"O11ySpanPercentileOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/statefulsets/list", zip.Doc{
|
|
Description: "Lists Kubernetes statefulsets over a time range, each with\nthe CPU and memory its pods used against request and limit, desired and\navailable replica counts, restarts and attributes; filterable, groupable and\npaginated.",
|
|
Fields: map[string]string{
|
|
"O11yStatefulSetListOut.data": "Data holds the statefulset records.",
|
|
"O11yStatefulSetListOut.status": "Status is \"success\".",
|
|
"StatefulSetListRequest.end": "epoch time in ms",
|
|
"StatefulSetListRequest.start": "epoch time in ms",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/substitute_vars", zip.Doc{
|
|
Description: "Substitutes a query's variables and returns the\nresolved request, without running it — what a dashboard does before it\nqueries.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"CompositeQuery.queries": "Queries is the queries to use for the request.",
|
|
"O11ySubstituteVarsOut.data": "Data is the resolved composite query, with its variables substituted.",
|
|
"O11ySubstituteVarsOut.status": "Status is \"success\".",
|
|
"QueryEnvelope.spec": "Spec is the deferred decoding of the query if any.",
|
|
"QueryEnvelope.type": "Type is the type of the query.",
|
|
"QueryRangeRequest.compositeQuery": "CompositeQuery is the composite query to use for the request.",
|
|
"QueryRangeRequest.end": "End is the end time of the query in epoch milliseconds.",
|
|
"QueryRangeRequest.noCache": "NoCache is a flag to disable caching for the request.",
|
|
"QueryRangeRequest.requestType": "RequestType is the type of the request.",
|
|
"QueryRangeRequest.schemaVersion": "SchemaVersion is the version of the schema to use for the request payload.",
|
|
"QueryRangeRequest.start": "Start is the start time of the query in epoch milliseconds.",
|
|
"QueryRangeRequest.variables": "Variables is the variables to use for the request.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/testChannel", zip.Doc{
|
|
Description: "Sends a test notification to the posted receiver. The\nlegacy path; prefer /channels/test. Editor gate.",
|
|
Fields: map[string]string{
|
|
"Authorization.credentials_ref": "CredentialsRef is the name of the secret within the secret manager to use as credentials.",
|
|
"BasicAuth.password_ref": "PasswordRef is the name of the secret within the secret manager to use as the password.",
|
|
"BasicAuth.username_ref": "UsernameRef is the name of the secret within the secret manager to use as the username.",
|
|
"EmailConfig.force_implicit_tls": "ForceImplicitTLS controls whether to use implicit TLS (direct TLS connection).\ntrue: force use of implicit TLS (direct TLS connection)\nfalse: force disable implicit TLS (use explicit TLS/STARTTLS if required)\nnil (default): auto-detect based on port (465=implicit, other=explicit) for backward compatibility",
|
|
"EmailConfig.to": "Email address to notify.",
|
|
"HTTPClientConfig.ProxyConfig": "Proxy configuration.",
|
|
"HTTPClientConfig.authorization": "The HTTP authorization credentials for the targets.",
|
|
"HTTPClientConfig.basic_auth": "The HTTP basic authentication credentials for the targets.",
|
|
"HTTPClientConfig.bearer_token": "The bearer token for the targets. Deprecated in favour of\nAuthorization.Credentials.",
|
|
"HTTPClientConfig.bearer_token_file": "The bearer token file for the targets. Deprecated in favour of\nAuthorization.CredentialsFile.",
|
|
"HTTPClientConfig.enable_http2": "EnableHTTP2 specifies whether the client should configure HTTP2.\nThe omitempty flag is not set, because it would be hidden from the\nmarshalled configuration when set to false.",
|
|
"HTTPClientConfig.follow_redirects": "FollowRedirects specifies whether the client should follow HTTP 3xx redirects.\nThe omitempty flag is not set, because it would be hidden from the\nmarshalled configuration when set to false.",
|
|
"HTTPClientConfig.http_headers": "HTTPHeaders specify headers to inject in the requests. Those headers\ncould be marshalled back to the users.",
|
|
"HTTPClientConfig.oauth2": "The OAuth2 client credentials used to fetch a token for the targets.",
|
|
"HTTPClientConfig.tls_config": "TLSConfig to use to connect to the targets.",
|
|
"IncidentioConfig.alert_source_token": "AlertSourceToken is the key used to authenticate with the alert source in incident.io.",
|
|
"IncidentioConfig.max_alerts": "MaxAlerts is the maximum number of alerts to be sent per incident.io message.\nAlerts exceeding this threshold will be truncated. Setting this to 0\nallows an unlimited number of alerts. Note that if the payload exceeds\nincident.io's size limits, you will receive a 429 response and alerts\nwill not be ingested.",
|
|
"IncidentioConfig.timeout": "Timeout is the maximum time allowed to invoke incident.io. Setting this to 0\ndoes not impose a timeout.",
|
|
"IncidentioConfig.url": "URL to send POST request to.",
|
|
"JiraFieldConfig.enable_update": "EnableUpdate indicates whether this field should be omitted when updating an existing issue.",
|
|
"JiraFieldConfig.template": "Template is the template string used to render the field.",
|
|
"OAuth2.audience": "Audience optionally specifies the intended audience of the\nrequest. If empty, the value of TokenURL is used as the\nintended audience. Only used if\nGrantType is set to \"urn:ietf:params:oauth:grant-type:jwt-bearer\".",
|
|
"OAuth2.claims": "Claims is a map of claims to be added to the JWT token. Only used if\nGrantType is set to \"urn:ietf:params:oauth:grant-type:jwt-bearer\".",
|
|
"OAuth2.client_certificate_key_ref": "ClientCertificateKeyRef is the name of the secret within the secret manager to use as the client\nsecret.",
|
|
"OAuth2.client_secret_ref": "ClientSecretRef is the name of the secret within the secret manager to use as the client\nsecret.",
|
|
"OAuth2.grant_type": "GrantType is the OAuth2 grant type to use. It can be one of\n\"client_credentials\" or \"urn:ietf:params:oauth:grant-type:jwt-bearer\" (RFC 7523).\nDefault value is \"client_credentials\"",
|
|
"OAuth2.iss": "Iss is the OAuth client identifier used when communicating with\nthe configured OAuth provider. Default value is client_id. Only used if\nGrantType is set to \"urn:ietf:params:oauth:grant-type:jwt-bearer\".",
|
|
"OAuth2.signature_algorithm": "SignatureAlgorithm is the RSA algorithm used to sign JWT token. Only used if\nGrantType is set to \"urn:ietf:params:oauth:grant-type:jwt-bearer\".\nDefault value is RS256 and valid values RS256, RS384, RS512",
|
|
"OpsGenieConfigResponder.id": "One of those 3 should be filled.",
|
|
"OpsGenieConfigResponder.type": "team, user, escalation, schedule etc.",
|
|
"PagerdutyConfig.timeout": "Timeout is the maximum time allowed to invoke the pagerduty. Setting this to 0\ndoes not impose a timeout.",
|
|
"ProxyConfig.no_proxy": "NoProxy contains addresses that should not use a proxy.",
|
|
"ProxyConfig.proxy_connect_header": "ProxyConnectHeader optionally specifies headers to send to\nproxies during CONNECT requests. Assume that at least _some_ of\nthese headers are going to contain secrets and use Secret as the\nvalue type instead of string.",
|
|
"ProxyConfig.proxy_from_environment": "ProxyFromEnvironment makes use of net/http ProxyFromEnvironment function\nto determine proxies.",
|
|
"ProxyConfig.proxy_url": "HTTP proxy server to use to connect to the targets.",
|
|
"Receiver.name": "A unique identifier for this receiver.",
|
|
"RocketchatConfig.channel": "RocketChat channel override, (like #other-channel or @username).",
|
|
"SlackConfig.channel": "Slack channel override, (like #other-channel or @username).",
|
|
"SlackConfig.timeout": "Timeout is the maximum time allowed to invoke the slack. Setting this to 0\ndoes not impose a timeout.",
|
|
"TLSConfig.ca": "Text of the CA cert to use for the targets.",
|
|
"TLSConfig.ca_file": "The CA cert to use for the targets.",
|
|
"TLSConfig.ca_ref": "CARef is the name of the secret within the secret manager to use as the CA cert for the\ntargets.",
|
|
"TLSConfig.cert": "Text of the client cert file for the targets.",
|
|
"TLSConfig.cert_file": "The client cert file for the targets.",
|
|
"TLSConfig.cert_ref": "CertRef is the name of the secret within the secret manager to use as the client cert for\nthe targets.",
|
|
"TLSConfig.insecure_skip_verify": "Disable target certificate validation.",
|
|
"TLSConfig.key": "Text of the client key file for the targets.",
|
|
"TLSConfig.key_file": "The client key file for the targets.",
|
|
"TLSConfig.key_ref": "KeyRef is the name of the secret within the secret manager to use as the client key for\nthe targets.",
|
|
"TLSConfig.max_version": "Maximum TLS version.",
|
|
"TLSConfig.min_version": "Minimum TLS version.",
|
|
"TLSConfig.server_name": "Used to verify the hostname for the targets.",
|
|
"WebhookConfig.max_alerts": "MaxAlerts is the maximum number of alerts to be sent per webhook message.\nAlerts exceeding this threshold will be truncated. Setting this to 0\nallows an unlimited number of alerts.",
|
|
"WebhookConfig.timeout": "Timeout is the maximum time allowed to invoke the webhook. Setting this to 0\ndoes not impose a timeout.",
|
|
"WebhookConfig.url": "URL to send POST request to.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/testRule", zip.Doc{
|
|
Description: "Fires a test notification for the posted rule definition\nand answers with how many series alerted and a status message. The legacy\npath; prefer /rules/test. Editor gate.",
|
|
Fields: map[string]string{
|
|
"AlertCompositeQuery.unit": "Unit for the time series data shown in the graph\nThis is used to format the value and threshold",
|
|
"NotificationSettings.newGroupEvalDelay": "NewGroupEvalDelay is the grace period for new series to be excluded from alerts evaluation",
|
|
"O11yTestNotificationOut.data": "Data holds the fired-series count and a status message.",
|
|
"O11yTestNotificationOut.status": "Status is \"success\".",
|
|
"O11yTestNotificationResult.alertCount": "AlertCount is how many series would alert for the tested rule.",
|
|
"O11yTestNotificationResult.message": "Message is a human-readable status, e.g. \"notification sent\".",
|
|
"PostableRule.source": "Source captures the source url where rule has been created",
|
|
"QueryEnvelope.spec": "Spec is the deferred decoding of the query if any.",
|
|
"QueryEnvelope.type": "Type is the type of the query.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/third-party-apis/overview/domain", zip.Doc{
|
|
Description: "Returns one external domain's endpoint-level breakdown — each\nendpoint with its rate, error and latency columns over the window.",
|
|
Fields: map[string]string{
|
|
"O11yDomainFilter.expression": "Expression is the predicate, e.g. `http.status_code >= 500`.",
|
|
"O11yDomainGroupBy.description": "Description describes the field, when known.",
|
|
"O11yDomainGroupBy.fieldContext": "FieldContext says which plane the field lives on, e.g. attribute,\nresource, span.",
|
|
"O11yDomainGroupBy.fieldDataType": "FieldDataType is the field's type: string, int64, float64 or bool.",
|
|
"O11yDomainGroupBy.name": "Name is the field's name. Required.",
|
|
"O11yDomainGroupBy.signal": "Signal is the telemetry signal the field belongs to, e.g. traces.",
|
|
"O11yDomainGroupBy.unit": "Unit is the field's unit, when known.",
|
|
"O11yDomainsAnswer.data": "Data holds the per-query results, emitted LAST — see the field-order note\non the type.",
|
|
"O11yDomainsAnswer.meta": "Meta reports what the read cost.",
|
|
"O11yDomainsAnswer.type": "Type names the result shape: scalar, time_series or raw.",
|
|
"O11yDomainsAnswer.warning": "Warning carries the store's warning for this read, when it raised one.",
|
|
"O11yDomainsData.results": "Results is one entry per query. Each entry's shape follows the answer's\ntype — time-series data, scalar data or raw rows — so the bytes pass\nthrough verbatim.",
|
|
"O11yDomainsIn.domain": "Domain narrows the read to one external domain (the domain view requires\nit).",
|
|
"O11yDomainsIn.end": "End is the window's end, epoch milliseconds.",
|
|
"O11yDomainsIn.endpoint": "Endpoint narrows the domain view to one endpoint.",
|
|
"O11yDomainsIn.filter": "Filter is an additional predicate in the query-builder filter syntax.",
|
|
"O11yDomainsIn.groupBy": "GroupBy adds grouping columns to the result.",
|
|
"O11yDomainsIn.show_ip": "ShowIP keeps rows whose domain is a bare IP address; they are dropped\notherwise.",
|
|
"O11yDomainsIn.start": "Start is the window's start, epoch milliseconds.",
|
|
"O11yDomainsOut.data": "Data holds the result.",
|
|
"O11yDomainsOut.status": "Status is \"success\".",
|
|
"O11yQueryStats.bytesScanned": "BytesScanned is how many bytes the query read.",
|
|
"O11yQueryStats.durationMs": "DurationMS is how long the query took, in milliseconds.",
|
|
"O11yQueryStats.rowsScanned": "RowsScanned is how many rows the query read.",
|
|
"O11yQueryStats.stepIntervals": "StepIntervals is the step used per query, in seconds.",
|
|
"O11yQueryWarning.message": "Message is the warning.",
|
|
"O11yQueryWarning.url": "URL points at the relevant documentation.",
|
|
"O11yQueryWarning.warnings": "Warnings carries additional notes.",
|
|
"O11yQueryWarningNote.message": "Message is the note.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/third-party-apis/overview/list", zip.Doc{
|
|
Description: "Lists the external domains the instrumented services call, with\nrequest rate, error percentage and latency per domain. Rows whose domain is\na bare IP address are dropped unless show_ip asks for them.",
|
|
Fields: map[string]string{
|
|
"O11yDomainFilter.expression": "Expression is the predicate, e.g. `http.status_code >= 500`.",
|
|
"O11yDomainGroupBy.description": "Description describes the field, when known.",
|
|
"O11yDomainGroupBy.fieldContext": "FieldContext says which plane the field lives on, e.g. attribute,\nresource, span.",
|
|
"O11yDomainGroupBy.fieldDataType": "FieldDataType is the field's type: string, int64, float64 or bool.",
|
|
"O11yDomainGroupBy.name": "Name is the field's name. Required.",
|
|
"O11yDomainGroupBy.signal": "Signal is the telemetry signal the field belongs to, e.g. traces.",
|
|
"O11yDomainGroupBy.unit": "Unit is the field's unit, when known.",
|
|
"O11yDomainsAnswer.data": "Data holds the per-query results, emitted LAST — see the field-order note\non the type.",
|
|
"O11yDomainsAnswer.meta": "Meta reports what the read cost.",
|
|
"O11yDomainsAnswer.type": "Type names the result shape: scalar, time_series or raw.",
|
|
"O11yDomainsAnswer.warning": "Warning carries the store's warning for this read, when it raised one.",
|
|
"O11yDomainsData.results": "Results is one entry per query. Each entry's shape follows the answer's\ntype — time-series data, scalar data or raw rows — so the bytes pass\nthrough verbatim.",
|
|
"O11yDomainsIn.domain": "Domain narrows the read to one external domain (the domain view requires\nit).",
|
|
"O11yDomainsIn.end": "End is the window's end, epoch milliseconds.",
|
|
"O11yDomainsIn.endpoint": "Endpoint narrows the domain view to one endpoint.",
|
|
"O11yDomainsIn.filter": "Filter is an additional predicate in the query-builder filter syntax.",
|
|
"O11yDomainsIn.groupBy": "GroupBy adds grouping columns to the result.",
|
|
"O11yDomainsIn.show_ip": "ShowIP keeps rows whose domain is a bare IP address; they are dropped\notherwise.",
|
|
"O11yDomainsIn.start": "Start is the window's start, epoch milliseconds.",
|
|
"O11yDomainsOut.data": "Data holds the result.",
|
|
"O11yDomainsOut.status": "Status is \"success\".",
|
|
"O11yQueryStats.bytesScanned": "BytesScanned is how many bytes the query read.",
|
|
"O11yQueryStats.durationMs": "DurationMS is how long the query took, in milliseconds.",
|
|
"O11yQueryStats.rowsScanned": "RowsScanned is how many rows the query read.",
|
|
"O11yQueryStats.stepIntervals": "StepIntervals is the step used per query, in seconds.",
|
|
"O11yQueryWarning.message": "Message is the warning.",
|
|
"O11yQueryWarning.url": "URL points at the relevant documentation.",
|
|
"O11yQueryWarning.warnings": "Warnings carries additional notes.",
|
|
"O11yQueryWarningNote.message": "Message is the note.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/trace-funnels/:funnel_id/analytics/error-traces", zip.Doc{
|
|
Description: "Returns the errored traces through a step transition of a\nsaved funnel — the entry point for \"why is this step failing\".",
|
|
Fields: map[string]string{
|
|
"O11yFunnelRow.data": "Data are the row's columns, keyed by column name.",
|
|
"O11yFunnelRow.timestamp": "Timestamp is the row's time.",
|
|
"O11yFunnelRowsOut.data": "Data are the rows.",
|
|
"O11yFunnelRowsOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/trace-funnels/:funnel_id/analytics/overview", zip.Doc{
|
|
Description: "Returns a saved funnel's conversion overview over a window:\nhow many entered, how many converted, the rate and the latency.",
|
|
Fields: map[string]string{
|
|
"O11yFunnelRow.data": "Data are the row's columns, keyed by column name.",
|
|
"O11yFunnelRow.timestamp": "Timestamp is the row's time.",
|
|
"O11yFunnelRowsOut.data": "Data are the rows.",
|
|
"O11yFunnelRowsOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/trace-funnels/:funnel_id/analytics/slow-traces", zip.Doc{
|
|
Description: "Returns the slowest traces through a step transition of a\nsaved funnel — the entry point for \"why is this step slow\".",
|
|
Fields: map[string]string{
|
|
"O11yFunnelRow.data": "Data are the row's columns, keyed by column name.",
|
|
"O11yFunnelRow.timestamp": "Timestamp is the row's time.",
|
|
"O11yFunnelRowsOut.data": "Data are the rows.",
|
|
"O11yFunnelRowsOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/trace-funnels/:funnel_id/analytics/steps", zip.Doc{
|
|
Description: "Returns a saved funnel's per-step metrics over a window — the\ncounts and latencies at each step, in step order.",
|
|
Fields: map[string]string{
|
|
"O11yFunnelRow.data": "Data are the row's columns, keyed by column name.",
|
|
"O11yFunnelRow.timestamp": "Timestamp is the row's time.",
|
|
"O11yFunnelRowsOut.data": "Data are the rows.",
|
|
"O11yFunnelRowsOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/trace-funnels/:funnel_id/analytics/steps/overview", zip.Doc{
|
|
Description: "Returns the conversion between two named steps of a saved\nfunnel — the step-to-step drill-down behind the overview.",
|
|
Fields: map[string]string{
|
|
"O11yFunnelRow.data": "Data are the row's columns, keyed by column name.",
|
|
"O11yFunnelRow.timestamp": "Timestamp is the row's time.",
|
|
"O11yFunnelRowsOut.data": "Data are the rows.",
|
|
"O11yFunnelRowsOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/trace-funnels/:funnel_id/analytics/validate", zip.Doc{
|
|
Description: "Lists the traces that match a saved funnel over a window — the\nread that answers \"is this funnel finding anything at all\".",
|
|
Fields: map[string]string{
|
|
"O11yFunnelRow.data": "Data are the row's columns, keyed by column name.",
|
|
"O11yFunnelRow.timestamp": "Timestamp is the row's time.",
|
|
"O11yFunnelRowsOut.data": "Data are the rows.",
|
|
"O11yFunnelRowsOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/trace-funnels/analytics/error-traces", zip.Doc{
|
|
Description: "Returns the errored traces through a step transition of\na funnel described inline.",
|
|
Fields: map[string]string{
|
|
"FunnelStep.description": "step description",
|
|
"FunnelStep.name": "step name",
|
|
"O11yDraftFunnelIn.end_time": "EndTime is the end of the window, as a millisecond epoch.",
|
|
"O11yDraftFunnelIn.start_time": "StartTime is the start of the window, as a millisecond epoch.",
|
|
"O11yDraftFunnelIn.step_end": "StepEnd is the step the transition runs to, 1-based.",
|
|
"O11yDraftFunnelIn.step_start": "StepStart is the step the transition runs from, 1-based. Ignored by the\nreads that span the whole funnel.",
|
|
"O11yDraftFunnelIn.steps": "Steps are the funnel's steps, in order. At least two are needed.",
|
|
"O11yFunnelRow.data": "Data are the row's columns, keyed by column name.",
|
|
"O11yFunnelRow.timestamp": "Timestamp is the row's time.",
|
|
"O11yFunnelRowsOut.data": "Data are the rows.",
|
|
"O11yFunnelRowsOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/trace-funnels/analytics/overview", zip.Doc{
|
|
Description: "Returns the conversion overview of a funnel described\ninline.",
|
|
Fields: map[string]string{
|
|
"FunnelStep.description": "step description",
|
|
"FunnelStep.name": "step name",
|
|
"O11yDraftFunnelIn.end_time": "EndTime is the end of the window, as a millisecond epoch.",
|
|
"O11yDraftFunnelIn.start_time": "StartTime is the start of the window, as a millisecond epoch.",
|
|
"O11yDraftFunnelIn.step_end": "StepEnd is the step the transition runs to, 1-based.",
|
|
"O11yDraftFunnelIn.step_start": "StepStart is the step the transition runs from, 1-based. Ignored by the\nreads that span the whole funnel.",
|
|
"O11yDraftFunnelIn.steps": "Steps are the funnel's steps, in order. At least two are needed.",
|
|
"O11yFunnelRow.data": "Data are the row's columns, keyed by column name.",
|
|
"O11yFunnelRow.timestamp": "Timestamp is the row's time.",
|
|
"O11yFunnelRowsOut.data": "Data are the rows.",
|
|
"O11yFunnelRowsOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/trace-funnels/analytics/slow-traces", zip.Doc{
|
|
Description: "Returns the slowest traces through a step transition of\na funnel described inline.",
|
|
Fields: map[string]string{
|
|
"FunnelStep.description": "step description",
|
|
"FunnelStep.name": "step name",
|
|
"O11yDraftFunnelIn.end_time": "EndTime is the end of the window, as a millisecond epoch.",
|
|
"O11yDraftFunnelIn.start_time": "StartTime is the start of the window, as a millisecond epoch.",
|
|
"O11yDraftFunnelIn.step_end": "StepEnd is the step the transition runs to, 1-based.",
|
|
"O11yDraftFunnelIn.step_start": "StepStart is the step the transition runs from, 1-based. Ignored by the\nreads that span the whole funnel.",
|
|
"O11yDraftFunnelIn.steps": "Steps are the funnel's steps, in order. At least two are needed.",
|
|
"O11yFunnelRow.data": "Data are the row's columns, keyed by column name.",
|
|
"O11yFunnelRow.timestamp": "Timestamp is the row's time.",
|
|
"O11yFunnelRowsOut.data": "Data are the rows.",
|
|
"O11yFunnelRowsOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/trace-funnels/analytics/steps", zip.Doc{
|
|
Description: "Returns the per-step metrics of a funnel described inline.",
|
|
Fields: map[string]string{
|
|
"FunnelStep.description": "step description",
|
|
"FunnelStep.name": "step name",
|
|
"O11yDraftFunnelIn.end_time": "EndTime is the end of the window, as a millisecond epoch.",
|
|
"O11yDraftFunnelIn.start_time": "StartTime is the start of the window, as a millisecond epoch.",
|
|
"O11yDraftFunnelIn.step_end": "StepEnd is the step the transition runs to, 1-based.",
|
|
"O11yDraftFunnelIn.step_start": "StepStart is the step the transition runs from, 1-based. Ignored by the\nreads that span the whole funnel.",
|
|
"O11yDraftFunnelIn.steps": "Steps are the funnel's steps, in order. At least two are needed.",
|
|
"O11yFunnelRow.data": "Data are the row's columns, keyed by column name.",
|
|
"O11yFunnelRow.timestamp": "Timestamp is the row's time.",
|
|
"O11yFunnelRowsOut.data": "Data are the rows.",
|
|
"O11yFunnelRowsOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/trace-funnels/analytics/steps/overview", zip.Doc{
|
|
Description: "Returns the conversion between two steps of a funnel\ndescribed inline.",
|
|
Fields: map[string]string{
|
|
"FunnelStep.description": "step description",
|
|
"FunnelStep.name": "step name",
|
|
"O11yDraftFunnelIn.end_time": "EndTime is the end of the window, as a millisecond epoch.",
|
|
"O11yDraftFunnelIn.start_time": "StartTime is the start of the window, as a millisecond epoch.",
|
|
"O11yDraftFunnelIn.step_end": "StepEnd is the step the transition runs to, 1-based.",
|
|
"O11yDraftFunnelIn.step_start": "StepStart is the step the transition runs from, 1-based. Ignored by the\nreads that span the whole funnel.",
|
|
"O11yDraftFunnelIn.steps": "Steps are the funnel's steps, in order. At least two are needed.",
|
|
"O11yFunnelRow.data": "Data are the row's columns, keyed by column name.",
|
|
"O11yFunnelRow.timestamp": "Timestamp is the row's time.",
|
|
"O11yFunnelRowsOut.data": "Data are the rows.",
|
|
"O11yFunnelRowsOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/trace-funnels/analytics/validate", zip.Doc{
|
|
Description: "Lists the traces that match a funnel described inline —\nthe builder's \"try this\" before anything is saved.",
|
|
Fields: map[string]string{
|
|
"FunnelStep.description": "step description",
|
|
"FunnelStep.name": "step name",
|
|
"O11yDraftFunnelIn.end_time": "EndTime is the end of the window, as a millisecond epoch.",
|
|
"O11yDraftFunnelIn.start_time": "StartTime is the start of the window, as a millisecond epoch.",
|
|
"O11yDraftFunnelIn.step_end": "StepEnd is the step the transition runs to, 1-based.",
|
|
"O11yDraftFunnelIn.step_start": "StepStart is the step the transition runs from, 1-based. Ignored by the\nreads that span the whole funnel.",
|
|
"O11yDraftFunnelIn.steps": "Steps are the funnel's steps, in order. At least two are needed.",
|
|
"O11yFunnelRow.data": "Data are the row's columns, keyed by column name.",
|
|
"O11yFunnelRow.timestamp": "Timestamp is the row's time.",
|
|
"O11yFunnelRowsOut.data": "Data are the rows.",
|
|
"O11yFunnelRowsOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/trace-funnels/new", zip.Doc{
|
|
Description: "Creates an empty funnel with a name, answering the funnel it\ncreated. Steps are added afterwards with the steps update.\n\nCallers need the editor role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"FunnelStep.description": "step description",
|
|
"FunnelStep.name": "step name",
|
|
"O11yFunnelCreateIn.funnel_name": "Name is the funnel's name.",
|
|
"O11yFunnelCreateIn.timestamp": "Timestamp is when the funnel was created, as a millisecond epoch. Zero\ntakes the runtime's own clock.",
|
|
"O11yFunnelOut.data": "Data is the funnel with its steps.",
|
|
"O11yFunnelOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/traces/:traceId/aggregations", zip.Doc{
|
|
Description: "Computes span aggregations over one trace — span count,\nduration or share of execution time — grouped by the resource field each\naggregation names.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yTraceAggregationsOut.data": "Data holds one result per aggregation asked for.",
|
|
"O11yTraceAggregationsOut.status": "Status is \"success\".",
|
|
"TelemetryFieldKeySkipIndex.name": "Name is TelemetryFieldKey.Name not IndexName from Datastore",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/traces/:traceId/flamegraph", zip.Doc{
|
|
Description: "Returns a trace's flamegraph: spans bucketed by depth level,\neach level ordered as it is drawn, around the selected span.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yTraceFlamegraphOut.data": "Data holds the flamegraph.",
|
|
"O11yTraceFlamegraphOut.status": "Status is \"success\".",
|
|
"TelemetryFieldKeySkipIndex.name": "Name is TelemetryFieldKey.Name not IndexName from Datastore",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/traces/:traceId/waterfall", zip.Doc{
|
|
Description: "Returns a trace's waterfall: every span when the trace is\nsmall enough, a capped window around the selected span when it is not, with\nthe uncollapsed subtrees the caller asked to keep open.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yTraceWaterfallOut.data": "Data holds the waterfall.",
|
|
"O11yTraceWaterfallOut.status": "Status is \"success\".",
|
|
"WaterfallSpan.db_name": "Calculated fields, derived from the span's attributes.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/traces/fields", zip.Doc{
|
|
Description: "Changes how one span field is stored — selects or deselects\nit as a materialized column and tunes its index — and echoes the setting back.\n\nCallers need the editor role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yFieldSetting.dataType": "DataType is the field's data type, e.g. string, int64, float64, bool.\nRequired.",
|
|
"O11yFieldSetting.index": "Index is the index expression to put on the column, e.g. minmax,\nset(N), bloom_filter(P), tokenbf_v1(S,H,SEED). Empty keeps the default.",
|
|
"O11yFieldSetting.indexGranularity": "IndexGranularity is the index granularity in rows.",
|
|
"O11yFieldSetting.name": "Name is the field to tune. Required.",
|
|
"O11yFieldSetting.selected": "Selected materializes the field as its own column when true.",
|
|
"O11yFieldSetting.type": "Type is where the field lives: attributes or resources. Required.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/variables/query", zip.Doc{
|
|
Description: "Evaluates a dashboard variable query and returns the values the\nvariable may take.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yDashboardVarValues.variableValues": "VariableValues are the values, in the order the query produced them.",
|
|
"O11yDashboardVarsIn.query": "Query is the variable query to evaluate. Required.",
|
|
"O11yDashboardVarsIn.variables": "Variables are the current values of the other dashboard variables, for\nqueries that reference them.",
|
|
"O11yDashboardVarsOut.data": "Data holds the values.",
|
|
"O11yDashboardVarsOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/sentinel/discover", zip.Doc{
|
|
Description: "Aggregates a project's captured errors into a table — the caller\nnames the filters, the groupings and the aggregations, and gets back the\ncolumns and rows they asked for.\n\nThe project is mandatory and is checked against the caller's own org before it\nscopes anything, so a project id belonging to someone else reads as absent\nrather than as data.",
|
|
Fields: map[string]string{
|
|
"O11yDiscoverIn.aggregations": "Aggregations are the measures to compute per group. Empty means a count.",
|
|
"O11yDiscoverIn.filters": "Filters narrow the scan; each is a field, an operator (eq, neq, like) and\na value, and they combine with AND.",
|
|
"O11yDiscoverIn.groupBy": "GroupBy are the columns to group the rows by.",
|
|
"O11yDiscoverIn.limit": "Limit caps how many rows come back.",
|
|
"O11yDiscoverIn.orderBy": "OrderBy is the column or aggregation to sort the rows on.",
|
|
"O11yDiscoverIn.orderDir": "OrderDir is asc or desc.",
|
|
"O11yDiscoverIn.period": "Period is the window to read, relative to now — 1h, 24h, 7d, 14d, 30d.",
|
|
"O11yDiscoverIn.project": "Project is the project to read, as its id. Required.",
|
|
"O11yDiscoverOut.data": "Data is the table.",
|
|
"O11yDiscoverOut.status": "Status is \"success\".",
|
|
"O11yFilter.field": "Field is the column to test.",
|
|
"O11yFilter.op": "Op is how to test it: eq, neq or like.",
|
|
"O11yFilter.value": "Value is what to test it against.",
|
|
"O11yTable.columns": "Columns names each position in a row.",
|
|
"O11yTable.rows": "Rows are the result rows, each as long as Columns.",
|
|
},
|
|
})
|
|
zip.Describe("POST /v1/o11y/sentinel/projects", zip.Doc{
|
|
Description: "Creates a Sentry project under the caller's org and\nreturns it. Only the name, and optionally a slug and platform, are the caller's\nto set; the org and id are server-assigned. The slug is the product name the\nevent plane stores, so a project reads that product's errors.\n\nCallers need the editor role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11ySentryPostableProject.name": "Name is the project's display name. Required.",
|
|
"O11ySentryPostableProject.platform": "Platform is the reporting runtime, e.g. go, python, javascript.",
|
|
"O11ySentryPostableProject.slug": "Slug is the project's short name. Server-assigned from Name when empty.",
|
|
"O11ySentryProject.createdAt": "CreatedAt is when the project was created.",
|
|
"O11ySentryProject.id": "ID is the project id.",
|
|
"O11ySentryProject.name": "Name is the project's display name.",
|
|
"O11ySentryProject.platform": "Platform is the reporting runtime, e.g. go, python, javascript.",
|
|
"O11ySentryProject.slug": "Slug is the project's short name.",
|
|
"O11ySentryProject.status": "Status is the project's lifecycle state: active or disabled.",
|
|
"O11ySentryProject.updatedAt": "UpdatedAt is when the project last changed.",
|
|
"O11ySentryProjectOut.data": "Data is the project.",
|
|
"O11ySentryProjectOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("PUT /v1/o11y/channels/:id", zip.Doc{
|
|
Description: "Replaces a notification channel's receiver, by id. Admin gate.",
|
|
Fields: map[string]string{
|
|
"Authorization.credentials_ref": "CredentialsRef is the name of the secret within the secret manager to use as credentials.",
|
|
"BasicAuth.password_ref": "PasswordRef is the name of the secret within the secret manager to use as the password.",
|
|
"BasicAuth.username_ref": "UsernameRef is the name of the secret within the secret manager to use as the username.",
|
|
"EmailConfig.force_implicit_tls": "ForceImplicitTLS controls whether to use implicit TLS (direct TLS connection).\ntrue: force use of implicit TLS (direct TLS connection)\nfalse: force disable implicit TLS (use explicit TLS/STARTTLS if required)\nnil (default): auto-detect based on port (465=implicit, other=explicit) for backward compatibility",
|
|
"EmailConfig.to": "Email address to notify.",
|
|
"HTTPClientConfig.ProxyConfig": "Proxy configuration.",
|
|
"HTTPClientConfig.authorization": "The HTTP authorization credentials for the targets.",
|
|
"HTTPClientConfig.basic_auth": "The HTTP basic authentication credentials for the targets.",
|
|
"HTTPClientConfig.bearer_token": "The bearer token for the targets. Deprecated in favour of\nAuthorization.Credentials.",
|
|
"HTTPClientConfig.bearer_token_file": "The bearer token file for the targets. Deprecated in favour of\nAuthorization.CredentialsFile.",
|
|
"HTTPClientConfig.enable_http2": "EnableHTTP2 specifies whether the client should configure HTTP2.\nThe omitempty flag is not set, because it would be hidden from the\nmarshalled configuration when set to false.",
|
|
"HTTPClientConfig.follow_redirects": "FollowRedirects specifies whether the client should follow HTTP 3xx redirects.\nThe omitempty flag is not set, because it would be hidden from the\nmarshalled configuration when set to false.",
|
|
"HTTPClientConfig.http_headers": "HTTPHeaders specify headers to inject in the requests. Those headers\ncould be marshalled back to the users.",
|
|
"HTTPClientConfig.oauth2": "The OAuth2 client credentials used to fetch a token for the targets.",
|
|
"HTTPClientConfig.tls_config": "TLSConfig to use to connect to the targets.",
|
|
"IncidentioConfig.alert_source_token": "AlertSourceToken is the key used to authenticate with the alert source in incident.io.",
|
|
"IncidentioConfig.max_alerts": "MaxAlerts is the maximum number of alerts to be sent per incident.io message.\nAlerts exceeding this threshold will be truncated. Setting this to 0\nallows an unlimited number of alerts. Note that if the payload exceeds\nincident.io's size limits, you will receive a 429 response and alerts\nwill not be ingested.",
|
|
"IncidentioConfig.timeout": "Timeout is the maximum time allowed to invoke incident.io. Setting this to 0\ndoes not impose a timeout.",
|
|
"IncidentioConfig.url": "URL to send POST request to.",
|
|
"JiraFieldConfig.enable_update": "EnableUpdate indicates whether this field should be omitted when updating an existing issue.",
|
|
"JiraFieldConfig.template": "Template is the template string used to render the field.",
|
|
"OAuth2.audience": "Audience optionally specifies the intended audience of the\nrequest. If empty, the value of TokenURL is used as the\nintended audience. Only used if\nGrantType is set to \"urn:ietf:params:oauth:grant-type:jwt-bearer\".",
|
|
"OAuth2.claims": "Claims is a map of claims to be added to the JWT token. Only used if\nGrantType is set to \"urn:ietf:params:oauth:grant-type:jwt-bearer\".",
|
|
"OAuth2.client_certificate_key_ref": "ClientCertificateKeyRef is the name of the secret within the secret manager to use as the client\nsecret.",
|
|
"OAuth2.client_secret_ref": "ClientSecretRef is the name of the secret within the secret manager to use as the client\nsecret.",
|
|
"OAuth2.grant_type": "GrantType is the OAuth2 grant type to use. It can be one of\n\"client_credentials\" or \"urn:ietf:params:oauth:grant-type:jwt-bearer\" (RFC 7523).\nDefault value is \"client_credentials\"",
|
|
"OAuth2.iss": "Iss is the OAuth client identifier used when communicating with\nthe configured OAuth provider. Default value is client_id. Only used if\nGrantType is set to \"urn:ietf:params:oauth:grant-type:jwt-bearer\".",
|
|
"OAuth2.signature_algorithm": "SignatureAlgorithm is the RSA algorithm used to sign JWT token. Only used if\nGrantType is set to \"urn:ietf:params:oauth:grant-type:jwt-bearer\".\nDefault value is RS256 and valid values RS256, RS384, RS512",
|
|
"OpsGenieConfigResponder.id": "One of those 3 should be filled.",
|
|
"OpsGenieConfigResponder.type": "team, user, escalation, schedule etc.",
|
|
"PagerdutyConfig.timeout": "Timeout is the maximum time allowed to invoke the pagerduty. Setting this to 0\ndoes not impose a timeout.",
|
|
"ProxyConfig.no_proxy": "NoProxy contains addresses that should not use a proxy.",
|
|
"ProxyConfig.proxy_connect_header": "ProxyConnectHeader optionally specifies headers to send to\nproxies during CONNECT requests. Assume that at least _some_ of\nthese headers are going to contain secrets and use Secret as the\nvalue type instead of string.",
|
|
"ProxyConfig.proxy_from_environment": "ProxyFromEnvironment makes use of net/http ProxyFromEnvironment function\nto determine proxies.",
|
|
"ProxyConfig.proxy_url": "HTTP proxy server to use to connect to the targets.",
|
|
"Receiver.name": "A unique identifier for this receiver.",
|
|
"RocketchatConfig.channel": "RocketChat channel override, (like #other-channel or @username).",
|
|
"SlackConfig.channel": "Slack channel override, (like #other-channel or @username).",
|
|
"SlackConfig.timeout": "Timeout is the maximum time allowed to invoke the slack. Setting this to 0\ndoes not impose a timeout.",
|
|
"TLSConfig.ca": "Text of the CA cert to use for the targets.",
|
|
"TLSConfig.ca_file": "The CA cert to use for the targets.",
|
|
"TLSConfig.ca_ref": "CARef is the name of the secret within the secret manager to use as the CA cert for the\ntargets.",
|
|
"TLSConfig.cert": "Text of the client cert file for the targets.",
|
|
"TLSConfig.cert_file": "The client cert file for the targets.",
|
|
"TLSConfig.cert_ref": "CertRef is the name of the secret within the secret manager to use as the client cert for\nthe targets.",
|
|
"TLSConfig.insecure_skip_verify": "Disable target certificate validation.",
|
|
"TLSConfig.key": "Text of the client key file for the targets.",
|
|
"TLSConfig.key_file": "The client key file for the targets.",
|
|
"TLSConfig.key_ref": "KeyRef is the name of the secret within the secret manager to use as the client key for\nthe targets.",
|
|
"TLSConfig.max_version": "Maximum TLS version.",
|
|
"TLSConfig.min_version": "Minimum TLS version.",
|
|
"TLSConfig.server_name": "Used to verify the hostname for the targets.",
|
|
"WebhookConfig.max_alerts": "MaxAlerts is the maximum number of alerts to be sent per webhook message.\nAlerts exceeding this threshold will be truncated. Setting this to 0\nallows an unlimited number of alerts.",
|
|
"WebhookConfig.timeout": "Timeout is the maximum time allowed to invoke the webhook. Setting this to 0\ndoes not impose a timeout.",
|
|
"WebhookConfig.url": "URL to send POST request to.",
|
|
},
|
|
})
|
|
zip.Describe("PUT /v1/o11y/cloud_integrations/:cloud_provider/accounts/:id", zip.Doc{
|
|
Description: "Changes a connected account's configuration for the given\nprovider, by id. Admin gate.",
|
|
Fields: map[string]string{
|
|
"UpdatableGCPAccountConfig.deploymentProjectId": "Project ID where central pub/sub for logs exist",
|
|
"UpdatableGCPAccountConfig.deploymentRegion": "Compute service region where otel collector will be deployed",
|
|
"UpdatableGCPAccountConfig.projectIds": "List of project IDs to monitor",
|
|
},
|
|
})
|
|
zip.Describe("PUT /v1/o11y/cloud_integrations/:cloud_provider/accounts/:id/services/:service_id", zip.Doc{
|
|
Description: "Changes a service's configuration for one connected account of\nthe given provider, by account id and service id. Admin gate.",
|
|
})
|
|
zip.Describe("PUT /v1/o11y/dashboard_views/:id", zip.Doc{
|
|
Description: "Replaces a saved view's name and data. Saved views are shared\norg-wide.\n\nCallers need the editor role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yDashboardView.createdAt": "CreatedAt is when the view was created.",
|
|
"O11yDashboardView.data": "Data is the listing state the view captures.",
|
|
"O11yDashboardView.id": "ID is the saved view's id.",
|
|
"O11yDashboardView.name": "Name is the saved view's name.",
|
|
"O11yDashboardView.orgId": "OrgID is the org the view belongs to.",
|
|
"O11yDashboardView.updatedAt": "UpdatedAt is when it last changed.",
|
|
"O11yDashboardViewData.order": "Order is the captured sort direction.",
|
|
"O11yDashboardViewData.query": "Query is the captured filter DSL.",
|
|
"O11yDashboardViewData.sort": "Sort is the captured sort field.",
|
|
"O11yDashboardViewData.version": "Version is the saved-view schema version; must be v1.",
|
|
"O11yDashboardViewOut.data": "Data is the saved view.",
|
|
"O11yDashboardViewOut.status": "Status is \"success\".",
|
|
"O11yDashboardViewPostable.data": "Data is the listing state the view captures.",
|
|
"O11yDashboardViewPostable.name": "Name is the saved view's name; at most 32 characters, no surrounding space.",
|
|
"O11yDashboardViewUpdateIn.id": "ID is the saved view id from the path.",
|
|
},
|
|
})
|
|
zip.Describe("PUT /v1/o11y/dashboards/:id", zip.Doc{
|
|
Description: "Updates a v2-shape dashboard's metadata, spec and tag set.\nThe name is immutable and locked dashboards are rejected.\n\nCallers need the editor role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yDashboard.createdAt": "CreatedAt is when the dashboard was created.",
|
|
"O11yDashboard.createdBy": "CreatedBy is who created it.",
|
|
"O11yDashboard.id": "ID is the dashboard's id.",
|
|
"O11yDashboard.image": "Image is an optional cover image reference.",
|
|
"O11yDashboard.locked": "Locked reports whether the dashboard is locked against edits.",
|
|
"O11yDashboard.name": "Name is the dashboard's unique internal name.",
|
|
"O11yDashboard.orgId": "OrgID is the org the dashboard belongs to.",
|
|
"O11yDashboard.schemaVersion": "SchemaVersion is the dashboard schema version.",
|
|
"O11yDashboard.source": "Source is where the dashboard came from: user, system or integration.",
|
|
"O11yDashboard.spec": "Spec is the Perses dashboard spec, carried verbatim as open JSON.",
|
|
"O11yDashboard.tags": "Tags are the dashboard's tags.",
|
|
"O11yDashboard.updatedAt": "UpdatedAt is when it last changed.",
|
|
"O11yDashboard.updatedBy": "UpdatedBy is who last changed it.",
|
|
"O11yDashboardOut.data": "Data is the dashboard.",
|
|
"O11yDashboardOut.status": "Status is \"success\".",
|
|
"O11yDashboardPostableTag.key": "Key is the tag key.",
|
|
"O11yDashboardPostableTag.value": "Value is the tag value.",
|
|
"O11yDashboardTag.key": "Key is the tag key.",
|
|
"O11yDashboardTag.value": "Value is the tag value.",
|
|
"O11yDashboardUpdatable.image": "Image is an optional cover image reference.",
|
|
"O11yDashboardUpdatable.name": "Name must equal the dashboard's existing name — it is immutable.",
|
|
"O11yDashboardUpdatable.schemaVersion": "SchemaVersion is the dashboard schema version; must be the current v6.",
|
|
"O11yDashboardUpdatable.spec": "Spec is the replacement Perses spec, carried verbatim as open JSON.",
|
|
"O11yDashboardUpdatable.tags": "Tags replace the dashboard's tags; at most ten.",
|
|
"O11yDashboardUpdateIn.id": "ID is the dashboard id from the path.",
|
|
},
|
|
})
|
|
zip.Describe("PUT /v1/o11y/dashboards/:id/lock", zip.Doc{
|
|
Description: "Locks a v2-shape dashboard. Only the dashboard's creator or an\norg admin may lock or unlock.\n\nCallers need the editor role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yDashboardIDIn.id": "ID is the resource id from the path.",
|
|
},
|
|
})
|
|
zip.Describe("PUT /v1/o11y/dashboards/:id/public", zip.Doc{
|
|
Description: "Updates the public-sharing config for a dashboard.\n\nCallers need the admin role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yPublicDashboardWrite.defaultTimeRange": "DefaultTimeRange is the fixed window as a Go duration, e.g. 1h, 30m.",
|
|
"O11yPublicDashboardWrite.timeRangeEnabled": "TimeRangeEnabled lets the public page pick its own time range; when false\nthe share fixes DefaultTimeRange.",
|
|
"O11yPublicDashboardWriteIn.id": "ID is the dashboard id from the path.",
|
|
},
|
|
})
|
|
zip.Describe("PUT /v1/o11y/downtime_schedules/:id", zip.Doc{
|
|
Description: "Replaces a planned maintenance window, by id. Editor gate.",
|
|
})
|
|
zip.Describe("PUT /v1/o11y/explorer/views/:viewId", zip.Doc{
|
|
Description: "Replaces one saved explorer view by id with the given view and\nechoes it back.\n\nCallers need the editor role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"CompositeQuery.fillGaps": "FillGaps is used to fill the gaps in the time series data",
|
|
"CompositeQuery.unit": "Unit for the time series data shown in the graph\nThis is used in alerts to format the value and threshold",
|
|
"O11ySavedViewOut.data": "Data holds the view.",
|
|
"O11ySavedViewOut.status": "Status is \"success\".",
|
|
"O11ySavedViewUpdateIn.SavedView": "SavedView is the new view content, embedded so the request body stays the\nbare view the create endpoint takes.",
|
|
"O11ySavedViewUpdateIn.viewId": "ViewID is the id of the view to replace, taken from the URL.",
|
|
"QueryEnvelope.spec": "Spec is the deferred decoding of the query if any.",
|
|
"QueryEnvelope.type": "Type is the type of the query.",
|
|
"SavedView.extraData": "ExtraData is JSON encoded data used by frontend to store additional data",
|
|
},
|
|
})
|
|
zip.Describe("PUT /v1/o11y/llm_pricing_rules", zip.Doc{
|
|
Description: "Writes the pricing-rule batch — the single write\nendpoint used by both the user and the Zeus sync job. Per-rule match is by id,\nthen sourceId, then insert; an override row is fully preserved when the\nrequest omits isOverride, only its synced_at stamped.\n\nCallers need the admin role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yLLMPricingCacheCosts.mode": "Mode is how cached tokens are counted — subtract (inside input_tokens,\nOpenAI-style), additive (reported separately, Anthropic-style) or unknown.",
|
|
"O11yLLMPricingCacheCosts.read": "Read is the cost per unit of cache-read tokens.",
|
|
"O11yLLMPricingCacheCosts.write": "Write is the cost per unit of cache-write tokens.",
|
|
"O11yLLMRulePricing.cache": "Cache is the cost of cached tokens, when the model prices them.",
|
|
"O11yLLMRulePricing.input": "Input is the cost per unit of input tokens.",
|
|
"O11yLLMRulePricing.output": "Output is the cost per unit of output tokens.",
|
|
"O11yLLMUpdatablePricingRule.enabled": "Enabled turns the rule on.",
|
|
"O11yLLMUpdatablePricingRule.id": "ID matches an existing rule by its id.",
|
|
"O11yLLMUpdatablePricingRule.isOverride": "IsOverride pins the rule so the sync job skips it. Omit to leave a matched\noverride untouched.",
|
|
"O11yLLMUpdatablePricingRule.modelName": "Model is the model the rule prices. Required.",
|
|
"O11yLLMUpdatablePricingRule.modelPattern": "ModelPattern are the model-name globs the rule matches. Required.",
|
|
"O11yLLMUpdatablePricingRule.pricing": "Pricing is the per-unit cost. Required.",
|
|
"O11yLLMUpdatablePricingRule.provider": "Provider is the model's provider. Required.",
|
|
"O11yLLMUpdatablePricingRule.sourceId": "SourceID matches an existing rule by its upstream source id.",
|
|
"O11yLLMUpdatablePricingRule.unit": "Unit is the pricing unit, e.g. per_million_tokens. Required.",
|
|
"O11yLLMUpdatablePricingRules.rules": "Rules are the rules to create or update, matched per rule.",
|
|
},
|
|
})
|
|
zip.Describe("PUT /v1/o11y/metric_reduction_rules/:id", zip.Doc{
|
|
Description: "Updates the match type and labels of a volume-control rule\nby its id; the metric name is immutable.",
|
|
Fields: map[string]string{
|
|
"O11yReductionRule.active": "Active says whether the rule is in force.",
|
|
"O11yReductionRule.createdAt": "CreatedAt is when the rule was created.",
|
|
"O11yReductionRule.createdBy": "CreatedBy is who created it.",
|
|
"O11yReductionRule.effectiveFrom": "EffectiveFrom is when the rule took effect.",
|
|
"O11yReductionRule.id": "ID is the rule's id.",
|
|
"O11yReductionRule.ingestedSamples": "IngestedSamples is how many samples arrived while the rule was active.",
|
|
"O11yReductionRule.ingestedSeries": "IngestedSeries is how many series arrived while the rule was active.",
|
|
"O11yReductionRule.labels": "Labels are the label names the rule matches.",
|
|
"O11yReductionRule.matchType": "MatchType is drop or keep.",
|
|
"O11yReductionRule.metricName": "MetricName is the metric the rule governs.",
|
|
"O11yReductionRule.retainedSamples": "RetainedSamples is how many of them were kept.",
|
|
"O11yReductionRule.retainedSeries": "RetainedSeries is how many of them were kept.",
|
|
"O11yReductionRule.updatedAt": "UpdatedAt is when the rule last changed.",
|
|
"O11yReductionRule.updatedBy": "UpdatedBy is who last changed it.",
|
|
"O11yReductionRuleOut.data": "Data holds the rule.",
|
|
"O11yReductionRuleOut.status": "Status is \"success\".",
|
|
"O11yReductionRuleSaveIn.id": "ID is the rule's id.",
|
|
"O11yReductionRuleSaveIn.labels": "Labels are the label names the rule matches. Required, at least one.",
|
|
"O11yReductionRuleSaveIn.matchType": "MatchType is drop or keep. Required.",
|
|
},
|
|
})
|
|
zip.Describe("PUT /v1/o11y/org/preferences/:name", zip.Doc{
|
|
Description: "Sets one org-scoped preference, by name. Admin gate.",
|
|
Fields: map[string]string{
|
|
"O11yUpdatablePreference.value": "Value is the value to set; its JSON type must match the preference's\ndeclared value type.",
|
|
},
|
|
})
|
|
zip.Describe("PUT /v1/o11y/orgs/me", zip.Doc{
|
|
Description: "Rewrites the caller's own organization record — display name,\nname, alias — always addressed as \"me\", never by id. Admin gate.",
|
|
Fields: map[string]string{
|
|
"O11yOrganization.alias": "Alias is an alternate name the org also answers to.",
|
|
"O11yOrganization.createdAt": "CreatedAt is when the org was created.",
|
|
"O11yOrganization.displayName": "DisplayName is what the console shows for the org.",
|
|
"O11yOrganization.id": "ID is the org id. On update it is ignored: the call always addresses the\ncaller's own org.",
|
|
"O11yOrganization.key": "Key is the org's stable numeric key, derived from its id.",
|
|
"O11yOrganization.name": "Name is the org's short name.",
|
|
"O11yOrganization.updatedAt": "UpdatedAt is when it last changed.",
|
|
},
|
|
})
|
|
zip.Describe("PUT /v1/o11y/orgs/me/filters", zip.Doc{
|
|
Description: "Replaces the org's quick filters for one signal with the\nattribute list given. Admin gate.",
|
|
Fields: map[string]string{
|
|
"O11yFilterKey.dataType": "DataType is the attribute's value type — string, int64, float64 or bool.",
|
|
"O11yFilterKey.isColumn": "IsColumn marks an attribute stored as its own column.",
|
|
"O11yFilterKey.isJSON": "IsJSON marks an attribute read out of a JSON body.",
|
|
"O11yFilterKey.key": "Key is the attribute name.",
|
|
"O11yFilterKey.type": "Type says where the attribute lives — tag or resource.",
|
|
"O11yUpdatableQuickFilters.filters": "Filters are the attributes to offer, in the order to offer them.",
|
|
"O11yUpdatableQuickFilters.signal": "Signal is the signal whose filters are being replaced.",
|
|
},
|
|
})
|
|
zip.Describe("PUT /v1/o11y/roles/:id", zip.Doc{
|
|
Description: "Replaces a custom role's description and transaction groups.\nBoth fields are mandatory — send an empty string or an empty array to clear\none — and managed roles cannot be edited.",
|
|
Fields: map[string]string{
|
|
"O11yObjectGroup.resource": "Resource is the objects' type and kind.",
|
|
"O11yObjectGroup.selectors": "Selectors pick the instances; a wildcard selects them all.",
|
|
"O11yResourceRef.kind": "Kind is the resource kind the type belongs to.",
|
|
"O11yResourceRef.type": "Type is the resource type, e.g. role, dashboard, serviceaccount.",
|
|
"O11yRoleUpdateIn.description": "Description says what the role is for. Required — send an empty string to\nclear it.",
|
|
"O11yRoleUpdateIn.transactionGroups": "TransactionGroups are the grants the role carries. Required — send an\nempty array to clear them.",
|
|
"O11yTransactionGroup.objectGroup": "ObjectGroup is the set of objects it allows the verb on.",
|
|
"O11yTransactionGroup.relation": "Relation is the verb the grant allows.",
|
|
},
|
|
})
|
|
zip.Describe("PUT /v1/o11y/route_policies/:id", zip.Doc{
|
|
Description: "Replaces a route policy, by id, answering with the stored\npolicy. Admin gate.",
|
|
Fields: map[string]string{
|
|
"O11yRoutePolicyOut.data": "Data holds the policy.",
|
|
"O11yRoutePolicyOut.status": "Status is \"success\".",
|
|
},
|
|
})
|
|
zip.Describe("PUT /v1/o11y/rules/:id", zip.Doc{
|
|
Description: "Replaces an alert rule's definition, by id. Editor gate.",
|
|
Fields: map[string]string{
|
|
"AlertCompositeQuery.unit": "Unit for the time series data shown in the graph\nThis is used to format the value and threshold",
|
|
"NotificationSettings.newGroupEvalDelay": "NewGroupEvalDelay is the grace period for new series to be excluded from alerts evaluation",
|
|
"PostableRule.source": "Source captures the source url where rule has been created",
|
|
"QueryEnvelope.spec": "Spec is the deferred decoding of the query if any.",
|
|
"QueryEnvelope.type": "Type is the type of the query.",
|
|
},
|
|
})
|
|
zip.Describe("PUT /v1/o11y/service_accounts/:id", zip.Doc{
|
|
Description: "Renames a service account.",
|
|
Fields: map[string]string{
|
|
"O11yServiceAccountUpdateIn.name": "Name is the account's new name, under the same rules it was created with.\nRequired.",
|
|
},
|
|
})
|
|
zip.Describe("PUT /v1/o11y/service_accounts/:id/keys/:fid", zip.Doc{
|
|
Description: "Renames an API key or moves its expiry.",
|
|
Fields: map[string]string{
|
|
"O11yAPIKeyUpdateIn.expiresAt": "ExpiresAt is when the key stops working, as a unix timestamp in seconds.\nZero means it never expires; a past timestamp is refused.",
|
|
"O11yAPIKeyUpdateIn.name": "Name is the key's new name, under the same rules it was created with.\nRequired.",
|
|
},
|
|
})
|
|
zip.Describe("PUT /v1/o11y/service_accounts/me", zip.Doc{
|
|
Description: "Renames the calling service account.",
|
|
Fields: map[string]string{
|
|
"O11yMyServiceAccountUpdateIn.name": "Name is the account's new name, under the same rules it was created with.\nRequired.",
|
|
},
|
|
})
|
|
zip.Describe("PUT /v1/o11y/trace-funnels/:funnel_id", zip.Doc{
|
|
Description: "Renames a funnel or rewrites its description, answering the\nfunnel as it now stands.\n\nCallers need the editor role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"FunnelStep.description": "step description",
|
|
"FunnelStep.name": "step name",
|
|
"O11yFunnelOut.data": "Data is the funnel with its steps.",
|
|
"O11yFunnelOut.status": "Status is \"success\".",
|
|
"O11yFunnelUpdateIn.description": "Description replaces the funnel's description. Empty leaves it as it was.",
|
|
"O11yFunnelUpdateIn.funnel_name": "Name replaces the funnel's name. Empty leaves it as it was.",
|
|
"O11yFunnelUpdateIn.timestamp": "Timestamp is when the change was made, as a millisecond epoch.",
|
|
},
|
|
})
|
|
zip.Describe("PUT /v1/o11y/trace-funnels/steps/update", zip.Doc{
|
|
Description: "Replaces a funnel's steps — the funnel is named in the body\nrather than the path — and answers the funnel as it now stands. A name or\ndescription sent alongside is applied too; an empty one leaves it as it was.\n\nCallers need the editor role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"FunnelStep.description": "step description",
|
|
"FunnelStep.name": "step name",
|
|
"O11yFunnelOut.data": "Data is the funnel with its steps.",
|
|
"O11yFunnelOut.status": "Status is \"success\".",
|
|
"O11yFunnelStepsUpdateIn.description": "Description replaces the funnel's description. Empty leaves it as it was.",
|
|
"O11yFunnelStepsUpdateIn.funnel_id": "FunnelID is the funnel to update.",
|
|
"O11yFunnelStepsUpdateIn.funnel_name": "Name replaces the funnel's name. Empty leaves it as it was.",
|
|
"O11yFunnelStepsUpdateIn.steps": "Steps are the funnel's steps, in order. At least two are needed before\nany analytics read will answer.",
|
|
"O11yFunnelStepsUpdateIn.timestamp": "Timestamp is when the change was made, as a millisecond epoch.",
|
|
},
|
|
})
|
|
zip.Describe("PUT /v1/o11y/user/preferences/:name", zip.Doc{
|
|
Description: "Sets one preference of the calling user, by name.\nViewer gate.",
|
|
Fields: map[string]string{
|
|
"O11yUpdatablePreference.value": "Value is the value to set; its JSON type must match the preference's\ndeclared value type.",
|
|
},
|
|
})
|
|
zip.Describe("PUT /v1/o11y/users/me/dashboards/:id/pins", zip.Doc{
|
|
Description: "Pins a dashboard for the calling user. A user can pin at most ten\ndashboards; pinning at the limit refuses with the runtime's conflict. Re-pinning\nan already-pinned dashboard is a no-op success. Pinning mutates only the caller's\npin list, not the dashboard, so a viewer may pin what a viewer may read.\n\nCallers need the viewer role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yDashboardIDIn.id": "ID is the resource id from the path.",
|
|
},
|
|
})
|
|
zip.Describe("PUT /v1/o11y/zeus/hosts", zip.Doc{
|
|
Description: "Records the deployment's host in Zeus, overwriting any prior one.\nAdmin gate.",
|
|
})
|
|
zip.Describe("PUT /v1/o11y/zeus/profiles", zip.Doc{
|
|
Description: "Records the deployment's profile in Zeus — how the team uses\nobservability today and what they plan — overwriting any prior one. Admin\ngate.",
|
|
})
|
|
zip.Describe("PUT /v1/o11y/sentinel/issues/:id", zip.Doc{
|
|
Description: "Changes an issue's lifecycle — resolve, ignore, reopen or\nassign — and returns the updated issue. Fields left unset are left unchanged.\n\nCallers need the editor role; the runtime's own gate enforces it.",
|
|
Fields: map[string]string{
|
|
"O11yErrorIssue.assignee": "Assignee is who the issue is assigned to.",
|
|
"O11yErrorIssue.count": "Count is how many occurrences have landed on the issue.",
|
|
"O11yErrorIssue.createdAt": "CreatedAt is when the issue was first recorded.",
|
|
"O11yErrorIssue.culprit": "Culprit is where it came from — the function or route blamed for it.",
|
|
"O11yErrorIssue.environment": "Environment is the deployment the issue was seen in.",
|
|
"O11yErrorIssue.fingerprint": "Fingerprint is the grouping key that puts like errors in one issue.",
|
|
"O11yErrorIssue.firstSeen": "FirstSeen is when the earliest occurrence was recorded.",
|
|
"O11yErrorIssue.id": "ID is the issue id.",
|
|
"O11yErrorIssue.lastSeen": "LastSeen is when the latest was.",
|
|
"O11yErrorIssue.level": "Level is the issue's severity, e.g. error, warning, info.",
|
|
"O11yErrorIssue.platform": "Platform is the reporting runtime, e.g. go, python, javascript.",
|
|
"O11yErrorIssue.regressed": "Regressed marks an issue that reopened after being resolved.",
|
|
"O11yErrorIssue.release": "Release is the version that produced it.",
|
|
"O11yErrorIssue.resolvedAt": "ResolvedAt is when the issue was resolved, if it is.",
|
|
"O11yErrorIssue.serviceName": "ServiceName is the service that reported it.",
|
|
"O11yErrorIssue.status": "Status is the lifecycle state: unresolved, resolved or ignored.",
|
|
"O11yErrorIssue.type": "Type is the exception type.",
|
|
"O11yErrorIssue.updatedAt": "UpdatedAt is when the issue last changed.",
|
|
"O11yErrorIssue.value": "Value is the exception value.",
|
|
"O11yErrorIssueOut.data": "Data is the issue.",
|
|
"O11yErrorIssueOut.status": "Status is \"success\".",
|
|
"O11ySentryUpdateIssueIn.assignee": "Assignee is who the issue is assigned to.",
|
|
"O11ySentryUpdateIssueIn.id": "ID is the issue id.",
|
|
"O11ySentryUpdateIssueIn.status": "Status is the new lifecycle state: unresolved, resolved or ignored.",
|
|
},
|
|
})
|
|
}
|