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

Feature: Imporve Cache Collector #471

Open
akalongman opened this issue Jan 16, 2021 · 7 comments
Open

Feature: Imporve Cache Collector #471

akalongman opened this issue Jan 16, 2021 · 7 comments
Milestone

Comments

@akalongman
Copy link
Contributor

We ran a high-loaded project and it is very important to monitor how the application utilizes cache.

I'd suggest to collecting the size of the cache values, something like Str::length(serialize($query['value'])). It can be configurable feature.
Also, I'd suggest adding the option for hiding cache values itself but show key names (disabling the collect_queries option disables listing of cache keys as well).

In our server infrastructure bandwidth between the app and Redis servers is the bottleneck, so monitoring cache value sizes during development is very important.

If maintainers are ok with this, I can send PR.

@itsgoingd
Copy link
Owner

Hey, thanks for the suggestions!

  • collecting queries without values - makes complete sense, we should add this.
  • collecting size of the values - I need to think a bit more about how useful this is and how it would be presented.

If you'd still like to work on a PR, I'd accept one for the first part for now. Otherwise I'll look into adding this for the next minor release.

@itsgoingd
Copy link
Owner

This is now merged and will be released as part of Clockwork 5.1, I ended up flipping the config option logic (exclude_results -> collect_values) and making it to not collect values by default.

@akalongman
Copy link
Contributor Author

@itsgoingd what do you think about collecting the cache value sizes? It's very important for high-loaded projects.

@itsgoingd
Copy link
Owner

Oops, forgot about that part. I think it definitively makes sense, adding it as a separate feature-request to the 5.1 todo-list.

@itsgoingd itsgoingd reopened this May 17, 2021
@akalongman
Copy link
Contributor Author

Interface part will be difficult for me. As I know, UI is already built and I don't know how to change UI components.
I can easy return size data from backend, but how to display in UI?

@itsgoingd
Copy link
Owner

The UI is a separate Vue SPA, which can be found here - https://github.com/underground-works/clockwork-app

If you'd like to work on this feel free to join our Discord, I can offer some real-time guidance there. But if you'd rather not get into that, I can also do this myself, just let me know. :)

Btw. do you have any ideas on how you would handle non-string cache values?

@akalongman
Copy link
Contributor Author

@itsgoingd I'll do the backend stuff, VueJS part I leave for you :)
Non string values should be serialized first and counted as a bytes.

@itsgoingd itsgoingd added this to the Clockwork 6 milestone Oct 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants