崩溃数据暴涨实时报警功能实现

作者: skyline大鑫 | 来源:发表于2016-06-16 16:42 被阅读0次

corntab命令 + python脚本

某些崩溃统计平台没有提供实时报警功能,或者我们需要定制报警策略,这时候我们可以抓取页面接口,自己实现报警

crontab命令执行定时任务
crontab使用详解

原理是每分钟抓取一次崩溃数据,大于阈值报警(策略自己定)
能够满足崩溃实时报警功能,通过短信和im工具报警,避免延误最佳修复时机

首先观察页面请求header中参数,分析后用python模拟浏览器登录,请求解析

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import urllib2  
import urllib,httplib
import threading
import json
import time
import os
import sys

ISOTIMEFORMAT='%Y-%m-%d %H:%M:%S'
OUTFORMAT='%Y-%m-%d:%H:%M:%S'
product = ''
product_url_prefix = ''
cookie = ''
xtoken = ''
mails = ''
phones = ''
max = 0;


#def shadle():
#       print time.time()
#       getCrashData(product, product_url_prefix, cookie, xtoken, mails, phones, max)
#       threading.Timer(60,shadle).start()


def getCrashData(__product, __product_url_prefix, __cookie, __xtoken, emails, phonenumbers, maxline):
    product = __product
    product_url_prefix = __product_url_prefix
    cookie = __cookie
    xtoken = __xtoken
    mails = emails
    phones = phonenumbers
    max = maxline

    curTime = long(time.time())
    startTime = long(time.time() - 3600)
#    print time.strftime(ISOTIMEFORMAT,time.localtime(startTime)), time.strftime(ISOTIMEFORMAT, time.localtime(curTime))

    req = urllib2.Request(__product_url_prefix + '&start=%s&end=%s' %(startTime, curTime))
    req.add_header('Cookie', __cookie)
    req.add_header('X-CRASHLYTICS-DEVELOPER-TOKEN', __xtoken)

    content = ''
    try:
        resp = urllib2.urlopen(req)
        content = resp.read()

    except urllib2.HTTPError,e:    #HTTPError必须排在URLError的前面
        print "The server couldn't fulfill the request"
        print "Error code:",e.code
        print "Return content:",e.read()
        shadle()
        return
    except urllib2.URLError,e:
        print "Failed to reach the server"
        print "The reason:",e.reason
        shadle()
        return

#    print content

    js = json.loads(content)

#    with open(__product + '_pid.txt','w') as f:
#        f.write(bytes(os.getpid()))

    fivec = 0
    for a in js['series'][-5:]:
        fivec += a[1]


    str = __product + time.strftime(OUTFORMAT,time.localtime(js['series'][-1][0])) + '当前分钟崩溃数:' + bytes(js['series'][-3][1]) + "最近五分钟崩溃平均值:" + bytes(float(fivec)/5)

    if time.localtime(time.time()).tm_min == 0:
        r = urllib2.Request('im工具报警url')
        urllib2.urlopen(r)

#    r = urllib2.Request('im工具报警url')
#    urllib2.urlopen(r)

    if js['series'][-3][1] >= maxline:
#        print js['series'][-3][1]
        r = urllib2.Request('im工具报警url')
        urllib2.urlopen(r)
        for p in phonenumbers:
            r = urllib2.Request('短信报警接口url')
            urllib2.urlopen(r)

    sys.exit()
            

相关文章

  • 崩溃数据暴涨实时报警功能实现

    corntab命令 + python脚本 某些崩溃统计平台没有提供实时报警功能,或者我们需要定制报警策略,这时候我...

  • 巡更系统背后的服务体系化是“云服务”的开端

    摘要:随着信息的智能化,采用了实时云服务的巡更机系统在未来将会实现实时主动报警、实时纠错的等新功能,这也促进了巡更...

  • 车间数字化MES项目概述

    车间MES项目 1,数据采集模块:设备信息如报警,产量,刀具等信息的实时上传2,网页功能模块:采用Django +...

  • 冷云平台使用指南

    一、报警 二、设备列表 实时数据点击此处进入全部设备的实时数据点击此处进入单个设备的实时数据列表从左至右分别是温度...

  • Python数据挖掘015-电力窃漏电自动识别

    本项目的目标是通过电量异常数据,负荷异常数据,终端报警数据,主站报警,线损异常数据等信息,建立数据分析模型,来实时...

  • 港股实时行情数据

    港股实时行情数据 所有港股实时交易行情数据,港股实时数据,支持代码筛选。 1. 产品功能 支持所有港股实时交易数据...

  • Open Falcon 使用教程

    OpenFalcon是一款企业级、高可用、可扩展的开源监控解决方案,提供实时报警、数据监控等功能。可以非常容易的监...

  • 智慧用电整理

    按照界面功能点分:1.首页 2.报警信息 3.实时数据(查看所有设备状态) 4.监控中心 5.隐患曝光(我们是否需要)?

  • 第五节 实现zabbix报警功能之页面信息报警和页面提示声音报警

    1 实现zabbix报警功能(触发器/动作) 1.1 页面提示信息报警和页面提示声音报警 配置-----主机---...

  • 实现一个弹幕墙APP

    弹幕墙APP点这里 功能: 实现发射弹幕、清除弹幕、显示弹幕功能。扩展: 用野狗实时后端云来存储弹幕数据。 按照 ...

网友评论

    本文标题:崩溃数据暴涨实时报警功能实现

    本文链接:https://www.haomeiwen.com/subject/ribmdttx.html