backdrop-contrib/bee

Collect telemetry on bee usage

Closed this issue · 1 comments

As bee has a project node at https://backdropcms.org/project/bee it should be possible to send telemetry data to the main backdrop telemetry server and have the information appear at https://backdropcms.org/project/bee/telemetry.

The information I would like to collect is:

Bee version
This is a mandatory part of telemetry data but is useful to know if people are still using older versions and whether people are using a release or the dev branch.

See #402 for new more meaningful version details

Latest version
I propose to add another constant that will be updated at each release and record the latest release. This will enable me to know approximately how old the 1.x-1.x versions are.

EDIT: What I think will make more sense is to use it to create a hybrid version like 1.x-1.1.x-dev in a similar way to how Backdrop does it. I can also do this with bee status and bee version

Multisite
Bee supports multisite and it would be good to know how much it is used

PHP version
This is important to know what versions still need to be supported over time.

I propose to base the function in bee on the relevant telemetry module functions but simply check whether the telemetry module is enabled. Because of the different functions used, I propose to only invoke this if full bootstrap mode is used AND if telemetry module is enabled.

I propose to include a command that will show the telemetry data that would be submitted and whether or not it is being submitted. Added to the status report.

If telemetry module is disabled, this appears in the status report:

 ℹ  TELEMETRY
 Status                   off
 Data                     None

If telemetry module is enable, this appears in the status report:

 ℹ  TELEMETRY
 Status                   on
 Data                     {"bee":{"version":"1.x-1.1.x-dev","php_version":"8.2.18","multisite":"No"}}
 Last sent                2024-07-13 22:02:34 GMT+0000

Bee uses a state in the database to record when telemetry was last sent and like the main telemetry function uses an interval of 1 day.