|
1 | | -# OpenTelemetry Browser |
| 1 | +# <img src="https://opentelemetry.io/img/logos/opentelemetry-logo-nav.png" alt="OpenTelemetry Icon" width="45" height=""> OpenTelemetry Browser |
2 | 2 |
|
3 | | -## Maintainers |
| 3 | +## About |
| 4 | + |
| 5 | +This repository is intended to be the central home for the OpenTelemetry Browser SDK. |
| 6 | + |
| 7 | +Note: At present, web instrumentation packages are maintained in the JavaScript SDK repository or the JavaScript Contrib repository: |
| 8 | +- [opentelemetry-js](https://github.com/open-telemetry/opentelemetry-js) |
| 9 | +- [opentelemetry-js-contrib](https://github.com/open-telemetry/opentelemetry-js-contrib) |
| 10 | + |
| 11 | +See the [Packages](#packages) section below for a list of browser-related packages. |
| 12 | + |
| 13 | +## Quick Start |
| 14 | + |
| 15 | +### Installation |
| 16 | + |
| 17 | +```bash |
| 18 | +npm install @opentelemetry/sdk-trace-web \ |
| 19 | + @opentelemetry/opentelemetry-browser-detector \ |
| 20 | + @opentelemetry/instrumentation \ |
| 21 | + @opentelemetry/exporter-trace-otlp-http \ |
| 22 | + @opentelemetry/instrumentation-fetch \ |
| 23 | + @opentelemetry/instrumentation-xml-http-request |
| 24 | +``` |
| 25 | + |
| 26 | +### Basic example |
| 27 | + |
| 28 | +```js |
| 29 | +import { BatchSpanProcessor, WebTracerProvider } from '@opentelemetry/sdk-trace-web'; |
| 30 | +import { resourceFromAttributes, detectResources } from '@opentelemetry/resources'; |
| 31 | +import { browserDetector } from '@opentelemetry/opentelemetry-browser-detector'; |
| 32 | +import { registerInstrumentations } from '@opentelemetry/instrumentation'; |
| 33 | +import { ATTR_SERVICE_NAME } from '@opentelemetry/semantic-conventions'; |
| 34 | +import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http'; |
| 35 | +import { FetchInstrumentation } from '@opentelemetry/instrumentation-fetch'; |
| 36 | +import { XMLHttpRequestInstrumentation } from '@opentelemetry/instrumentation-xml-http-request'; |
| 37 | + |
| 38 | +// configure resources |
| 39 | +let resource = resourceFromAttributes({ |
| 40 | + [ATTR_SERVICE_NAME]: 'my-app', |
| 41 | +}); |
| 42 | +let detectedResources = await detectResources({detectors:[browserDetector]}); |
| 43 | +resource = resource.merge(detectedResources); |
| 44 | + |
| 45 | +// configure exporter |
| 46 | +const exporter = new OTLPTraceExporter({ |
| 47 | + url: '<opentelemetry-collector-url>' |
| 48 | +}); |
| 49 | + |
| 50 | +// initialize trace provider |
| 51 | +const provider = new WebTracerProvider({ |
| 52 | + resource, |
| 53 | + spanProcessors: [new BatchSpanProcessor(exporter)] |
| 54 | +}); |
| 55 | +provider.register(); |
| 56 | + |
| 57 | +// Registering instrumentations |
| 58 | +registerInstrumentations({ |
| 59 | + instrumentations: [ |
| 60 | + new FetchInstrumentation(), |
| 61 | + new XMLHttpRequestInstrumentation() |
| 62 | + ], |
| 63 | +}); |
| 64 | +``` |
| 65 | + |
| 66 | +## Packages |
| 67 | + |
| 68 | +The following tables list browser-related packages, where they live today, and their intent. |
| 69 | + |
| 70 | +### SDK and Utilities |
| 71 | + |
| 72 | +| Package | Location | Intent | Status | |
| 73 | +| --- | --- | --- | --- | |
| 74 | +| opentelemetry-sdk-trace-web | [opentelemetry-js/packages/opentelemetry-sdk-trace-web](https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-web) | Browser tracing SDK (WebTracerProvider, web tracing setup). | stable | |
| 75 | +| opentelemetry-browser-detector | [opentelemetry-js/experimental/packages/opentelemetry-browser-detector](https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-browser-detector) | Resource detector for browser environment attributes. | experimental | |
| 76 | +| web-common | [opentelemetry-js/experimental/packages/web-common](https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/web-common) | Shared utilities for browser/web instrumentations. | experimental | |
| 77 | +| opentelemetry-context-zone | [opentelemetry-js/packages/opentelemetry-context-zone](https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-context-zone) | Zone.js-based context manager for maintaining trace context in browsers. | stable | |
| 78 | +| auto-instrumentations-web | [opentelemetry-js-contrib/packages/auto-instrumentations-web](https://github.com/open-telemetry/opentelemetry-js-contrib/tree/main/packages/auto-instrumentations-web) | Bundle that auto-enables common web instrumentations. | experimental | |
| 79 | + |
| 80 | +### Instrumentations |
| 81 | + |
| 82 | +| Package | Location | Intent | Status | |
| 83 | +| --- | --- | --- | --- | |
| 84 | +| opentelemetry-instrumentation-fetch | [opentelemetry-js/experimental/packages/opentelemetry-instrumentation-fetch](https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-instrumentation-fetch) | Instrumentation for the Fetch API. | experimental | |
| 85 | +| opentelemetry-instrumentation-xml-http-request | [opentelemetry-js/experimental/packages/opentelemetry-instrumentation-xml-http-request](https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-instrumentation-xml-http-request) | Instrumentation for XMLHttpRequest. | experimental | |
| 86 | +| instrumentation-document-load | [opentelemetry-js-contrib/packages/instrumentation-document-load](https://github.com/open-telemetry/opentelemetry-js-contrib/tree/main/packages/instrumentation-document-load) | Capture document load/navigation timing spans. | experimental | |
| 87 | +| instrumentation-long-task | [opentelemetry-js-contrib/packages/instrumentation-long-task](https://github.com/open-telemetry/opentelemetry-js-contrib/tree/main/packages/instrumentation-long-task) | Capture Long Tasks API entries as spans. | experimental | |
| 88 | +| instrumentation-user-interaction | [opentelemetry-js-contrib/packages/instrumentation-user-interaction](https://github.com/open-telemetry/opentelemetry-js-contrib/tree/main/packages/instrumentation-user-interaction) | Trace user interactions (e.g., clicks). | experimental | |
| 89 | +| plugin-react-load | [opentelemetry-js-contrib/packages/plugin-react-load](https://github.com/open-telemetry/opentelemetry-js-contrib/tree/main/packages/plugin-react-load) | Instrument React application load/mount performance. | experimental | |
| 90 | + |
| 91 | +## Contributing |
| 92 | + |
| 93 | +### Maintainers |
4 | 94 |
|
5 | 95 | - TODO |
6 | 96 |
|
7 | 97 | For more information about the maintainer role, see the [community repository](https://github.com/open-telemetry/community/blob/main/guides/contributor/membership.md#maintainer). |
8 | 98 |
|
9 | | -## Approvers |
| 99 | +### Approvers |
10 | 100 |
|
11 | 101 | - TODO |
12 | 102 |
|
|
0 commit comments