diff --git a/examples/tracer-web/examples/fetch/index.js b/examples/tracer-web/examples/fetch/index.js index 3ee96052b6..def161fa7c 100644 --- a/examples/tracer-web/examples/fetch/index.js +++ b/examples/tracer-web/examples/fetch/index.js @@ -1,16 +1,17 @@ 'use strict'; - +// for debugging +// import { context, getSpan, setSpan } from '../../../../packages/opentelemetry-api/src'; import { context, getSpan, setSpan } from '@opentelemetry/api'; import { ConsoleSpanExporter, SimpleSpanProcessor } from '@opentelemetry/tracing'; import { CollectorTraceExporter } from '@opentelemetry/exporter-collector'; import { WebTracerProvider } from '@opentelemetry/web'; -import { FetchPlugin } from '@opentelemetry/plugin-fetch'; +import { FetchInstrumentation } from '@opentelemetry/instrumentation-fetch'; import { ZoneContextManager } from '@opentelemetry/context-zone'; import { B3Propagator } from '@opentelemetry/propagator-b3'; const provider = new WebTracerProvider({ plugins: [ - new FetchPlugin({ + new FetchInstrumentation({ ignoreUrls: [/localhost:8090\/sockjs-node/], propagateTraceHeaderCorsUrls: [ 'https://cors-test.appspot.com/test', diff --git a/examples/tracer-web/package.json b/examples/tracer-web/package.json index dc193fe18b..bedb376606 100644 --- a/examples/tracer-web/package.json +++ b/examples/tracer-web/package.json @@ -38,12 +38,12 @@ "@opentelemetry/core": "^0.14.0", "@opentelemetry/exporter-collector": "^0.14.0", "@opentelemetry/exporter-zipkin": "^0.14.0", + "@opentelemetry/instrumentation-fetch": "^0.14.0", + "@opentelemetry/instrumentation-xml-http-request": "^0.14.0", "@opentelemetry/metrics": "^0.14.0", "@opentelemetry/propagator-b3": "^0.14.0", - "@opentelemetry/plugin-document-load": "^0.9.0", - "@opentelemetry/plugin-fetch": "^0.14.0", - "@opentelemetry/plugin-user-interaction": "^0.9.0", - "@opentelemetry/instrumentation-xml-http-request": "^0.14.0", + "@opentelemetry/plugin-document-load": "^0.12.0", + "@opentelemetry/plugin-user-interaction": "^0.12.0", "@opentelemetry/tracing": "^0.14.0", "@opentelemetry/web": "^0.14.0" }, diff --git a/packages/opentelemetry-plugin-fetch/.eslintignore b/packages/opentelemetry-instrumentation-fetch/.eslintignore similarity index 100% rename from packages/opentelemetry-plugin-fetch/.eslintignore rename to packages/opentelemetry-instrumentation-fetch/.eslintignore diff --git a/packages/opentelemetry-plugin-fetch/.eslintrc.js b/packages/opentelemetry-instrumentation-fetch/.eslintrc.js similarity index 100% rename from packages/opentelemetry-plugin-fetch/.eslintrc.js rename to packages/opentelemetry-instrumentation-fetch/.eslintrc.js diff --git a/packages/opentelemetry-plugin-fetch/.npmignore b/packages/opentelemetry-instrumentation-fetch/.npmignore similarity index 100% rename from packages/opentelemetry-plugin-fetch/.npmignore rename to packages/opentelemetry-instrumentation-fetch/.npmignore diff --git a/packages/opentelemetry-plugin-fetch/LICENSE b/packages/opentelemetry-instrumentation-fetch/LICENSE similarity index 100% rename from packages/opentelemetry-plugin-fetch/LICENSE rename to packages/opentelemetry-instrumentation-fetch/LICENSE diff --git a/packages/opentelemetry-plugin-fetch/README.md b/packages/opentelemetry-instrumentation-fetch/README.md similarity index 68% rename from packages/opentelemetry-plugin-fetch/README.md rename to packages/opentelemetry-instrumentation-fetch/README.md index 10e81fb381..70826c1d59 100644 --- a/packages/opentelemetry-plugin-fetch/README.md +++ b/packages/opentelemetry-instrumentation-fetch/README.md @@ -11,7 +11,7 @@ This module provides auto instrumentation for web using fetch. ## Installation ```bash -npm install --save @opentelemetry/plugin-fetch +npm install --save @opentelemetry/instrumentation-fetch ``` ## Usage @@ -20,12 +20,12 @@ npm install --save @opentelemetry/plugin-fetch 'use strict'; import { ConsoleSpanExporter, SimpleSpanProcessor } from '@opentelemetry/tracing'; import { WebTracerProvider } from '@opentelemetry/web'; -import { FetchPlugin } from '@opentelemetry/plugin-fetch'; +import { FetchInstrumentation } from '@opentelemetry/instrumentation-fetch'; import { ZoneContextManager } from '@opentelemetry/context-zone'; const provider = new WebTracerProvider({ plugins: [ - new FetchPlugin(), + new FetchInstrumentation(), ], }); @@ -35,6 +35,17 @@ provider.register({ contextManager: new ZoneContextManager(), }); +// or plugin can be also initialised separately and then set the tracer provider or meter provider +const fetchInstrumentation = new FetchInstrumentation(); +const provider = new WebTracerProvider(); +provider.register({ + contextManager: new ZoneContextManager(), +}); +fetchInstrumentation.setTracerProvider(provider); + +provider.addSpanProcessor(new SimpleSpanProcessor(new ConsoleSpanExporter())); + + // and some test fetch('http://localhost:8090/fetch.js'); @@ -63,9 +74,9 @@ Apache 2.0 - See [LICENSE][license-url] for more information. [gitter-url]: https://gitter.im/open-telemetry/opentelemetry-node?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge [license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/master/LICENSE [license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat -[dependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/status.svg?path=packages/opentelemetry-plugin-fetch -[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-plugin-fetch -[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-plugin-fetch -[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-plugin-fetch&type=dev -[npm-url]: https://www.npmjs.com/package/@opentelemetry/plugin-fetch -[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fplugin-fetch.svg +[dependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/status.svg?path=packages/opentelemetry-instrumentation-fetch +[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-instrumentation-fetch +[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-instrumentation-fetch +[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-instrumentation-fetch&type=dev +[npm-url]: https://www.npmjs.com/package/@opentelemetry/instrumentation-fetch +[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Finstrumentation-fetch.svg diff --git a/packages/opentelemetry-plugin-fetch/images/trace1.png b/packages/opentelemetry-instrumentation-fetch/images/trace1.png similarity index 100% rename from packages/opentelemetry-plugin-fetch/images/trace1.png rename to packages/opentelemetry-instrumentation-fetch/images/trace1.png diff --git a/packages/opentelemetry-plugin-fetch/images/trace2.png b/packages/opentelemetry-instrumentation-fetch/images/trace2.png similarity index 100% rename from packages/opentelemetry-plugin-fetch/images/trace2.png rename to packages/opentelemetry-instrumentation-fetch/images/trace2.png diff --git a/packages/opentelemetry-plugin-fetch/images/trace3.png b/packages/opentelemetry-instrumentation-fetch/images/trace3.png similarity index 100% rename from packages/opentelemetry-plugin-fetch/images/trace3.png rename to packages/opentelemetry-instrumentation-fetch/images/trace3.png diff --git a/packages/opentelemetry-plugin-fetch/karma.conf.js b/packages/opentelemetry-instrumentation-fetch/karma.conf.js similarity index 100% rename from packages/opentelemetry-plugin-fetch/karma.conf.js rename to packages/opentelemetry-instrumentation-fetch/karma.conf.js diff --git a/packages/opentelemetry-plugin-fetch/package.json b/packages/opentelemetry-instrumentation-fetch/package.json similarity index 91% rename from packages/opentelemetry-plugin-fetch/package.json rename to packages/opentelemetry-instrumentation-fetch/package.json index 97f3056411..5b2d714a82 100644 --- a/packages/opentelemetry-plugin-fetch/package.json +++ b/packages/opentelemetry-instrumentation-fetch/package.json @@ -1,5 +1,5 @@ { - "name": "@opentelemetry/plugin-fetch", + "name": "@opentelemetry/instrumentation-fetch", "version": "0.14.0", "description": "OpenTelemetry fetch automatic instrumentation package.", "main": "build/src/index.js", @@ -76,7 +76,8 @@ "dependencies": { "@opentelemetry/api": "^0.14.0", "@opentelemetry/core": "^0.14.0", - "@opentelemetry/web": "^0.14.0", - "shimmer": "^1.2.1" + "@opentelemetry/instrumentation": "^0.14.0", + "@opentelemetry/semantic-conventions": "^0.14.0", + "@opentelemetry/web": "^0.14.0" } } diff --git a/packages/opentelemetry-plugin-fetch/src/enums/AttributeNames.ts b/packages/opentelemetry-instrumentation-fetch/src/enums/AttributeNames.ts similarity index 68% rename from packages/opentelemetry-plugin-fetch/src/enums/AttributeNames.ts rename to packages/opentelemetry-instrumentation-fetch/src/enums/AttributeNames.ts index f216cee8be..7b9c935694 100644 --- a/packages/opentelemetry-plugin-fetch/src/enums/AttributeNames.ts +++ b/packages/opentelemetry-instrumentation-fetch/src/enums/AttributeNames.ts @@ -19,14 +19,4 @@ */ export enum AttributeNames { COMPONENT = 'component', - HTTP_HOST = 'http.host', - HTTP_FLAVOR = 'http.flavor', - HTTP_METHOD = 'http.method', - HTTP_SCHEME = 'http.scheme', - HTTP_STATUS_CODE = 'http.status_code', - HTTP_STATUS_TEXT = 'http.status_text', - HTTP_URL = 'http.url', - HTTP_TARGET = 'http.target', - HTTP_USER_AGENT = 'http.user_agent', - HTTP_RESPONSE_CONTENT_LENGTH = 'http.response_content_length', } diff --git a/packages/opentelemetry-plugin-fetch/src/fetch.ts b/packages/opentelemetry-instrumentation-fetch/src/fetch.ts similarity index 84% rename from packages/opentelemetry-plugin-fetch/src/fetch.ts rename to packages/opentelemetry-instrumentation-fetch/src/fetch.ts index 419a80cb40..0b72783d0a 100644 --- a/packages/opentelemetry-plugin-fetch/src/fetch.ts +++ b/packages/opentelemetry-instrumentation-fetch/src/fetch.ts @@ -14,11 +14,16 @@ * limitations under the License. */ -import * as shimmer from 'shimmer'; import * as api from '@opentelemetry/api'; +import { + isWrapped, + InstrumentationBase, + InstrumentationConfig, +} from '@opentelemetry/instrumentation'; import * as core from '@opentelemetry/core'; import * as web from '@opentelemetry/web'; import { AttributeNames } from './enums/AttributeNames'; +import { HttpAttribute } from '@opentelemetry/semantic-conventions'; import { FetchError, FetchResponse, SpanData } from './types'; import { VERSION } from './version'; @@ -31,7 +36,7 @@ const OBSERVER_WAIT_TIME_MS = 300; /** * FetchPlugin Config */ -export interface FetchPluginConfig extends core.PluginConfig { +export interface FetchInstrumentationConfig extends InstrumentationConfig { // the number of timing resources is limited, after the limit // (chrome 250, safari 150) the information is not collected anymore // the only way to prevent that is to regularly clean the resources @@ -40,18 +45,38 @@ export interface FetchPluginConfig extends core.PluginConfig { clearTimingResources?: boolean; // urls which should include trace headers when origin doesn't match propagateTraceHeaderCorsUrls?: web.PropagateTraceHeaderCorsUrls; + /** + * URLs that partially match any regex in ignoreUrls will not be traced. + * In addition, URLs that are _exact matches_ of strings in ignoreUrls will + * also not be traced. + */ + ignoreUrls?: Array; } /** * This class represents a fetch plugin for auto instrumentation */ -export class FetchPlugin extends core.BasePlugin> { - moduleName = 'fetch'; +export class FetchInstrumentation extends InstrumentationBase< + Promise +> { + readonly component: string = 'fetch'; + readonly version: string = VERSION; + moduleName = this.component; private _usedResources = new WeakSet(); private _tasksCount = 0; - constructor(protected _config: FetchPluginConfig = {}) { - super('@opentelemetry/plugin-fetch', VERSION); + constructor(config: FetchInstrumentationConfig = {}) { + super( + '@opentelemetry/instrumentation-fetch', + VERSION, + Object.assign({}, config) + ); + } + + init() {} + + private _getConfig(): FetchInstrumentationConfig { + return this._config; } /** @@ -63,7 +88,7 @@ export class FetchPlugin extends core.BasePlugin> { span: api.Span, corsPreFlightRequest: PerformanceResourceTiming ): void { - const childSpan = this._tracer.startSpan( + const childSpan = this.tracer.startSpan( 'CORS Preflight', { startTime: corsPreFlightRequest[web.PerformanceTimingNames.FETCH_START], @@ -86,14 +111,14 @@ export class FetchPlugin extends core.BasePlugin> { response: FetchResponse ): void { const parsedUrl = web.parseUrl(response.url); - span.setAttribute(AttributeNames.HTTP_STATUS_CODE, response.status); - span.setAttribute(AttributeNames.HTTP_STATUS_TEXT, response.statusText); - span.setAttribute(AttributeNames.HTTP_HOST, parsedUrl.host); + span.setAttribute(HttpAttribute.HTTP_STATUS_CODE, response.status); + span.setAttribute(HttpAttribute.HTTP_STATUS_TEXT, response.statusText); + span.setAttribute(HttpAttribute.HTTP_HOST, parsedUrl.host); span.setAttribute( - AttributeNames.HTTP_SCHEME, + HttpAttribute.HTTP_SCHEME, parsedUrl.protocol.replace(':', '') ); - span.setAttribute(AttributeNames.HTTP_USER_AGENT, navigator.userAgent); + span.setAttribute(HttpAttribute.HTTP_USER_AGENT, navigator.userAgent); } /** @@ -105,7 +130,7 @@ export class FetchPlugin extends core.BasePlugin> { if ( !web.shouldPropagateTraceHeaders( spanUrl, - this._config.propagateTraceHeaderCorsUrls + this._getConfig().propagateTraceHeaderCorsUrls ) ) { return; @@ -129,7 +154,7 @@ export class FetchPlugin extends core.BasePlugin> { * @private */ private _clearResources() { - if (this._tasksCount === 0 && this._config.clearTimingResources) { + if (this._tasksCount === 0 && this._getConfig().clearTimingResources) { performance.clearResourceTimings(); this._usedResources = new WeakSet(); } @@ -144,18 +169,18 @@ export class FetchPlugin extends core.BasePlugin> { url: string, options: Partial = {} ): api.Span | undefined { - if (core.isUrlIgnored(url, this._config.ignoreUrls)) { + if (core.isUrlIgnored(url, this._getConfig().ignoreUrls)) { this._logger.debug('ignoring span as url matches ignored url'); return; } const method = (options.method || 'GET').toUpperCase(); const spanName = `HTTP ${method}`; - return this._tracer.startSpan(spanName, { + return this.tracer.startSpan(spanName, { kind: api.SpanKind.CLIENT, attributes: { [AttributeNames.COMPONENT]: this.moduleName, - [AttributeNames.HTTP_METHOD]: method, - [AttributeNames.HTTP_URL]: url, + [HttpAttribute.HTTP_METHOD]: method, + [HttpAttribute.HTTP_URL]: url, }, }); } @@ -245,7 +270,6 @@ export class FetchPlugin extends core.BasePlugin> { original: (input: RequestInfo, init?: RequestInit) => Promise ): ((input: RequestInfo, init?: RequestInit) => Promise) => { const plugin = this; - return function patchConstructor( this: (input: RequestInfo, init?: RequestInit) => Promise, input: RequestInfo, @@ -253,7 +277,6 @@ export class FetchPlugin extends core.BasePlugin> { ): Promise { const url = input instanceof Request ? input.url : input; const options = input instanceof Request ? input : init || {}; - const span = plugin._createSpan(url, options); if (!span) { return original.apply(this, [url, options]); @@ -340,24 +363,21 @@ export class FetchPlugin extends core.BasePlugin> { } /** - * implements patch function + * implements enable function */ - patch() { - if (core.isWrapped(window.fetch)) { - shimmer.unwrap(window, 'fetch'); + enable() { + if (isWrapped(window.fetch)) { + this._unwrap(window, 'fetch'); this._logger.debug('removing previous patch for constructor'); } - - shimmer.wrap(window, 'fetch', this._patchConstructor()); - - return this._moduleExports; + this._wrap(window, 'fetch', this._patchConstructor()); } /** * implements unpatch function */ - unpatch() { - shimmer.unwrap(window, 'fetch'); + disable() { + this._unwrap(window, 'fetch'); this._usedResources = new WeakSet(); } } diff --git a/packages/opentelemetry-plugin-fetch/src/index.ts b/packages/opentelemetry-instrumentation-fetch/src/index.ts similarity index 100% rename from packages/opentelemetry-plugin-fetch/src/index.ts rename to packages/opentelemetry-instrumentation-fetch/src/index.ts diff --git a/packages/opentelemetry-plugin-fetch/src/types.ts b/packages/opentelemetry-instrumentation-fetch/src/types.ts similarity index 100% rename from packages/opentelemetry-plugin-fetch/src/types.ts rename to packages/opentelemetry-instrumentation-fetch/src/types.ts diff --git a/packages/opentelemetry-plugin-fetch/src/version.ts b/packages/opentelemetry-instrumentation-fetch/src/version.ts similarity index 100% rename from packages/opentelemetry-plugin-fetch/src/version.ts rename to packages/opentelemetry-instrumentation-fetch/src/version.ts diff --git a/packages/opentelemetry-plugin-fetch/test/fetch.test.ts b/packages/opentelemetry-instrumentation-fetch/test/fetch.test.ts similarity index 93% rename from packages/opentelemetry-plugin-fetch/test/fetch.test.ts rename to packages/opentelemetry-instrumentation-fetch/test/fetch.test.ts index 80c3000b1f..2c23ea3beb 100644 --- a/packages/opentelemetry-plugin-fetch/test/fetch.test.ts +++ b/packages/opentelemetry-instrumentation-fetch/test/fetch.test.ts @@ -15,6 +15,8 @@ */ import * as api from '@opentelemetry/api'; import * as core from '@opentelemetry/core'; +import { isWrapped } from '@opentelemetry/instrumentation'; + import { B3Propagator, B3InjectEncoding, @@ -30,8 +32,9 @@ import { } from '@opentelemetry/web'; import * as assert from 'assert'; import * as sinon from 'sinon'; -import { FetchPlugin, FetchPluginConfig } from '../src'; +import { FetchInstrumentation, FetchInstrumentationConfig } from '../src'; import { AttributeNames } from '../src/enums/AttributeNames'; +import { HttpAttribute } from '@opentelemetry/semantic-conventions'; class DummySpanExporter implements tracing.SpanExporter { export(spans: any) {} @@ -104,7 +107,7 @@ describe('fetch', () => { let clearResourceTimingsSpy: any; let rootSpan: api.Span; let fakeNow = 0; - let fetchPlugin: FetchPlugin; + let fetchInstrumentation: FetchInstrumentation; const url = 'http://localhost:8090/get'; const badUrl = 'http://foo.bar.com/get'; @@ -117,7 +120,7 @@ describe('fetch', () => { const prepareData = ( done: any, fileUrl: string, - config: FetchPluginConfig, + config: FetchInstrumentationConfig, method?: string ) => { sandbox = sinon.createSandbox(); @@ -164,10 +167,10 @@ describe('fetch', () => { const spyEntries = sandbox.stub(performance, 'getEntriesByType'); spyEntries.withArgs('resource').returns(resources); - fetchPlugin = new FetchPlugin(config); + fetchInstrumentation = new FetchInstrumentation(config); webTracerProviderWithZone = new WebTracerProvider({ logLevel: core.LogLevel.ERROR, - plugins: [fetchPlugin], + plugins: [fetchInstrumentation], }); webTracerWithZone = webTracerProviderWithZone.getTracer('fetch-test'); dummySpanExporter = new DummySpanExporter(); @@ -243,15 +246,15 @@ describe('fetch', () => { }); it('should wrap methods', () => { - assert.ok(core.isWrapped(window.fetch)); - fetchPlugin.patch(); - assert.ok(core.isWrapped(window.fetch)); + assert.ok(isWrapped(window.fetch)); + fetchInstrumentation.enable(); + assert.ok(isWrapped(window.fetch)); }); it('should unwrap methods', () => { - assert.ok(core.isWrapped(window.fetch)); - fetchPlugin.unpatch(); - assert.ok(!core.isWrapped(window.fetch)); + assert.ok(isWrapped(window.fetch)); + fetchInstrumentation.disable(); + assert.ok(!isWrapped(window.fetch)); }); it('should create a span with correct root span', () => { @@ -285,37 +288,37 @@ describe('fetch', () => { assert.strictEqual( attributes[keys[1]], 'GET', - `attributes ${AttributeNames.HTTP_METHOD} is wrong` + `attributes ${HttpAttribute.HTTP_METHOD} is wrong` ); assert.strictEqual( attributes[keys[2]], url, - `attributes ${AttributeNames.HTTP_URL} is wrong` + `attributes ${HttpAttribute.HTTP_URL} is wrong` ); assert.strictEqual( attributes[keys[3]], 200, - `attributes ${AttributeNames.HTTP_STATUS_CODE} is wrong` + `attributes ${HttpAttribute.HTTP_STATUS_CODE} is wrong` ); assert.ok( attributes[keys[4]] === 'OK' || attributes[keys[4]] === '', - `attributes ${AttributeNames.HTTP_STATUS_TEXT} is wrong` + `attributes ${HttpAttribute.HTTP_STATUS_TEXT} is wrong` ); assert.ok( (attributes[keys[5]] as string).indexOf('localhost') === 0, - `attributes ${AttributeNames.HTTP_HOST} is wrong` + `attributes ${HttpAttribute.HTTP_HOST} is wrong` ); assert.ok( attributes[keys[6]] === 'http' || attributes[keys[6]] === 'https', - `attributes ${AttributeNames.HTTP_SCHEME} is wrong` + `attributes ${HttpAttribute.HTTP_SCHEME} is wrong` ); assert.ok( attributes[keys[7]] !== '', - `attributes ${AttributeNames.HTTP_USER_AGENT} is not defined` + `attributes ${HttpAttribute.HTTP_USER_AGENT} is not defined` ); assert.ok( (attributes[keys[8]] as number) > 0, - `attributes ${AttributeNames.HTTP_RESPONSE_CONTENT_LENGTH} is <= 0` + `attributes ${HttpAttribute.HTTP_RESPONSE_CONTENT_LENGTH} is <= 0` ); assert.strictEqual(keys.length, 9, 'number of attributes is wrong'); diff --git a/packages/opentelemetry-plugin-fetch/test/index-webpack.ts b/packages/opentelemetry-instrumentation-fetch/test/index-webpack.ts similarity index 100% rename from packages/opentelemetry-plugin-fetch/test/index-webpack.ts rename to packages/opentelemetry-instrumentation-fetch/test/index-webpack.ts diff --git a/packages/opentelemetry-plugin-fetch/tsconfig.json b/packages/opentelemetry-instrumentation-fetch/tsconfig.json similarity index 80% rename from packages/opentelemetry-plugin-fetch/tsconfig.json rename to packages/opentelemetry-instrumentation-fetch/tsconfig.json index b06e28c796..76bcef51f2 100644 --- a/packages/opentelemetry-plugin-fetch/tsconfig.json +++ b/packages/opentelemetry-instrumentation-fetch/tsconfig.json @@ -19,9 +19,15 @@ { "path": "../opentelemetry-core" }, + { + "path": "../opentelemetry-instrumentation" + }, { "path": "../opentelemetry-propagator-b3" }, + { + "path": "../opentelemetry-semantic-conventions" + }, { "path": "../opentelemetry-tracing" }, diff --git a/packages/opentelemetry-resource-detector-gcp/tsconfig.json b/packages/opentelemetry-resource-detector-gcp/tsconfig.json index 6549996003..954354a3a0 100644 --- a/packages/opentelemetry-resource-detector-gcp/tsconfig.json +++ b/packages/opentelemetry-resource-detector-gcp/tsconfig.json @@ -9,6 +9,9 @@ "test/**/*.ts" ], "references": [ + { + "path": "../opentelemetry-api" + }, { "path": "../opentelemetry-core" }, diff --git a/tsconfig.json b/tsconfig.json index da2f2f143f..e772bb4c72 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -50,6 +50,9 @@ { "path": "packages/opentelemetry-grpc-utils" }, + { + "path": "packages/opentelemetry-instrumentation-fetch" + }, { "path": "packages/opentelemetry-instrumentation-grpc" }, @@ -68,9 +71,6 @@ { "path": "packages/opentelemetry-node" }, - { - "path": "packages/opentelemetry-plugin-fetch" - }, { "path": "packages/opentelemetry-plugin-grpc-js" },