npm

Ready to take your JavaScript development to the next level? Meet npm Enterprise - the ultimate in enterprise JavaScript.Learn more »

long-task-detector

2.0.0 • Public • Published

long-task-detector

Library that detects and reports long-running CPU tasks in node.

Comes with minimal (~10% CPU) overhead (asynchook + profiler). Tested for memory leaks.

example:

Usage:

var {createDetector} = require('../lib/index')
 
var cancelDetector = createDetector(function(report) {
    console.warn("Task length", report.taskLength)
    console.warn("Top 10 items", report.items)
    console.warn("Cpu and stack of first item", report.items[0].cpu, report.items[0].stackTrace)
    console.warn(report.toString())
    // Or send to your favorite alerting service
}, 50)
 
// cancelDetector() // to stop

Example output:

WARNING: Task took 52ms to run!
CPU: 66.7%
  at f2 (/Users/spion/Documents/long-task-detector/test/index.js:22)
  at f1 (/Users/spion/Documents/long-task-detector/test/index.js:17)
  at ? (/Users/spion/Documents/long-task-detector/test/index.js:12)
  at args.(anonymous function) (/Users/spion/Documents/long-task-detector/node_modules/async-hook/patches/timers.js:50)
  at ontimeout (timers.js:361)
  at tryOnTimeout (timers.js:233)
  at listOnTimeout (timers.js:161)
  at (root) (:0)
CPU: 33.3%
  at f3 (/Users/spion/Documents/long-task-detector/test/index.js:26)
  at f1 (/Users/spion/Documents/long-task-detector/test/index.js:17)
  at ? (/Users/spion/Documents/long-task-detector/test/index.js:12)
  at args.(anonymous function) (/Users/spion/Documents/long-task-detector/node_modules/async-hook/patches/timers.js:50)
  at ontimeout (timers.js:361)
  at tryOnTimeout (timers.js:233)
  at listOnTimeout (timers.js:161)
  at (root) (:0)

API

 
export declare function createDetector(notifyMe: (report: Report) => void, maxDelta: number): () => void;
 
export interface Report {
    taskLength: number;
    items: ReportItem[];
}
export interface ReportItem {
    cpu: number;
    stackTrace: StackItem[];
}
export interface StackItem {
    name: string;
    line: number;
    url: string;
}

licence

ISC

Keywords

none

install

npm i long-task-detector

Downloadsweekly downloads

18

version

2.0.0

license

ISC

last publish

collaborators

  • avatar
Report a vulnerability