UNPKG

lakutata

Version:

An IoC-based universal application framework.

217 lines (137 loc) 5.46 kB
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const e = require("../../../vendor/Package.16.cjs"); const i = require("../../lib/core/Component.cjs"); require("../../../vendor/Package.1.cjs"); require("../../../vendor/Package.3.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.4.cjs"); require("../../../vendor/Package.5.cjs"); require("../../exceptions/di/LifetimeLockedException.cjs"); require("../../lib/base/abstracts/Exception.cjs"); require("../../lib/base/internal/BasicInfo.cjs"); require("../../lib/helpers/As.cjs"); require("../../../vendor/Package.6.cjs"); require("../../../vendor/Package.7.cjs"); require("../../lib/base/internal/ThrowWarning.cjs"); require("../../lib/helpers/Templating.cjs"); require("../../lib/base/internal/CamelCase.cjs"); require("../../lib/helpers/NoCase.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.2.cjs"); require("../../lib/base/internal/DataValidator.cjs"); require("node:util/types"); require("../../lib/validation/VLD.cjs"); require("../../../vendor/Package.11.cjs"); require("url"); require("../../../vendor/Package.10.cjs"); require("../../exceptions/dto/InvalidValueException.cjs"); require("../../../vendor/Package.9.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("../../../vendor/Package.8.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("../../lib/helpers/DevNull.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=[]; #c=0; #n=0; get statistics() { const i = parseFloat(e.min(this.#a).toFixed(this.#e)); if (!this.#c) this.#c = i; this.#c = this.#c > i ? i : this.#c; const s = parseFloat(e.max(this.#a).toFixed(this.#e)); if (!this.#n) this.#n = s; this.#n = this.#n < s ? s : this.#n; return { usage: this.#a[this.#a.length - 1], usageMin: this.#c, usageMax: this.#n, 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;