lakutata
Version:
An IoC-based universal application framework.
210 lines (134 loc) • 5.42 kB
JavaScript
/* Build Date: Mon Jan 05 2026 23:52:23 GMT+0800 (China Standard Time) */
"use strict";
Object.defineProperty(exports, Symbol.toStringTag, {
value: "Module"
});
const e = require("../../../vendor/Package.internal.53.cjs");
const i = require("../../lib/core/Component.cjs");
require("../../../vendor/Package.internal.3.cjs");
require("../../../vendor/Package.internal.4.cjs");
require("../../lib/base/async-constructor/AsyncConstructor.cjs");
require("../../lib/base/async-constructor/Append.cjs");
require("../../lib/helpers/IsPromiseLike.cjs");
require("../../lib/helpers/IsPromise.cjs");
require("util/types");
require("../../decorators/di/Lifetime.cjs");
require("../../lib/base/internal/ObjectLifetime.cjs");
require("../../constants/DIMetadataKey.cjs");
require("../../../vendor/Package.internal.1.cjs");
require("../../../vendor/Package.internal.2.cjs");
require("../../exceptions/di/LifetimeLockedException.cjs");
require("../../lib/base/abstracts/Exception.cjs");
require("../../../vendor/Package.internal.5.cjs");
require("../../lib/helpers/As.cjs");
require("../../../vendor/Package.internal.6.cjs");
require("../../lib/base/internal/ThrowWarning.cjs");
require("../../lib/helpers/Templating.cjs");
require("../../lib/base/internal/CamelCase.cjs");
require("../../lib/helpers/NoCase.cjs");
require("../../lib/helpers/DevNull.cjs");
require("../../exceptions/MethodNotFoundException.cjs");
require("../../lib/ioc/DependencyInjectionContainer.cjs");
require("util");
require("../../lib/ioc/Errors.cjs");
require("../../exceptions/di/DependencyInjectionException.cjs");
require("../../lib/base/internal/ConstructorSymbol.cjs");
require("node:crypto");
require("../../../vendor/Package.internal.7.cjs");
require("../../lib/base/internal/DataValidator.cjs");
require("node:util/types");
require("../../lib/validation/VLD.cjs");
require("url");
require("../../exceptions/dto/InvalidValueException.cjs");
require("../../../vendor/Package.internal.8.cjs");
require("../../lib/helpers/IsHtml.cjs");
require("../../lib/helpers/IsXML.cjs");
require("../../constants/DTOMetadataKey.cjs");
require("../../lib/helpers/ObjectConstructor.cjs");
require("../../lib/helpers/ObjectParentConstructors.cjs");
require("../../lib/helpers/ObjectParentConstructor.cjs");
require("../../lib/helpers/ObjectPrototype.cjs");
require("../../lib/ioc/InjectionMode.cjs");
require("../../lib/ioc/Lifetime.cjs");
require("../../lib/ioc/ListModules.cjs");
require("os");
require("path");
require("stream");
require("events");
require("fs");
require("../../lib/ioc/Utils.cjs");
require("../../lib/ioc/FunctionTokenizer.cjs");
require("../../lib/ioc/LoadModules.cjs");
require("../../lib/ioc/Resolvers.cjs");
require("../../lib/ioc/ParamParser.cjs");
require("../../lib/base/internal/ObjectWeakRefs.cjs");
require("../../lib/base/internal/ConfigurableRecordsInjection.cjs");
require("../../lib/base/internal/ObjectConfiguration.cjs");
require("../../lib/base/internal/ObjectInjection.cjs");
require("../../lib/base/internal/ObjectContainer.cjs");
require("../../decorators/dto/Expect.cjs");
require("../../decorators/dto/IndexSignature.cjs");
require("../../decorators/dto/Accept.cjs");
require("../../lib/base/internal/MethodValidation.cjs");
require("../../exceptions/dto/InvalidMethodAcceptException.cjs");
require("../../exceptions/dto/InvalidMethodReturnException.cjs");
require("../../lib/helpers/IsEmptyObject.cjs");
require("../../lib/base/EventEmitter.cjs");
require("../../lib/core/Provider.cjs");
class CpuMonitor extends i.Component {
#e=5;
#i=1e3;
#s=100;
#r=65535;
#t;
#a=[];
#n=0;
#c=0;
get statistics() {
const i = parseFloat(e.min(this.#a).toFixed(this.#e));
if (!this.#n) this.#n = i;
this.#n = this.#n > i ? i : this.#n;
const s = parseFloat(e.max(this.#a).toFixed(this.#e));
if (!this.#c) this.#c = s;
this.#c = this.#c < s ? s : this.#c;
return {
usage: this.#a[this.#a.length - 1],
usageMin: this.#n,
usageMax: this.#c,
usageAvg: parseFloat(e.mean(this.#a).toFixed(this.#e)),
usageP50: parseFloat(e.quantile(this.#a, .5).toFixed(this.#e)),
usageP90: parseFloat(e.quantile(this.#a, .9).toFixed(this.#e)),
usageP95: parseFloat(e.quantile(this.#a, .95).toFixed(this.#e)),
usageP99: parseFloat(e.quantile(this.#a, .99).toFixed(this.#e))
};
}
async sampleCpuUsage() {
return new Promise((e, i) => {
try {
const i = process.cpuUsage();
setTimeout(() => {
const s = process.cpuUsage(i);
const r = (s.user + s.system) / 1e3 / this.#s * 100;
this.#a.push(parseFloat(r.toFixed(this.#e)));
if (this.#a.length > this.#r) this.#a.shift();
return e();
}, this.#s);
} catch (e) {
return i(e);
}
});
}
async init() {
await this.sampleCpuUsage();
this.#t = setInterval(() => this.sampleCpuUsage(), this.#i);
}
async destroy() {
clearInterval(this.#t);
}
reset() {
const e = this.#a[this.#a.length - 1];
this.#a = [];
this.#a.push(e);
}
}
exports.CpuMonitor = CpuMonitor;