[MDBF-613] Create FEATUREs chart for Feedback Plugin Created: 2023-10-29  Updated: 2023-10-29

Status: Open
Project: MariaDB Foundation Development
Component/s: Feedback Plugin
Affects Version/s: None
Fix Version/s: None

Type: Task Priority: Major
Reporter: Vicențiu Ciorbaru Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Overview

MariaDB Feedback plugin has a special set of status variables of the type:
FEATURE_CHECK_CONSTRAINTS, FEATURE_JSON, FEATURE_APPLICATION_TIME_PERIOD, etc.

We want to count how many servers make use of any of these features. A feature is used when the counter for that feature is greater than 0.

The end goal is to produce a line chart that shows feature-usage over time. We want a series for each FEATURE.

Required steps:

Create a data-extractor to extract FEATURE based data from raw upload data.

The upload-fact should store JSON values of the form:

ComputedUploadFact(key='features',
                   value=('{'
        '"json": true,'
        '"application_time_period": true,'
        '"window_functions": true,'
        '"fulltext": true'
    }'))

For simplicity, we'll only store a key as true if the feature is used, otherwise
it will be absent.

Create a multi-series chart for each feature

Implementation suggestion:

  • In feedback_plugin/data_processing/charts.py ->
  • Function to compute a "total number of distinct servers where feature xxx is used, grouped by month"
  • Implementation idea: The feature name could be a parameter for this function.

Hints:

Most of the relevant code can be found in:

  • feedback_plugin/data_processing/extractors.py
  • feedback_plugin/data_processing/etl.py
  • Check ServerVersionExtractor for an UploadFactExtractor example.
  • To see how an UploadFactExtractor is called by the ETL framework, you can look at get_upload_data_for_data_extractors.

Generated at Thu Feb 08 03:39:09 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.