UNPKG

lakutata

Version:

An IoC-based universal application framework.

211 lines (133 loc) 5.19 kB
import { m as t, a as i, q as s, b as e } from "../../../vendor/Package.16.mjs"; import { Component as o } from "../../lib/core/Component.mjs"; import "../../../vendor/Package.1.mjs"; import "../../../vendor/Package.3.mjs"; import "../../lib/base/async-constructor/AsyncConstructor.mjs"; import "../../lib/base/async-constructor/Append.mjs"; import "../../lib/helpers/IsPromiseLike.mjs"; import "../../lib/helpers/IsPromise.mjs"; import "util/types"; import "../../decorators/di/Lifetime.mjs"; import "../../lib/base/internal/ObjectLifetime.mjs"; import "../../constants/DIMetadataKey.mjs"; import "../../../vendor/Package.4.mjs"; import "../../../vendor/Package.5.mjs"; import "../../exceptions/di/LifetimeLockedException.mjs"; import "../../lib/base/abstracts/Exception.mjs"; import "../../lib/base/internal/BasicInfo.mjs"; import "../../lib/helpers/As.mjs"; import "../../../vendor/Package.6.mjs"; import "../../../vendor/Package.7.mjs"; import "../../lib/base/internal/ThrowWarning.mjs"; import "../../lib/helpers/Templating.mjs"; import "../../lib/base/internal/CamelCase.mjs"; import "../../lib/helpers/NoCase.mjs"; import "../../exceptions/MethodNotFoundException.mjs"; import "../../lib/ioc/DependencyInjectionContainer.mjs"; import "util"; import "../../lib/ioc/Errors.mjs"; import "../../exceptions/di/DependencyInjectionException.mjs"; import "../../lib/base/internal/ConstructorSymbol.mjs"; import "node:crypto"; import "../../../vendor/Package.2.mjs"; import "../../lib/base/internal/DataValidator.mjs"; import "node:util/types"; import "../../lib/validation/VLD.mjs"; import "../../../vendor/Package.11.mjs"; import "url"; import "../../../vendor/Package.10.mjs"; import "../../exceptions/dto/InvalidValueException.mjs"; import "../../../vendor/Package.9.mjs"; import "../../lib/helpers/IsHtml.mjs"; import "../../lib/helpers/IsXML.mjs"; import "../../constants/DTOMetadataKey.mjs"; import "../../lib/helpers/ObjectConstructor.mjs"; import "../../lib/helpers/ObjectParentConstructors.mjs"; import "../../lib/helpers/ObjectParentConstructor.mjs"; import "../../lib/helpers/ObjectPrototype.mjs"; import "../../lib/ioc/InjectionMode.mjs"; import "../../lib/ioc/Lifetime.mjs"; import "../../lib/ioc/ListModules.mjs"; import "../../../vendor/Package.8.mjs"; import "os"; import "path"; import "stream"; import "events"; import "fs"; import "../../lib/ioc/Utils.mjs"; import "../../lib/ioc/FunctionTokenizer.mjs"; import "../../lib/ioc/LoadModules.mjs"; import "../../lib/ioc/Resolvers.mjs"; import "../../lib/ioc/ParamParser.mjs"; import "../../lib/base/internal/ObjectWeakRefs.mjs"; import "../../lib/base/internal/ConfigurableRecordsInjection.mjs"; import "../../lib/base/internal/ObjectConfiguration.mjs"; import "../../lib/base/internal/ObjectInjection.mjs"; import "../../lib/base/internal/ObjectContainer.mjs"; import "../../lib/helpers/DevNull.mjs"; import "../../decorators/dto/Expect.mjs"; import "../../decorators/dto/IndexSignature.mjs"; import "../../decorators/dto/Accept.mjs"; import "../../lib/base/internal/MethodValidation.mjs"; import "../../exceptions/dto/InvalidMethodAcceptException.mjs"; import "../../exceptions/dto/InvalidMethodReturnException.mjs"; import "../../lib/helpers/IsEmptyObject.mjs"; import "../../lib/base/EventEmitter.mjs"; import "../../lib/core/Provider.mjs"; class CpuMonitor extends o { #t=5; #i=1e3; #s=100; #e=65535; #o; #r=[]; #m=0; #a=0; get statistics() { const o = parseFloat(t(this.#r).toFixed(this.#t)); if (!this.#m) this.#m = o; this.#m = this.#m > o ? o : this.#m; const r = parseFloat(i(this.#r).toFixed(this.#t)); if (!this.#a) this.#a = r; this.#a = this.#a < r ? r : this.#a; return { usage: this.#r[this.#r.length - 1], usageMin: this.#m, usageMax: this.#a, usageAvg: parseFloat(e(this.#r).toFixed(this.#t)), usageP50: parseFloat(s(this.#r, .5).toFixed(this.#t)), usageP90: parseFloat(s(this.#r, .9).toFixed(this.#t)), usageP95: parseFloat(s(this.#r, .95).toFixed(this.#t)), usageP99: parseFloat(s(this.#r, .99).toFixed(this.#t)) }; } async sampleCpuUsage() { return new Promise(((t, i) => { try { const i = process.cpuUsage(); setTimeout((() => { const s = process.cpuUsage(i); const e = (s.user + s.system) / 1e3 / this.#s * 100; this.#r.push(parseFloat(e.toFixed(this.#t))); if (this.#r.length > this.#e) this.#r.shift(); return t(); }), this.#s); } catch (t) { return i(t); } })); } async init() { await this.sampleCpuUsage(); this.#o = setInterval((() => this.sampleCpuUsage()), this.#i); } async destroy() { clearInterval(this.#o); } reset() { const t = this.#r[this.#r.length - 1]; this.#r = []; this.#r.push(t); } } export { CpuMonitor };