magento2-phpstorm-plugin
magento2-phpstorm-plugin copied to clipboard
Add statistic to the project
Is your feature request related to a problem? Please describe.
It would be great to have analytics connected to the project.
It can give us few benefits that I can see from my point of view at the moment:
- direct our efforts to the features that are used more widely
- correct our priorities for the opened issues
- understand when some part of functionality is not working (that is used widely) before any issue is created
- plan new features
Describe the solution you'd like (*)
Add triggers for the existent features that would indicate how many times each feature is used by unique user of the plugin. Send this data to any of the statistic gathering dashboards. Review and analyse it about once per week/month.
When a feature is used we need to send the data with the name of the feature, context where it is used (for an example, plugin generation can be called as from the context menu, as from the generation context menu - CMD+N, so we need to identify from where each feature is called or just to name it differently), anonymised unique user identifier (without any personal information).
| Action Name | Action Identifier | Send Data |
|---|---|---|
| Create a new Magento 2 Module | create.module | {uuid: <uuid>, event: create.module} |
| Create a new Observer for this event | create.observer | {uuid: <uuid>, event: create.observer} |
| Create a new Plugin for this method | create.plugin.general | {uuid: <uuid>, event: create.plugin.general} |
| Generate after plugin (generation menu) | create.plugin.after | {uuid: <uuid>, event: create.plugin.after} |
| Generate around plugin (generation menu) | create.plugin.around | {uuid: <uuid>, event: create.plugin.around} |
| Generate before plugin (generation menu) | create.plugin.before | {uuid: <uuid>, event: create.plugin.before} |
| Create a new Magento 2 View Model | create.view_model.general | {uuid: <uuid>, event: create.view_model.general } |
| Inject a new View Model for this block | create.view_model.block | {uuid: <uuid>, event: create.view_model.block} |
| Create a new Magento 2 Block | create.block | {uuid: <uuid>, event: create.block} |
| Create a new Magento 2 CLI Command | create.cli_command | {uuid: <uuid>, event: create.cli_command} |
| Create a new Magento 2 Controller | create.controller | {uuid: <uuid>, event: create.controller} |
| Create a new Magento 2 Cron Group | create.cron.group | {uuid: <uuid>, event: create.cron.group} |
| Create a new Magento 2 Cron Job | create.cron.job | {uuid: <uuid>, event: create.cron.job} |
| Create a new Magento 2 models | create.model.default | {uuid: <uuid>, event: create.model.default} |
| Create a new Magento 2 Data Model | create.model.data_transfer_object | {uuid: <uuid>, event: create.model.data_transfer_object} |
| Create a new declarative schema XML | create.db.schema | {uuid: <uuid>, event: create.db.schema} |
| Create a new Magento 2 email template | create.email.template | {uuid: <uuid>, event: create.email.template} |
| Create a new Magento 2 Entity | create.entity.general | {uuid: <uuid>, event: create.entity.general} |
| Create a new Magento 2 GraphQL Resolver | create.graph_q_l.resolver | {uuid: <uuid>, event: create.graph_q_l.resolver} |
| Create a new Magento 2 Message Queue | create.rabbit_message_queue.message | {uuid: <uuid>, event: create.rabbit_message_queue.message} |
| Create a new Magento 2 UI Component Form | create.ui.form | {uuid: <uuid>, event: create.ui.form} |
| Create a new Magento 2 UI Component Grid | create.ui.grid | {uuid: <uuid>, event: create.ui.grid } |
| Create a new Magento 2 Web API XML declaration | create.web_api.declaration | {uuid: <uuid>, event: create.web_api.declaration} |
| Create a new Magento 2 Web API interface | create.web_api.interface | {uuid: <uuid>, event: create.web_api.interface} |
| Create a new Magento 2 Preference | create.preference | {uuid: <uuid>, event: create.preference} |
| Override this template in a project theme | create.template.override | {uuid: <uuid>, event: create.template.override} |
| Run The Upgrade Compatibility Tool | run.uct.general | {uuid: <uuid>, event: create.uct.general} |
We expect to get the output like this:
Where:
- Axis-X - date of triggered event
- Axis-Y - amount of triggers
- Data - events
Additional context
We need to find out how to gather such information:
- do we need to add something about gathering such information anywhere?
- do we need to ask user about such data collection (there is no personal information gathered)?
Hi @bohdan-harniuk. Thank you for your report. To speed up processing of this issue, make sure that you provided sufficient information.
Add a comment to assign the issue: @magento I am working on this
- Join Magento Community Engineering Slack and ask your questions in #github channel.
@magento I am working on this
Hello @sivaschenko @bohdan-harniuk @Iamwade From my point of view as this project started as an open-source it is logical to share any kind of statistic with the community of engineers. What do you think about storing such info and representing it in the biterg.io service?
Hello, @coderimus!
It seems, that the biterg.io service is used for the GitHub/GitLab projects analytic data visualisation, not for the event based data analytics visualisation. https://bitergia.com/resources/#usecases
Could you please help me with understanding how we can use the biterg.io service to proceed with the desired data visualisation?
Regards,