python抓取skywalking中超過2s的告警接口
優(yōu)化慢接口
因技術(shù)需要優(yōu)化慢接口,故需抓取響應(yīng)超過2s的接口。skywalking中有超過2s的所有接口的報(bào)警,代碼對(duì)最近一周接口響應(yīng)超過2s的接口地址進(jìn)行了提取。
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以上接口的方法,分頁(yè)處理 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 # 對(duì)爬取的返回?cái)?shù)據(jù)處理,提取出接口信息 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中的接口地址列表且去重
上一步是一頁(yè)的所有接口地址去重;
取出數(shù)據(jù)中的接口地址去重
此步是取出30頁(yè)數(shù)據(jù)中的接口地址,再對(duì)所有接口地址進(jìn)行去重
# 挨個(gè)調(diào)用方法 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
# #將爬出的數(shù)據(jù)寫入到csv表格 def scrpe_csv(qc_page_apis): # 寫模式打開csv文件 with open('api.csv','a+',encoding="utf-8") as csv_obj: # 寫入一行標(biāo)題 csv.writer(csv_obj).writerow(["api地址"]) # for i in list(qc_page_apis): # 逐個(gè)寫入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)
抓取到最近一周,響應(yīng)時(shí)間超過2s的所有接口
以上就是python抓取skywalking中超過2s的告警接口的詳細(xì)內(nèi)容,更多關(guān)于python抓取skywalking告警接口的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- Skywalking-agent調(diào)試說明以trace-ignore為例
- SpringCloudGateway使用Skywalking時(shí)日志打印traceId解析
- Apache?SkyWalking?修復(fù)TTL?timer?失效bug詳解
- Apache?SkyWalking?監(jiān)控?MySQL?Server?實(shí)戰(zhàn)解析
- 全鏈路監(jiān)控平臺(tái)Pinpoint?SkyWalking?Zipkin選型對(duì)比
- skywalking源碼解析javaAgent工具ByteBuddy應(yīng)用
- skywalking分布式服務(wù)調(diào)用鏈路追蹤APM應(yīng)用監(jiān)控
- skywalking容器化部署docker鏡像構(gòu)建k8s從測(cè)試到可用
- 解析Arthas協(xié)助排查線上skywalking不可用問題
相關(guān)文章
Python最火、R極具潛力 2017機(jī)器學(xué)習(xí)調(diào)查報(bào)告
Python最火,R極具潛力,分享2017機(jī)器學(xué)習(xí)調(diào)查報(bào)告,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12使用python執(zhí)行shell腳本 并動(dòng)態(tài)傳參 及subprocess的使用詳解
這篇文章主要介紹了使用python執(zhí)行shell腳本 并動(dòng)態(tài)傳參 及subprocess的使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-03-03python采集百度搜索結(jié)果帶有特定URL的鏈接代碼實(shí)例
這篇文章主要介紹了python采集百度搜索結(jié)果帶有特定URL的鏈接代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08pycharm激活碼免費(fèi)分享適用最新pycharm2020.2.3永久激活
免費(fèi)為大家分享Pycharm激活碼,適用最新版pycharm2020.2.3永久激活,pycharm2018,pycharm2019也可永久激活,可成功激活到2089年2020-11-11Android+OpenCv4實(shí)現(xiàn)邊緣檢測(cè)及輪廓繪制出圖像最大邊緣
最近工作需求,需要用opencv來先做一個(gè)demo,掃描照片進(jìn)行邊緣檢測(cè)和最大邊緣,就整理出來介紹一下,感興趣的小伙伴們可以參考一下2021-05-05