This module provides Zone Context Manager with a peer dependency for zone-js for Web applications. If you use Angular you already have the zone-js and you should use this package. If you don't have your own zone-js please use @opentelemetry/context-zone
Please note that due to an issue with zone.js
, the ZoneContextManager
does not work with JS code targeting ES2017+
. In order to use the ZoneContextManager
, please transpile back to ES2015
.
npm install --save @opentelemetry/context-zone-peer-dep
import { context, trace } from '@opentelemetry/api'; import { ConsoleSpanExporter, SimpleSpanProcessor, WebTracerProvider, } from '@opentelemetry/sdk-trace-web'; import { ZoneContextManager } from '@opentelemetry/context-zone-peer-dep'; const providerWithZone = new WebTracerProvider({ spanProcessors: [new SimpleSpanProcessor(new ConsoleSpanExporter())] }); providerWithZone.register({ contextManager: new ZoneContextManager() }); // Example how the ZoneContextManager keeps the reference to the correct context during async operations const webTracerWithZone = providerWithZone.getTracer('default'); const span1 = webTracerWithZone.startSpan('foo1'); context.with(trace.setSpan(context.active(), span1, () => { console.log('Current span is span1', trace.getSpan(context.active()) === span1); setTimeout(() => { const span2 = webTracerWithZone.startSpan('foo2'); console.log('Current span is span1', trace.getSpan(context.active()) === span1); context.with(trace.setSpan(context.active(), span2, () => { console.log('Current span is span2', trace.getSpan(context.active()) === span2); setTimeout(() => { console.log('Current span is span2', trace.getSpan(context.active()) === span2); }, 500); }); // there is a timeout which still keeps span2 active console.log('Current span is span2', trace.getSpan(context.active()) === span2); }, 500); console.log('Current span is span1', trace.getSpan(context.active()) === span1); });
Apache 2.0 - See LICENSE for more information.
Share feedback Package Sidebar Installnpm i @opentelemetry/context-zone-peer-dep
3 months ago
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4