You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|[@opentelemetry/tracing][otel-tracing]| This module provides a full control over instrumentation and span creation. It doesn't load [`async_hooks`](https://nodejs.org/api/async_hooks.html) or any instrumentation plugin by default. It is intended for use both on the server and in the browser. |
188
+
|[@opentelemetry/tracing][otel-tracing]| This module provides a full control over instrumentation and span creation. It doesn't load [`async_hooks`](https://nodejs.org/api/async_hooks.html) or any instrumentation by default. It is intended for use both on the server and in the browser.|
189
189
|[@opentelemetry/metrics][otel-metrics]| This module provides instruments and meters for reporting of time series data. |
190
190
|[@opentelemetry/node][otel-node]| This module provides automatic tracing for Node.js applications. It is intended for use on the server only. |
191
191
|[@opentelemetry/web][otel-web]| This module provides automated instrumentation and tracing for Web applications. It is intended for use in the browser only. |
@@ -196,34 +196,32 @@ OpenTelemetry is vendor-agnostic and can upload data to any backend with various
196
196
197
197
See the [OpenTelemetry registry](https://opentelemetry.io/registry/?s=node.js) for a list of exporters available.
198
198
199
-
### Instrumentations & Plugins
199
+
### Instrumentations
200
200
201
201
OpenTelemetry can collect tracing data automatically using instrumentations. Vendors/Users can also create and use their own. Currently, OpenTelemetry supports automatic tracing for:
-[@opentelemetry/instrumentation-http][otel-instrumentation-http] previous [@opentelemetry/plugin-http][otel-plugin-http] and [@opentelemetry/plugin-https][otel-plugin-https]
@@ -247,6 +245,10 @@ To request automatic tracing support for a module not on this list, please [file
247
245
248
246
## Upgrade guidelines
249
247
248
+
### 0.19.0 to 1.0.0-rc.0
249
+
250
+
- All plugins have been removed in favor of instrumentations.
251
+
250
252
### 0.18.0 to 0.19.0
251
253
252
254
- The `@opentelemetry/propagator-b3` package previously exported three propagators: `B3Propagator`,`B3SinglePropagator`, and `B3MultiPropagator`, but now only exports the `B3Propagator`. It extracts b3 context in single and multi-header encodings, and injects context using the single-header encoding by default, but can be configured to inject context using the multi-header endcoding during construction: `new B3Propagator({ injectEncoding: B3InjectEncoding.MULTI_HEADER })`. If you were previously using the `B3SinglePropagator` or `B3MultiPropagator` directly, you should update your code to use the `B3Propagator` with the appropriate configuration. See the [readme](./packages/opentelemetry-propagator-b3/readme.md) for full details and usage.
@@ -415,11 +417,6 @@ Apache 2.0 - See [LICENSE][license-url] for more information.
We provide out-of-the-box instrumentations for many popular frameworks and libraries by using an instrumentation system (see [builtin instrumentations][builtin-instrumentations]), and provide a means for developers to create their own.
3
+
A detailed explained guide how to instrument a package is available at [instrumentation package][base-instrumentation]
4
4
5
-
We strongly recommended to create a dedicated package for newly added plugin, example: `@opentelemetry/plugin-xxx`.
5
+
For more comprehensive examples please refer to the [HTTP instrumentation][http-instrumentation] or [gRPC instrumentation][grpc-instrumentation] for node
6
+
and [XMLHttpRequest instrumentation][xhr-instrumentation] for web.
6
7
7
-
Each plugin must extend the abstract class [BasePlugin][base-plugin] implementing the below methods:
8
-
9
-
-`patch`: A function describing how the module exports for a given file should be modified.
10
-
11
-
-`unpatch`: A function describing how the module exports for a given file should be unpatched. This should generally mirror the logic in `patch`; for example, if `patch` wraps a method, `unpatch` should unwrap it.
12
-
13
-
The core `PluginLoader` class is responsible for loading the instrumented plugins that use a patch mechanism to enable automatic tracing for specific target modules. In order to load new plugin, it should export `plugin` identifier.
14
-
15
-
```typescript
16
-
exportconst plugin =newHttpPlugin(...);
17
-
```
18
-
19
-
> Example of simple module plugin created and used in the tests.
0 commit comments