@matthiasmullie and I will set up a way to track upload wizard exceptions. He's working on querying the data to get back (date, exception, count) and I'll work on making a visualization in Dashiki. The visualization will be usable from the tabs layout and will just pivot on the exception column the same way hierarchy visualizations do, but render as probably an area graph with toggling for percent / absolute maybe.
|analytics/limn-multimedia-data||master||+51 -0||Query the most common UploadWizard exceptions & errors|
Yes and no.
I do have time to work on this, but no experience with Dashiki.
So far, I've not had much luck getting anywhere myself, so some pointers would be greatly appreciated!
I have data like this:
day message total 2017-02-26 TypeError: invalid 'in' operand obj 20 2017-02-26 Uncaught TypeError: Cannot read property 'getPrefixedText' of null 5 2017-02-26 TypeError: null is not an object (evaluating 'elt.parentNode') 5 2017-02-26 Uncaught TypeError: Cannot read property '0' of undefined 1 2017-02-26 Uncaught Error: module already implemented: ext.gadget.UTCLiveClock 1 2017-02-26 Uncaught URIError: URI malformed 1 2017-02-27 TypeError: invalid 'in' operand obj 11 2017-02-27 allocation size overflow 1 2017-02-27 Uncaught Error: Invalid LatLng object: (NaN, 50) 1 ...
What I would like to get from this is a line chart with days on the x axis, and amount of errors (3rd row in data) on y axis. There would be multiple lines, one for each distinct error/exception message (2nd row in data).
I've found "similar" data for Dashiki:VisualEditorAndWikitext (e.g. failure_types_by_user_type), where there are multiple entries per day in the tsv.
- those are "compare" layouts, and this is no A/B testing (although I could probably use this, without a B to compare to?)
- the examples I found with similar date-based grouping are sunburst & stacked-bars, no timeseries (maybe we could live with stacked-bars, if it's not supported for timeseries)
- my data has no recurring data in 2nd column; error messages could be different each day
- so far, I couldn't even get it to work with "compare" layout & "stacked-bars" type :)
Is there more documentation on the options in "Config:Dashiki:" configs and what they do, and/or is there an example more similar to what I want to accomplish?
Let's backtrack a little here: seems to me that your case has little do do with analytics but rather error logging, I understand that mediawiki doesn't provide client side error logging but to be clear, neither does eventlogging which is designed for events, it is no sentry (https://sentry.io/welcome/) so it does not process/works welll with free flow text.
This is been discussed several times and I can look for tickets if needed.
Suggestions to help you gather error data:
- do not send free flow text, For two reasons:
- there is no guarantee text will make it through as there are length limits on eventlogging events size and database fields.
- a dashboard (dashiki or other) that is not specifically designed for error logging would not work, send error codes that on your end map to certain errors. Later we can send (error_code/count) to graphana and use graphana to graph things.
I think what you are looking for is something similar to this: https://grafana.wikimedia.org/dashboard/db/varnish-http-errors?refresh=5m&orgId=1 let me know if that will fit your use case
@Nuria: let's not make @matthiasmullie repeat himself too much, I had already started working with him and this use case seems fine to me. You and I can talk offline and I can explain if you're curious. @matthiasmullie I was just waiting on data from you, I'm happy to help with the dashiki config. Our documentation on the config options is not good yet, we'll work on that separately.
For now, where is your data? Let's get it somewhere public and I'll start off a dashboard with one graph. To make your data public from stat1002 or stat1003, make sure it's ok to share (no private stuff) and put it in /a/published-datasets or /srv/published-datasets. It will be synced publicly. As you do that, please try to build your directory structure for easy discovery and clarity.