allura-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From hei...@apache.org
Subject [1/3] allura git commit: Add script to report on stats.log files from TimerMiddleware
Date Wed, 23 Sep 2015 14:19:00 GMT
Repository: allura
Updated Branches:
  refs/heads/master 1d6f87b4f -> 7d21b9bd7


Add script to report on stats.log files from TimerMiddleware


Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/19fdeb0a
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/19fdeb0a
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/19fdeb0a

Branch: refs/heads/master
Commit: 19fdeb0a75bc672dfe388b1cef1074dc9babb1b3
Parents: 79d3e27
Author: Dave Brondsema <dbrondsema@slashdotmedia.com>
Authored: Tue Aug 25 19:54:54 2015 +0000
Committer: Dave Brondsema <dbrondsema@slashdotmedia.com>
Committed: Tue Aug 25 19:54:54 2015 +0000

----------------------------------------------------------------------
 scripts/perf/parse_timings.py | 54 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 54 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/allura/blob/19fdeb0a/scripts/perf/parse_timings.py
----------------------------------------------------------------------
diff --git a/scripts/perf/parse_timings.py b/scripts/perf/parse_timings.py
new file mode 100644
index 0000000..3d111f7
--- /dev/null
+++ b/scripts/perf/parse_timings.py
@@ -0,0 +1,54 @@
+#!/usr/bin/env python
+
+#       Licensed to the Apache Software Foundation (ASF) under one
+#       or more contributor license agreements.  See the NOTICE file
+#       distributed with this work for additional information
+#       regarding copyright ownership.  The ASF licenses this file
+#       to you under the Apache License, Version 2.0 (the
+#       "License"); you may not use this file except in compliance
+#       with the License.  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+#       Unless required by applicable law or agreed to in writing,
+#       software distributed under the License is distributed on an
+#       "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#       KIND, either express or implied.  See the License for the
+#       specific language governing permissions and limitations
+#       under the License.
+
+import json
+from datetime import datetime
+import argparse
+import sys
+
+
+parser = argparse.ArgumentParser(description='Parse TimerMiddleware json lines (e.g. stats.log),
filter them, output tab-delimited')
+parser.add_argument('-f', '--filter-category', type=str, nargs='+', metavar='CAT')
+parser.add_argument('-t', '--timings', type=str, nargs='+', metavar='TIMING')
+parser.add_argument('-i', '--input-file', type=argparse.FileType('r'), nargs='?', default=sys.stdin,
+                    help='Filename, or use stdin by default')
+args = parser.parse_args()
+
+timings = []
+for line in args.input_file:
+    data = json.loads(line)
+    try:
+        typ = data['message']['request_category']
+    except KeyError:
+        #print 'No category', data['message']['url']
+        pass
+    if typ not in args.filter_category:
+        continue
+
+    time = datetime.strptime(data['time'], '%Y-%m-%d %H:%M:%S,%f')
+    output = [time]
+    for timing in args.timings:
+        output.append(data['message']['timings'].get(timing, 0))
+    timings.append(output)
+
+timings.sort()  # in case of multiple input files
+
+print '\t'.join(['Time'] + args.timings)
+for t in timings:
+    print '\t'.join(map(str, t))


Mime
View raw message