commit | b3d64ea970302a83313465992105004ebc934b7c | [log] [tgz] |
---|---|---|
author | Fabio Ponciroli <ponch78@gmail.com> | Wed Sep 07 09:32:23 2022 +0200 |
committer | Fabio Ponciroli <ponch78@gmail.com> | Wed Sep 21 10:56:59 2022 -0500 |
tree | 5eb35911aaa61454e463d197f00eefec8420fb4e | |
parent | b246bae5cb572277da5c8d8c428c5cd0d6aa111b [diff] |
Collect metrics asynchronously Submit metrics collection tasks to the UpdateGitMetricsExecutor. This will allow the parallelization of metrics collection by tuning the pool size dedicated to the plugin. The thread pool is currently hardcoded but it will become configurable [1]. With this implementation the only parallelization allowed is at MetricsCollector level. Currently we have 2 MetricsCollectors, hence `2 * numberOfUpdatedProjects` tasks will concur on the same thread pool. We could introduce more concurrency on the File System metrics collection by processing the `Stream<Path>` in parallel. However, since these metrics are not real-time by design, it is probably better to avoid being too aggressive on the file system. [1]: https://bugs.chromium.org/p/gerrit/issues/detail?id=16248 Change-Id: I781a56a27d2abf3cda7a68967ab805d2a46b5349
This plugin allows a systematic collection of repository metrics. Metrics are updated upon a ref-update
receive.
Clone or link this plugin to the plugins directory of Gerrit‘s source tree, and then run bazel build on the plugin’s directory.
Example:
git clone --recursive https://gerrit.googlesource.com/gerrit git clone https://gerrit.googlesource.com/plugins/git-repo-metrics pushd gerrit/plugins && ln -s ../../git-repo-metrics . && popd cd gerrit && bazel build plugins/git-repo-metrics
The output plugin jar is created in:
bazel-genfiles/plugins/git-repo-metrics/git-repo-metrics.jar
Copy the git-repo-metrics.jar into the Gerrit's /plugins directory and wait for the plugin to be automatically loaded.
More information about the plugin configuration can be found in the config.md file.