Product
Socket Now Supports uv.lock Files
Socket now supports uv.lock files to ensure consistent, secure dependency resolution for Python projects and enhance supply chain security.
@opentelemetry/instrumentation-xml-http-request
Advanced tools
OpenTelemetry instrumentation for XMLHttpRequest http client in web browsers
Note: This is an experimental package under active development. New releases may include breaking changes.
This module provides auto instrumentation for web using XMLHttpRequest .
npm install --save @opentelemetry/instrumentation-xml-http-request
import {
ConsoleSpanExporter,
SimpleSpanProcessor,
WebTracerProvider,
} from '@opentelemetry/sdk-trace-web';
import { XMLHttpRequestInstrumentation } from '@opentelemetry/instrumentation-xml-http-request';
import { ZoneContextManager } from '@opentelemetry/context-zone';
import { registerInstrumentations } from '@opentelemetry/instrumentation';
const providerWithZone = new WebTracerProvider({
spanProcessors: [new SimpleSpanProcessor(new ConsoleSpanExporter())]
});
providerWithZone.register({
contextManager: new ZoneContextManager(),
});
registerInstrumentations({
instrumentations: [
new XMLHttpRequestInstrumentation({
propagateTraceHeaderCorsUrls: ['http://localhost:8090']
}),
],
});
const webTracerWithZone = providerWithZone.getTracer('default');
/////////////////////////////////////////
// or plugin can be also initialised separately and then set the tracer provider or meter provider
const xmlHttpRequestInstrumentation = new XMLHttpRequestInstrumentation({
propagateTraceHeaderCorsUrls: ['http://localhost:8090']
});
const providerWithZone = new WebTracerProvider();
providerWithZone.register({
contextManager: new ZoneContextManager(),
});
xmlHttpRequestInstrumentation.setTracerProvider(providerWithZone);
/////////////////////////////////////////
// and some test
const req = new XMLHttpRequest();
req.open('GET', 'http://localhost:8090/xml-http-request.js', true);
req.send();
XHR instrumentation plugin has few options available to choose from. You can set the following:
Options | Type | Description |
---|---|---|
applyCustomAttributesOnSpan | XHRCustomAttributeFunction | Function for adding custom attributes |
ignoreNetworkEvents | boolean | Disable network events being added as span events (network events are added by default) |
measureRequestSize | boolean | Measure outgoing request length (outgoing request length is not measured by default) |
This package uses @opentelemetry/semantic-conventions
version 1.22+
, which implements Semantic Convention Version 1.7.0
Attributes collected:
Attribute | Short Description |
---|---|
http.status_code | HTTP response status code |
http.host | The value of the HTTP host header |
http.user_agent | Value of the HTTP User-Agent header sent by the client |
http.scheme | The URI scheme identifying the used protocol |
http.url | Full HTTP request URL |
http.method | HTTP request method |
http.request_content_length_uncompressed | Uncompressed size of the request body, if any body exists |
See examples/tracer-web for a short example.
Apache 2.0 - See LICENSE for more information.
FAQs
OpenTelemetry instrumentation for XMLHttpRequest http client in web browsers
The npm package @opentelemetry/instrumentation-xml-http-request receives a total of 138,990 weekly downloads. As such, @opentelemetry/instrumentation-xml-http-request popularity was classified as popular.
We found that @opentelemetry/instrumentation-xml-http-request demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket now supports uv.lock files to ensure consistent, secure dependency resolution for Python projects and enhance supply chain security.
Research
Security News
Socket researchers have discovered multiple malicious npm packages targeting Solana private keys, abusing Gmail to exfiltrate the data and drain Solana wallets.
Security News
PEP 770 proposes adding SBOM support to Python packages to improve transparency and catch hidden non-Python dependencies that security tools often miss.