用于读取rum信息的简单pingdom api接口

pyngdom的Python项目详细描述


针对pingdom的简单python api,它具有rum提取功能。

https://travis-ci.org/Epi10/pyngdom.svg?branch=masterJoin the chat at https://gitter.im/Epi10/pyngdomDownloads

结果

请在https://gitter.im/Epi10/pyngdom的gitter上免费提供一个消息(如果安装失败,或者有什么不起作用) 或者发邮件给我aleivag@gmail.com

安装

一如既往

python setup.py install

或者是不那么性感的

pip install pyngdom

或者不如平常那样

pip install git+https://github.com/Epi10/pyngdom

获取朗姆酒

如果你来这里是为了喝朗姆酒(这不是坏海盗的双关语)。

我们为pingdom rum提供了两个接口,第一个接口只使用python,这只会给您提供 今天的rum信息,如果您不想安装额外的依赖项或不喜欢/不想要selenium,这是很好的。第二次 方法您需要selenium和webbrowser,对于测试来说,firefox很好,但是如果您真的想利用脚本 你真的应该使用phantomjs(默认)。

示例将放在示例文件夹中,您可以随意使用。我真的建议检查git存储库 以获取最新的示例。

仅限python的方法

免责声明,rum搜索不是pingdom api的一部分,pingdom不支持它,因此它可以随时停止工作, 风险自负。此外,这种方法比selenium方法更难维护,因此如果pingdom更改了任何内容,则需要更长的时间来修复。

如何使用:

frompyngdomimportPyngdomRumpingdom=Pyngdom(username='user@epi10.cl',password='super-secret-password',apikey='6dz4mqdms0qaxrjstntf6myt6wz5vseg',account='owner@epi10.cl')pingdom.login()

现在您需要知道rum测试id,这很简单,您只需要登录到pingdom,然后查找rum链接 在“报告”页中,rum链接的格式为https://my.pingdom.com/rum/XXXXXXXXXXX

下面是一个示例

RumID search

获得链接后,您所需做的就是

>>>rum=pingdom.today_rum('XXXXXXXXXXX')>>>printrum{u'allow_subdomains':False,u'total':{u'average':2557,u'count':40305,u'median':1971.4791994493,u'p90':4623.1101804124,u'p95':5853.3586753731,u'p99':10089.605}........'url':'http://epi10.cl'}#Get Total RUM>>printrum['total']{u'average':2557,u'count':40305,u'median':1971.4791994493,u'p90':4623.1101804124,u'p95':5853.3586753731,u'p99':10089.605}#Get RUM per geolocation that exist>>printrum['geo'].get('us',{}){u'average':6657,u'count':27,u'median':5875.0625,u'p90':9700.0416666667,u'p95':10175.125,u'p99':13435.125}# Get geographic zone (remember not all geographic zone exists)>>printrum['geo'].get('jp',{}){}

同时也有很多可用的信息。

如果你有硒(你应该),使用它。

如果你有硒(甚至更好的幻影[http://phantomjs.org/]),你应该使用它。 这将为实时朗姆酒的开发打开一扇新的大门。 pyndomdriver比普通的rum,从用户的角度来看,两种方法都应该是 可互换,但这实际上会给你实时朗姆酒。

我怎么用?

首先安装selenium

pip install selenium

现在您可以使用它了

frompyngdomimportPyngdomDriver# If you want to use your native firefox (no extra install other than having your own firefox)pingdom=PyngdomDriver(username='user@epi10.cl',password='super-secret-password',base_driver='Firefox')#if you have phantomjs installedpingdom=PyngdomDriver(username='user@epi10.cl',password='super-secret-password')#then loginpingdom.login()

然后很简单,您只需获取rum的checkid(参见上一节),然后调用相同的函数

>>>rum=pingdom.today_rum('XXXXXXXXXXX'){u'allow_subdomains':False,u'total':{u'average':2557,u'count':40305,u'median':1971.4791994493,u'p90':4623.1101804124,u'p95':5853.3586753731,u'p99':10089.605}........'url':'http://epi10.cl'}

现在有趣的是,要获得实时朗姆酒,您只需选择一个采样间隔(即30秒),然后您就可以

>>>rum=pingdom.realtime_rum('XXXXXXXXXXX',30)#30 seconds later{u'allow_subdomains':False,u'total':{u'average':2456,u'count':15,u'median':1971.4791994493,u'p90':4623.1101804124,u'p95':5853.3586753731,u'p99':10089.605}........'url':'http://epi10.cl'}

您可以与语句一起使用

withPyngdomDriver(username='user@epi10.cl',password='super-secret-password')aspingdom:realtime=pingdom.realtime_rum('XXXXXXXXXXX',30)

就这么简单…我们再次强烈建议使用phantomjs,installit在linux和mac中是如此简单。

额外的API

如果您需要标准的pingom api,我建议您使用https://pypi.python.org/pypi/PingdomLib,它是成熟的 使用起来真的很简单。我们还提供了一些额外的功能,使用标准的pingdom api,仅此而已 因为有些项目我们确实需要它们。

frompprintimportpprintfrompyngdomimportPyngdompingdom=Pyngdom(username='user@epi10.cl',password='super-secret-password',apikey='6dz4mqdms0qaxrjstntf6myt6wz5vseg',account='owner@epi10.cl')check_list=pingdom.get_check_list()#print the check listspprint(check_list)#get only the check for api.epi10.clapi_epi10_check=filter(lambdax:x.get('hostname')=='api.epi10.cl',check_list.get('checks',[]))[0]#print detailed informationprintpingdom.get_detailed_check_information(api_epi10_check['id'])

你会很容易使用它。

更改日志

0.1.2 2014-06-04

  • 在安装时修复(愚蠢的)pypi错误(我们阅读了setup.py中的readme.rst,但在python setup.py sdist时我们从不包含)。

0.1.1 2014-06-04

  • 修复文档以包括登录。
  • 添加示例文件夹。

0.1.0 2014-06-03

  • 初始提交

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

推荐PyPI第三方库


热门话题
java我能在这个程序中更好地使用内存吗?   为什么我的Java while循环迭代了一半   java IntelliJ IDEA不在构建时复制资源   socket仅在Java TCP服务器输出上检查客户端断开连接   java游戏物理摩擦   java片段onClick调用方法   symja数学分析器中无法识别java Abs[x]   java在使用泛型时创建二进制搜索树类的实例?   java在外键约束表上的添加和删除   语法java表达式的含义,如果有条件   java创建内联对象并作为参数传递   是否有相当于Redis排序集(zset)的Java数据结构   java找不到适合的方法(无参数)   音频文件操作给定字节帧的音量Java   Eclipse4不以JavaWebStart启动   java如何使用org在JSON对象中获取嵌套的键元素。json?   java与Jackson的反序列化:“org.codehaus.Jackson.map.JsonMappingException:无法反序列化[projectname]的实例。”   字符串的Java正则表达式   spring集成上的java检测缺火指令