lakutata
Version:
An IoC-based universal application framework.
204 lines (130 loc) • 5.16 kB
JavaScript
/* Build Date: Mon Jan 05 2026 23:52:23 GMT+0800 (China Standard Time) */
import { m as t, a as i, q as s, b as e } from "../../../vendor/Package.internal.53.mjs";
import { Component as o } from "../../lib/core/Component.mjs";
import "../../../vendor/Package.internal.3.mjs";
import "../../../vendor/Package.internal.4.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.internal.1.mjs";
import "../../../vendor/Package.internal.2.mjs";
import "../../exceptions/di/LifetimeLockedException.mjs";
import "../../lib/base/abstracts/Exception.mjs";
import "../../../vendor/Package.internal.5.mjs";
import "../../lib/helpers/As.mjs";
import "../../../vendor/Package.internal.6.mjs";
import "../../lib/base/internal/ThrowWarning.mjs";
import "../../lib/helpers/Templating.mjs";
import "../../lib/base/internal/CamelCase.mjs";
import "../../lib/helpers/NoCase.mjs";
import "../../lib/helpers/DevNull.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.internal.7.mjs";
import "../../lib/base/internal/DataValidator.mjs";
import "node:util/types";
import "../../lib/validation/VLD.mjs";
import "url";
import "../../exceptions/dto/InvalidValueException.mjs";
import "../../../vendor/Package.internal.8.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 "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 "../../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=[];
#a=0;
#m=0;
get statistics() {
const o = parseFloat(t(this.#r).toFixed(this.#t));
if (!this.#a) this.#a = o;
this.#a = this.#a > o ? o : this.#a;
const r = parseFloat(i(this.#r).toFixed(this.#t));
if (!this.#m) this.#m = r;
this.#m = this.#m < r ? r : this.#m;
return {
usage: this.#r[this.#r.length - 1],
usageMin: this.#a,
usageMax: this.#m,
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 };