监控飞书报警信息并生成Excel文件 1.0.0

发布于:2022-11-05 ⋅ 阅读:(391) ⋅ 点赞:(0)

目录地址

https://blog.csdn.net/weixin_44511366/article/details/127588046

文档关键字

Python调用飞书API、获取飞书群消息、生成飞书电子文档、发送消息到飞书群聊


 

飞书API接口文档地址

开发文档 - 飞书开放平台 (feishu.cn)

脚本生成文档展示

背景

        项目上线了“接口性能监控功能”,结合上以前开发的飞书报警功能,当用户使用项目功能,发起接口请求,如果项目耗时超过了预设的阈值,将会发送报警消息到对应的群聊中,目的是统计、监控性能不达标的接口,方便后面排期优化。

        但是由于这个功能已经上线了一段时间,而优化的排期工作还没有安排,导致报警群已经堆积了大量的消息,想要人工整理报警信息已经是不现实的事情,所以开发了Python脚本,可以一键获取全量的历史消息,且部署到服务器的定时任务中,每天定时增量拉取报警信息,并生成飞书云文档(电子文档)到指定云文档目录下,方便部门成员预览。

待解决问题

  1. 获取指定飞书群消息
  2. 生成飞书云文档到指定云文档地址
  3. 将云文档地址发送到指定群聊

问题解决思路

        以上问题在阅览飞书API文档后发现都可以实现,那么问题其实变得非常简单,只需要发送HTTP请求,整理数据格式就可以了。

1、读取飞书群消息

https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/listicon-default.png?t=M85Bhttps://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/list2、创建电子文档

https://open.feishu.cn/document/ukTMukTMukTM/uQTNzUjL0UzM14CN1MTNicon-default.png?t=M85Bhttps://open.feishu.cn/document/ukTMukTMukTM/uQTNzUjL0UzM14CN1MTN3、写入数据

https://open.feishu.cn/document/ukTMukTMukTM/uIjMzUjLyIzM14iMyMTNicon-default.png?t=M85Bhttps://open.feishu.cn/document/ukTMukTMukTM/uIjMzUjLyIzM14iMyMTN4、将生成的文档地址发送到指定群

https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/createicon-default.png?t=M85Bhttps://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/create

预计节省工时

        如果通过手工整理全量报警消息,我们四个环境“dev、test、uat、prd”四个报警群,假设每个报警群1000条数据来算,一个人需要至少2小时才能整理好报警信息,即节省至少2小时/人的工时。再加上每天看到一条报警信息就要誊到文档中一条信息,这个工时、精力简直不可估量。

脚本运行思路

  1. 根据传入参数,判断拉取群消息的时间范围;第一次拉取全量数据,后面部署到定时任务,每天晚上拉取当天的数据。
  2. 获取部署了“飞书应用”的群聊
  3. 循环获取历史群消息
  4. 按照指定格式整理Excel行数据对象
  5. 云文档中指定文件夹位置创建Excel文档
  6. 发送文档地址到指定群聊(部门群)
  7. 向文档中循环写入数据

飞书API使用注意事项

1、想要使用飞书API,需要基于飞书应用之上,所以要先创建飞书应用

2、脚本使用到的接口,都需要申请对应的权限

 3、一些接口要开通机器人功能,例如获取消息功能,只需要将机器人开关打开即可

4、飞书API接口每次调用都需要生成应用token,应用token则是根据应用的ID、密钥调用接口实现,ID、密钥可以从“凭证与基础信息中获取”

 5、获取群消息接口想要调用成功,需要将应用添加到对应的群聊中

6、想要在指定目录下创建文档,需要将“添加了应用的群聊”添加到文件夹的协作者中 

7、飞书API的每个接口,可以看作是 我们正常手动操作的对应步骤,这么说有点抽象,意思是,想要调用接口C,必须先要按顺序执行接口A、接口B;例如,我想要向文档中写入数据,那么①先要创建文档、②创建SHEET页、③添加空白行、④才是向空白行中写入数据

脚本地址

https://github.com/MaverickGao/python_utils/blob/feature_20221029/utils/feishu_pormance_alarm.py

本文含有隐藏内容,请 开通VIP 后查看