1.4.9 • Published 2 months ago

inspector-api v1.4.9

Weekly downloads
1,607
License
MIT
Repository
github
Last release
2 months ago

GitHub release GitHub license

CI pipeline Code coverage Opened issues Opened PR DeepScan grade Node version

Purpose

Simple wrapper around "inspector" module. Basically it adds :

  • promises & async/await syntax
  • S3 exporter

Compatibility

VersionSupportedTested
20.xyesyes
18.xyesyes
16.xyesyes

In order to have all features we recommend to use at least Node.js version 10 or higher.

Installation

$ npm install inspector-api --save

Usage

CPU profiling

const Inspector = require('inspector-api')
const inspector = new Inspector()

await inspector.profiler.enable()
await inspector.profiler.start()
// Invoke business logic under measurement here...

// some time later...
await inspector.profiler.stop()

Memory sampling

const Inspector = require('inspector-api')
const inspector = new Inspector()

await inspector.heap.enable()
await inspector.heap.startSampling()
// Invoke business logic under measurement here...

// some time later...
await inspector.heap.stopSampling()

Memory snapshot

const Inspector = require('inspector-api')
const inspector = new Inspector()

await inspector.heap.takeSnapshot()

Code coverage

const Inspector = require('inspector-api')
const inspector = new Inspector()

await inspector.profiler.enable()
await inspector.profiler.startPreciseCoverage({ callCount: true, detailed: true })

const data = await inspector.profiler.takePreciseCoverage()
await inspector.profiler.stopPreciseCoverage()

Use S3 exporter

const Inspector = require('inspector-api')
const inspector = new Inspector({
    storage: {
        type: 's3',
        bucket: 'testBucket',
        dir: 'inspector'
    }
})

await inspector.profiler.enable()
await inspector.profiler.start()
// Invoke business logic under measurement here...

// some time later...
await inspector.profiler.stop()

Warning: it seems that the new AWS SDK leads to unexpected error if you use the takeSnapshot method (you should use memory sampling)

Constructor's config

new inspector([config])

config.storage

OptiondescriptionDefault value
typeStorage type (raw, s3 or fs)raw
bucketS3 bucket's namenone
dirDirectory where to store the filenone

If you use fs, the generated data will be store on the disk in your default tmp directory. You can display it in Node.js with the command require('os').tmpdir()

Test

$ npm test

Coverage report can be found in coverage/.

1.4.9

2 months ago

1.4.8

5 months ago

1.4.7

10 months ago

1.4.6

1 year ago

1.4.5

2 years ago

1.4.4

2 years ago

1.4.3

2 years ago

1.4.2

3 years ago

1.4.1

3 years ago

1.4.0

3 years ago

1.3.0

3 years ago

1.2.1

3 years ago

1.2.0

3 years ago

1.1.0

3 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

5 years ago

1.0.0

5 years ago

0.1.0

5 years ago