Yurik has submitted this change and it was merged. Change subject: Handle bad status code, proper zcmd parsing ......................................................................
Handle bad status code, proper zcmd parsing Change-Id: Ifcf2232b3bc75b7cf8b50b0206ad134634685002 --- M scripts/weblogs.py 1 file changed, 32 insertions(+), 2 deletions(-) Approvals: Yurik: Verified; Looks good to me, approved diff --git a/scripts/weblogs.py b/scripts/weblogs.py index ba947fe..9ebaa2b 100644 --- a/scripts/weblogs.py +++ b/scripts/weblogs.py @@ -215,7 +215,12 @@ verb = l[7] analytics = dict([x.split('=', 2) for x in set(analytics.split(';'))]) xcs = analytics['zero'].rstrip('|') if 'zero' in analytics else None - (cache, httpCode) = l[5].split('/', 2) + tmp = l[5].split('/', 2) + if len(tmp) < 2: + safePrint(u'Invalid status - "%s"\n%s' % (l[5], line)) + addStat(stats, fileDt, 'ERR', '000-00', 'ERR', 'ERR', False, '', 'status', '') + continue + (cache, httpCode) = tmp via = analytics['proxy'].upper() if 'proxy' in analytics else 'DIRECT' ipset = analytics['zeronet'] if 'zeronet' in analytics else 'default' https = 'https' in analytics @@ -266,7 +271,7 @@ addStat(stats, dt, 'STAT', xcs, via, ipset, https, '', 'ret', httpCode) if 'ZeroRatedMobileAccess' in url and 'zcmd' in url: - m = self.zcmdRe.match(url) + m = self.zcmdRe.search(url) addStat(stats, dt, 'STAT', xcs, via, ipset, https, '', 'zcmd', m.group(1) if m else '?') continue if httpCode not in validHttpCode: @@ -371,8 +376,33 @@ return path + def reformatArch(self): + for f in os.listdir(self.pathStats): + if not self.statFileRe.match(f): continue + pth = os.path.join(self.pathStats, f) + isFirst = True + values = [] + for parts in loadData(pth): + if len(parts) != 9: + if isFirst: break + raise ValueError('Bad file line %s' % f) + isFirst = False + if parts[1] == 'DATA': + pp = parts[7].split('.', 2) + parts[7] = pp[1] if len(pp) > 1 else pp[0] + parts.insert(7, pp[0] if len(pp) > 1 else '') + else: + parts.insert(6, '') + values.append(parts) + + saveData(pth + '.out', values) + + if __name__ == "__main__": + prc = LogProcessor(logDatePattern=(sys.argv[1] if len(sys.argv) > 1 else False)) + + # prc.reformatArch() # prc.run() prc.processLogFiles() -- To view, visit https://gerrit.wikimedia.org/r/153402 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: Ifcf2232b3bc75b7cf8b50b0206ad134634685002 Gerrit-PatchSet: 1 Gerrit-Project: analytics/zero-sms Gerrit-Branch: master Gerrit-Owner: Yurik <yu...@wikimedia.org> Gerrit-Reviewer: Yurik <yu...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits