This plugin automatically instruments the undici module.

interface undici {
    allowlist?: string | RegExp | ((urlOrPath) => boolean) | (string | RegExp | ((urlOrPath) => boolean))[];
    blocklist?: string | RegExp | ((urlOrPath) => boolean) | (string | RegExp | ((urlOrPath) => boolean))[];
    enablePropagationWithAmazonHeaders?: boolean;
    enabled?: boolean;
    headers?: string[];
    hooks?: {
        request?: ((span?, req?, res?) => any);
    };
    measured?: boolean | {
        [key: string]: boolean;
    };
    propagationBlocklist?: string | RegExp | ((url) => boolean) | (string | RegExp | ((url) => boolean))[];
    service?: any;
    splitByDomain?: boolean;
    validateStatus?: ((code) => boolean);
}

Hierarchy

  • HttpClient
    • undici

Properties

allowlist?: string | RegExp | ((urlOrPath) => boolean) | (string | RegExp | ((urlOrPath) => boolean))[]

List of URLs/paths that should be instrumented.

Note that when used for an http client the entry represents a full outbound URL (https://example.org/api/foo) but when used as a server the entry represents an inbound path (/api/foo).

Type declaration

    • (urlOrPath): boolean
    • Parameters

      • urlOrPath: string

      Returns boolean

Default

/^.*$/
blocklist?: string | RegExp | ((urlOrPath) => boolean) | (string | RegExp | ((urlOrPath) => boolean))[]

List of URLs/paths that should not be instrumented. Takes precedence over allowlist if a URL matches an entry in both.

Note that when used for an http client the entry represents a full outbound URL (https://example.org/api/foo) but when used as a server the entry represents an inbound path (/api/foo).

Type declaration

    • (urlOrPath): boolean
    • Parameters

      • urlOrPath: string

      Returns boolean

Default

[]
enablePropagationWithAmazonHeaders?: boolean

Enable injection of tracing headers into requests signed with AWS IAM headers. Disable this if you get AWS signature errors (HTTP 403).

Default

false
enabled?: boolean

Whether to enable the plugin.

Default

true
headers?: string[]

An array of headers to include in the span metadata.

Default

[]
hooks?: {
    request?: ((span?, req?, res?) => any);
}

Hooks to run before spans are finished.

Type declaration

  • Optional request?: ((span?, req?, res?) => any)

    Hook to execute just before the request span finishes.

      • (span?, req?, res?): any
      • Parameters

        • Optional span: export=.Span
        • Optional req: ClientRequest
        • Optional res: IncomingMessage

        Returns any

measured?: boolean | {
    [key: string]: boolean;
}

Whether to measure the span. Can also be set to a key-value pair with span names as keys and booleans as values for more granular control.

Type declaration

  • [key: string]: boolean
propagationBlocklist?: string | RegExp | ((url) => boolean) | (string | RegExp | ((url) => boolean))[]

List of urls to which propagation headers should not be injected

Type declaration

    • (url): boolean
    • Parameters

      • url: string

      Returns boolean

service?: any

The service name to be used for this plugin.

splitByDomain?: boolean

Use the remote endpoint host as the service name instead of the default.

Default

false
validateStatus?: ((code) => boolean)

Callback function to determine if there was an error. It should take a status code as its only parameter and return true for success or false for errors.

Type declaration

    • (code): boolean
    • Parameters

      • code: number

      Returns boolean

Default

code => code < 400 || code >= 500