python抓取skywalking中超过2s的告警接口

 更新时间:2023年06月16日 14:10:49   作者:软件开发技术修炼  
这篇文章主要为大家介绍了python抓取skywalking中超过2s的告警接口详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

优化慢接口

因技术需要优化慢接口,故需抓取响应超过2s的接口。skywalking中有超过2s的所有接口的报警,代码对最近一周接口响应超过2s的接口地址进行了提取。

skywalking中想要抓取的超过2s的告警接口

# -*- coding: utf-8 -*-
'''
@Time    : 2023/4/20 16:50
@Author  : Celeste
@File    : zq_req_2.py
'''
import csv
import urllib
import requests
import json
import re
# 爬取连接2s以上接口的方法,分页处理
def get_alarm_api(current_page):
    headers = {"Content-Type": "application/json"}
    post_param = {
      "query": "query queryAlarms($keyword: String, $scope: Scope, $duration:Duration!, $tags:[AlarmTag], $paging: Pagination!) {\n    getAlarm(keyword: $keyword, scope: $scope, duration: $duration, paging: $paging, tags: $tags) {\n      items: msgs {\n        key: id\n        message\n        startTime\n        scope\n        tags {\n          key\n          value\n        }\n        events {\n          uuid\n          source {\n            service serviceInstance endpoint\n          }\n          name\n          type\n          message\n          parameters {\n            key\n            value\n          }\n          startTime\n          endTime\n        }\n      }\n    }}",
      "variables": {
        "duration": {
          "start": "2023-04-20 09",
          "end": "2023-04-25 09",
          "step": "HOUR"
        },
        "paging": {
          "pageNum": current_page,
          "pageSize": 2
        }
      }
    }
    return_data = requests.post("http://××.×.×.××:8080/graphql",headers=headers,data=json.dumps(post_param))
    resp_data = return_data.json()
    return resp_data
# 对爬取的返回数据处理,提取出接口信息
def get_api_list(resp_data):
    api_list = []
    for mesg in resp_data['data']['getAlarm']['items']:
      # c = mesg['message'].split()
      # c1 = c.split()
      #matches = re.findall(r'(?<!\w)(\/\w+)', c)
      for m_api in mesg['message'].split():
        #print(j)
        if m_api.startswith("/"):
          api_list.append(m_api)
    page_api = set(api_list)
    return page_api

 获取返回中所有的message中的接口地址列表且去重

上一步是一页的所有接口地址去重;

取出数据中的接口地址去重

此步是取出30页数据中的接口地址,再对所有接口地址进行去重

# 挨个调用方法
def page_api_list():
    pageNum = 30
    page_apis = []
    for current_page in range(1, pageNum + 1):
        resp_data = get_alarm_api(current_page)
        page_api = get_api_list(resp_data)
        page_apis += page_api
    qc_page_apis = set(page_apis)
    return qc_page_apis

# #将爬出的数据写入到csv表格
def scrpe_csv(qc_page_apis):
    # 写模式打开csv文件
    with open('api.csv','a+',encoding="utf-8") as csv_obj:
        # 写入一行标题
        csv.writer(csv_obj).writerow(["api地址"])
        #
        for i in list(qc_page_apis):
            # 逐个写入api信息
            print("==========正在写入api为: %s,的信息=======" %(i))
            csv.writer(csv_obj).writerow(i.split())  #csv.writer(csv_obj).writerow([i])
    print("finshed")
if __name__ == '__main__':
    data = page_api_list()
    scrpe_csv(data)

抓取到最近一周,响应时间超过2s的所有接口 

以上就是python抓取skywalking中超过2s的告警接口的详细内容,更多关于python抓取skywalking告警接口的资料请关注脚本之家其它相关文章!

相关文章

  • python+ffmpeg视频并发直播压力测试

    python+ffmpeg视频并发直播压力测试

    这篇文章主要为大家详细介绍了python+ffmpeg视频并发直播压力测试,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • Python自动化办公之Word文档的创建与生成

    Python自动化办公之Word文档的创建与生成

    这篇文章主要为大家详细介绍了如何通过python脚本来自动生成一个 word文档,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2022-05-05
  • Python提取网页中超链接的方法

    Python提取网页中超链接的方法

    很多人在一开始学习Python,会打算用作爬虫开发。既然要做爬虫,首先就要抓取网页,并且从网页中提取出超链接地址。这篇文章给大家分享一个简单的方法,有需要的可以参考借鉴。
    2016-09-09
  • 解决pandas展示数据输出时列名不能对齐的问题

    解决pandas展示数据输出时列名不能对齐的问题

    今天小编就为大家分享一篇解决pandas展示数据输出时列名不能对齐的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • 分析Python感知线程状态的解决方案之Event与信号量

    分析Python感知线程状态的解决方案之Event与信号量

    本文主要介绍了如何感知线程状态、如何停止一个线程、线程之间的Event用法
    2021-06-06
  • 如何解决PyTorch程序占用较高CPU问题

    如何解决PyTorch程序占用较高CPU问题

    这篇文章主要介绍了如何解决PyTorch程序占用较高CPU问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • 全面介绍python中很常用的单元测试框架unitest

    全面介绍python中很常用的单元测试框架unitest

    这篇文章主要介绍了python中很常用的单元测试框架unitest的相关资料,帮助大家更好的利用python进行单元测试,感兴趣的朋友可以了解下
    2020-12-12
  • Python pytest 框架通关指南:自动化测试不再难

    Python pytest 框架通关指南:自动化测试不再难

    文章介绍了pytest一个高效的Python测试框架,其优点包括简单易用、强大的断言库、支持参数化测试和丰富的插件生态系统,解释了安装、用例运行规则、命令参数、配置文件、前后置操作、断言以及参数化等内容,通过示例代码展示了其用法和优势,感兴趣的朋友跟随小编一起看看吧
    2026-03-03
  • Python使用sql语句对mysql数据库多条件模糊查询的思路详解

    Python使用sql语句对mysql数据库多条件模糊查询的思路详解

    这篇文章主要介绍了Python使用sql语句对mysql数据库多条件模糊查询的思路详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • pyqt环境搭建教程

    pyqt环境搭建教程

    pyqt是一个用于创建GUI应用程序的跨平台工具包,它将python与qt库融为一体,本文给大家分享pyqt环境搭建教程,感兴趣的朋友一起看看吧
    2023-11-11

最新评论