汇总HAR文件并将它们发送到carbon
项目描述
这是一个用于解析和汇总HTTP存档(HAR)文件的Python模块/脚本。它的输出可以直接发送到carbon的行和pickle接收器。
示例图形
示例输出
$ python -m harstatsgraphite /path/to/har.json har.summary.page.time.onContentLoad 1917 1353082153 har.summary.page.time.onLoad 3550 1353082153 har.summary.requests.count.media 90 1353082153 har.summary.requests.count.text 30 1353082153 har.summary.requests.count.total 120 1353082153 har.summary.requests.domains.count 22 1353082153 har.summary.requests.media.content 1569613 1353082153 har.summary.requests.media.request.bodies 0 1353082153 har.summary.requests.media.request.headers 30509 1353082153 har.summary.requests.media.response.bodies 1569613 1353082153 har.summary.requests.media.response.headers 30360 1353082153 har.summary.requests.text.content 838946 1353082153 har.summary.requests.text.request.bodies 0 1353082153 har.summary.requests.text.request.headers 11811 1353082153 har.summary.requests.text.response.bodies 239329 1353082153 har.summary.requests.text.response.headers 7040 1353082153 har.summary.requests.time.blocked 9445 1353082153 har.summary.requests.time.connect 1400 1353082153 har.summary.requests.time.dns 19 1353082153 har.summary.requests.time.firstrequest 123 1353082153 har.summary.requests.time.receive 1367 1353082153 har.summary.requests.time.send 0 1353082153 har.summary.requests.time.transfer 1367 1353082153 har.summary.requests.time.wait 5259 1353082153 har.summary.status.bad 0 1353082153 har.summary.status.redirect 0 1353082153 har.summary.transfer.content 2408559 1353082153 har.summary.transfer.request.bodies 0 1353082153 har.summary.transfer.request.headers 42320 1353082153 har.summary.transfer.response.bodies 1808942 1353082153 har.summary.transfer.response.headers 37400 1353082153 $ harstatsgraphite.py -l local.domain -p h -t 100 /path/to/har.json h.page.time.onContentLoad 1917 100 h.page.time.onLoad 3550 100 h.requests.count.media 90 100 h.requests.count.text 30 100 h.requests.count.total 120 100 h.requests.domains.count 22 100 h.requests.external.count.media 88 100 h.requests.external.count.text 4 100 h.requests.external.count.total 92 100 h.requests.external.time.blocked 8037 100 h.requests.external.time.connect 150 100 h.requests.external.time.dns 6 100 h.requests.external.time.receive 1220 100 h.requests.external.time.send 0 100 h.requests.external.time.transfer 1220 100 h.requests.external.time.wait 3210 100 h.requests.local.count.media 2 100 h.requests.local.count.text 26 100 h.requests.local.count.total 28 100 h.requests.local.time.blocked 1408 100 h.requests.local.time.connect 1250 100 h.requests.local.time.dns 13 100 h.requests.local.time.receive 147 100 h.requests.local.time.send 0 100 h.requests.local.time.transfer 147 100 h.requests.local.time.wait 2049 100 h.requests.media.content 1569613 100 h.requests.media.request.bodies 0 100 h.requests.media.request.headers 30509 100 h.requests.media.response.bodies 1569613 100 h.requests.media.response.headers 30360 100 h.requests.text.content 838946 100 h.requests.text.request.bodies 0 100 h.requests.text.request.headers 11811 100 h.requests.text.response.bodies 239329 100 h.requests.text.response.headers 7040 100 h.requests.time.blocked 9445 100 h.requests.time.connect 1400 100 h.requests.time.dns 19 100 h.requests.time.firstrequest 123 100 h.requests.time.receive 1367 100 h.requests.time.send 0 100 h.requests.time.transfer 1367 100 h.requests.time.wait 5259 100 h.status.bad 0 100 h.status.redirect 0 100 h.transfer.content 2408559 100 h.transfer.request.bodies 0 100 h.transfer.request.headers 42320 100 h.transfer.response.bodies 1808942 100 h.transfer.response.headers 37400 100
用法
harstatsgraphite.py 可以作为脚本使用或程序化使用
import harstatsgraphite as hs raw = hs.parsehar('path/to/harfile.json') data = hs.summarize(raw) print(hs.serialize(data))
Usage: python -m harstatsgraphite [options] <harfile> Arguments: harfile path to HAR file (gzipped or plain) Options: -h, --help show this help message and exit -l, --local <fqdn> local domain name -t, --timestamp <sec> timestamp to use (default: date +%s) -f, --format <arg> plain or pickle (default: plain) -p, --prefix <arg> metric prefix (default: har.summary) If the '-l --local' option is given, the script will split request statistics into three groups - requests to the local domain, all other domains and all requests. Example for 'requests.count': har.summary.requests.extern.count 92 1352934738 har.summary.requests.local.count 28 1352934738 har.summary.requests.count 120 1352934738'''
安装
harstatsgraphite.py 没有Python STL之外的依赖项。它应该在Python >=2.5 ∪ >=3.2上工作。使用 pip 安装或直接下载它
$ pip install harstats-graphite $ curl -OL https://raw.github.com/gvalkov/harstats-graphite/master/harstatsgraphite.py
许可证
har-stats-graphite.py 在新BSD许可证的条款下发布。