@microsoft/applicationinsights-dependencies-js 3.0.0-beta.2208-16 → 3.0.0-beta.2209-01
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/browser/applicationinsights-dependencies-js.integrity.json +9 -9
- package/browser/applicationinsights-dependencies-js.js +149 -102
- package/browser/applicationinsights-dependencies-js.js.map +1 -1
- package/browser/applicationinsights-dependencies-js.min.js +2 -2
- package/browser/applicationinsights-dependencies-js.min.js.map +1 -1
- package/dist/applicationinsights-dependencies-js.api.json +667 -30
- package/dist/applicationinsights-dependencies-js.api.md +63 -9
- package/dist/applicationinsights-dependencies-js.d.ts +73 -8
- package/dist/applicationinsights-dependencies-js.js +149 -102
- package/dist/applicationinsights-dependencies-js.js.map +1 -1
- package/dist/applicationinsights-dependencies-js.min.js +2 -2
- package/dist/applicationinsights-dependencies-js.min.js.map +1 -1
- package/dist/applicationinsights-dependencies-js.rollup.d.ts +75 -10
- package/dist-esm/DependencyInitializer.js +6 -0
- package/dist-esm/DependencyInitializer.js.map +1 -0
- package/dist-esm/DependencyListener.js +1 -1
- package/dist-esm/InternalConstants.js +1 -1
- package/dist-esm/__DynamicConstants.js +6 -6
- package/dist-esm/__DynamicConstants.js.map +1 -1
- package/dist-esm/ajax.js +153 -98
- package/dist-esm/ajax.js.map +1 -1
- package/dist-esm/ajaxRecord.js +1 -1
- package/dist-esm/ajaxUtils.js +1 -1
- package/dist-esm/applicationinsights-dependencies-js.js +1 -1
- package/package.json +3 -3
- package/src/DependencyInitializer.ts +44 -0
- package/src/DependencyListener.ts +13 -3
- package/src/__DynamicConstants.ts +5 -5
- package/src/ajax.ts +183 -106
- package/src/ajaxRecord.ts +5 -0
- package/src/applicationinsights-dependencies-js.ts +5 -1
- package/types/DependencyInitializer.d.ts +41 -0
- package/types/DependencyListener.d.ts +14 -3
- package/types/__DynamicConstants.d.ts +4 -4
- package/types/ajax.d.ts +18 -5
- package/types/ajaxRecord.d.ts +6 -0
- package/types/applicationinsights-dependencies-js.d.ts +2 -0
package/dist-esm/ajax.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Application Insights JavaScript SDK - Dependencies Plugin, 3.0.0-beta.
|
|
2
|
+
* Application Insights JavaScript SDK - Dependencies Plugin, 3.0.0-beta.2209-01
|
|
3
3
|
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -9,12 +9,19 @@ import dynamicProto from "@microsoft/dynamicproto-js";
|
|
|
9
9
|
import { DisabledPropertyName, PropertiesPluginIdentifier, RemoteDependencyData, RequestHeaders, correlationIdCanIncludeCorrelationHeader, correlationIdGetCorrelationContext, createDistributedTraceContextFromTrace, createTelemetryItem, createTraceParent, dateTimeUtilsNow, formatTraceParent, isInternalApplicationInsightsEndpoint } from "@microsoft/applicationinsights-common";
|
|
10
10
|
import { BaseTelemetryPlugin, InstrumentFunc, InstrumentProto, _throwInternal, arrForEach, createProcessTelemetryContext, createUniqueNamespace, deepFreeze, dumpObj, eventOn, generateW3CId, getExceptionName, getGlobal, getIEVersion, getLocation, getPerformance, isFunction, isNullOrUndefined, isString, isXhrSupported, mergeEvtNamespace, objForEachKey, strPrototype, strTrim } from "@microsoft/applicationinsights-core-js";
|
|
11
11
|
import { STR_PROPERTIES } from "./InternalConstants";
|
|
12
|
-
import { _DYN_ABORT_DONE, _DYN_ADD_REQUEST_CONTEXT, _DYN_AJAX_DIAGNOSTICS_MES17, _DYN_AJAX_PERF_LOOKUP_DEL16, _DYN_APP_ID, _DYN_CORE, _DYN_CORRELATION_CONTEXT, _DYN_DISABLE_AJAX_TRACKIN11, _DYN_DISABLE_FETCH_TRACKI12, _DYN_DISTRIBUTED_TRACING_4, _DYN_ENABLE_AJAX_ERROR_ST6, _DYN_ENABLE_AJAX_PERF_TRA7, _DYN_ENABLE_REQUEST_HEADE5, _DYN_ENABLE_RESPONSE_HEAD9, _DYN_ERROR_STATUS_TEXT, _DYN_EXCLUDE_REQUEST_FROM10, _DYN_GET_ABSOLUTE_URL, _DYN_GET_ALL_RESPONSE_HEA15,
|
|
12
|
+
import { _DYN_ABORT_DONE, _DYN_ADD_REQUEST_CONTEXT, _DYN_AJAX_DIAGNOSTICS_MES17, _DYN_AJAX_PERF_LOOKUP_DEL16, _DYN_APP_ID, _DYN_CONTEXT, _DYN_CORE, _DYN_CORRELATION_CONTEXT, _DYN_DISABLE_AJAX_TRACKIN11, _DYN_DISABLE_FETCH_TRACKI12, _DYN_DISTRIBUTED_TRACING_4, _DYN_ENABLE_AJAX_ERROR_ST6, _DYN_ENABLE_AJAX_PERF_TRA7, _DYN_ENABLE_REQUEST_HEADE5, _DYN_ENABLE_RESPONSE_HEAD9, _DYN_ERROR_STATUS_TEXT, _DYN_EXCLUDE_REQUEST_FROM10, _DYN_GET_ABSOLUTE_URL, _DYN_GET_ALL_RESPONSE_HEA15, _DYN_GET_PART_APROPS, _DYN_GET_TRACE_FLAGS, _DYN_GET_TRACE_ID, _DYN_HEADERS, _DYN_HEADER_MAP, _DYN_INCLUDE_CORRELATION_2, _DYN_INST, _DYN_LENGTH, _DYN_MAX_AJAX_CALLS_PER_V8, _DYN_METHOD, _DYN_NAME, _DYN_OPEN_DONE, _DYN_PERF_MARK, _DYN_PERF_TIMING, _DYN_REQUEST_HEADERS, _DYN_REQUEST_SENT_TIME, _DYN_REQUEST_URL, _DYN_RESPONSE, _DYN_RESPONSE_FINISHED_TI14, _DYN_RESPONSE_TEXT, _DYN_SEND_DONE, _DYN_SET_REQUEST_HEADER, _DYN_SPAN_ID, _DYN_SPAN_ID1, _DYN_START_TIME, _DYN_STATE_CHANGE_ATTACHE13, _DYN_STATUS, _DYN_STATUS_TEXT, _DYN_TO_LOWER_CASE, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN_TRACE_ID0, _DYN_TRACK_DEPENDENCY_DAT3, _DYN__CREATE_TRACK_ITEM } from "./__DynamicConstants";
|
|
13
13
|
import { ajaxRecord } from "./ajaxRecord";
|
|
14
14
|
var AJAX_MONITOR_PREFIX = "ai.ajxmn.";
|
|
15
15
|
var strDiagLog = "diagLog";
|
|
16
16
|
var strAjaxData = "ajaxData";
|
|
17
17
|
var strFetch = "fetch";
|
|
18
|
+
var ERROR_HEADER = "Failed to monitor XMLHttpRequest";
|
|
19
|
+
var ERROR_PREFIX = ", monitoring data for this ajax call ";
|
|
20
|
+
var ERROR_POSTFIX = ERROR_PREFIX + "may be incorrect.";
|
|
21
|
+
var ERROR_NOT_SENT = ERROR_PREFIX + "won't be sent.";
|
|
22
|
+
var CORRELATION_HEADER_ERROR = "Failed to get Request-Context correlation header as it may be not included in the response or not accessible.";
|
|
23
|
+
var CUSTOM_REQUEST_CONTEXT_ERROR = "Failed to add custom defined request context as configured call back may missing a null check.";
|
|
24
|
+
var FAILED_TO_CALCULATE_DURATION_ERROR = "Failed to calculate the duration of the ";
|
|
18
25
|
// Using a global value so that to handle same iKey with multiple app insights instances (mostly for testing)
|
|
19
26
|
var _markCount = 0;
|
|
20
27
|
/** @Ignore */
|
|
@@ -69,9 +76,7 @@ function _supportsAjaxMonitoring(ajaxMonitorInstance) {
|
|
|
69
76
|
function _getFailedAjaxDiagnosticsMessage(xhr) {
|
|
70
77
|
var result = "";
|
|
71
78
|
try {
|
|
72
|
-
if (
|
|
73
|
-
!isNullOrUndefined(xhr[strAjaxData]) &&
|
|
74
|
-
!isNullOrUndefined(xhr[strAjaxData][_DYN_REQUEST_URL /* @min:%2erequestUrl */])) {
|
|
79
|
+
if (xhr && xhr[strAjaxData] && xhr[strAjaxData][_DYN_REQUEST_URL /* @min:%2erequestUrl */]) {
|
|
75
80
|
result += "(url: '" + xhr[strAjaxData][_DYN_REQUEST_URL /* @min:%2erequestUrl */] + "')";
|
|
76
81
|
}
|
|
77
82
|
}
|
|
@@ -104,6 +109,37 @@ function _indexOf(value, match) {
|
|
|
104
109
|
}
|
|
105
110
|
return -1;
|
|
106
111
|
}
|
|
112
|
+
function _addHandler(container, id, theFunc) {
|
|
113
|
+
var theHandler = {
|
|
114
|
+
id: id,
|
|
115
|
+
fn: theFunc
|
|
116
|
+
};
|
|
117
|
+
container.push(theHandler);
|
|
118
|
+
return {
|
|
119
|
+
remove: function () {
|
|
120
|
+
arrForEach(container, function (initializer, idx) {
|
|
121
|
+
if (initializer.id === theHandler.id) {
|
|
122
|
+
container.splice(idx, 1);
|
|
123
|
+
return -1;
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
function _processDependencyContainer(core, container, details, message) {
|
|
130
|
+
var result = true;
|
|
131
|
+
arrForEach(container, function (theFunc, idx) {
|
|
132
|
+
try {
|
|
133
|
+
if (theFunc.fn.call(null, details) === false) {
|
|
134
|
+
result = false;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
catch (e) {
|
|
138
|
+
_throwInternal(core && core.logger, 1 /* eLoggingSeverity.CRITICAL */, 64 /* _eInternalMessageId.TelemetryInitializerFailed */, "Dependency " + message + " [#" + idx + "] failed: " + getExceptionName(e), { exception: dumpObj(e) }, true);
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
return result;
|
|
142
|
+
}
|
|
107
143
|
function _processDependencyListeners(listeners, core, ajaxData, xhr, input, init) {
|
|
108
144
|
var _a;
|
|
109
145
|
var initializersCount = listeners[_DYN_LENGTH /* @min:%2elength */];
|
|
@@ -116,30 +152,62 @@ function _processDependencyListeners(listeners, core, ajaxData, xhr, input, init
|
|
|
116
152
|
_a.traceId = ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */],
|
|
117
153
|
_a.spanId = ajaxData[_DYN_SPAN_ID /* @min:%2espanID */],
|
|
118
154
|
_a.traceFlags = ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */],
|
|
155
|
+
_a.context = ajaxData[_DYN_CONTEXT /* @min:%2econtext */] || {},
|
|
119
156
|
_a);
|
|
120
|
-
|
|
121
|
-
var dependencyListener = listeners[i];
|
|
122
|
-
if (dependencyListener && dependencyListener.fn) {
|
|
123
|
-
try {
|
|
124
|
-
dependencyListener.fn.call(null, details);
|
|
125
|
-
}
|
|
126
|
-
catch (e) {
|
|
127
|
-
var core_1 = details[_DYN_CORE /* @min:%2ecore */];
|
|
128
|
-
_throwInternal(core_1 && core_1.logger, 1 /* eLoggingSeverity.CRITICAL */, 64 /* _eInternalMessageId.TelemetryInitializerFailed */, "Dependency listener [#" + i + "] failed: " + getExceptionName(e), { exception: dumpObj(e) }, true);
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
}
|
|
157
|
+
_processDependencyContainer(core, listeners, details, "listener");
|
|
132
158
|
ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */] = details[_DYN_TRACE_ID0 /* @min:%2etraceId */];
|
|
133
159
|
ajaxData[_DYN_SPAN_ID /* @min:%2espanID */] = details[_DYN_SPAN_ID1 /* @min:%2espanId */];
|
|
134
160
|
ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = details[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];
|
|
161
|
+
ajaxData[_DYN_CONTEXT /* @min:%2econtext */] = details[_DYN_CONTEXT /* @min:%2econtext */];
|
|
135
162
|
}
|
|
136
163
|
}
|
|
164
|
+
var BLOB_CORE = "*.blob.core.";
|
|
137
165
|
export var DfltAjaxCorrelationHeaderExDomains = deepFreeze([
|
|
138
|
-
"
|
|
139
|
-
"
|
|
140
|
-
"
|
|
141
|
-
"
|
|
166
|
+
BLOB_CORE + "windows.net",
|
|
167
|
+
BLOB_CORE + "chinacloudapi.cn",
|
|
168
|
+
BLOB_CORE + "cloudapi.de",
|
|
169
|
+
BLOB_CORE + "usgovcloudapi.net"
|
|
142
170
|
]);
|
|
171
|
+
var _internalExcludeEndpoints = [
|
|
172
|
+
/https:\/\/[^\/]*(\.pipe\.aria|aria\.pipe|events\.data|collector\.azure)\.[^\/]+\/(OneCollector\/1|Collector\/3)\.0/i
|
|
173
|
+
];
|
|
174
|
+
function _getDefaultConfig() {
|
|
175
|
+
var _a;
|
|
176
|
+
var config = (_a = {},
|
|
177
|
+
_a[_DYN_MAX_AJAX_CALLS_PER_V8 /* @min:maxAjaxCallsPerView */] = 500,
|
|
178
|
+
_a[_DYN_DISABLE_AJAX_TRACKIN11 /* @min:disableAjaxTracking */] = false,
|
|
179
|
+
_a[_DYN_DISABLE_FETCH_TRACKI12 /* @min:disableFetchTracking */] = false,
|
|
180
|
+
_a[_DYN_EXCLUDE_REQUEST_FROM10 /* @min:excludeRequestFromAutoTrackingPatterns */] = undefined,
|
|
181
|
+
_a.disableCorrelationHeaders = false,
|
|
182
|
+
_a.distributedTracingMode = 1 /* eDistributedTracingModes.AI_AND_W3C */,
|
|
183
|
+
_a.correlationHeaderExcludedDomains = DfltAjaxCorrelationHeaderExDomains,
|
|
184
|
+
_a.correlationHeaderDomains = undefined,
|
|
185
|
+
_a.correlationHeaderExcludePatterns = undefined,
|
|
186
|
+
_a[_DYN_APP_ID /* @min:appId */] = undefined,
|
|
187
|
+
_a.enableCorsCorrelation = false,
|
|
188
|
+
_a[_DYN_ENABLE_REQUEST_HEADE5 /* @min:enableRequestHeaderTracking */] = false,
|
|
189
|
+
_a[_DYN_ENABLE_RESPONSE_HEAD9 /* @min:enableResponseHeaderTracking */] = false,
|
|
190
|
+
_a[_DYN_ENABLE_AJAX_ERROR_ST6 /* @min:enableAjaxErrorStatusText */] = false,
|
|
191
|
+
_a[_DYN_ENABLE_AJAX_PERF_TRA7 /* @min:enableAjaxPerfTracking */] = false,
|
|
192
|
+
_a.maxAjaxPerfLookupAttempts = 3,
|
|
193
|
+
_a[_DYN_AJAX_PERF_LOOKUP_DEL16 /* @min:ajaxPerfLookupDelay */] = 25,
|
|
194
|
+
_a.ignoreHeaders = [
|
|
195
|
+
"Authorization",
|
|
196
|
+
"X-API-Key",
|
|
197
|
+
"WWW-Authenticate"
|
|
198
|
+
],
|
|
199
|
+
_a[_DYN_ADD_REQUEST_CONTEXT /* @min:addRequestContext */] = undefined,
|
|
200
|
+
_a.addIntEndpoints = true,
|
|
201
|
+
_a);
|
|
202
|
+
return config;
|
|
203
|
+
}
|
|
204
|
+
function _getEmptyConfig() {
|
|
205
|
+
var emptyConfig = _getDefaultConfig();
|
|
206
|
+
objForEachKey(emptyConfig, function (value) {
|
|
207
|
+
emptyConfig[value] = undefined;
|
|
208
|
+
});
|
|
209
|
+
return emptyConfig;
|
|
210
|
+
}
|
|
143
211
|
var AjaxMonitor = /** @class */ (function (_super) {
|
|
144
212
|
__extends(AjaxMonitor, _super);
|
|
145
213
|
function AjaxMonitor() {
|
|
@@ -166,8 +234,9 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
166
234
|
var _excludeRequestFromAutoTrackingPatterns;
|
|
167
235
|
var _addRequestContext;
|
|
168
236
|
var _evtNamespace;
|
|
169
|
-
var
|
|
237
|
+
var _dependencyHandlerId;
|
|
170
238
|
var _dependencyListeners;
|
|
239
|
+
var _dependencyInitializers;
|
|
171
240
|
dynamicProto(AjaxMonitor, _this, function (_self, _base) {
|
|
172
241
|
var _addHook = _base._addHook;
|
|
173
242
|
_initDefaults();
|
|
@@ -185,9 +254,9 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
185
254
|
_initDefaults();
|
|
186
255
|
};
|
|
187
256
|
_self.trackDependencyData = function (dependency, properties) {
|
|
188
|
-
_self[
|
|
257
|
+
_reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE /* @min:%2ecore */], null, dependency, properties);
|
|
189
258
|
};
|
|
190
|
-
_self[
|
|
259
|
+
_self[_DYN_INCLUDE_CORRELATION_2 /* @min:%2eincludeCorrelationHeaders */] = function (ajaxData, input, init, xhr) {
|
|
191
260
|
// Test Hook to allow the overriding of the location host
|
|
192
261
|
var currentWindowHost = _self["_currentWindowHost"] || _currentWindowHost;
|
|
193
262
|
_processDependencyListeners(_dependencyListeners, _self[_DYN_CORE /* @min:%2ecore */], ajaxData, xhr, input, init);
|
|
@@ -261,7 +330,7 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
261
330
|
}
|
|
262
331
|
return undefined;
|
|
263
332
|
};
|
|
264
|
-
_self[
|
|
333
|
+
_self[_DYN_TRACK_DEPENDENCY_DAT3 /* @min:%2etrackDependencyDataInternal */] = function (dependency, properties, systemProperties) {
|
|
265
334
|
if (_maxAjaxCallsPerView === -1 || _trackAjaxAttempts < _maxAjaxCallsPerView) {
|
|
266
335
|
// Hack since expected format in w3c mode is |abc.def.
|
|
267
336
|
// Non-w3c format is |abc.def
|
|
@@ -283,22 +352,10 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
283
352
|
++_trackAjaxAttempts;
|
|
284
353
|
};
|
|
285
354
|
_self.addDependencyListener = function (dependencyListener) {
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
_dependencyListeners.push(theInitializer);
|
|
291
|
-
var handler = {
|
|
292
|
-
remove: function () {
|
|
293
|
-
arrForEach(_dependencyListeners, function (initializer, idx) {
|
|
294
|
-
if (initializer.id === theInitializer.id) {
|
|
295
|
-
_dependencyListeners.splice(idx, 1);
|
|
296
|
-
return -1;
|
|
297
|
-
}
|
|
298
|
-
});
|
|
299
|
-
}
|
|
300
|
-
};
|
|
301
|
-
return handler;
|
|
355
|
+
return _addHandler(_dependencyListeners, _dependencyHandlerId++, dependencyListener);
|
|
356
|
+
};
|
|
357
|
+
_self.addDependencyInitializer = function (dependencyInitializer) {
|
|
358
|
+
return _addHandler(_dependencyInitializers, _dependencyHandlerId++, dependencyInitializer);
|
|
302
359
|
};
|
|
303
360
|
function _initDefaults() {
|
|
304
361
|
var location = getLocation();
|
|
@@ -322,14 +379,15 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
322
379
|
_excludeRequestFromAutoTrackingPatterns = null;
|
|
323
380
|
_addRequestContext = null;
|
|
324
381
|
_evtNamespace = null;
|
|
325
|
-
|
|
382
|
+
_dependencyHandlerId = 0;
|
|
326
383
|
_dependencyListeners = [];
|
|
384
|
+
_dependencyInitializers = [];
|
|
327
385
|
}
|
|
328
386
|
function _populateDefaults(config) {
|
|
329
387
|
var ctx = createProcessTelemetryContext(null, config, _self[_DYN_CORE /* @min:%2ecore */]);
|
|
330
388
|
// Reset to the empty config
|
|
331
|
-
_config =
|
|
332
|
-
var defaultConfig =
|
|
389
|
+
_config = _getEmptyConfig();
|
|
390
|
+
var defaultConfig = _getDefaultConfig();
|
|
333
391
|
objForEachKey(defaultConfig, function (field, value) {
|
|
334
392
|
_config[field] = ctx.getConfig(AjaxMonitor.identifier, field, value);
|
|
335
393
|
});
|
|
@@ -339,7 +397,7 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
339
397
|
_enableAjaxPerfTracking = _config[_DYN_ENABLE_AJAX_PERF_TRA7 /* @min:%2eenableAjaxPerfTracking */];
|
|
340
398
|
_maxAjaxCallsPerView = _config[_DYN_MAX_AJAX_CALLS_PER_V8 /* @min:%2emaxAjaxCallsPerView */];
|
|
341
399
|
_enableResponseHeaderTracking = _config[_DYN_ENABLE_RESPONSE_HEAD9 /* @min:%2eenableResponseHeaderTracking */];
|
|
342
|
-
_excludeRequestFromAutoTrackingPatterns = _config[_DYN_EXCLUDE_REQUEST_FROM10 /* @min:%2eexcludeRequestFromAutoTrackingPatterns */];
|
|
400
|
+
_excludeRequestFromAutoTrackingPatterns = [].concat(_config[_DYN_EXCLUDE_REQUEST_FROM10 /* @min:%2eexcludeRequestFromAutoTrackingPatterns */] || [], _config.addIntEndpoints !== false ? _internalExcludeEndpoints : []);
|
|
343
401
|
_addRequestContext = _config[_DYN_ADD_REQUEST_CONTEXT /* @min:%2eaddRequestContext */];
|
|
344
402
|
_isUsingAIHeaders = distributedTracingMode === 0 /* eDistributedTracingModes.AI */ || distributedTracingMode === 1 /* eDistributedTracingModes.AI_AND_W3C */;
|
|
345
403
|
_isUsingW3CHeaders = distributedTracingMode === 1 /* eDistributedTracingModes.AI_AND_W3C */ || distributedTracingMode === 2 /* eDistributedTracingModes.W3C */;
|
|
@@ -358,7 +416,7 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
358
416
|
function _populateContext() {
|
|
359
417
|
var propExt = _self[_DYN_CORE /* @min:%2ecore */].getPlugin(PropertiesPluginIdentifier);
|
|
360
418
|
if (propExt) {
|
|
361
|
-
_context = propExt.plugin
|
|
419
|
+
_context = propExt.plugin[_DYN_CONTEXT /* @min:%2econtext */]; // we could move IPropertiesPlugin to common as well
|
|
362
420
|
}
|
|
363
421
|
}
|
|
364
422
|
// discard the header if it's defined as ignoreHeaders in ICorrelationConfig
|
|
@@ -394,7 +452,7 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
394
452
|
!(isPolyfill && _xhrInitialized)) {
|
|
395
453
|
var ctx = callDetails.ctx();
|
|
396
454
|
fetchData = _createFetchRecord(input, init);
|
|
397
|
-
var newInit = _self[
|
|
455
|
+
var newInit = _self[_DYN_INCLUDE_CORRELATION_2 /* @min:%2eincludeCorrelationHeaders */](fetchData, input, init);
|
|
398
456
|
if (newInit !== init) {
|
|
399
457
|
callDetails.set(1, newInit);
|
|
400
458
|
}
|
|
@@ -436,7 +494,7 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
436
494
|
}
|
|
437
495
|
},
|
|
438
496
|
// Create an error callback to report any hook errors
|
|
439
|
-
hkErr: _createErrorCallbackFunc(_self, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, "Failed to monitor Window.fetch
|
|
497
|
+
hkErr: _createErrorCallbackFunc(_self, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, "Failed to monitor Window.fetch" + ERROR_POSTFIX)
|
|
440
498
|
}));
|
|
441
499
|
_fetchInitialized = true;
|
|
442
500
|
}
|
|
@@ -483,7 +541,7 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
483
541
|
}
|
|
484
542
|
}
|
|
485
543
|
},
|
|
486
|
-
hkErr: _createErrorCallbackFunc(_self, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */,
|
|
544
|
+
hkErr: _createErrorCallbackFunc(_self, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, ERROR_HEADER + ".open" + ERROR_POSTFIX)
|
|
487
545
|
});
|
|
488
546
|
// Instrument send
|
|
489
547
|
_hookProto(XMLHttpRequest, "send", {
|
|
@@ -495,12 +553,12 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
495
553
|
if (_isMonitoredXhrInstance(xhr) && !ajaxData.xhrMonitoringState[_DYN_SEND_DONE /* @min:%2esendDone */]) {
|
|
496
554
|
_createMarkId("xhr", ajaxData);
|
|
497
555
|
ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */] = dateTimeUtilsNow();
|
|
498
|
-
_self[
|
|
556
|
+
_self[_DYN_INCLUDE_CORRELATION_2 /* @min:%2eincludeCorrelationHeaders */](ajaxData, undefined, undefined, xhr);
|
|
499
557
|
ajaxData.xhrMonitoringState[_DYN_SEND_DONE /* @min:%2esendDone */] = true;
|
|
500
558
|
}
|
|
501
559
|
}
|
|
502
560
|
},
|
|
503
|
-
hkErr: _createErrorCallbackFunc(_self, 17 /* _eInternalMessageId.FailedMonitorAjaxSend */,
|
|
561
|
+
hkErr: _createErrorCallbackFunc(_self, 17 /* _eInternalMessageId.FailedMonitorAjaxSend */, ERROR_HEADER + ERROR_POSTFIX)
|
|
504
562
|
});
|
|
505
563
|
// Instrument abort
|
|
506
564
|
_hookProto(XMLHttpRequest, "abort", {
|
|
@@ -515,7 +573,7 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
515
573
|
}
|
|
516
574
|
}
|
|
517
575
|
},
|
|
518
|
-
hkErr: _createErrorCallbackFunc(_self, 13 /* _eInternalMessageId.FailedMonitorAjaxAbort */,
|
|
576
|
+
hkErr: _createErrorCallbackFunc(_self, 13 /* _eInternalMessageId.FailedMonitorAjaxAbort */, ERROR_HEADER + ".abort" + ERROR_POSTFIX)
|
|
519
577
|
});
|
|
520
578
|
// Instrument setRequestHeader
|
|
521
579
|
_hookProto(XMLHttpRequest, "setRequestHeader", {
|
|
@@ -528,7 +586,7 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
528
586
|
}
|
|
529
587
|
}
|
|
530
588
|
},
|
|
531
|
-
hkErr: _createErrorCallbackFunc(_self, 71 /* _eInternalMessageId.FailedMonitorAjaxSetRequestHeader */,
|
|
589
|
+
hkErr: _createErrorCallbackFunc(_self, 71 /* _eInternalMessageId.FailedMonitorAjaxSetRequestHeader */, ERROR_HEADER + ".setRequestHeader" + ERROR_POSTFIX)
|
|
532
590
|
});
|
|
533
591
|
_xhrInitialized = true;
|
|
534
592
|
}
|
|
@@ -639,7 +697,7 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
639
697
|
var exceptionText = dumpObj(e);
|
|
640
698
|
// ignore messages with c00c023f, as this a known IE9 XHR abort issue
|
|
641
699
|
if (!exceptionText || _indexOf(exceptionText[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](), "c00c023f") === -1) {
|
|
642
|
-
_throwInternalCritical(_self, 16 /* _eInternalMessageId.FailedMonitorAjaxRSC */,
|
|
700
|
+
_throwInternalCritical(_self, 16 /* _eInternalMessageId.FailedMonitorAjaxRSC */, ERROR_HEADER + " 'readystatechange' event handler" + ERROR_POSTFIX, (_a = {},
|
|
643
701
|
_a[_DYN_AJAX_DIAGNOSTICS_MES17 /* @min:ajaxDiagnosticsMessage */] = _getFailedAjaxDiagnosticsMessage(xhr),
|
|
644
702
|
_a.exception = exceptionText,
|
|
645
703
|
_a));
|
|
@@ -670,7 +728,7 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
670
728
|
if (e) {
|
|
671
729
|
errorProps["exception"] = dumpObj(e);
|
|
672
730
|
}
|
|
673
|
-
_throwInternalWarning(_self, 14 /* _eInternalMessageId.FailedMonitorAjaxDur */,
|
|
731
|
+
_throwInternalWarning(_self, 14 /* _eInternalMessageId.FailedMonitorAjaxDur */, FAILED_TO_CALCULATE_DURATION_ERROR + "ajax call" + ERROR_NOT_SENT, errorProps);
|
|
674
732
|
}
|
|
675
733
|
_findPerfResourceEntry("xmlhttprequest", ajaxData, function () {
|
|
676
734
|
try {
|
|
@@ -712,13 +770,14 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
712
770
|
}
|
|
713
771
|
}
|
|
714
772
|
catch (e) {
|
|
715
|
-
_throwInternalWarning(_self, 104 /* _eInternalMessageId.FailedAddingCustomDefinedRequestContext */,
|
|
773
|
+
_throwInternalWarning(_self, 104 /* _eInternalMessageId.FailedAddingCustomDefinedRequestContext */, CUSTOM_REQUEST_CONTEXT_ERROR);
|
|
716
774
|
}
|
|
717
775
|
if (dependency) {
|
|
718
776
|
if (properties !== undefined) {
|
|
719
777
|
dependency[STR_PROPERTIES /* @min:%2eproperties */] = __assign(__assign({}, dependency.properties), properties);
|
|
720
778
|
}
|
|
721
|
-
|
|
779
|
+
var sysProperties = ajaxData[_DYN_GET_PART_APROPS /* @min:%2egetPartAProps */]();
|
|
780
|
+
_reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE /* @min:%2ecore */], ajaxData, dependency, null, sysProperties);
|
|
722
781
|
}
|
|
723
782
|
else {
|
|
724
783
|
_reportXhrError(null, {
|
|
@@ -753,7 +812,7 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
753
812
|
}
|
|
754
813
|
}
|
|
755
814
|
catch (e) {
|
|
756
|
-
_throwInternalWarning(_self, 18 /* _eInternalMessageId.FailedMonitorAjaxGetCorrelationHeader */,
|
|
815
|
+
_throwInternalWarning(_self, 18 /* _eInternalMessageId.FailedMonitorAjaxGetCorrelationHeader */, CORRELATION_HEADER_ERROR, (_a = {},
|
|
757
816
|
_a[_DYN_AJAX_DIAGNOSTICS_MES17 /* @min:ajaxDiagnosticsMessage */] = _getFailedAjaxDiagnosticsMessage(xhr),
|
|
758
817
|
_a.exception = dumpObj(e),
|
|
759
818
|
_a));
|
|
@@ -894,7 +953,7 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
894
953
|
if (e) {
|
|
895
954
|
errorProps["exception"] = dumpObj(e);
|
|
896
955
|
}
|
|
897
|
-
_throwInternalWarning(_self, msgId,
|
|
956
|
+
_throwInternalWarning(_self, msgId, FAILED_TO_CALCULATE_DURATION_ERROR + "fetch call" + ERROR_NOT_SENT, errorProps);
|
|
898
957
|
}
|
|
899
958
|
ajaxData[_DYN_RESPONSE_FINISHED_TI14 /* @min:%2eresponseFinishedTime */] = dateTimeUtilsNow();
|
|
900
959
|
ajaxData[_DYN_STATUS /* @min:%2estatus */] = status;
|
|
@@ -907,13 +966,14 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
907
966
|
}
|
|
908
967
|
}
|
|
909
968
|
catch (e) {
|
|
910
|
-
_throwInternalWarning(_self, 104 /* _eInternalMessageId.FailedAddingCustomDefinedRequestContext */,
|
|
969
|
+
_throwInternalWarning(_self, 104 /* _eInternalMessageId.FailedAddingCustomDefinedRequestContext */, CUSTOM_REQUEST_CONTEXT_ERROR);
|
|
911
970
|
}
|
|
912
971
|
if (dependency) {
|
|
913
972
|
if (properties !== undefined) {
|
|
914
973
|
dependency[STR_PROPERTIES /* @min:%2eproperties */] = __assign(__assign({}, dependency.properties), properties);
|
|
915
974
|
}
|
|
916
|
-
|
|
975
|
+
var sysProperties = ajaxData[_DYN_GET_PART_APROPS /* @min:%2egetPartAProps */]();
|
|
976
|
+
_reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE /* @min:%2ecore */], ajaxData, dependency, null, sysProperties);
|
|
917
977
|
}
|
|
918
978
|
else {
|
|
919
979
|
_reportFetchError(14 /* _eInternalMessageId.FailedMonitorAjaxDur */, null, {
|
|
@@ -932,52 +992,34 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
932
992
|
return correlationIdGetCorrelationContext(responseHeader);
|
|
933
993
|
}
|
|
934
994
|
catch (e) {
|
|
935
|
-
_throwInternalWarning(_self, 18 /* _eInternalMessageId.FailedMonitorAjaxGetCorrelationHeader */,
|
|
995
|
+
_throwInternalWarning(_self, 18 /* _eInternalMessageId.FailedMonitorAjaxGetCorrelationHeader */, CORRELATION_HEADER_ERROR, {
|
|
936
996
|
fetchDiagnosticsMessage: _getFailedFetchDiagnosticsMessage(response),
|
|
937
997
|
exception: dumpObj(e)
|
|
938
998
|
});
|
|
939
999
|
}
|
|
940
1000
|
}
|
|
941
1001
|
}
|
|
1002
|
+
function _reportDependencyInternal(initializers, core, ajaxData, dependency, properties, systemProperties) {
|
|
1003
|
+
var _a;
|
|
1004
|
+
var result = true;
|
|
1005
|
+
var initializersCount = initializers[_DYN_LENGTH /* @min:%2elength */];
|
|
1006
|
+
if (initializersCount > 0) {
|
|
1007
|
+
var details = (_a = {
|
|
1008
|
+
item: dependency
|
|
1009
|
+
},
|
|
1010
|
+
_a[STR_PROPERTIES /* @min:properties */] = properties,
|
|
1011
|
+
_a.sysProperties = systemProperties,
|
|
1012
|
+
_a.context = ajaxData ? ajaxData[_DYN_CONTEXT /* @min:%2econtext */] : null,
|
|
1013
|
+
_a);
|
|
1014
|
+
result = _processDependencyContainer(core, initializers, details, "initializer");
|
|
1015
|
+
}
|
|
1016
|
+
if (result) {
|
|
1017
|
+
_self[_DYN_TRACK_DEPENDENCY_DAT3 /* @min:%2etrackDependencyDataInternal */](dependency, properties, systemProperties);
|
|
1018
|
+
}
|
|
1019
|
+
}
|
|
942
1020
|
});
|
|
943
1021
|
return _this;
|
|
944
1022
|
}
|
|
945
|
-
AjaxMonitor.getDefaultConfig = function () {
|
|
946
|
-
var _a;
|
|
947
|
-
var config = (_a = {},
|
|
948
|
-
_a[_DYN_MAX_AJAX_CALLS_PER_V8 /* @min:maxAjaxCallsPerView */] = 500,
|
|
949
|
-
_a[_DYN_DISABLE_AJAX_TRACKIN11 /* @min:disableAjaxTracking */] = false,
|
|
950
|
-
_a[_DYN_DISABLE_FETCH_TRACKI12 /* @min:disableFetchTracking */] = false,
|
|
951
|
-
_a[_DYN_EXCLUDE_REQUEST_FROM10 /* @min:excludeRequestFromAutoTrackingPatterns */] = undefined,
|
|
952
|
-
_a.disableCorrelationHeaders = false,
|
|
953
|
-
_a.distributedTracingMode = 1 /* eDistributedTracingModes.AI_AND_W3C */,
|
|
954
|
-
_a.correlationHeaderExcludedDomains = DfltAjaxCorrelationHeaderExDomains,
|
|
955
|
-
_a.correlationHeaderDomains = undefined,
|
|
956
|
-
_a.correlationHeaderExcludePatterns = undefined,
|
|
957
|
-
_a[_DYN_APP_ID /* @min:appId */] = undefined,
|
|
958
|
-
_a.enableCorsCorrelation = false,
|
|
959
|
-
_a[_DYN_ENABLE_REQUEST_HEADE5 /* @min:enableRequestHeaderTracking */] = false,
|
|
960
|
-
_a[_DYN_ENABLE_RESPONSE_HEAD9 /* @min:enableResponseHeaderTracking */] = false,
|
|
961
|
-
_a[_DYN_ENABLE_AJAX_ERROR_ST6 /* @min:enableAjaxErrorStatusText */] = false,
|
|
962
|
-
_a[_DYN_ENABLE_AJAX_PERF_TRA7 /* @min:enableAjaxPerfTracking */] = false,
|
|
963
|
-
_a.maxAjaxPerfLookupAttempts = 3,
|
|
964
|
-
_a[_DYN_AJAX_PERF_LOOKUP_DEL16 /* @min:ajaxPerfLookupDelay */] = 25,
|
|
965
|
-
_a.ignoreHeaders = [
|
|
966
|
-
"Authorization",
|
|
967
|
-
"X-API-Key",
|
|
968
|
-
"WWW-Authenticate"
|
|
969
|
-
],
|
|
970
|
-
_a[_DYN_ADD_REQUEST_CONTEXT /* @min:addRequestContext */] = undefined,
|
|
971
|
-
_a);
|
|
972
|
-
return config;
|
|
973
|
-
};
|
|
974
|
-
AjaxMonitor.getEmptyConfig = function () {
|
|
975
|
-
var emptyConfig = this[_DYN_GET_DEFAULT_CONFIG /* @min:%2egetDefaultConfig */]();
|
|
976
|
-
objForEachKey(emptyConfig, function (value) {
|
|
977
|
-
emptyConfig[value] = undefined;
|
|
978
|
-
});
|
|
979
|
-
return emptyConfig;
|
|
980
|
-
};
|
|
981
1023
|
// Removed Stub for AjaxMonitor.prototype.initialize.
|
|
982
1024
|
AjaxMonitor.prototype.processTelemetry = function (item, itemCtx) {
|
|
983
1025
|
this.processNext(item, itemCtx);
|
|
@@ -985,8 +1027,21 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
985
1027
|
// Removed Stub for AjaxMonitor.prototype.trackDependencyData.
|
|
986
1028
|
// Removed Stub for AjaxMonitor.prototype.includeCorrelationHeaders.
|
|
987
1029
|
// Removed Stub for AjaxMonitor.prototype.addDependencyListener.
|
|
1030
|
+
/**
|
|
1031
|
+
* Add an dependency telemetry initializer callback function to allow populating additional properties or drop the request.
|
|
1032
|
+
* It is called after the dependency call has completed and any available performance details are available. A dependency
|
|
1033
|
+
* initializer is similar to the TelemetryInitializer function but it allows you to block the reporting of the dependency
|
|
1034
|
+
* request so that it doesn't count against the `maxAjaxCallsPerView`.
|
|
1035
|
+
* @param dependencyInitializer - The Dependency Telemetry Initializer function
|
|
1036
|
+
* @returns - A IDependencyInitializerHandler to enable the initializer to be removed
|
|
1037
|
+
*/
|
|
1038
|
+
AjaxMonitor.prototype.addDependencyInitializer = function (dependencyInitializer) {
|
|
1039
|
+
return null;
|
|
1040
|
+
};
|
|
988
1041
|
// Removed Stub for AjaxMonitor.prototype.trackDependencyDataInternal.
|
|
989
1042
|
AjaxMonitor.identifier = "AjaxDependencyPlugin";
|
|
1043
|
+
AjaxMonitor.getDefaultConfig = _getDefaultConfig;
|
|
1044
|
+
AjaxMonitor.getEmptyConfig = _getEmptyConfig;
|
|
990
1045
|
return AjaxMonitor;
|
|
991
1046
|
}(BaseTelemetryPlugin));
|
|
992
1047
|
export { AjaxMonitor };
|