In [ ]:
import pandas as pd
import json
from pandas.io.json import json_normalize
In [ ]:
"""Get all boot reports for a job and a specified kernel"""
""" Sort boards by average boot time """
""" Sort boards by boot success percentage """
import requests
from urlparse import urljoin
import kernelci_api_key
BACKEND_URL = "http://api.kernelci.org"
def invoke():
headers = {
"Authorization": kernelci_api_key.getkernelcikey()
}
params = {
"job":"mainline",
"date_range" : 30
}
url = urljoin(BACKEND_URL, "/boot")
response = requests.get(url, params=params, headers=headers)
return response.content
In [ ]:
content = invoke()
content
In [ ]:
contentjs = json.loads(content)
contentjs['result']
In [ ]:
df = json_normalize(contentjs['result'])
In [ ]:
df['created_on.$date'] = pd.to_datetime(df['created_on.$date'],unit='ms')
df['created_on.$date'].head()
In [ ]:
df = df[df.arch=='arm']
df.head()
In [ ]:
## Understanding Boot times for each board
boottimedf = df.groupby(df.board)
boottimedf.mean().sort('time.$date',axis=0, ascending=False)
In [ ]:
## What are the unique entries in this table
dfd = df.describe(include='all')
dfd.loc['unique',:]
In [ ]:
df.dtypes
In [ ]:
df.columns
In [ ]:
dfBestBootBoards=df[[u'_id.$oid', u'arch', u'board', u'board_instance',u'status']]
In [ ]:
dfBestBootBoards.head()
In [ ]:
dfBestBootBoards.status.value_counts()
In [ ]:
dfBestBootBoards = dfBestBootBoards[(dfBestBootBoards.status!='OFFLINE')]
dfBestBootBoards.status.value_counts()
In [ ]:
dfBestBootBoards.head()
In [ ]:
dfBestBootBoards['status_fl'] = dfBestBootBoards.status.apply(lambda x: 1.0 if (x=='PASS') else 0.0)
In [ ]:
dfBestBootBoards.head()
In [ ]:
dfBestBootBoards.groupby('board').mean().sort('status_fl')
In [ ]:
dfBestBootBoards.board.value_counts()
In [ ]:
In [ ]: