[lldb] [llvm] [lldb]Implement LLDB Telemetry (PR #98528)

Pavel Labath via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 25 06:56:59 PDT 2024


https://github.com/labath commented:

I think it'd be good to separate the general mechanics of creating and managing a telemetry (telemeter) instance from the details of logging individual telemetry entries. I.e. one PR for the general infrastructure (maybe include one simple (startup?) telemetry entry, if you think it's necessary to make a point), and then one PR for each of the entries.

The plugin infrastructure seems very.. baroque. Why do we need the intermediate TelemetryVendor class? And why a whole list of them?

The reason we support registering more than one e.g. SymbolFile plugin is that we can choose which one to use at runtime (based on which file the user opens, etc.). Do we want to do something like that here? What would that even mean?

To create a basic indirection (so that the vendor implementation can be decoupled from the rest of lldb), it sounds to me like all one need is one function pointer (the factory function for the "telemeter"), a way to set it from inside the plugin (`PluginManager::SetTelemetryPlugin` ?) and then a way to call it (another function?)

https://github.com/llvm/llvm-project/pull/98528


More information about the llvm-commits mailing list