From 91612c4d5eb44c79510e1c47399054432295d2fa Mon Sep 17 00:00:00 2001 From: Bartlomiej Obecny Date: Tue, 8 Dec 2020 14:27:02 +0100 Subject: [PATCH] chore: moving plugin from api to core (#1715) --- packages/opentelemetry-api/src/index.ts | 1 - packages/opentelemetry-core/src/index.ts | 1 + .../src/platform/BaseAbstractPlugin.ts | 10 ++-------- .../src/platform/browser/BasePlugin.ts | 8 ++------ .../opentelemetry-core/src/platform/node/BasePlugin.ts | 5 ++--- .../src/trace}/Plugin.ts | 3 +-- .../opentelemetry-grpc-utils/test/grpcUtils.test.ts | 8 ++++++-- .../src/instrumentation/PluginLoader.ts | 8 ++------ packages/opentelemetry-plugin-fetch/src/fetch.ts | 2 +- packages/opentelemetry-plugin-grpc-js/src/types.ts | 2 +- packages/opentelemetry-plugin-grpc/src/types.ts | 2 +- packages/opentelemetry-plugin-http/src/types.ts | 3 ++- 12 files changed, 21 insertions(+), 32 deletions(-) rename packages/{opentelemetry-api/src/trace/instrumentation => opentelemetry-core/src/trace}/Plugin.ts (96%) diff --git a/packages/opentelemetry-api/src/index.ts b/packages/opentelemetry-api/src/index.ts index e290b8a6c7..09fc2f2b24 100644 --- a/packages/opentelemetry-api/src/index.ts +++ b/packages/opentelemetry-api/src/index.ts @@ -33,7 +33,6 @@ export * from './metrics/Observation'; export * from './metrics/ObserverResult'; export * from './trace/attributes'; export * from './trace/Event'; -export * from './trace/instrumentation/Plugin'; export * from './trace/link_context'; export * from './trace/link'; export * from './trace/NoopLogger'; diff --git a/packages/opentelemetry-core/src/index.ts b/packages/opentelemetry-core/src/index.ts index e3a836e1b2..0835399ec1 100644 --- a/packages/opentelemetry-core/src/index.ts +++ b/packages/opentelemetry-core/src/index.ts @@ -30,6 +30,7 @@ export * from './correlation-context/correlation-context'; export * from './correlation-context/propagation/HttpCorrelationContext'; export * from './platform'; export * from './trace/NoRecordingSpan'; +export * from './trace/Plugin'; export * from './trace/sampler/AlwaysOffSampler'; export * from './trace/sampler/AlwaysOnSampler'; export * from './trace/sampler/ParentBasedSampler'; diff --git a/packages/opentelemetry-core/src/platform/BaseAbstractPlugin.ts b/packages/opentelemetry-core/src/platform/BaseAbstractPlugin.ts index 7a334310fd..d6dcda1e47 100644 --- a/packages/opentelemetry-core/src/platform/BaseAbstractPlugin.ts +++ b/packages/opentelemetry-core/src/platform/BaseAbstractPlugin.ts @@ -14,14 +14,8 @@ * limitations under the License. */ -import { - Tracer, - Plugin, - Logger, - PluginConfig, - TracerProvider, - PluginInternalFiles, -} from '@opentelemetry/api'; +import { Tracer, Logger, TracerProvider } from '@opentelemetry/api'; +import { Plugin, PluginConfig, PluginInternalFiles } from '../trace/Plugin'; /** This class represent the base to patch plugin. */ export abstract class BaseAbstractPlugin implements Plugin { diff --git a/packages/opentelemetry-core/src/platform/browser/BasePlugin.ts b/packages/opentelemetry-core/src/platform/browser/BasePlugin.ts index bf6e227d8a..124495b0a3 100644 --- a/packages/opentelemetry-core/src/platform/browser/BasePlugin.ts +++ b/packages/opentelemetry-core/src/platform/browser/BasePlugin.ts @@ -14,12 +14,8 @@ * limitations under the License. */ -import { - Logger, - Plugin, - PluginConfig, - TracerProvider, -} from '@opentelemetry/api'; +import { Logger, TracerProvider } from '@opentelemetry/api'; +import { Plugin, PluginConfig } from '../../trace/Plugin'; import { BaseAbstractPlugin } from '../BaseAbstractPlugin'; /** This class represent the base to patch plugin. */ diff --git a/packages/opentelemetry-core/src/platform/node/BasePlugin.ts b/packages/opentelemetry-core/src/platform/node/BasePlugin.ts index 3581cee96a..28a4c3e322 100644 --- a/packages/opentelemetry-core/src/platform/node/BasePlugin.ts +++ b/packages/opentelemetry-core/src/platform/node/BasePlugin.ts @@ -14,14 +14,13 @@ * limitations under the License. */ +import { Logger, TracerProvider } from '@opentelemetry/api'; import { Plugin, - Logger, PluginConfig, PluginInternalFiles, PluginInternalFilesVersion, - TracerProvider, -} from '@opentelemetry/api'; +} from '../../trace/Plugin'; import * as semver from 'semver'; import * as path from 'path'; import { BaseAbstractPlugin } from '../BaseAbstractPlugin'; diff --git a/packages/opentelemetry-api/src/trace/instrumentation/Plugin.ts b/packages/opentelemetry-core/src/trace/Plugin.ts similarity index 96% rename from packages/opentelemetry-api/src/trace/instrumentation/Plugin.ts rename to packages/opentelemetry-core/src/trace/Plugin.ts index 11d96fed2b..6f7efdec2b 100644 --- a/packages/opentelemetry-api/src/trace/instrumentation/Plugin.ts +++ b/packages/opentelemetry-core/src/trace/Plugin.ts @@ -14,8 +14,7 @@ * limitations under the License. */ -import { Logger } from '../../common/Logger'; -import { TracerProvider } from '../tracer_provider'; +import { Logger, TracerProvider } from '@opentelemetry/api'; /** Interface Plugin to apply patch. */ export interface Plugin { diff --git a/packages/opentelemetry-grpc-utils/test/grpcUtils.test.ts b/packages/opentelemetry-grpc-utils/test/grpcUtils.test.ts index 5fd6c25ad9..c2f877455a 100644 --- a/packages/opentelemetry-grpc-utils/test/grpcUtils.test.ts +++ b/packages/opentelemetry-grpc-utils/test/grpcUtils.test.ts @@ -19,9 +19,13 @@ import { NoopTracerProvider, SpanKind, propagation, - PluginConfig, } from '@opentelemetry/api'; -import { NoopLogger, HttpTraceContext, BasePlugin } from '@opentelemetry/core'; +import { + NoopLogger, + HttpTraceContext, + BasePlugin, + PluginConfig, +} from '@opentelemetry/core'; import { NodeTracerProvider } from '@opentelemetry/node'; import { AsyncHooksContextManager } from '@opentelemetry/context-async-hooks'; import { ContextManager } from '@opentelemetry/context-base'; diff --git a/packages/opentelemetry-node/src/instrumentation/PluginLoader.ts b/packages/opentelemetry-node/src/instrumentation/PluginLoader.ts index 145cafe88a..e8ea58d879 100644 --- a/packages/opentelemetry-node/src/instrumentation/PluginLoader.ts +++ b/packages/opentelemetry-node/src/instrumentation/PluginLoader.ts @@ -14,12 +14,8 @@ * limitations under the License. */ -import { - Logger, - Plugin, - PluginConfig, - TracerProvider, -} from '@opentelemetry/api'; +import { Logger, TracerProvider } from '@opentelemetry/api'; +import { Plugin, PluginConfig } from '@opentelemetry/core'; import * as hook from 'require-in-the-middle'; import * as utils from './utils'; diff --git a/packages/opentelemetry-plugin-fetch/src/fetch.ts b/packages/opentelemetry-plugin-fetch/src/fetch.ts index 20b28ea833..6860b83c01 100644 --- a/packages/opentelemetry-plugin-fetch/src/fetch.ts +++ b/packages/opentelemetry-plugin-fetch/src/fetch.ts @@ -32,7 +32,7 @@ const OBSERVER_WAIT_TIME_MS = 300; /** * FetchPlugin Config */ -export interface FetchPluginConfig extends api.PluginConfig { +export interface FetchPluginConfig extends core.PluginConfig { // 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 diff --git a/packages/opentelemetry-plugin-grpc-js/src/types.ts b/packages/opentelemetry-plugin-grpc-js/src/types.ts index 0e26b59ddf..c9104eb08d 100644 --- a/packages/opentelemetry-plugin-grpc-js/src/types.ts +++ b/packages/opentelemetry-plugin-grpc-js/src/types.ts @@ -17,7 +17,7 @@ import type * as grpcJs from '@grpc/grpc-js'; import type { EventEmitter } from 'events'; import type { CALL_SPAN_ENDED } from './utils'; -import { PluginConfig } from '@opentelemetry/api'; +import { PluginConfig } from '@opentelemetry/core'; export type IgnoreMatcher = string | RegExp | ((str: string) => boolean); diff --git a/packages/opentelemetry-plugin-grpc/src/types.ts b/packages/opentelemetry-plugin-grpc/src/types.ts index e630fa9d95..d85baab944 100644 --- a/packages/opentelemetry-plugin-grpc/src/types.ts +++ b/packages/opentelemetry-plugin-grpc/src/types.ts @@ -16,7 +16,7 @@ import * as grpcModule from 'grpc'; import * as events from 'events'; -import { PluginConfig } from '@opentelemetry/api'; +import { PluginConfig } from '@opentelemetry/core'; export type grpc = typeof grpcModule; diff --git a/packages/opentelemetry-plugin-http/src/types.ts b/packages/opentelemetry-plugin-http/src/types.ts index cc41781754..5f675cbd6f 100644 --- a/packages/opentelemetry-plugin-http/src/types.ts +++ b/packages/opentelemetry-plugin-http/src/types.ts @@ -13,7 +13,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { PluginConfig, Span } from '@opentelemetry/api'; +import { Span } from '@opentelemetry/api'; +import { PluginConfig } from '@opentelemetry/core'; import type * as http from 'http'; import { ClientRequest,