遥测目标
创建遥测目标
beta.organization.telemetry_destinations.create(**kwargs) -> BetaTelemetryDestination为组织注册一个 OpenTelemetry 目标。
列出遥测目标
beta.organization.telemetry_destinations.list(**kwargs) -> PageCursor<BetaTelemetryDestination>列出组织的目标,最新的排在最前,可选择仅列出覆盖指定工作区的目标。
检索遥测目标
beta.organization.telemetry_destinations.retrieve(destination_id, **kwargs) -> BetaTelemetryDestination读取目标的配置、状态和最近的投递结果。
更新遥测目标
beta.organization.telemetry_destinations.update(destination_id, **kwargs) -> BetaTelemetryDestination更改遥测目标的设置、状态或其覆盖的工作区。
删除遥测目标
beta.organization.telemetry_destinations.delete(destination_id, **kwargs) -> BetaDeletedTelemetryDestination删除目标及其工作区列表。
测试遥测目标
beta.organization.telemetry_destinations.test_(destination_id, **kwargs) -> BetaTelemetryDestinationTestResponse使用目标已注册的标头向其发送一个名为 anthropic.test 的测试 span,仅发送一次且不重试,并报告目标的响应。无论目标是否以 2xx 状态响应,响应均为 200:其 result 的类型为 success,或类型为 failure 并在 error 中给出原因。目标的配置、state 和 delivery_health 不会改变。已禁用的目标也可以测试。对同一目标的两次测试之间请等待 10 秒;过早发出的请求可能会收到 429 状态。
Models
class BetaDeletedTelemetryDestination { type: :telemetry_destination_deleted, id }Confirmation that a destination was deleted.
Confirmation that a destination was deleted.
ID of the deleted destination (tdst_...).
class BetaTelemetryDestination { type: :telemetry_destination, id, created_at, 8 more }An OpenTelemetry destination: an OTLP/HTTP endpoint, the request headers sent with every delivery to it, what the exported spans contain, and which workspaces it covers. A destination belongs to an organization. A workspace's spans go to every enabled destination that covers it.
An OpenTelemetry destination: an OTLP/HTTP endpoint, the request headers sent with every delivery to it, what the exported spans contain, and which workspaces it covers. A destination belongs to an organization. A workspace's spans go to every enabled destination that covers it.
type BetaTelemetryDestinationContentMode = :metadata_only | :contentWhat the spans that the API exports to a telemetry destination contain.
What the spans that the API exports to a telemetry destination contain.
See the OpenTelemetry export guide to learn what the spans contain in each content mode.
The spans contain identifiers, timing, status, token counts, and similar metadata. They don't contain prompt text, completion text, or tool inputs and outputs.
:contentThe spans contain the same metadata as metadata_only, plus message and tool content.
The spans contain the same metadata as metadata_only, plus message and tool content.
An organization with a data-handling restriction, such as under HIPAA, can't choose this mode. The API exports only metadata for such an organization, even to a destination that already has content.
class BetaTelemetryDestinationDeliveryHealth { last_error, last_error_at, last_success_at }The most recent delivery results that the API records for a telemetry destination.
The most recent delivery results that the API records for a telemetry destination.
Changes to the destination's configuration or state don't reset these fields. Changes to these fields don't change updated_at. The values can lag behind the latest deliveries.
See the OpenTelemetry export guide to learn how the API delivers spans and when it disables a destination.
last_error: StringA message that describes the most recent failed delivery to the destination, or null if no delivery has failed yet.
A message that describes the most recent failed delivery to the destination, or null if no delivery has failed yet.
Examples are temporary DNS failure, TLS failure, timeout, connection failure, invalid address, HTTP error (status 503), and redirect (status 301). The message is invalid address both for a hostname that doesn't exist and for an address that isn't publicly routable. It never contains the endpoint's response body, a header value, a network address, or TLS details.
last_error and last_error_at always change together. A later successful delivery doesn't clear them. If last_success_at is later than last_error_at, a delivery has succeeded since this failure.
See the OpenTelemetry export guide to learn the likely cause of each error.
last_error_at: TimeTime of the failure that last_error describes. Changes together with last_error. Null until a delivery first fails.
Time of the failure that last_error describes. Changes together with last_error. Null until a delivery first fails.
last_success_at: TimeTime of the most recent successful delivery to the destination, or null if no delivery has succeeded yet.
Time of the most recent successful delivery to the destination, or null if no delivery has succeeded yet.
type BetaTelemetryDestinationDisabledReason = BetaTelemetryDestinationDisabledReasonCaller | BetaTelemetryDestinationDisabledReasonSustainedFailure | BetaTelemetryDestinationDisabledReasonInvalidAddress | BetaTelemetryDestinationDisabledReasonRedirectWhy the destination is disabled: caller when a caller disabled it, or the reason the API disabled it automatically (sustained_failure, invalid_address, or redirect). Every automatic disable is reversible with an update that sets state to enabled. An update that sets disabled on a destination that is already disabled keeps its reason.
Why the destination is disabled: caller when a caller disabled it, or the reason the API disabled it automatically (sustained_failure, invalid_address, or redirect). Every automatic disable is reversible with an update that sets state to enabled. An update that sets disabled on a destination that is already disabled keeps its reason.
class BetaTelemetryDestinationDisabledReasonCaller { type: :caller }A caller disabled the destination with an update that set state to disabled.
A caller disabled the destination with an update that set state to disabled.
class BetaTelemetryDestinationDisabledReasonInvalidAddress { type: :invalid_address }The API disabled the destination because deliveries to it failed for longer than the same threshold as for sustained_failure, and the most recent failed delivery failed with an invalid address: the DNS answer says that the endpoint's hostname doesn't exist or doesn't have an address, or the address that the API would connect to isn't publicly routable or is reserved, for example a loopback, link-local, private-network, or cloud-metadata address. The API doesn't connect to such an address, and retries the delivery a bounded number of times as it does after a timeout. A timeout or a server failure of the DNS lookup is a temporary DNS failure instead, not an invalid address.
The API disabled the destination because deliveries to it failed for longer than the same threshold as for sustained_failure, and the most recent failed delivery failed with an invalid address: the DNS answer says that the endpoint's hostname doesn't exist or doesn't have an address, or the address that the API would connect to isn't publicly routable or is reserved, for example a loopback, link-local, private-network, or cloud-metadata address. The API doesn't connect to such an address, and retries the delivery a bounded number of times as it does after a timeout. A timeout or a server failure of the DNS lookup is a temporary DNS failure instead, not an invalid address.
class BetaTelemetryDestinationDisabledReasonRedirect { type: :redirect }The API disabled the destination because the endpoint answered a delivery with a 3xx status. Redirects are never followed, and one such answer disables the destination at once.
The API disabled the destination because the endpoint answered a delivery with a 3xx status. Redirects are never followed, and one such answer disables the destination at once.
class BetaTelemetryDestinationDisabledReasonSustainedFailure { type: :sustained_failure }The API disabled the destination because deliveries to it failed, with no successful delivery in between, for longer than a threshold that Anthropic configures and that is not part of this contract. The reason is invalid_address instead when the most recent failed delivery failed with an invalid address.
The API disabled the destination because deliveries to it failed, with no successful delivery in between, for longer than a threshold that Anthropic configures and that is not part of this contract. The reason is invalid_address instead when the most recent failed delivery failed with an invalid address.
type BetaTelemetryDestinationState = BetaTelemetryDestinationStateEnabled | BetaTelemetryDestinationStateDisabledWhether a telemetry destination receives deliveries.
Whether a telemetry destination receives deliveries.
A caller can set either state. The API also disables an enabled destination on its own in some cases. The reason of the disabled state says whether a caller or the API disabled the destination and, when the API did, why.
See the OpenTelemetry export guide to learn when the API disables a destination.
class BetaTelemetryDestinationStateEnabled { type: :enabled }The telemetry destination receives the spans of the workspaces that it covers.
The telemetry destination receives the spans of the workspaces that it covers.
class BetaTelemetryDestinationStateDisabled { type: :disabled, reason }The API doesn't deliver anything to the telemetry destination.
The API doesn't deliver anything to the telemetry destination.
Spans produced while it is disabled aren't delivered later.
Whether a caller or the API disabled the destination and, when the API did, why. Read-only.
Whether a caller or the API disabled the destination and, when the API did, why. Read-only.
class BetaTelemetryDestinationStateDisabled { type: :disabled, reason }The API doesn't deliver anything to the telemetry destination.
The API doesn't deliver anything to the telemetry destination.
Spans produced while it is disabled aren't delivered later.
Whether a caller or the API disabled the destination and, when the API did, why. Read-only.
Whether a caller or the API disabled the destination and, when the API did, why. Read-only.
class BetaTelemetryDestinationStateDisabledParams { type: :disabled }Stop deliveries to the telemetry destination.
Stop deliveries to the telemetry destination.
Spans produced while it is disabled aren't delivered later. A destination that is already disabled keeps its reason.
class BetaTelemetryDestinationStateEnabled { type: :enabled }The telemetry destination receives the spans of the workspaces that it covers.
The telemetry destination receives the spans of the workspaces that it covers.
class BetaTelemetryDestinationStateEnabledParams { type: :enabled }Start deliveries to the telemetry destination again.
Start deliveries to the telemetry destination again.
This doesn't reset delivery_health.
type BetaTelemetryDestinationStateParams = BetaTelemetryDestinationStateEnabledParams | BetaTelemetryDestinationStateDisabledParamsThe state to set on a telemetry destination, by type alone.
The state to set on a telemetry destination, by type alone.
A caller can't set the reason of a disabled state. Only the API sets it.
class BetaTelemetryDestinationStateEnabledParams { type: :enabled }Start deliveries to the telemetry destination again.
Start deliveries to the telemetry destination again.
This doesn't reset delivery_health.
class BetaTelemetryDestinationStateDisabledParams { type: :disabled }Stop deliveries to the telemetry destination.
Stop deliveries to the telemetry destination.
Spans produced while it is disabled aren't delivered later. A destination that is already disabled keeps its reason.
class BetaTelemetryDestinationTestFailure { type: :failure, error }The test span was not delivered.
The test span was not delivered.
A message that describes why the test span was not delivered, including the HTTP status code when the destination returned one. Examples: HTTP error (status 403), timeout, TLS failure. It has the same form as the destination's delivery_health.last_error and never contains the destination's response body, any header value, a network address, or TLS details.
class BetaTelemetryDestinationTestResponse { type: :telemetry_destination_test, result }The result of one test span sent to a destination.
The result of one test span sent to a destination.
How the test went: success when the destination answered with a 2xx status, else failure with the reason.
How the test went: success when the destination answered with a 2xx status, else failure with the reason.
class BetaTelemetryDestinationTestSuccess { type: :success }The destination answered the test span with a 2xx status.
The destination answered the test span with a 2xx status.
class BetaTelemetryDestinationTestFailure { type: :failure, error }The test span was not delivered.
The test span was not delivered.
A message that describes why the test span was not delivered, including the HTTP status code when the destination returned one. Examples: HTTP error (status 403), timeout, TLS failure. It has the same form as the destination's delivery_health.last_error and never contains the destination's response body, any header value, a network address, or TLS details.
type BetaTelemetryDestinationTestResult = BetaTelemetryDestinationTestSuccess | BetaTelemetryDestinationTestFailureThe outcome of a test: success, or failure with the reason.
The outcome of a test: success, or failure with the reason.
class BetaTelemetryDestinationTestSuccess { type: :success }The destination answered the test span with a 2xx status.
The destination answered the test span with a 2xx status.
class BetaTelemetryDestinationTestFailure { type: :failure, error }The test span was not delivered.
The test span was not delivered.
A message that describes why the test span was not delivered, including the HTTP status code when the destination returned one. Examples: HTTP error (status 403), timeout, TLS failure. It has the same form as the destination's delivery_health.last_error and never contains the destination's response body, any header value, a network address, or TLS details.
class BetaTelemetryDestinationTestSuccess { type: :success }The destination answered the test span with a 2xx status.
The destination answered the test span with a 2xx status.
class BetaTelemetryDestinationTraces { content_mode, enabled, endpoint_url, max_content_bytes }A telemetry destination's settings for the traces it receives.
A telemetry destination's settings for the traces it receives.
content_mode: BetaTelemetryDestinationContentModeWhat the exported spans contain.
What the exported spans contain.
The spans contain identifiers, timing, status, token counts, and similar metadata. They don't contain prompt text, completion text, or tool inputs and outputs.
:contentThe spans contain the same metadata as metadata_only, plus message and tool content.
The spans contain the same metadata as metadata_only, plus message and tool content.
An organization with a data-handling restriction, such as under HIPAA, can't choose this mode. The API exports only metadata for such an organization, even to a destination that already has content.
Whether the destination receives traces. A destination whose enabled is false keeps its other settings.
endpoint_url: StringThe full URL that the API posts traces to, exactly as registered, or null if the destination doesn't have one.
The full URL that the API posts traces to, exactly as registered, or null if the destination doesn't have one.
When it is null, the API posts traces to endpoint_url with /v1/traces appended.
max_content_bytes: IntegerThe most bytes of content that one exported span can contain, or null if only the API's maximum applies.
The most bytes of content that one exported span can contain, or null if only the API's maximum applies.
Content means model prompts and responses, and tool inputs and outputs. The API shortens longer content to this size before it delivers the span. A destination whose content_mode is metadata_only keeps this value. It applies once content_mode is content.
class BetaTelemetryDestinationTracesParams { content_mode, enabled, endpoint_url, max_content_bytes }The settings for the traces that a telemetry destination receives, as a create or update request sets them. An omitted field takes its default on create and keeps its stored value on update.
The settings for the traces that a telemetry destination receives, as a create or update request sets them. An omitted field takes its default on create and keeps its stored value on update.
content_mode: BetaTelemetryDestinationContentModeWhat the exported spans contain. Defaults to metadata_only on create.
What the exported spans contain. Defaults to metadata_only on create.
On update, null sets metadata_only.
The spans contain identifiers, timing, status, token counts, and similar metadata. They don't contain prompt text, completion text, or tool inputs and outputs.
:contentThe spans contain the same metadata as metadata_only, plus message and tool content.
The spans contain the same metadata as metadata_only, plus message and tool content.
An organization with a data-handling restriction, such as under HIPAA, can't choose this mode. The API exports only metadata for such an organization, even to a destination that already has content.
Whether the destination receives traces. Defaults to true on create. It cannot be null.
endpoint_url: StringThe full URL of your collector's traces endpoint, for a collector that takes traces on a path other than /v1/traces. The API posts traces to it exactly as given and appends nothing.
The full URL of your collector's traces endpoint, for a collector that takes traces on a path other than /v1/traces. The API posts traces to it exactly as given and appends nothing.
The same rules as for endpoint_url apply, except that any path is allowed. It must have the same scheme, host, and port as endpoint_url. At most 2,048 characters.
On create, null is the same as leaving it out. On update, null removes it. The API then posts traces to endpoint_url with /v1/traces appended. A change of this URL alone keeps the registered headers.
max_content_bytes: IntegerThe most bytes of content that one exported span can contain, from 1 up to the API's maximum. null sets no bound, so only the API's maximum applies.
The most bytes of content that one exported span can contain, from 1 up to the API's maximum. null sets no bound, so only the API's maximum applies.
On create, leaving it out is the same as null. The error for a value above the maximum states the maximum.
type BetaTelemetryDestinationWorkspaces = BetaTelemetryDestinationWorkspacesAll | BetaTelemetryDestinationWorkspacesInclude | BetaTelemetryDestinationWorkspacesExcludeWhich of the organization's workspaces a telemetry destination covers.
Which of the organization's workspaces a telemetry destination covers.
Several destinations can cover the same workspace. Each of them receives the workspace's spans while it is enabled.
The workspace list of an include or exclude destination isn't part of the destination object. List the destination's workspaces to read it. Add or remove one workspace at a time, or replace the whole list with an update. A list holds at most 1,000 workspaces.
class BetaTelemetryDestinationWorkspacesAll { type: :all }The destination covers every workspace of the organization, including the default workspace, archived workspaces, and workspaces created later. It doesn't have a list.
The destination covers every workspace of the organization, including the default workspace, archived workspaces, and workspaces created later. It doesn't have a list.
class BetaTelemetryDestinationWorkspacesInclude { type: :include }The destination covers the workspaces on its list, and no others.
The destination covers the workspaces on its list, and no others.
class BetaTelemetryDestinationWorkspacesExclude { type: :exclude }The destination covers every workspace of the organization except the workspaces on its list. A workspace created later is covered until it is added to the list.
The destination covers every workspace of the organization except the workspaces on its list. A workspace created later is covered until it is added to the list.
class BetaTelemetryDestinationWorkspacesAll { type: :all }The destination covers every workspace of the organization, including the default workspace, archived workspaces, and workspaces created later. It doesn't have a list.
The destination covers every workspace of the organization, including the default workspace, archived workspaces, and workspaces created later. It doesn't have a list.
class BetaTelemetryDestinationWorkspacesAllParams { type: :all }Cover every workspace of the organization. Doesn't take workspace_ids.
Cover every workspace of the organization. Doesn't take workspace_ids.
An update that sets all empties the destination's workspace list.
class BetaTelemetryDestinationWorkspacesExclude { type: :exclude }The destination covers every workspace of the organization except the workspaces on its list. A workspace created later is covered until it is added to the list.
The destination covers every workspace of the organization except the workspaces on its list. A workspace created later is covered until it is added to the list.
class BetaTelemetryDestinationWorkspacesExcludeParams { type: :exclude, workspace_ids }Cover every workspace of the organization except the workspaces on the list.
Cover every workspace of the organization except the workspaces on the list.
workspace_ids: Array[String]The IDs of the workspaces on the destination's list (wrkspc_...). At most 100 per request.
The IDs of the workspaces on the destination's list (wrkspc_...). At most 100 per request.
On create, these workspaces become the destination's list. If you leave workspace_ids out, the list starts empty. If the API refuses one of the IDs, it doesn't create the destination.
On update, workspace_ids replaces the whole list. A workspace that stays on the list keeps its entry and its created_at. An empty array empties the list. If you leave workspace_ids out and the type stays the same, the list doesn't change. If you leave it out and the type changes, the new list starts empty. After a change to include without workspace_ids, the destination doesn't cover any workspace until one is added. After a change to exclude without workspace_ids, it covers every workspace.
An ID sent more than once is added once. An archived workspace can't be added to a list. An update can keep an archived workspace that is already on the list.
class BetaTelemetryDestinationWorkspacesInclude { type: :include }The destination covers the workspaces on its list, and no others.
The destination covers the workspaces on its list, and no others.
class BetaTelemetryDestinationWorkspacesIncludeParams { type: :include, workspace_ids }Cover only the workspaces on the list.
Cover only the workspaces on the list.
workspace_ids: Array[String]The IDs of the workspaces on the destination's list (wrkspc_...). At most 100 per request.
The IDs of the workspaces on the destination's list (wrkspc_...). At most 100 per request.
On create, these workspaces become the destination's list. If you leave workspace_ids out, the list starts empty. If the API refuses one of the IDs, it doesn't create the destination.
On update, workspace_ids replaces the whole list. A workspace that stays on the list keeps its entry and its created_at. An empty array empties the list. If you leave workspace_ids out and the type stays the same, the list doesn't change. If you leave it out and the type changes, the new list starts empty. After a change to include without workspace_ids, the destination doesn't cover any workspace until one is added. After a change to exclude without workspace_ids, it covers every workspace.
An ID sent more than once is added once. An archived workspace can't be added to a list. An update can keep an archived workspace that is already on the list.
type BetaTelemetryDestinationWorkspacesParams = BetaTelemetryDestinationWorkspacesAllParams | BetaTelemetryDestinationWorkspacesIncludeParams | BetaTelemetryDestinationWorkspacesExcludeParamsWhich of the organization's workspaces a telemetry destination covers, as a create or update request sets it.
Which of the organization's workspaces a telemetry destination covers, as a create or update request sets it.
遥测目标工作区
列出遥测目标工作区
beta.organization.telemetry_destinations.workspaces.list(destination_id, **kwargs) -> PageCursor<BetaTelemetryDestinationWorkspace>列出目标工作区列表中的工作区,最新条目排在最前。
添加遥测目标工作区
beta.organization.telemetry_destinations.workspaces.add(workspace_id, **kwargs) -> BetaTelemetryDestinationWorkspace向目标的工作区列表中添加一个工作区。
移除遥测目标工作区
beta.organization.telemetry_destinations.workspaces.remove(workspace_id, **kwargs) -> BetaDeletedTelemetryDestinationWorkspace从目标的工作区列表中移除一个工作区。