记录随时间变化的PagerDuty事件(使用熊猫)

我们制作了董事会会议图表以显示系统的运行状况(正常运行时间等)。 从历史上看,我们每季度手动执行一次。 最近,我努力为相同的信息创建一个实时仪表板,从一段时间的生产事件开始。 我们使用PagerDuty来提醒待命人员。 每个事件都存储在PagerDuty中,可通过PagerDuty API进行查询。 从那里开始,使用pandas将JSON转换为matplotlib图表就很容易了:

首先,我们获取数据:

from datetime import datetime, timedelta
import requests

%matplotlib inline

api_url = "https://api.pagerduty.com/incidents"
headers = {
    'Accept': 'application/vnd.pagerduty+json;version=2',
    'Authorization': 'Token token=YOUR_TOKEN'
}


today = datetime.today()
until = today.replace(day=1)

def get_month(since, until):
    current_date = since
    total_incidents = 0
    while current_date < until:
        next_date = current_date + timedelta(days=7)
        if (next_date > until):
            next_date = until
        url = api_url + "?since={}&until={}&time_zone=UTC&limit=100".format(current_date.date(), next_date.date())
        response = requests.get(url, headers=headers)
        incidents = response.json()['incidents']
        total_incidents = total_incidents + len(incidents)
        current_date = next_date
    return total_incidents
        

# Lookback over twelve months
incidents_per_month = {}
for delta in range(1,12):
    since = (until - timedelta(days=1)).replace(day=1)
    num_incidents = get_month(since, until)
    incidents_per_month[str(since.date())] = num_incidents
    print "{} - {} [{}]".format(since.date(), until.date(), num_incidents)
    until = since

在此刻,

incidents_per_month = { 2018-07-01": 13, "2018-08-01":5 ... }

从那里开始,只需使用pandas绘制值即可:

import pandas as pd
import numpy as np
import matplotlib
import seaborn as sns

data = pd.DataFrame(incidents_per_month.items(), columns=['Month', 'Incidents'])
data = data.sort_values(by=["Month"], ascending=True)
data.plot(kind='bar', x='Month', y='Incidents', color="lightblue")

瞧,那里有:

绘制PagerDuty

翻译自: https://www.javacodegeeks.com/2018/10/charting-pagerduty-using-pandas.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值