Skip to content

Exploring Telemetry #5106

Open
Open
@retailcoder

Description

@retailcoder

We have many features, some more discoverable than others. We have memory pressure and performance issues, and only a vague intuitive idea of what's in our users' VBA projects that's based on our own individual experiences. We do have logging, and it does help (a lot) with debugging and diagnosis, but statistically a bug report or log file is nothing but an anecdote.

If Rubberduck had an opt-in setting to enable transparent telemetry (there's no way this is getting implemented without making very explicit what's being sent, where, when, and how), we could collect usage data, aggregate it, and craft a lovely PowerBI dashboard and monthly reports that could shed a lot of light on many, many things.

Some ideas, for usage data:

  • Distribution of OS and host application versions
  • What commands are used, from which menus (or hotkey?)
  • What inspections fire results, what results are ignored
  • What the user settings are; hotkey configs, logging level, UI language, inspection severities, identifier whitelist, indenter settings, todo markers, etc.
  • How is the unit testing framework being used? Are fakes used? Mocks?

Other ideas, for various metrics:

  • How long does it take to fully parse/process a project
  • How much code breaks SLL prediction mode
  • How many modules (of what kind) are in a VBA project
  • How many lines of code are in a module; cyclomatic complexity, nesting, etc.
  • What type libraries are referenced, what non-usercode members are invoked

The storage format probably requires a number of tables. How would that be best organized?

Anonymity concerns:

No PII or otherwise sensitive information shall be collected; usercode identifier names would only be collected with explicit and specific consent; it should be impossible to look at any given telemetry record and be able to say with 100% certainty "hey that's my record!".

Consuming the data:

The entire database shall be queryable with a public REST API; monthly reports could be emailed to subscribers.


Thoughts? Ideas? Concerns? Let's discuss this inside out.

Metadata

Metadata

Assignees

No one assigned

    Labels

    discussionenhancementFeature requests, or enhancements to existing features. Ideas. Anything within the project's scope.meta

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions