Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

apm v3 #214

Merged
merged 54 commits into from Jan 9, 2019
Merged

apm v3 #214

merged 54 commits into from Jan 9, 2019

Conversation

vmarchaud
Copy link
Contributor

No description provided.

@vmarchaud vmarchaud force-pushed the improv/profilers branch 2 times, most recently from 4d3c228 to 3e73de2 Compare December 9, 2018 16:33
@vmarchaud vmarchaud force-pushed the improv/profilers branch 2 times, most recently from 1168d31 to 51ec444 Compare December 12, 2018 17:00
@vmarchaud
Copy link
Contributor Author

vmarchaud commented Dec 19, 2018

Breaking changes:

  • Removed io.scopedAction
  • Removed io.notify in favor of io.notifyError
  • Removed support for gc-stats module
  • Removed heap snapshot when using the inspector and node 11
  • Removed Heap profiling support when using the profiler addon
  • Removed deep-metrics support
  • Removed Entrypoint class
    - Removed the possibility to set the value of a metrics via a function, now user should set the value when they want to update a metrics.
  • Removed io.transpose
  • When creating multiple metrics at the same time, metrics will now be returned in an array to allow simpler destruction
  • Changed the io.init options to be easier to understand and manage in the code
  • Allowed to use the inspector-based in node 8 if running in production (we assume that no other debugger is running in production)

Notable changes:

  • Introduced the tracing system without PM2 (still using the old tracing agent)
  • Added support for @pm2/node-runtime/stats to collect GC stats, libuv metrics and kernel metrics
  • Added error middleware for Koa and fixed the one for Express
  • When destroying a pmx instance, actually remove everything listener that we have on all kind of modules so we don't leak something when instancing multiples times
  • Added P95 metrics about http latency and event loop ones.
  • Added metrics about Heap usage, Heap limit and Heap current.
  • Node 11 now support custom actions
  • Added a LOT, LOT of logging about what's happening, just use DEBUG=axm:* to toggle it

Improvements;

  • Remove easily replaceable dependency
  • Use typescript to run the tests (before test were compiled before ran)
  • Use Idle notifier of Nodejs to better vizualise iddle time in CPU profiling
  • Type completion when using any methods from @pm2/io
  • Metrics that are created but never used will not be sended to backend

Notes:

  • scopedAction implementation is still there, just not exposed in the API
  • Entrypoint was "removed" because i didn't understand the implementation while refactoring, but could be trivially re-implemented

@Unitech
Copy link
Member

Unitech commented Jan 3, 2019

  • event loop latency + event loop latency p95 should be floored at the second decimal
  • Camel Case for heap size + used heap size

what about a metric for RSS?

@vmarchaud
Copy link
Contributor Author

@Unitech RSS is the memory metric in case of using the standalone app, so i don't think it's useful to re-add it as a separate metric

@vmarchaud vmarchaud merged commit b62645d into master Jan 9, 2019
@vmarchaud vmarchaud deleted the improv/profilers branch January 9, 2019 16:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants