The filter action at the top of the log page is not functioning.

CommentFileSizeAuthor
#4 redis_watchdog-1590178-4.patch8.37 KBmrded

Comments

fgm’s picture

Issue summary: View changes

Same here. PHP 5.4.30. redis.module 7.2.11. Redis 2.6.12 (Ubuntu 12.04 LTS standard package).

mrded’s picture

Priority: Normal » Major

I can confirm that it doesn't work.

mrded’s picture

Title: Clear and filter not functioning » Filtering log messages doesn't work
Issue summary: View changes
Related issues: +#2456353: Clearing log messages doesn't work

I think it would makes sense to split up this issue. #2456353: Clearing log messages doesn't work

mrded’s picture

Status: Active » Needs work
StatusFileSize
new8.37 KB

Initial patch.

perignon’s picture

Sorting and filtering are hard because of how Redis works. I am attempting to filter by at least one item (message type), then offer a CSV export function to dump the data down to your local machine. The other module for Redis watchdog solves this by using AngularJS but then the entire result set of the logs is in your browser. I have a site with millions of records in logs (MongoDB), I don't want to load all of them in my browser!

perignon’s picture

Status: Needs work » Fixed

I have taken over the module and am actively getting it usable. Filtering by log type is very hard with Redis without using a JS framework on the UI and loading ALL of the logs. I choose to segment the logs by type in Redis and allow you to display them that way. There is also a CSV dump function so you can export to your favorite spreadsheet program and do more log research that way.

fgm’s picture

One thing which could help with key listing is using SCAN (non-blocking) to list keys in your logger collection instead of KEYS (blocking).

perignon’s picture

I am using lists data structure in Redis so they are very fast. Each log type gets a new list.

fgm’s picture

Does that mean you retrieve items using LINDEX bin cid ? Its cost is O(cid). I suspect it's rather HGET bin cid, which is in O(1) and would seem a more natural fit.

perignon’s picture

Mostly just lRange depending on the situation. I wrote the class methods to eventually accept ranges if need be. Single records with hGet.

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.