用于读取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 Double。将长位加倍到C#位转换器。ToDouble   java如何使用正则表达式从固定的Y位数中提取最后的X位数?   java如何显示ChatMessage类列表中的字符串消息属性?   java从JSON或XML提要导入数据,并在Android中创建列表   在整数之间使用按位AND运算符的java好处?   java从Android中的Bean类获取空值?   java会话id对另一台服务器意味着什么?   java未选择案例时开关的工作方式   java组织。openqa。硒。SessionNotCreatedException:无法创建新的远程会话。在emulator中初始化安卓驱动程序时   JavaSWT父和子对话框通信   java请确保java_HOME指向JDK而不是JRE   java用户即使在成功登录后也是匿名的   java控制器单元测试无法自动连接所需的bean   Java小程序类文件