Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add instance statistics table #656

Merged
merged 1 commit into from
Jul 19, 2023
Merged

Add instance statistics table #656

merged 1 commit into from
Jul 19, 2023

Commits on Jul 19, 2023

  1. backend: Add instance statistics table

    A by-product of the Omaha update protocol employed by Nebraska delivers statistics on
    version spread, but accumulating and presenting this data suffers from a number of
    limitations:
    
    - The chart only represents all nodes’ current OS versions. We currently do not have
      historic data of the nodes’ previous software versions, and we would like to track of
      this data.
    - While historic data can be calculated from update events, this is computationally
      intense and unfeasible in practice. We currently cannot calculate or store this
      historic data efficiently, and we would like to be able to have quick and easy access
      to this data.
    - To be able to back-fill the live Nebraska server using historic data available in CSV
      format, we need to use a third-party tool. We currently cannot accomplish this using
      our existing setup, and we would like to implement a mechanism to do this natively.
    
    We implement the `instance_stats` table (based on instance fields from
    `instance_application`) to store data on current version spread in an efficient format
    optimized for querying. To accomplish this, there are five data points that we
    associate each instance with, serving as the main fields of this table:
    
    - Timestamp: Necessary for keeping track of when update checks are performed
    - Channel name: Necessary to identify an individual instance
    - Architecture: Necessary to identify an individual instance
    - Version: Necessary to identify an individual instance
    - Instance count: Necessary for grouping instances by the previous four fields
    
    New entries to the table will be generated using a background job scheduled
    periodically at a specified interval.
    skoeva committed Jul 19, 2023
    Configuration menu
    Copy the full SHA
    d7a1836 View commit details
    Browse the repository at this point in the history