core
core copied to clipboard
Base telemetry
We need to collect same basic metrics about Cat usage.
Main idea:
- enable telemetry by default with the option to optout
- inform users that telemetry is active? when should this happen?
Possible main metrics:
- country, where in the world is the Cat being used?
- version, which versions are users on?
- unique id of installation, how many instanced of the Cat are roaming in the world?(A GUID generated on first run can serve as a unique ID, without requiring an actual unique identifier for each installation)
- configured LLM model, what is the most used LLM model? are users using local LLMs?
Additional metrics, in order of priority:
- max number of concurrent sessions, is the Cat used as a personal assistant or as a shared resource accessible to multiple users?
- admin portal usage, is the user accessing the chat through the admin portal or by other means?
- number of plugins installed, is Cat being used as a "simple" rag or for execute actions? (this is still a very draft idea...)
Related Discussion:
- Would it be useful to display some of these metrics within the admin portal?
I have started writing a server to receive and store telemetry data: https://github.com/leomanga/Telemetry-Server-for-cheshire What type of database would be suitable for this purpose? Could MongoDB be okay?
I have started writing a server to receive and store telemetry data: https://github.com/leomanga/Telemetry-Server-for-cheshire What type of database would be suitable for this purpose? Could MongoDB be okay?
Awesome thanks for sharing @leomanga! Yep I guess mongo will do, as the data structure may change ;)
Awesome thanks for sharing @leomanga! Yep I guess mongo will do, as the data structure may change ;)
I've just implemented mongoDB in my repo. Are there any improvements I can make to the code?
@leomanga you can improve by:
- Adding a docker compose
- have a
.envinstead ofvariable.pyfor common variables - Idk if
MongoClientsupport connection pool, but theMongoDBclass must be declared one time as global or defined as Singleton class