Projects:Heartbeat Enhancements/Functional Documentation
Heartbeat Enhancements - Functional Specifications
Overview
Purpose
The purpose of this project is to improve the data send to heartbeat to make it more accurate and complete. Within this project new parameters will be defined to be able to detect properly cloned instances and to improve the gathered data.
Design Considerations
Assumptions
- Any information sent through heartbeat will be tracked in the heartbeat log.
- Heartbeat protocol between client and server is secured (encrypted and authenticated).
- Heartbeat should not affect performance in any case.
Dependencies
- Clean current security issues on HttpUtils.java class.
Functional Requirements
Business process definition
- Instance purpose mandatory for all instances including Community Edition.
- New popup on first login
- New field and button on system info window.
- New parameters to detect cloned instances: Database ID and MAC ID
- New parameters to improve gathered data:
- Date of first login, date of last login, total number of logins
- Average number of concurrent users when at least one user is connected
- Maximum number of concurrent users
- Number of rejected logins because of concurrent users limit
- Installed modules
- Conversion of current rates to actual numbers (number of logins, number of clients, number of organizations).
- Unskippable beats
- An empty beat is send with Heartbeat ID, Database ID, MAC ID and beat type.
- On cancel of heartbeat process
- On community branding.
- Possibility to send back custom queries to be executed on the instances to gather extra information.
- The custom queries codes and results are stored on the instance.
Functional requirements based on business processes
Changes can be splitted on few areas:
- Heartbeat process (new paremeters, ....)
- Instance purpose
- Custom queries
- Changes on butler.openbravo.com
Heartbeat process
Num
| Requirement
| Importance
| Status
|
1.1
| Add Database identifier and MAC identifier to detect cloned instances.
| Must have
| Done
|
1.2
| Add not skipable beat on decline option of the heartbeat popup. New beat type 'DECLINE'
| Must have
| Done
|
1.3
| Add defer (for 3 days) button on heartbeat popup
| Must have
| Done
|
1.4
| Add new parameters to regular beats
- Date of first login, date of last login, total number of logins
- Average number of concurrent users when at least one user is connected
- Maximum number of concurrent users
- Number of rejected logins because of concurrent users limit
- Installed modules: stored in a relational manner, for each module: name, id, version number, and status (enabled/disabled)
- Conversion of current rates to actual numbers (number of logins, number of clients, number of organizations).
- Instance purpose
- Functional usage data, request number by module, if it is enabled.
| Must have
| Done (pending number of rejected logins)
|
1.5
| Update wiki content with latest changes.
| Must have
| Done (pending number of rejected logins)
|
Instance purpose
Num
| Requirement
| Importance
| Status
|
2.1
| Add field on System Info window for the instance purpose.
| Must have
| Done
|
2.2
| Add popup on login to select instance purpose when it is not defined.
| Must have
| Done
|
2.3
| Detect cloned instances on login (System Administrator role):
- Show instance purpose popup to set the new purpose when a Community Edition clone is detected.
- Show instance purpose popup to redirect to the Instance Management window when a Professional/Basic Edition clone is detected. And ask the user to reactivate it.
| Must have
| Done
|
2.4
| Add a button on System Info window to change the purpose on Community Edition instances.
| Must have
| Done
|
2.5
| Ensure that instance purpose is in sync with activation instance purpose, only for Professional/Basic Edition instances.
| Must have
| Done
|
Custom queries
Num
| Requirement
| Importance
| Status
|
3.1
| Check for custom queries on heartbeat response from butler and execute them. Only HQL is allowed.
| Must have
| Done
|
3.2
| Add new tabs on Heartbeat log window to store the executed queries and the results.
| Must have
| Done
|
3.3
| Send back to heartbeat the results using JSON as a new beat type.
| Must have
| Done
|
3.4
| Create a wiki page to put there all the used custom queries.
| Must have
| Done
|
Changes on butler
Num
| Requirement
| Importance
| Status
|
4.1
| Change heartbeat server to store new parameters and beat types.
| Must have
| Done
|
4.2
| Add new Custom Query window to define the HQL queries.
| Must have
| Done
|
4.3
| Ability to send back the queries to instances with an MP version that supports them.
| Must have
| Done
|
User interface mockups
Instance purpose: