Enrico Olivelli created MNG-6899:
------------------------------------

             Summary: Maven Runtime Metrics System
                 Key: MNG-6899
                 URL: https://issues.apache.org/jira/browse/MNG-6899
             Project: Maven
          Issue Type: New Feature
          Components: Performance
    Affects Versions: 3.6.3
            Reporter: Enrico Olivelli
            Assignee: Enrico Olivelli
             Fix For: 3.7.0-candidate


The idea is to have a mechanism to track runtime metrics for Maven Core itself 
and for plugins.

We introduce a new Metrics API that defines Counters, Summaries and other types 
of metrics.

The default implementation of the Metrics API will be a no-operation dummy 
implementation, that does not add significant overhead at runtime.

We will provide as separate modules an implementation that gathers all of the 
metric and output them to console or to a file, that can be easily parsed by 
tools, like Jenkins.

I will also contribute an implementation for Prometheus.io, this way we can 
track how the system behaves at runtime, Prometheus.io and other metrics 
systems store time series data and this is very useful to track down to 
hotspots during Maven execution.

For the first implementation we will introduce some base instrumentation of 
Maven Core, in order to have some useful metric.

The Metrics System will be loaded from "Extensions" and we will use usual 
@Inject  mechanism. Maven Core will bundle the noop implementation but it will 
be overridden by other implementations found on the main classloader of Maven, 
as we do for other compoments.





--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to