Skip to content

the-toster/js-apm

Repository files navigation

Build Status

Performance monitoring for web app

get profile data from client

Installation

npm i js-apm

or bundled:

<script src="dist/bundle/js-apm.js"></script>

will expose global Apm constuctor

Usage

import Apm from "js-apm";

const apm = new Apm(window);
const data = apm.getGeneralInfo();

where data is:

export default class GeneralInfo {
    userAgent: string;
    connection?: Connection;
    timing?: Timing;
}

declare class Connection {
    type?: "bluetooth" | "none" | "unknown" | "cellular" | "ethernet" | "mixed" | "other" | "wifi" | "wimax" | undefined;
    effectiveType?: "2g" | "3g" | "4g" | "slow-2g" | undefined;
    downlinkMax?: number | undefined;
    downlink?: number | undefined;
    rtt?: number | undefined;
    saveData?: boolean | undefined;
}

declare class Timing {
    domComplete: bigint;
    domContentLoadedEventEnd: bigint;
    domContentLoadedEventStart: bigint;
    domInteractive: bigint;
    loadEventEnd: bigint;
    loadEventStart: bigint;
    redirectCount: bigint;
    unloadEventEnd: bigint;
    unloadEventStart: bigint;
}

Connection is serializable version of NetworkInformation
And Timing is like PerformanceNavigationTiming, but with integer values for sake of serialization

About

Get performance metrics from users

Resources

License

Stars

Watchers

Forks

Packages

No packages published