diff --git a/packages/collector/src/agent/opts.js b/packages/collector/src/agent/opts.js index d3dbbf8a5a..575888085a 100644 --- a/packages/collector/src/agent/opts.js +++ b/packages/collector/src/agent/opts.js @@ -16,7 +16,7 @@ exports.agentUuid = undefined; // @ts-ignore - Cannot redeclare exported variable exports.autoProfile = false; -/** @type {import('@instana/core/src/config').AgentConfig} config */ +/** @type {import('@instana/collector/src/types/collector').AgentConfig} config */ exports.config = {}; /** diff --git a/packages/collector/src/announceCycle/unannounced.js b/packages/collector/src/announceCycle/unannounced.js index d0d9bf7e51..a7d83c0fc9 100644 --- a/packages/collector/src/announceCycle/unannounced.js +++ b/packages/collector/src/announceCycle/unannounced.js @@ -43,9 +43,9 @@ const maxRetryDelay = 60 * 1000; // one minute * @typedef {Object} TracingConfig * @property {Array.} [extra-http-headers] * @property {KafkaTracingConfig} [kafka] - * @property {import('@instana/core/src/tracing').IgnoreEndpoints} [ignore-endpoints] + * @property {import('@instana/core/src/config/types').IgnoreEndpoints} [ignore-endpoints] * @property {boolean} [span-batching-enabled] - * @property {import('@instana/core/src/tracing').Disable} [disable] + * @property {import('@instana/core/src/config/types').Disable} [disable] */ /** diff --git a/packages/collector/src/types/collector.d.ts b/packages/collector/src/types/collector.d.ts index 3919de7916..f121b78044 100644 --- a/packages/collector/src/types/collector.d.ts +++ b/packages/collector/src/types/collector.d.ts @@ -1,4 +1,21 @@ import { GenericLogger } from '@instana/core/src/core'; +import { IgnoreEndpoints, Disable } from '@instana/core/src/config/types'; + +export interface AgentConfig { + tracing?: { + http?: { + extraHttpHeadersToCapture?: string[]; + }; + kafka?: { + traceCorrelation?: boolean; + }; + spanBatchingEnabled?: boolean | string; + ignoreEndpoints?: IgnoreEndpoints; + disable?: Disable; + [key: string]: any; + }; + [key: string]: any; +} export interface CollectorConfig { agentPort?: number; diff --git a/packages/core/src/config/configNormalizers/disable.js b/packages/core/src/config/configNormalizers/disable.js index 65e328abec..432ea57cc0 100644 --- a/packages/core/src/config/configNormalizers/disable.js +++ b/packages/core/src/config/configNormalizers/disable.js @@ -104,7 +104,7 @@ exports.normalizeExternalConfig = function normalizeExternalConfig(config) { * 3. INSTANA_TRACING_DISABLE=list * 4. INSTANA_DISABLED_TRACERS (deprecated) * - * @returns {import('../../tracing').Disable} + * @returns {import('../../config/types').Disable} */ function getDisableFromEnv() { const disable = {}; diff --git a/packages/core/src/config/configNormalizers/ignoreEndpoints.js b/packages/core/src/config/configNormalizers/ignoreEndpoints.js index c06e3373fc..220101f970 100644 --- a/packages/core/src/config/configNormalizers/ignoreEndpoints.js +++ b/packages/core/src/config/configNormalizers/ignoreEndpoints.js @@ -25,8 +25,8 @@ exports.init = function init(config) { * Normalized internal structure: * - { [serviceName: string]: [{ methods: string[], endpoints: string[] }] } * - * @param {import('../../tracing').IgnoreEndpoints} ignoreEndpointConfig - * @returns {import('../../tracing').IgnoreEndpoints} + * @param {import('../../config/types').IgnoreEndpoints} ignoreEndpointConfig + * @returns {import('../../config/types').IgnoreEndpoints} */ exports.normalizeConfig = function normalizeConfig(ignoreEndpointConfig) { diff --git a/packages/core/src/config/index.js b/packages/core/src/config/index.js index 76bb64b9d6..cd14d3a68a 100644 --- a/packages/core/src/config/index.js +++ b/packages/core/src/config/index.js @@ -23,13 +23,13 @@ const deepMerge = require('../util/deepMerge'); * @property {number} [transmissionDelay] * @property {number} [stackTraceLength] * @property {HTTPTracingOptions} [http] - * @property {import('../tracing').Disable} [disable] + * @property {import('../config/types').Disable} [disable] * @property {Array} [disabledTracers] * @property {boolean} [spanBatchingEnabled] * @property {boolean} [disableW3cTraceCorrelation] * @property {KafkaTracingOptions} [kafka] * @property {boolean} [allowRootExitSpan] - * @property {import('../tracing').IgnoreEndpoints} [ignoreEndpoints] + * @property {import('../config/types').IgnoreEndpoints} [ignoreEndpoints] * @property {boolean} [ignoreEndpointsDisableSuppression] * @property {boolean} [disableEOLEvents] */ @@ -74,30 +74,6 @@ const allowedSecretMatchers = ['equals', 'equals-ignore-case', 'contains', 'cont * @property {number} [timeBetweenHealthcheckCalls] */ -/** - * @typedef {Object} AgentConfig - * @property {AgentTracingConfig} [tracing] - */ - -/** - * @typedef {Object} AgentTracingConfig - * @property {AgentTracingHttpConfig} [http] - * @property {AgentTracingKafkaConfig} [kafka] - * @property {boolean|string} [spanBatchingEnabled] - * @property {import('../tracing').IgnoreEndpoints} [ignoreEndpoints] - * @property {import('../tracing').Disable} [disable] - */ - -/** - * @typedef {Object} AgentTracingHttpConfig - * @property {Array.} [extraHttpHeadersToCapture] - */ - -/** - * @typedef {Object} AgentTracingKafkaConfig - * @property {boolean} [traceCorrelation] - */ - /** @type {import('../core').GenericLogger} */ let logger; diff --git a/packages/core/src/config/types.d.ts b/packages/core/src/config/types.d.ts new file mode 100644 index 0000000000..e080d5b2ba --- /dev/null +++ b/packages/core/src/config/types.d.ts @@ -0,0 +1,16 @@ +export interface IgnoreEndpoints { + [key: string]: IgnoreEndpointsFields[]; +} + +export interface IgnoreEndpointsFields { + methods?: string[]; + endpoints?: string[]; + connections?: string[]; +} + +export interface TracingDisableOptions { + instrumentations?: string[]; + groups?: string[]; +} + +export type Disable = TracingDisableOptions | boolean; diff --git a/packages/core/src/tracing/index.js b/packages/core/src/tracing/index.js index b79d85f48b..cf572ed838 100644 --- a/packages/core/src/tracing/index.js +++ b/packages/core/src/tracing/index.js @@ -118,27 +118,6 @@ if (customInstrumentations.length > 0) { * @property {boolean} [traceCorrelation] */ -/** - * @typedef {Object.} IgnoreEndpoints - */ - -/** - * @typedef {Object} IgnoreEndpointsFields - * @property {string[]} [methods] - * @property {string[]} [endpoints] - * @property {string[]} [connections] - */ - -/** - * @typedef {TracingDisableOptions|boolean} Disable - */ - -/** - * @typedef {Object} TracingDisableOptions - * @property {string[]} [instrumentations] - * @property {string[]} [groups] - */ - /** @type {Array.} */ let additionalInstrumentationModules = []; /** @type {Object.} */ diff --git a/packages/core/src/tracing/spanBuffer.js b/packages/core/src/tracing/spanBuffer.js index 1641607f19..f6bf5b19b9 100644 --- a/packages/core/src/tracing/spanBuffer.js +++ b/packages/core/src/tracing/spanBuffer.js @@ -103,7 +103,7 @@ exports.init = function init(config, _downstreamConnection) { }; /** - * @param {import('../config').AgentConfig} extraConfig + * @param {import('@instana/collector/src/types/collector').AgentConfig} extraConfig */ exports.activate = function activate(extraConfig) { if (!downstreamConnection) { diff --git a/packages/core/src/util/disableInstrumentation.js b/packages/core/src/util/disableInstrumentation.js index b30249e857..ffc27b4764 100644 --- a/packages/core/src/util/disableInstrumentation.js +++ b/packages/core/src/util/disableInstrumentation.js @@ -9,7 +9,7 @@ const { DISABLABLE_INSTRUMENTATION_GROUPS } = require('../tracing/constants'); /** @type {import('../config').InstanaConfig} */ let config; -/** @type {import('../config').AgentConfig} */ +/** @type {import('@instana/collector/src/types/collector').AgentConfig} */ let agentConfig; /** @@ -20,7 +20,7 @@ function init(_config) { } /** - * @param {import('../config').AgentConfig} _agentConfig + * @param {import('@instana/collector/src/types/collector').AgentConfig} _agentConfig */ function activate(_agentConfig) { agentConfig = _agentConfig; diff --git a/packages/core/src/util/index.js b/packages/core/src/util/index.js index 077d1fe336..b23e116bc9 100644 --- a/packages/core/src/util/index.js +++ b/packages/core/src/util/index.js @@ -42,7 +42,7 @@ exports.init = function init(config) { }; /** - * @param {import('../config').AgentConfig} extraConfig + * @param {import('@instana/collector/src/types/collector').AgentConfig} extraConfig */ exports.activate = function activate(extraConfig) { disableInstrumentation.activate(extraConfig); diff --git a/packages/core/src/util/spanFilter.js b/packages/core/src/util/spanFilter.js index dfdbd5e3c5..189469f170 100644 --- a/packages/core/src/util/spanFilter.js +++ b/packages/core/src/util/spanFilter.js @@ -5,7 +5,7 @@ 'use strict'; /** - * @type {import('../tracing').IgnoreEndpoints} + * @type {import('../config/types').IgnoreEndpoints} */ let ignoreEndpoints; @@ -19,7 +19,7 @@ function init(config) { } /** - * @param {import('../config').AgentConfig} extraConfig + * @param {import('@instana/collector/src/types/collector').AgentConfig} extraConfig */ function activate(extraConfig) { /** @@ -48,7 +48,7 @@ const IGNORABLE_SPAN_TYPES = ['redis', 'dynamodb', 'kafka', 'node.http.server']; /** * @param {import('../core').InstanaBaseSpan} span * @param {string} spanTypeKey - * @param {import('../tracing').IgnoreEndpointsFields} ignoreconfig + * @param {import('../config/types').IgnoreEndpointsFields} ignoreconfig * @returns {boolean} */ function matchEndpoints(span, spanTypeKey, ignoreconfig) { @@ -87,7 +87,7 @@ function matchEndpoints(span, spanTypeKey, ignoreconfig) { /** * @param {import("../core").InstanaBaseSpan} span * @param {string} spanTypeKey - * @param {import('../tracing').IgnoreEndpointsFields} ignoreconfig + * @param {import('../config/types').IgnoreEndpointsFields} ignoreconfig * @returns {boolean} */ function matchMethods(span, spanTypeKey, ignoreconfig) { @@ -107,7 +107,7 @@ function matchMethods(span, spanTypeKey, ignoreconfig) { /** * @param {import("../core").InstanaBaseSpan} span * @param {string} spanTypeKey - * @param {import('../tracing').IgnoreEndpointsFields} ignoreconfig + * @param {import('../config/types').IgnoreEndpointsFields} ignoreconfig * @returns {boolean} */ function matchConnections(span, spanTypeKey, ignoreconfig) { @@ -127,7 +127,7 @@ function matchConnections(span, spanTypeKey, ignoreconfig) { /** * @param {import("../core").InstanaBaseSpan} span - * @param {import('../tracing').IgnoreEndpoints} ignoreEndpointsConfig + * @param {import('../config/types').IgnoreEndpoints} ignoreEndpointsConfig * @returns {boolean} */ function shouldIgnore(span, ignoreEndpointsConfig) {