Http

捕获 HTTP 请求的跨度和面包屑。(默认启用)

Import name: Sentry.httpIntegration

此集成默认启用。如果您想修改默认集成,请阅读此文档

httpIntegration 执行两个功能:

  1. 捕获 HTTP 请求的面包屑。
  2. 捕获传出 HTTP 请求的跨度。
Copied
Sentry.init({
  integrations: [Sentry.httpIntegration()],
});

Type: boolean

如果设置为 false,则不会捕获面包屑。

Type: (url: string, request: RequestOptions) => boolean

允许您定义一个方法,根据 URL 过滤传出的请求。如果该方法返回 true,则不会为传出的请求捕获任何跨度或面包屑。

回调函数接收两个参数:

  • url: 传出请求的完整 URL,包括协议、主机、端口、路径和查询字符串。例如:https://example.com/users?name=John
  • request: 一个包含传出请求选项的 RequestOptions 对象。您可以使用此对象根据请求方法或头部等属性进行过滤。

Type: (urlPath: string, request: IncomingMessage) => boolean

允许您定义一个方法,根据 URL 过滤传入的请求。如果该方法返回 true,则不会为传入的请求捕获任何跨度或事务。

回调函数接收两个参数:

  • urlPath: 传入请求的 URL 路径,包括可用的查询字符串。例如:/users?name=John
  • request: 一个包含传入请求的 IncomingMessage 对象。您可以使用此对象根据请求方法或头部等属性进行过滤。

Type: boolean (Defaults to true)

确定集成是否应为传入请求创建 会话,以跟踪 Sentry 中版本的健康状况和无崩溃率。 了解更多关于 版本健康 的信息。

您还可以通过传递一些钩子到 底层 OpenTelemetry 插装

Copied
httpIntegration({
  instrumentation?: {
    requestHook?: (span: Span, req: ClientRequest | HTTPModuleRequestIncomingMessage) => void;
    responseHook?: (span: Span, response: HTTPModuleRequestIncomingMessage | ServerResponse) => void;
    applyCustomAttributesOnSpan?: (
      span: Span,
      request: ClientRequest | HTTPModuleRequestIncomingMessage,
      response: HTTPModuleRequestIncomingMessage | ServerResponse,
    ) => void;
});