总结har文件并将其输入carbon

harstats-graphite的Python项目详细描述


这是一个python模块/脚本,用于分析和总结HTTP Archive (HAR) 文件它的输出可以直接输入carbon的线路和pickle接收器

示例图

https://github.com/gvalkov/screenshots/raw/master/thumb/harstats-graphite-01.pnghttps://github.com/gvalkov/screenshots/raw/master/thumb/harstats-graphite-02.pnghttps://github.com/gvalkov/screenshots/raw/master/thumb/harstats-graphite-03.pnghttps://github.com/gvalkov/screenshots/raw/master/thumb/harstats-graphite-04.png

示例输出

$ 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之外没有依赖项 史崔。它应该在Python上工作使用pip或 只需下载:

$ pip install harstats-graphite
$ curl -OL https://raw.github.com/gvalkov/harstats-graphite/master/harstatsgraphite.py

许可证

har-stats-graphite.py根据新的BSD许可证的条款发布

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java将变量从一个类发送到另一个类   使用Java Kubernetes客户端Api部署pod   sql如何从oracle检索图像并在java框架中显示   java更改Clover检测类的位置   java安卓位置。getAccuracy()返回1   运行时。不支持Java ME 8上的exec()。还有别的选择吗?   bdd在Java中运行Cucumber时修改CucumberOptions标记   在java中将方法更改为运行时异常   构造函数类中的Java NullPointerException   java SetResizeable(false)不会阻止双击后的帧还原   java智能卡终端移除:SCARD_E_无服务卡例外   Java正则表达式和组   爪哇骑士巡回赛   端口8443上通过ssl的java Spring安全登录在使用http协议的端口8080上无法识别   java如何确定读取文件的哪一行特定行