The edit analysis dashboard does not show any data after 4 December 2015.
It seems like the queries started failing at that point for some reason. There's a failure rate by type query that's running right now on analytics-store (and has been for 90 minutes), but it's the query for 4 December 2015! I've been hanging out in the processlist a lot recently (partly for reasons related to T123634) and I've seen queries for this dashboard running for similar periods of time during the past couple of weeks, but I didn't have a reason to look closely at them.
It's about time to update these queries to remove references to the Edit_11448630 table, which has stopped receiving events, and I can definitely do that myself, but I don't think that has anything to do with this issue.
Anyway, I don't think this is unbreak now because we've already lived without it for a month and a half—I imagine we can keep doing that for a bit longer :) @Jdforrester-WMF, is that accurate?
Output for SHOW FULL PROCESSLIST:
| 9371156 | research | 10.64.36.103:54651 | log | Query | 5543 | Queried about 680000 rows | select day, sum(if(actions like '%saveAttempt%saveFailure%', repeated, 0)) / sum(if(actions like '%saveAttempt%', repeated, 0)) as 'total', sum(if(actions like '%saveAttempt%saveFailure%' and failures like '%userBadToken%', repeated, 0)) / sum(if(actions like '%saveAttempt%', repeated, 0)) as 'bad-token', sum(if(actions like '%saveAttempt%saveFailure%' and failures like '%userNewUser%', repeated, 0)) / sum(if(actions like '%saveAttempt%', repeated, 0)) as 'new-user', sum(if(actions like '%saveAttempt%saveFailure%' and failures like '%extensionAbuseFilter%', repeated, 0)) / sum(if(actions like '%saveAttempt%', repeated, 0)) as 'abuse-filter', sum(if(actions like '%saveAttempt%saveFailure%' and failures like '%extensionCaptcha%', repeated, 0)) / sum(if(actions like '%saveAttempt%', repeated, 0)) as 'captcha', sum(if(actions like '%saveAttempt%saveFailure%' and failures like '%extensionSpamBlacklist%', repeated, 0)) / sum(if(actions like '%saveAttempt%', repeated, 0)) as 'spam-blacklist', sum(if(actions like '%saveAttempt%saveFailure%' and failures like '%responseEmpty%', repeated, 0)) / sum(if(actions like '%saveAttempt%', repeated, 0)) as 'response-empty', sum(if(actions like '%saveAttempt%saveFailure%' and failures like '%responseUnknown%', repeated, 0)) / sum(if(actions like '%saveAttempt%', repeated, 0)) as 'response-unknown', sum(if(actions like '%saveAttempt%saveFailure%' and failures like '%editPageDeleted%', repeated, 0)) / sum(if(actions like '%saveAttempt%', repeated, 0)) as 'page-deleted', sum(if(actions like '%saveAttempt%saveFailure%' and failures like '%editConflict%', repeated, 0)) / sum(if(actions like '%saveAttempt%', repeated, 0)) as 'conflict' from ( select day, actions, failures, count(*) as repeated from ( select date(timestamp) as day, group_concat(event_action order by timestamp, action_order.ord separator '-') as actions, group_concat(`event_action.saveFailure.type` order by timestamp separator '-') as failures from ( select timestamp, event_action, `event_action.saveFailure.type`, clientIp, event_editingSessionId from Edit_11448630 where event_editor = 'visualeditor' and ('all' = 'all' or wiki = 'all') and timestamp >= '20151204000000' and timestamp < '20151205000000' # Add in events using the new schema. To be removed once everything # is switched over. union all select timestamp, event_action, `event_action.saveFailure.type`, clientIp, event_editingSessionId from Edit_13457736 where event_editor = 'visualeditor' and ('all' = 'all' or wiki = 'all') and timestamp >= '20151204000000' and timestamp < '20151205000000' ) raw_events inner join (select 'init' as action, 0 as ord union all select 'ready' as action, 1 as ord union all select 'saveIntent' as action, 2 as ord union all select 'saveAttempt' as action, 3 as ord union all select 'saveFailure' as action, 4 as ord union all select 'saveSuccess' as action, 5 as ord union all select 'abort' as action, 6 as ord ) action_order on action = event_action # client side, the ip is set but the editingSessionId is bad # due to a bad library in Safari, it creates duplicates # server side, the ip is not set, but editingSessionId is good group by if( if( 'visualeditor' = 'wikitext', 0, 1 ), concat( coalesce( clientIp, '' ), event_editingSessionId ), event_editingSessionId ) # this purposefully ignores sessions that start before "from_timestamp", # as well as some other sessions that legitimately do not have an "init" # as well as sessions that have an "init" after "ready" having actions like 'init%' ) sessions group by day, actions, failures ) sessions_by_occurrences