indexing-metrics-collector
Allows gathering IntelliJ IDEA project scanning & indexing metrics for further analysis by ingesting them into an elasticsearch cluster.
This IntelliJ IDEA plugin gives developer teams the chance to analyse how much time they spent on indexing their projects. The plugin captures indexing events occurred in IDEA and pushes them into an elasticsearch cluster for further analyzise.
The captured data per indexing event includes
- project name
- total indexing time in ms
- indexing reason
- duration of file scanning in ms
- indexing duration in ms
- update start
- update end
- was full indexing (true / false)
- was indexing interrupted (true / false)
- platform info
- idea application name
- version
- build number
- plugin version
- runtime info
- max available processors
- idea java memory settings
- indexing thread count)
- environment info
- user name (can be optionally anonymized)
- host name (can be optionally anonymized)
- os name
- os arch
- os version
The elasticsearch mapping template can be found here: elasticsearch index mapping
The idea for this came up when I heard first time about shared project index for IntelliJ IDEA. If you want to know the impact of such a plugin you need to have hard numbers first. In a distributed team gathering these numbers are tricky so the idea for this plugin was born.
Installation
-
From plugin repository:
- In Settings/Preferences > Plugins >
⚙️ > Manage plugin repositories... add https://raw.githubusercontent.com/elastic/indexing-metrics-collector/main/updatePlugins-213.xml - Install indexing-metrics-collector plugin
- In Settings/Preferences > Plugins >
-
Manually:
Download the latest release and install it manually using Settings/Preferences > Plugins >
⚙️ > Install plugin from disk...
Configuration
The plugin provides a preference page to configure elasticsearch connection data including authentication options and index name to be used and the option (enabled by default) to anonymize user data like host name and user name
Analyzing
The captured data allows gaining further insights why and how much time is spent on indexing in idea for your developers This is an example kibana dashboard used during development of this plugin
Plugin based on the IntelliJ Platform Plugin Template.