73 lines
3.8 KiB
JavaScript
73 lines
3.8 KiB
JavaScript
"use strict";
|
|
var __extends = (this && this.__extends) || (function () {
|
|
var extendStatics = Object.setPrototypeOf ||
|
|
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
|
return function (d, b) {
|
|
extendStatics(d, b);
|
|
function __() { this.constructor = d; }
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
})();
|
|
var TelemetryClient = require("./TelemetryClient");
|
|
var ServerRequestTracking = require("../AutoCollection/HttpRequests");
|
|
var ClientRequestTracking = require("../AutoCollection/HttpDependencies");
|
|
var Logging = require("./Logging");
|
|
/**
|
|
* Application Insights Telemetry Client for Node.JS. Provides the Application Insights TelemetryClient API
|
|
* in addition to Node-specific helper functions.
|
|
* Construct a new TelemetryClient to have an instance with a different configuration than the default client.
|
|
* In most cases, `appInsights.defaultClient` should be used instead.
|
|
*/
|
|
var NodeClient = (function (_super) {
|
|
__extends(NodeClient, _super);
|
|
function NodeClient() {
|
|
return _super !== null && _super.apply(this, arguments) || this;
|
|
}
|
|
/**
|
|
* Log RequestTelemetry from HTTP request and response. This method will log immediately without waiting for request completion
|
|
* and it requires duration parameter to be specified on NodeHttpRequestTelemetry object.
|
|
* Use trackNodeHttpRequest function to log the telemetry after request completion
|
|
* @param telemetry Object encapsulating incoming request, response and duration information
|
|
*/
|
|
NodeClient.prototype.trackNodeHttpRequestSync = function (telemetry) {
|
|
if (telemetry && telemetry.request && telemetry.response && telemetry.duration) {
|
|
ServerRequestTracking.trackRequestSync(this, telemetry);
|
|
}
|
|
else {
|
|
Logging.warn("trackNodeHttpRequestSync requires NodeHttpRequestTelemetry object with request, response and duration specified.");
|
|
}
|
|
};
|
|
/**
|
|
* Log RequestTelemetry from HTTP request and response. This method will `follow` the request to completion.
|
|
* Use trackNodeHttpRequestSync function to log telemetry immediately without waiting for request completion
|
|
* @param telemetry Object encapsulating incoming request and response information
|
|
*/
|
|
NodeClient.prototype.trackNodeHttpRequest = function (telemetry) {
|
|
if (telemetry.duration || telemetry.error) {
|
|
Logging.warn("trackNodeHttpRequest will ignore supplied duration and error parameters. These values are collected from the request and response objects.");
|
|
}
|
|
if (telemetry && telemetry.request && telemetry.response) {
|
|
ServerRequestTracking.trackRequest(this, telemetry);
|
|
}
|
|
else {
|
|
Logging.warn("trackNodeHttpRequest requires NodeHttpRequestTelemetry object with request and response specified.");
|
|
}
|
|
};
|
|
/**
|
|
* Log DependencyTelemetry from outgoing HTTP request. This method will instrument the outgoing request and append
|
|
* the specified headers and will log the telemetry when outgoing request is complete
|
|
* @param telemetry Object encapsulating outgoing request information
|
|
*/
|
|
NodeClient.prototype.trackNodeHttpDependency = function (telemetry) {
|
|
if (telemetry && telemetry.request) {
|
|
ClientRequestTracking.trackRequest(this, telemetry);
|
|
}
|
|
else {
|
|
Logging.warn("trackNodeHttpDependency requires NodeHttpDependencyTelemetry object with request specified.");
|
|
}
|
|
};
|
|
return NodeClient;
|
|
}(TelemetryClient));
|
|
module.exports = NodeClient;
|
|
//# sourceMappingURL=NodeClient.js.map
|