Naysayers Promote Misery

    inspector-api
    TypeScript icon, indicating that this package has built-in type declarations

    1.4.3 • Public • Published

    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

    Version Supported Tested
    16.x yes yes
    14.x yes yes
    12.x yes yes
    10.x yes yes

    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

    Option description Default value
    type Storage type (raw, s3 or fs) raw
    bucket S3 bucket's name none
    dir Directory where to store the file none

    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/.

    Install

    npm i inspector-api

    DownloadsWeekly Downloads

    14,769

    Version

    1.4.3

    License

    MIT

    Unpacked Size

    14.5 kB

    Total Files

    12

    Last publish

    Collaborators

    • wallet77