UNPKG

@beincom/node-profile

Version:

``` npm install @beincom/node-profile # yarn add @beincom/node-profile ```

72 lines 3.02 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ProfileService = exports.PROFILE_SERVICE_TOKEN = void 0; const common_1 = require("@nestjs/common"); const utils_1 = require("./utils"); const profilers_1 = require("./profilers"); exports.PROFILE_SERVICE_TOKEN = Symbol('PROFILE_SERVICE_TOKEN'); let ProfileService = class ProfileService { constructor(configs) { this.configs = configs; this.init({ authToken: this.configs.authToken, appName: this.configs.applicationName, flushIntervalMs: this.configs.flushIntervalMs, heap: this.configs.heap, serverAddress: this.configs.serverAddress, tags: this.configs.tags, wall: this.configs.wall, }); } init(config = {}) { (0, utils_1.checkPyroscopeConfig)(config); const processedConfig = (0, utils_1.processConfig)(config, (0, utils_1.getEnv)()); (0, utils_1.setProfiler)(new profilers_1.PyroscopeProfiler(processedConfig)); } getWallLabels() { return (0, utils_1.getProfiler)().wallProfiler.profiler.getLabels(); } setWallLabels(labels) { (0, utils_1.getProfiler)().wallProfiler.profiler.setLabels(labels); } startWallProfiling() { (0, utils_1.getProfiler)().wallProfiler.start(); } startCpuProfiling() { (0, utils_1.getProfiler)().wallProfiler.start(); } async stopWallProfiling() { await (0, utils_1.getProfiler)().wallProfiler.stop(); } async stopCpuProfiling() { await (0, utils_1.getProfiler)().wallProfiler.stop(); } startHeapProfiling() { (0, utils_1.getProfiler)().heapProfiler.start(); } async stopHeapProfiling() { await (0, utils_1.getProfiler)().heapProfiler.stop(); } start() { this.startWallProfiling(); this.startHeapProfiling(); } async stop() { await Promise.all([this.stopWallProfiling(), this.stopHeapProfiling()]); } }; exports.ProfileService = ProfileService; exports.ProfileService = ProfileService = __decorate([ (0, common_1.Injectable)(), __metadata("design:paramtypes", [Object]) ], ProfileService); //# sourceMappingURL=profiling.service.js.map