@microsoft/applicationinsights-dependencies-js 2.8.7-nightly.2208-09 → 2.8.7
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 +152 -105
- 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 +676 -43
- package/dist/applicationinsights-dependencies-js.api.md +63 -9
- package/dist/applicationinsights-dependencies-js.d.ts +73 -8
- package/dist/applicationinsights-dependencies-js.js +152 -105
- 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 +7 -7
- package/dist-esm/__DynamicConstants.js.map +1 -1
- package/dist-esm/ajax.js +155 -100
- 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 +60 -63
- package/src/DependencyInitializer.ts +44 -0
- package/src/DependencyListener.ts +13 -3
- package/src/__DynamicConstants.ts +6 -6
- 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 +5 -5
- package/types/ajax.d.ts +18 -5
- package/types/ajaxRecord.d.ts +6 -0
- package/types/applicationinsights-dependencies-js.d.ts +2 -0
- package/types/tsdoc-metadata.json +1 -1
package/dist-esm/ajax.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Application Insights JavaScript SDK - Dependencies Plugin, 2.8.7
|
|
2
|
+
* Application Insights JavaScript SDK - Dependencies Plugin, 2.8.7
|
|
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 { CorrelationIdHelper, DisabledPropertyName, PropertiesPluginIdentifier, RemoteDependencyData, RequestHeaders, 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_MES19, _DYN_AJAX_PERF_LOOKUP_DEL18, _DYN_APP_ID,
|
|
12
|
+
import { _DYN_ABORT_DONE, _DYN_ADD_REQUEST_CONTEXT, _DYN_AJAX_DIAGNOSTICS_MES19, _DYN_AJAX_PERF_LOOKUP_DEL18, _DYN_APP_ID, _DYN_CAN_INCLUDE_CORRELAT3, _DYN_CONTEXT, _DYN_CORE, _DYN_CORRELATION_CONTEXT, _DYN_DISABLE_AJAX_TRACKIN12, _DYN_DISABLE_FETCH_TRACKI13, _DYN_DISTRIBUTED_TRACING_5, _DYN_ENABLE_AJAX_ERROR_ST7, _DYN_ENABLE_AJAX_PERF_TRA8, _DYN_ENABLE_REQUEST_HEADE6, _DYN_ENABLE_RESPONSE_HEAD10, _DYN_ERROR_STATUS_TEXT, _DYN_EXCLUDE_REQUEST_FROM11, _DYN_GET_ABSOLUTE_URL, _DYN_GET_ALL_RESPONSE_HEA16, _DYN_GET_CORRELATION_CONT17, _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_V9, _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_TI15, _DYN_RESPONSE_TEXT, _DYN_SEND_DONE, _DYN_SET_REQUEST_HEADER, _DYN_SPAN_ID, _DYN_SPAN_ID1, _DYN_START_TIME, _DYN_STATE_CHANGE_ATTACHE14, _DYN_STATUS, _DYN_STATUS_TEXT, _DYN_TO_LOWER_CASE, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN_TRACE_ID0, _DYN_TRACK_DEPENDENCY_DAT4, _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_V9 /* @min:maxAjaxCallsPerView */] = 500,
|
|
178
|
+
_a[_DYN_DISABLE_AJAX_TRACKIN12 /* @min:disableAjaxTracking */] = false,
|
|
179
|
+
_a[_DYN_DISABLE_FETCH_TRACKI13 /* @min:disableFetchTracking */] = false,
|
|
180
|
+
_a[_DYN_EXCLUDE_REQUEST_FROM11 /* @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_HEADE6 /* @min:enableRequestHeaderTracking */] = false,
|
|
189
|
+
_a[_DYN_ENABLE_RESPONSE_HEAD10 /* @min:enableResponseHeaderTracking */] = false,
|
|
190
|
+
_a[_DYN_ENABLE_AJAX_ERROR_ST7 /* @min:enableAjaxErrorStatusText */] = false,
|
|
191
|
+
_a[_DYN_ENABLE_AJAX_PERF_TRA8 /* @min:enableAjaxPerfTracking */] = false,
|
|
192
|
+
_a.maxAjaxPerfLookupAttempts = 3,
|
|
193
|
+
_a[_DYN_AJAX_PERF_LOOKUP_DEL18 /* @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,14 +254,14 @@ 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);
|
|
194
263
|
if (input) { // Fetch
|
|
195
|
-
if (CorrelationIdHelper[
|
|
264
|
+
if (CorrelationIdHelper[_DYN_CAN_INCLUDE_CORRELAT3 /* @min:%2ecanIncludeCorrelationHeader */](_config, ajaxData[_DYN_GET_ABSOLUTE_URL /* @min:%2egetAbsoluteUrl */](), currentWindowHost)) {
|
|
196
265
|
if (!init) {
|
|
197
266
|
init = {};
|
|
198
267
|
}
|
|
@@ -230,7 +299,7 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
230
299
|
return init;
|
|
231
300
|
}
|
|
232
301
|
else if (xhr) { // XHR
|
|
233
|
-
if (CorrelationIdHelper[
|
|
302
|
+
if (CorrelationIdHelper[_DYN_CAN_INCLUDE_CORRELAT3 /* @min:%2ecanIncludeCorrelationHeader */](_config, ajaxData[_DYN_GET_ABSOLUTE_URL /* @min:%2egetAbsoluteUrl */](), currentWindowHost)) {
|
|
234
303
|
if (_isUsingAIHeaders) {
|
|
235
304
|
var id = "|" + ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */] + "." + ajaxData[_DYN_SPAN_ID /* @min:%2espanID */];
|
|
236
305
|
xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](RequestHeaders[3 /* eRequestHeaders.requestIdHeader */], id);
|
|
@@ -261,7 +330,7 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
261
330
|
}
|
|
262
331
|
return undefined;
|
|
263
332
|
};
|
|
264
|
-
_self[
|
|
333
|
+
_self[_DYN_TRACK_DEPENDENCY_DAT4 /* @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_TRA8 /* @min:%2eenableAjaxPerfTracking */];
|
|
340
398
|
_maxAjaxCallsPerView = _config[_DYN_MAX_AJAX_CALLS_PER_V9 /* @min:%2emaxAjaxCallsPerView */];
|
|
341
399
|
_enableResponseHeaderTracking = _config[_DYN_ENABLE_RESPONSE_HEAD10 /* @min:%2eenableResponseHeaderTracking */];
|
|
342
|
-
_excludeRequestFromAutoTrackingPatterns = _config[_DYN_EXCLUDE_REQUEST_FROM11 /* @min:%2eexcludeRequestFromAutoTrackingPatterns */];
|
|
400
|
+
_excludeRequestFromAutoTrackingPatterns = [].concat(_config[_DYN_EXCLUDE_REQUEST_FROM11 /* @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
|
}
|
|
@@ -435,7 +493,7 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
435
493
|
}
|
|
436
494
|
},
|
|
437
495
|
// Create an error callback to report any hook errors
|
|
438
|
-
hkErr: _createErrorCallbackFunc(_self, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, "Failed to monitor Window.fetch
|
|
496
|
+
hkErr: _createErrorCallbackFunc(_self, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, "Failed to monitor Window.fetch" + ERROR_POSTFIX)
|
|
439
497
|
}));
|
|
440
498
|
_fetchInitialized = true;
|
|
441
499
|
}
|
|
@@ -482,7 +540,7 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
482
540
|
}
|
|
483
541
|
}
|
|
484
542
|
},
|
|
485
|
-
hkErr: _createErrorCallbackFunc(_self, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */,
|
|
543
|
+
hkErr: _createErrorCallbackFunc(_self, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, ERROR_HEADER + ".open" + ERROR_POSTFIX)
|
|
486
544
|
});
|
|
487
545
|
// Instrument send
|
|
488
546
|
_hookProto(XMLHttpRequest, "send", {
|
|
@@ -494,12 +552,12 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
494
552
|
if (_isMonitoredXhrInstance(xhr) && !ajaxData.xhrMonitoringState[_DYN_SEND_DONE /* @min:%2esendDone */]) {
|
|
495
553
|
_createMarkId("xhr", ajaxData);
|
|
496
554
|
ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */] = dateTimeUtilsNow();
|
|
497
|
-
_self[
|
|
555
|
+
_self[_DYN_INCLUDE_CORRELATION_2 /* @min:%2eincludeCorrelationHeaders */](ajaxData, undefined, undefined, xhr);
|
|
498
556
|
ajaxData.xhrMonitoringState[_DYN_SEND_DONE /* @min:%2esendDone */] = true;
|
|
499
557
|
}
|
|
500
558
|
}
|
|
501
559
|
},
|
|
502
|
-
hkErr: _createErrorCallbackFunc(_self, 17 /* _eInternalMessageId.FailedMonitorAjaxSend */,
|
|
560
|
+
hkErr: _createErrorCallbackFunc(_self, 17 /* _eInternalMessageId.FailedMonitorAjaxSend */, ERROR_HEADER + ERROR_POSTFIX)
|
|
503
561
|
});
|
|
504
562
|
// Instrument abort
|
|
505
563
|
_hookProto(XMLHttpRequest, "abort", {
|
|
@@ -514,7 +572,7 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
514
572
|
}
|
|
515
573
|
}
|
|
516
574
|
},
|
|
517
|
-
hkErr: _createErrorCallbackFunc(_self, 13 /* _eInternalMessageId.FailedMonitorAjaxAbort */,
|
|
575
|
+
hkErr: _createErrorCallbackFunc(_self, 13 /* _eInternalMessageId.FailedMonitorAjaxAbort */, ERROR_HEADER + ".abort" + ERROR_POSTFIX)
|
|
518
576
|
});
|
|
519
577
|
// Instrument setRequestHeader
|
|
520
578
|
_hookProto(XMLHttpRequest, "setRequestHeader", {
|
|
@@ -527,7 +585,7 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
527
585
|
}
|
|
528
586
|
}
|
|
529
587
|
},
|
|
530
|
-
hkErr: _createErrorCallbackFunc(_self, 71 /* _eInternalMessageId.FailedMonitorAjaxSetRequestHeader */,
|
|
588
|
+
hkErr: _createErrorCallbackFunc(_self, 71 /* _eInternalMessageId.FailedMonitorAjaxSetRequestHeader */, ERROR_HEADER + ".setRequestHeader" + ERROR_POSTFIX)
|
|
531
589
|
});
|
|
532
590
|
_xhrInitialized = true;
|
|
533
591
|
}
|
|
@@ -638,7 +696,7 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
638
696
|
var exceptionText = dumpObj(e);
|
|
639
697
|
// ignore messages with c00c023f, as this a known IE9 XHR abort issue
|
|
640
698
|
if (!exceptionText || _indexOf(exceptionText[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](), "c00c023f") === -1) {
|
|
641
|
-
_throwInternalCritical(_self, 16 /* _eInternalMessageId.FailedMonitorAjaxRSC */,
|
|
699
|
+
_throwInternalCritical(_self, 16 /* _eInternalMessageId.FailedMonitorAjaxRSC */, ERROR_HEADER + " 'readystatechange' event handler" + ERROR_POSTFIX, (_a = {},
|
|
642
700
|
_a[_DYN_AJAX_DIAGNOSTICS_MES19 /* @min:ajaxDiagnosticsMessage */] = _getFailedAjaxDiagnosticsMessage(xhr),
|
|
643
701
|
_a.exception = exceptionText,
|
|
644
702
|
_a));
|
|
@@ -669,7 +727,7 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
669
727
|
if (e) {
|
|
670
728
|
errorProps["exception"] = dumpObj(e);
|
|
671
729
|
}
|
|
672
|
-
_throwInternalWarning(_self, 14 /* _eInternalMessageId.FailedMonitorAjaxDur */,
|
|
730
|
+
_throwInternalWarning(_self, 14 /* _eInternalMessageId.FailedMonitorAjaxDur */, FAILED_TO_CALCULATE_DURATION_ERROR + "ajax call" + ERROR_NOT_SENT, errorProps);
|
|
673
731
|
}
|
|
674
732
|
_findPerfResourceEntry("xmlhttprequest", ajaxData, function () {
|
|
675
733
|
try {
|
|
@@ -711,13 +769,14 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
711
769
|
}
|
|
712
770
|
}
|
|
713
771
|
catch (e) {
|
|
714
|
-
_throwInternalWarning(_self, 104 /* _eInternalMessageId.FailedAddingCustomDefinedRequestContext */,
|
|
772
|
+
_throwInternalWarning(_self, 104 /* _eInternalMessageId.FailedAddingCustomDefinedRequestContext */, CUSTOM_REQUEST_CONTEXT_ERROR);
|
|
715
773
|
}
|
|
716
774
|
if (dependency) {
|
|
717
775
|
if (properties !== undefined) {
|
|
718
776
|
dependency[STR_PROPERTIES /* @min:%2eproperties */] = __assign(__assign({}, dependency.properties), properties);
|
|
719
777
|
}
|
|
720
|
-
|
|
778
|
+
var sysProperties = ajaxData[_DYN_GET_PART_APROPS /* @min:%2egetPartAProps */]();
|
|
779
|
+
_reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE /* @min:%2ecore */], ajaxData, dependency, null, sysProperties);
|
|
721
780
|
}
|
|
722
781
|
else {
|
|
723
782
|
_reportXhrError(null, {
|
|
@@ -752,7 +811,7 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
752
811
|
}
|
|
753
812
|
}
|
|
754
813
|
catch (e) {
|
|
755
|
-
_throwInternalWarning(_self, 18 /* _eInternalMessageId.FailedMonitorAjaxGetCorrelationHeader */,
|
|
814
|
+
_throwInternalWarning(_self, 18 /* _eInternalMessageId.FailedMonitorAjaxGetCorrelationHeader */, CORRELATION_HEADER_ERROR, (_a = {},
|
|
756
815
|
_a[_DYN_AJAX_DIAGNOSTICS_MES19 /* @min:ajaxDiagnosticsMessage */] = _getFailedAjaxDiagnosticsMessage(xhr),
|
|
757
816
|
_a.exception = dumpObj(e),
|
|
758
817
|
_a));
|
|
@@ -893,7 +952,7 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
893
952
|
if (e) {
|
|
894
953
|
errorProps["exception"] = dumpObj(e);
|
|
895
954
|
}
|
|
896
|
-
_throwInternalWarning(_self, msgId,
|
|
955
|
+
_throwInternalWarning(_self, msgId, FAILED_TO_CALCULATE_DURATION_ERROR + "fetch call" + ERROR_NOT_SENT, errorProps);
|
|
897
956
|
}
|
|
898
957
|
ajaxData[_DYN_RESPONSE_FINISHED_TI15 /* @min:%2eresponseFinishedTime */] = dateTimeUtilsNow();
|
|
899
958
|
ajaxData[_DYN_STATUS /* @min:%2estatus */] = status;
|
|
@@ -906,13 +965,14 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
906
965
|
}
|
|
907
966
|
}
|
|
908
967
|
catch (e) {
|
|
909
|
-
_throwInternalWarning(_self, 104 /* _eInternalMessageId.FailedAddingCustomDefinedRequestContext */,
|
|
968
|
+
_throwInternalWarning(_self, 104 /* _eInternalMessageId.FailedAddingCustomDefinedRequestContext */, CUSTOM_REQUEST_CONTEXT_ERROR);
|
|
910
969
|
}
|
|
911
970
|
if (dependency) {
|
|
912
971
|
if (properties !== undefined) {
|
|
913
972
|
dependency[STR_PROPERTIES /* @min:%2eproperties */] = __assign(__assign({}, dependency.properties), properties);
|
|
914
973
|
}
|
|
915
|
-
|
|
974
|
+
var sysProperties = ajaxData[_DYN_GET_PART_APROPS /* @min:%2egetPartAProps */]();
|
|
975
|
+
_reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE /* @min:%2ecore */], ajaxData, dependency, null, sysProperties);
|
|
916
976
|
}
|
|
917
977
|
else {
|
|
918
978
|
_reportFetchError(14 /* _eInternalMessageId.FailedMonitorAjaxDur */, null, {
|
|
@@ -931,52 +991,34 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
931
991
|
return CorrelationIdHelper[_DYN_GET_CORRELATION_CONT17 /* @min:%2egetCorrelationContext */](responseHeader);
|
|
932
992
|
}
|
|
933
993
|
catch (e) {
|
|
934
|
-
_throwInternalWarning(_self, 18 /* _eInternalMessageId.FailedMonitorAjaxGetCorrelationHeader */,
|
|
994
|
+
_throwInternalWarning(_self, 18 /* _eInternalMessageId.FailedMonitorAjaxGetCorrelationHeader */, CORRELATION_HEADER_ERROR, {
|
|
935
995
|
fetchDiagnosticsMessage: _getFailedFetchDiagnosticsMessage(response),
|
|
936
996
|
exception: dumpObj(e)
|
|
937
997
|
});
|
|
938
998
|
}
|
|
939
999
|
}
|
|
940
1000
|
}
|
|
1001
|
+
function _reportDependencyInternal(initializers, core, ajaxData, dependency, properties, systemProperties) {
|
|
1002
|
+
var _a;
|
|
1003
|
+
var result = true;
|
|
1004
|
+
var initializersCount = initializers[_DYN_LENGTH /* @min:%2elength */];
|
|
1005
|
+
if (initializersCount > 0) {
|
|
1006
|
+
var details = (_a = {
|
|
1007
|
+
item: dependency
|
|
1008
|
+
},
|
|
1009
|
+
_a[STR_PROPERTIES /* @min:properties */] = properties,
|
|
1010
|
+
_a.sysProperties = systemProperties,
|
|
1011
|
+
_a.context = ajaxData ? ajaxData[_DYN_CONTEXT /* @min:%2econtext */] : null,
|
|
1012
|
+
_a);
|
|
1013
|
+
result = _processDependencyContainer(core, initializers, details, "initializer");
|
|
1014
|
+
}
|
|
1015
|
+
if (result) {
|
|
1016
|
+
_self[_DYN_TRACK_DEPENDENCY_DAT4 /* @min:%2etrackDependencyDataInternal */](dependency, properties, systemProperties);
|
|
1017
|
+
}
|
|
1018
|
+
}
|
|
941
1019
|
});
|
|
942
1020
|
return _this;
|
|
943
1021
|
}
|
|
944
|
-
AjaxMonitor.getDefaultConfig = function () {
|
|
945
|
-
var _a;
|
|
946
|
-
var config = (_a = {},
|
|
947
|
-
_a[_DYN_MAX_AJAX_CALLS_PER_V9 /* @min:maxAjaxCallsPerView */] = 500,
|
|
948
|
-
_a[_DYN_DISABLE_AJAX_TRACKIN12 /* @min:disableAjaxTracking */] = false,
|
|
949
|
-
_a[_DYN_DISABLE_FETCH_TRACKI13 /* @min:disableFetchTracking */] = false,
|
|
950
|
-
_a[_DYN_EXCLUDE_REQUEST_FROM11 /* @min:excludeRequestFromAutoTrackingPatterns */] = undefined,
|
|
951
|
-
_a.disableCorrelationHeaders = false,
|
|
952
|
-
_a.distributedTracingMode = 1 /* eDistributedTracingModes.AI_AND_W3C */,
|
|
953
|
-
_a.correlationHeaderExcludedDomains = DfltAjaxCorrelationHeaderExDomains,
|
|
954
|
-
_a.correlationHeaderDomains = undefined,
|
|
955
|
-
_a.correlationHeaderExcludePatterns = undefined,
|
|
956
|
-
_a[_DYN_APP_ID /* @min:appId */] = undefined,
|
|
957
|
-
_a.enableCorsCorrelation = false,
|
|
958
|
-
_a[_DYN_ENABLE_REQUEST_HEADE6 /* @min:enableRequestHeaderTracking */] = false,
|
|
959
|
-
_a[_DYN_ENABLE_RESPONSE_HEAD10 /* @min:enableResponseHeaderTracking */] = false,
|
|
960
|
-
_a[_DYN_ENABLE_AJAX_ERROR_ST7 /* @min:enableAjaxErrorStatusText */] = false,
|
|
961
|
-
_a[_DYN_ENABLE_AJAX_PERF_TRA8 /* @min:enableAjaxPerfTracking */] = false,
|
|
962
|
-
_a.maxAjaxPerfLookupAttempts = 3,
|
|
963
|
-
_a[_DYN_AJAX_PERF_LOOKUP_DEL18 /* @min:ajaxPerfLookupDelay */] = 25,
|
|
964
|
-
_a.ignoreHeaders = [
|
|
965
|
-
"Authorization",
|
|
966
|
-
"X-API-Key",
|
|
967
|
-
"WWW-Authenticate"
|
|
968
|
-
],
|
|
969
|
-
_a[_DYN_ADD_REQUEST_CONTEXT /* @min:addRequestContext */] = undefined,
|
|
970
|
-
_a);
|
|
971
|
-
return config;
|
|
972
|
-
};
|
|
973
|
-
AjaxMonitor.getEmptyConfig = function () {
|
|
974
|
-
var emptyConfig = this[_DYN_GET_DEFAULT_CONFIG /* @min:%2egetDefaultConfig */]();
|
|
975
|
-
objForEachKey(emptyConfig, function (value) {
|
|
976
|
-
emptyConfig[value] = undefined;
|
|
977
|
-
});
|
|
978
|
-
return emptyConfig;
|
|
979
|
-
};
|
|
980
1022
|
// Removed Stub for AjaxMonitor.prototype.initialize.
|
|
981
1023
|
AjaxMonitor.prototype.processTelemetry = function (item, itemCtx) {
|
|
982
1024
|
this.processNext(item, itemCtx);
|
|
@@ -984,8 +1026,21 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
984
1026
|
// Removed Stub for AjaxMonitor.prototype.trackDependencyData.
|
|
985
1027
|
// Removed Stub for AjaxMonitor.prototype.includeCorrelationHeaders.
|
|
986
1028
|
// Removed Stub for AjaxMonitor.prototype.addDependencyListener.
|
|
1029
|
+
/**
|
|
1030
|
+
* Add an dependency telemetry initializer callback function to allow populating additional properties or drop the request.
|
|
1031
|
+
* It is called after the dependency call has completed and any available performance details are available. A dependency
|
|
1032
|
+
* initializer is similar to the TelemetryInitializer function but it allows you to block the reporting of the dependency
|
|
1033
|
+
* request so that it doesn't count against the `maxAjaxCallsPerView`.
|
|
1034
|
+
* @param dependencyInitializer - The Dependency Telemetry Initializer function
|
|
1035
|
+
* @returns - A IDependencyInitializerHandler to enable the initializer to be removed
|
|
1036
|
+
*/
|
|
1037
|
+
AjaxMonitor.prototype.addDependencyInitializer = function (dependencyInitializer) {
|
|
1038
|
+
return null;
|
|
1039
|
+
};
|
|
987
1040
|
// Removed Stub for AjaxMonitor.prototype.trackDependencyDataInternal.
|
|
988
1041
|
AjaxMonitor.identifier = "AjaxDependencyPlugin";
|
|
1042
|
+
AjaxMonitor.getDefaultConfig = _getDefaultConfig;
|
|
1043
|
+
AjaxMonitor.getEmptyConfig = _getEmptyConfig;
|
|
989
1044
|
return AjaxMonitor;
|
|
990
1045
|
}(BaseTelemetryPlugin));
|
|
991
1046
|
export { AjaxMonitor };
|