Coder Social home page Coder Social logo

Warnings emitted on Node 14 about appmetrics HOT 7 OPEN

jloveridge avatar jloveridge commented on June 9, 2024 6
Warnings emitted on Node 14

from appmetrics.

Comments (7)

kams2160 avatar kams2160 commented on June 9, 2024

Same here! Node v14.15.2

Warning: Accessing non-existent property '__ddProbeAttached__' of module exports inside circular dependency

from appmetrics.

dnascimb avatar dnascimb commented on June 9, 2024

Same here, Node v14.16.1

from appmetrics.

jokeyrhyme avatar jokeyrhyme commented on June 9, 2024

It's internal code unfortunately (so I cannot share it at this time), but my team managed to replace the appmetrics module completely in Node.js 14.x using methods available in the standard library

from appmetrics.

aditya9969 avatar aditya9969 commented on June 9, 2024

Any update on this issue?

from appmetrics.

amanthegreatone avatar amanthegreatone commented on June 9, 2024

@jokeyrhyme can you explain how you removed this package and got the required metrics?

from appmetrics.

jokeyrhyme avatar jokeyrhyme commented on June 9, 2024

from appmetrics.

amanthegreatone avatar amanthegreatone commented on June 9, 2024

this is what i could come up with

  // timer start time
  let trackingTime = process.hrtime();

  // last cpu usage to get difference from current cpu usage (the diff will give usage over timer period)
  let lastCpuUsage = process.cpuUsage();

  // histogram for event loop monitoring
  const histogram = perf_hooks.monitorEventLoopDelay();
  histogram.enable();

  // monitor cpu, memory, event loop
  const monitor = () => {

    // end time for the timer (diff from start time by passing as arg)
    // hrtime gives nanosecond resolution ([0] seconds, [1] remaining nanoseconds)
    const delta = process.hrtime(trackingTime);
    const nanosec = delta[0] * 1e9 + delta[1];

    // get cpu usage (user and system)
    const cpuUsage = process.cpuUsage();

    // diff from last cpu usage to get % usage over timer interval
    const userUsage = ((cpuUsage.user - lastCpuUsage.user) / nanosec) * 1000;
    const systemUsage = ((cpuUsage.system - lastCpuUsage.system) / nanosec) * 1000;
    transportClient.gauge('cpu.process', userUsage);
    transportClient.gauge('cpu.system', systemUsage);

    // update last cpu usage for next timer cycle
    lastCpuUsage = cpuUsage;

    // get process memory usage
    // Resident Set Size, is the amount of space occupied in the main memory device
    // (that is a subset of the total allocated memory) for the process
    // including all C++ and JavaScript objects and code
    const memoryUsage = process.memoryUsage();
    transportClient.gauge('memory.process.physical', memoryUsage.rss);

    transportClient.gauge('eventloop.latency.min', histogram.min / 1e6);
    transportClient.gauge('eventloop.latency.max', histogram.max / 1e6);
    transportClient.gauge('eventloop.latency.avg', histogram.mean / 1e6);

    // reset histogram to start new cycle
    histogram.reset();

    // update timer time for getting diff for next cycle
    trackingTime = process.hrtime();
  };

  // collect process metrics every 5 seconds
  setInterval(monitor, 5000);

any comments are welcome

from appmetrics.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.