Student | Anmol Chaddha |
---|---|
Organisation | HAZELCAST |
Project | IMPROVED TELEMETRY OF HAZELCAST |
GitHub | @chanmol1999 |
anmol-chaddha | |
Website | https://anmolchaddha.tech |
- Bence Erős
- Andrey Pechkurov
The telemetry (or Phone Home) is a hazelcast feature that lets us gather usage information about how the community uses the Hazelcast product. Previously, it collects only the minimal information, including the hazelcast version, java version, operating system, uptime, memory used, number of clients, number of clusters, etc.
The ultimate goal of this project is to give a fine-grained view to this by collecting detailed usage information about the Hazelcast features being used actively by the community. For this, we need to collect various metrics of several data structures provided by the hazelcast and of the cloud configuration used for the deployment of hazelcast. The Phone Home of the hazelcast gathers this data daily, which will continually help to enhance the hazelcast product.
Link to all pull requests highlighting separate changes in the improved-telemetry branch .
- Build the project locally using maven and explored the different aspects of hazelcast codebase.
- Refactored existing Phone Home code.
- Learnt about various features of the core Java and hazelcast data structures.
- Enhanced the phone home to collect the various metrics of Hazelcast maps. Now the Phonehome could collect the details of hazelcast maps with backup read enabled, map store, eviction, at least one query cache, hot restart enabled, at least one index, WAN replication configured, and at least one custom attribute.
- Also, added a few unit and integrations tests for PhoneHome using JUnit and Wiremock by applying Dependency Injection.
- Further improved the Phone Home to collect metrics for other Hazelcast data structures(sets, queues, multimaps, caches, list, ring buffer, topic, replicated maps, cardinality estimator, PN counter, Flake Id generator).
- Also, covered the unit and integrations test for the same.
- Enhanced the Phone Home to measure throughput and latency of MapLoader and Mapstore by implementing an optimal OOPs design.
- Also, added a feature to collect details about the cloud environment used to deploy the hazelcast along with the required tests.
- Added a JMH(Java microbenchmark service) to calculate the average time taken by the entire phone home process for a significant amount of data structures used by a hazelcast node.