← 返回题库
初级

统计服务失败率

未完成
初级参考 完整示例代码供参考,建议自己理解后重新输入
def solve():
    from pyodide.http import open_url
    from io import StringIO
    request_logs_csv = open_url("https://data.zuihe.com/dbd/ms-shop/state_03/request_logs.csv").read()
    import pandas as pd
    from io import StringIO
    logs = pd.read_csv(StringIO(request_logs_csv))
    def calc_failure_rate(data, path=None):
        if path: data = data[data['path']==path]
        if len(data) == 0: return 0.0, 0, 0
        total = len(data)
        failed = (data['status_code'] >= 400).sum()
        return round(failed/total, 4), int(failed), total
    for path in logs['path'].unique():
        rate, failed, total = calc_failure_rate(logs, path)
        alert = ' [ALERT]' if rate > 0.1 else ''
        print(f"{path}: {failed}/{total} = {rate:.1%}{alert}")
    overall_rate, _, _ = calc_failure_rate(logs)
    print(f"Overall: {overall_rate:.1%}")

示例

输入
solve()
期望输出
/api/v1/orders: 1/16 = 6.2%
/api/v1/payments: 1/9 = 11.1% [ALERT]
/api/v1/products: 0/7 = 0.0%
/api/v1/search: 2/7 = 28.6% [ALERT]
/api/v1/users: 3/11 = 27.3% [ALERT]
Overall: 14.0%
Python 代码 🔒 登录后使用
🔒

登录后即可练习

注册免费账号,在浏览器中直接运行 Python 代码