This is an automated email from the ASF dual-hosted git repository. eolivelli pushed a commit to branch maven-metrics in repository https://gitbox.apache.org/repos/asf/maven-studies.git
The following commit(s) were added to refs/heads/maven-metrics by this push: new c6a369b Add metrics c6a369b is described below commit c6a369becc1e174041bdee039b81c5ae8bf98ae1 Author: Enrico Olivelli <eolive...@apache.org> AuthorDate: Sat Apr 25 10:05:14 2020 +0200 Add metrics --- .../maven/artifact/installer/DefaultArtifactInstaller.java | 9 +++++++++ .../org/apache/maven/lifecycle/internal/MojoExecutor.java | 8 ++++++++ .../plugin/internal/DefaultPluginDependenciesResolver.java | 10 +++++++++- .../java/org/apache/maven/project/DefaultProjectBuilder.java | 11 +++++++++++ 4 files changed, 37 insertions(+), 1 deletion(-) diff --git a/maven-compat/src/main/java/org/apache/maven/artifact/installer/DefaultArtifactInstaller.java b/maven-compat/src/main/java/org/apache/maven/artifact/installer/DefaultArtifactInstaller.java index a252975..abdae8b 100644 --- a/maven-compat/src/main/java/org/apache/maven/artifact/installer/DefaultArtifactInstaller.java +++ b/maven-compat/src/main/java/org/apache/maven/artifact/installer/DefaultArtifactInstaller.java @@ -31,6 +31,7 @@ import org.apache.maven.artifact.repository.metadata.MetadataBridge; import org.apache.maven.artifact.repository.metadata.Snapshot; import org.apache.maven.artifact.repository.metadata.SnapshotArtifactRepositoryMetadata; import org.apache.maven.artifact.repository.metadata.Versioning; +import org.apache.maven.metrics.MetricsSystem; import org.apache.maven.plugin.LegacySupport; import org.apache.maven.project.artifact.ProjectArtifactMetadata; import org.codehaus.plexus.component.annotations.Component; @@ -58,6 +59,9 @@ public class DefaultArtifactInstaller @Requirement private LegacySupport legacySupport; + @Requirement( hint = MetricsSystem.HINT ) + private MetricsSystem metricsSystem; + /** @deprecated we want to use the artifact method only, and ensure artifact.file is set correctly. */ @Deprecated public void install( String basedir, String finalName, Artifact artifact, ArtifactRepository localRepository ) @@ -72,6 +76,7 @@ public class DefaultArtifactInstaller public void install( File source, Artifact artifact, ArtifactRepository localRepository ) throws ArtifactInstallationException { + long startInstall = System.currentTimeMillis(); RepositorySystemSession session = LegacyLocalRepositoryManager.overlay( localRepository, legacySupport.getRepositorySession(), repoSystem ); @@ -130,6 +135,10 @@ public class DefaultArtifactInstaller versioning.setRelease( artifact.getBaseVersion() ); } artifact.addMetadata( new ArtifactRepositoryMetadata( artifact, versioning ) ); + metricsSystem + .getMetricsContext() + .getSummary("installArtifact", "Time to install an artifact (ms)") + .add(System.currentTimeMillis() - startInstall); } } diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoExecutor.java b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoExecutor.java index 89fadfd..36421d4 100644 --- a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoExecutor.java +++ b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoExecutor.java @@ -39,6 +39,7 @@ import org.apache.maven.execution.ExecutionEvent; import org.apache.maven.execution.MavenSession; import org.apache.maven.lifecycle.LifecycleExecutionException; import org.apache.maven.lifecycle.MissingProjectException; +import org.apache.maven.metrics.MetricsSystem; import org.apache.maven.plugin.BuildPluginManager; import org.apache.maven.plugin.MavenPluginManager; import org.apache.maven.plugin.MojoExecution; @@ -79,6 +80,9 @@ public class MojoExecutor @Inject private ExecutionEventCatapult eventCatapult; + @Inject + private MetricsSystem metricsSystem; + public MojoExecutor() { } @@ -164,6 +168,7 @@ public class MojoExecutor DependencyContext dependencyContext ) throws LifecycleExecutionException { + long startExecute = System.currentTimeMillis(); MojoDescriptor mojoDescriptor = mojoExecution.getMojoDescriptor(); try @@ -211,6 +216,9 @@ public class MojoExecutor try { pluginManager.executeMojo( session, mojoExecution ); + metricsSystem.getMetricsContext() + .getSummarySet("executeMojo", "Time to execute a mojo (ms)") + .add(mojoExecution.getLifecyclePhase()+"_"+mojoExecution.getGoal(), System.currentTimeMillis() - startExecute); } catch ( MojoFailureException | PluginManagerException | PluginConfigurationException | MojoExecutionException e ) diff --git a/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginDependenciesResolver.java b/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginDependenciesResolver.java index d1f2834..9ea1f52 100644 --- a/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginDependenciesResolver.java +++ b/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginDependenciesResolver.java @@ -30,6 +30,7 @@ import javax.inject.Named; import javax.inject.Singleton; import org.apache.maven.RepositoryUtils; +import org.apache.maven.metrics.MetricsSystem; import org.apache.maven.model.Dependency; import org.apache.maven.model.Plugin; import org.apache.maven.plugin.PluginResolutionException; @@ -86,6 +87,9 @@ public class DefaultPluginDependenciesResolver @Inject private RepositorySystem repoSystem; + @Inject + private MetricsSystem metricsSystem; + private Artifact toArtifact( Plugin plugin, RepositorySystemSession session ) { return new DefaultArtifact( plugin.getGroupId(), plugin.getArtifactId(), null, "jar", plugin.getVersion(), @@ -95,6 +99,7 @@ public class DefaultPluginDependenciesResolver public Artifact resolve( Plugin plugin, List<RemoteRepository> repositories, RepositorySystemSession session ) throws PluginResolutionException { + long startResolve = System.currentTimeMillis(); RequestTrace trace = RequestTrace.newChild( null, plugin ); Artifact pluginArtifact = toArtifact( plugin, session ); @@ -134,7 +139,10 @@ public class DefaultPluginDependenciesResolver { throw new PluginResolutionException( plugin, e ); } - + metricsSystem + .getMetricsContext() + .getSummary("resolvePluginDependency", "Time to resolve dependencies of a plugin (ms)") + .add(System.currentTimeMillis() - startResolve); return pluginArtifact; } diff --git a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java index 1ebc1fc..c204c8e 100644 --- a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java +++ b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java @@ -44,6 +44,7 @@ import org.apache.maven.artifact.InvalidRepositoryException; import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.artifact.repository.LegacyLocalRepositoryManager; import org.apache.maven.bridge.MavenRepositorySystem; +import org.apache.maven.metrics.MetricsSystem; import org.apache.maven.model.Build; import org.apache.maven.model.Dependency; import org.apache.maven.model.DependencyManagement; @@ -114,6 +115,10 @@ public class DefaultProjectBuilder @Inject private ProjectDependenciesResolver dependencyResolver; + @Inject + @Named( MetricsSystem.HINT ) + private MetricsSystem metricsSystem; + private final ReactorModelCache modelCache = new ReactorModelCache(); // ---------------------------------------------------------------------- @@ -318,8 +323,14 @@ public class DefaultProjectBuilder ArtifactRequest pomRequest = new ArtifactRequest(); pomRequest.setArtifact( pomArtifact ); pomRequest.setRepositories( config.repositories ); + long startResolvePom = System.currentTimeMillis(); ArtifactResult pomResult = repoSystem.resolveArtifact( config.session, pomRequest ); + metricsSystem + .getMetricsContext() + .getSummary("resolvePom", "Time to resolve pom artifact (ms)") + .add(System.currentTimeMillis() - startResolvePom); + pomArtifact = pomResult.getArtifact(); localProject = pomResult.getRepository() instanceof WorkspaceRepository; }