DatadogClient class

A composable client for use with the http package that supports tracking network requests and sending them to Datadog.

If the RUM feature is enabled, the SDK will send information about RUM Resources (calling DatadogRum.startResource, DatadogRum.stopResource, and DatadogRum.stopResourceWithErrorInfo) for all intercepted requests.

This can additionally set tracing headers on your requests, which allows for distributed tracing. You can set which format of tracing header using the tracingHeaderTypes parameter. Multiple tracing formats are allowed. The percentage of resources traced in this way is determined by DatadogRumConfiguration.traceSampleRate.

To specify which hosts are 1st party (and therefore should have tracing Spans sent), see DatadogConfiguration.firstPartyHosts. You can also set first party hosts after initialization by setting DatadogSdk.firstPartyHosts

If you need to ignore specific endpoints, for example if you are using another tracking library like datadog_gql_link, you can ignore specific url patterns with the ignoreUrlPatterns parameter. Any URLs that are match any of the provided regular expressions will not be tracked by this client.

DatadogClient only modifies calls made through itself, unlike DatadogTrackingHttpClient, which overrides all calls made by HttpClient and includes network calls made by the Flutter SDK. However, DatadogClient allows you to compose with other http.BaseClient based libraries like cupertino_http and cronet_http, which DatadogTrackingHttpClient would miss.

DatadogClient and DatadogTrackingHttpClient can be used together if needed, and will not interfere with each other.

See also DatadogTrackingHttpClient

Constructors

DatadogClient({required DatadogSdk datadogSdk, DatadogClientAttributesProvider? attributesProvider, List<RegExp> ignoreUrlPatterns = const [], Client? innerClient})

Properties

attributesProvider DatadogClientAttributesProvider?
final
datadogSdk → DatadogSdk
final
hashCode int
The hash code for this object.
no setterinherited
ignoreUrlPatterns List<RegExp>
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

close() → void
Closes the client and cleans up any resources associated with it.
inherited
delete(Uri url, {Map<String, String>? headers, Object? body, Encoding? encoding}) Future<Response>
Sends an HTTP DELETE request with the given headers to the given URL.
inherited
get(Uri url, {Map<String, String>? headers}) Future<Response>
Sends an HTTP GET request with the given headers to the given URL.
inherited
Sends an HTTP HEAD request with the given headers to the given URL.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
patch(Uri url, {Map<String, String>? headers, Object? body, Encoding? encoding}) Future<Response>
Sends an HTTP PATCH request with the given headers and body to the given URL.
inherited
post(Uri url, {Map<String, String>? headers, Object? body, Encoding? encoding}) Future<Response>
Sends an HTTP POST request with the given headers and body to the given URL.
inherited
put(Uri url, {Map<String, String>? headers, Object? body, Encoding? encoding}) Future<Response>
Sends an HTTP PUT request with the given headers and body to the given URL.
inherited
read(Uri url, {Map<String, String>? headers}) Future<String>
Sends an HTTP GET request with the given headers to the given URL and returns a Future that completes to the body of the response as a String.
inherited
readBytes(Uri url, {Map<String, String>? headers}) Future<Uint8List>
Sends an HTTP GET request with the given headers to the given URL and returns a Future that completes to the body of the response as a list of bytes.
inherited
send(BaseRequest request) Future<StreamedResponse>
Sends an HTTP request and asynchronously returns the response.
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited