咱们好~我是小方,欢迎咱们重视笋货测验笔记体完记住俾个like

回顾

在上篇中,整个数据工厂的核心现已是开发完毕了,可是渠道的话,必定得有一些数据报表,好看的报表能够给你升职加薪带来帮助

数据报表

数据报表有几个目标,咱们能够看看下图

数据工厂系列(29)数据报表展现
用户数、场景数、项目数、事务线数、调用成功率、调用量

数据工厂系列(29)数据报表展现
履行状况、调用办法、事务线散布饼图

数据工厂系列(29)数据报表展现

终究有最近7天场景调用量、创立量、成功数、异常数、失利数

  • 最上面6个目标

直接调用BaseCrud.get_with_count办法即可,直接查询出数量

数据工厂系列(29)数据报表展现

数据工厂系列(29)数据报表展现

  • 中间饼图目标

数据工厂系列(29)数据报表展现

数据工厂系列(29)数据报表展现

运转状况和调用办法直接查log表,进行分组统计数量,事务线散布查case表,办法同上

  • 最近7天场景趋势图

这儿目标有调用量、成功数、失利数、异常数、创立数,其中除了创立数,其他目标都能够经过log查询得出

先经过开端时刻和完毕时刻进行挑选数据,开端时刻为今日,完毕时刻为今日-6天,再经过日期进行分组,经过函数case_whensum算出成功数、失利数、异常数,经过count算出总数,可是这儿需求留意一点,有些日期的确没有数据,这时候需求手动弥补数据,经过while,从开端日期开端算起,如果在源数据取不到数据,就默许弥补0,循环完毕条件为开端日期大于完毕日期

数据工厂系列(29)数据报表展现

数据工厂系列(29)数据报表展现

终究效果图

数据工厂系列(29)数据报表展现

数据工厂系列(29)数据报表展现

git Webhook同步项目

因为咱们的服务跟项目进行解耦了,项目存放在git上,每次咱们更新代码,是不是都得在渠道上履行一下同步项目,长久下来的确比较繁琐,为此,咱们能够运用git的webhook功用,每逢有push代码时,经过webhook调用数据工厂的api,履行同步项目

咱们能够来看看gitee的webhook功用,简介地址gitee.com/help/articl…

  • WebHook 简介
    数据工厂系列(29)数据报表展现

简单来讲便是咱们只需维护一个api,每次push时,post恳求这个api,就能实现同步项目功用

  • WebHook 密钥验证和验证算法

gitee webhook文档有提到,webhook可运用签名办法,什么是签名呢?浅显来讲便是服务端承认收到的恳求完好且可信任,才履行操作,这种便是避免歹意刷api

数据工厂系列(29)数据报表展现

这儿采用了HmacSHA256算法计算签名,下面也给了个demo,可是demo只支撑Python2,不得不不吐槽一下不过问题不大,自己另写一个呗,签名算法代码如下

class Sha256(object):
    @classmethod
    def encrypt(cls, timestamp: str):
        secret = constants.SECRET
        data = f"{timestamp}n{secret}"
        sign = base64.b64encode(
            hmac.new(secret.encode('utf-8'), data.encode('utf-8'), digestmod=sha256).digest()).decode()
        return sign
  • 同步逻辑代码改造

将之前的sync_project_logic办法改造一下,判断是哪个sys过来的恳求,如果是渠道上就经过主键id查出项目信息,履行人默许为恳求的那个人,如果是gitee的webhook就经过git的项目名称查出项目信息,履行人为admin用户,后续的逻辑跟之前相同

数据工厂系列(29)数据报表展现

数据工厂系列(29)数据报表展现

上面现已写了个签名办法,咱们只需求验证gitee传过来的签名数据是否与后端服务加密生成的签名数据共同,共同即可后续的操作

这儿咱们只需求从request中获取恳求头信息,再进行校验好了,check逻辑比较简单,咱们可看看下面的代码

数据工厂系列(29)数据报表展现

其实这儿校验逻辑能够放在中间件里做,可是就这么一个api没什么必要具体原因可看看解释哈,散步哥yyds!!!

终究sync_project_logic_by_git逻辑如下

数据工厂系列(29)数据报表展现

路由函数这儿就不截图,直接看看源码好了比较简单,增加路由

数据工厂系列(29)数据报表展现

终究记住给这个路由加上白名单

数据工厂系列(29)数据报表展现

其他优化点

脚本履行引进运转日志,日志的话,需求手艺注入进去,然后终究return回来,渠道只负责接纳日志

数据工厂系列(29)数据报表展现

终究给咱们看看内部数据工厂的日志吧,后续我也把相关日志装修器放上去,在funcase项目哦~

数据工厂系列(29)数据报表展现

总结

今日到这儿的话,数据工厂现已开发完了,咱们还有什么需求或许主意能够咨询我,咱们一起交流学习哈~下篇咱们来进行布置上线,持续弥补运用说明文档、功用介绍文档和布置文档等等