@azure/cosmos
Version:
Microsoft Azure Cosmos DB Service Node.js SDK for NOSQL API
121 lines (120 loc) • 5.97 kB
JavaScript
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var runtimeExecutionTimes_exports = {};
__export(runtimeExecutionTimes_exports, {
RuntimeExecutionTimes: () => RuntimeExecutionTimes
});
module.exports = __toCommonJS(runtimeExecutionTimes_exports);
var import_queryMetricsConstants = __toESM(require("./queryMetricsConstants.js"));
var import_queryMetricsUtils = require("./queryMetricsUtils.js");
var import_timeSpan = require("./timeSpan.js");
class RuntimeExecutionTimes {
constructor(queryEngineExecutionTime, systemFunctionExecutionTime, userDefinedFunctionExecutionTime) {
this.queryEngineExecutionTime = queryEngineExecutionTime;
this.systemFunctionExecutionTime = systemFunctionExecutionTime;
this.userDefinedFunctionExecutionTime = userDefinedFunctionExecutionTime;
}
/**
* returns a new RuntimeExecutionTimes instance that is the addition of this and the arguments.
*/
add(...runtimeExecutionTimesArray) {
let queryEngineExecutionTime = this.queryEngineExecutionTime;
let systemFunctionExecutionTime = this.systemFunctionExecutionTime;
let userDefinedFunctionExecutionTime = this.userDefinedFunctionExecutionTime;
for (const runtimeExecutionTimes of runtimeExecutionTimesArray) {
if (runtimeExecutionTimes == null) {
throw new Error("runtimeExecutionTimes has null or undefined item(s)");
}
queryEngineExecutionTime = queryEngineExecutionTime.add(
runtimeExecutionTimes.queryEngineExecutionTime
);
systemFunctionExecutionTime = systemFunctionExecutionTime.add(
runtimeExecutionTimes.systemFunctionExecutionTime
);
userDefinedFunctionExecutionTime = userDefinedFunctionExecutionTime.add(
runtimeExecutionTimes.userDefinedFunctionExecutionTime
);
}
return new RuntimeExecutionTimes(
queryEngineExecutionTime,
systemFunctionExecutionTime,
userDefinedFunctionExecutionTime
);
}
/**
* Output the RuntimeExecutionTimes as a delimited string.
*/
toDelimitedString() {
return `${import_queryMetricsConstants.default.SystemFunctionExecuteTimeInMs}=${this.systemFunctionExecutionTime.totalMilliseconds()};${import_queryMetricsConstants.default.UserDefinedFunctionExecutionTimeInMs}=${this.userDefinedFunctionExecutionTime.totalMilliseconds()}`;
}
static zero = new RuntimeExecutionTimes(
import_timeSpan.TimeSpan.zero,
import_timeSpan.TimeSpan.zero,
import_timeSpan.TimeSpan.zero
);
/**
* Returns a new instance of the RuntimeExecutionTimes class that is
* the aggregation of an array of RuntimeExecutionTimes.
*/
static createFromArray(runtimeExecutionTimesArray) {
if (runtimeExecutionTimesArray == null) {
throw new Error("runtimeExecutionTimesArray is null or undefined item(s)");
}
return RuntimeExecutionTimes.zero.add(...runtimeExecutionTimesArray);
}
/**
* Returns a new instance of the RuntimeExecutionTimes class this is deserialized from a delimited string.
*/
static createFromDelimitedString(delimitedString) {
const metrics = (0, import_queryMetricsUtils.parseDelimitedString)(delimitedString);
const vmExecutionTime = (0, import_queryMetricsUtils.timeSpanFromMetrics)(metrics, import_queryMetricsConstants.default.VMExecutionTimeInMs);
const indexLookupTime = (0, import_queryMetricsUtils.timeSpanFromMetrics)(metrics, import_queryMetricsConstants.default.IndexLookupTimeInMs);
const documentLoadTime = (0, import_queryMetricsUtils.timeSpanFromMetrics)(
metrics,
import_queryMetricsConstants.default.DocumentLoadTimeInMs
);
const documentWriteTime = (0, import_queryMetricsUtils.timeSpanFromMetrics)(
metrics,
import_queryMetricsConstants.default.DocumentWriteTimeInMs
);
let queryEngineExecutionTime = import_timeSpan.TimeSpan.zero;
queryEngineExecutionTime = queryEngineExecutionTime.add(vmExecutionTime);
queryEngineExecutionTime = queryEngineExecutionTime.subtract(indexLookupTime);
queryEngineExecutionTime = queryEngineExecutionTime.subtract(documentLoadTime);
queryEngineExecutionTime = queryEngineExecutionTime.subtract(documentWriteTime);
return new RuntimeExecutionTimes(
queryEngineExecutionTime,
(0, import_queryMetricsUtils.timeSpanFromMetrics)(metrics, import_queryMetricsConstants.default.SystemFunctionExecuteTimeInMs),
(0, import_queryMetricsUtils.timeSpanFromMetrics)(metrics, import_queryMetricsConstants.default.UserDefinedFunctionExecutionTimeInMs)
);
}
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
RuntimeExecutionTimes
});