prep for fetching data
parent
d7f0b62a57
commit
daa21616ff
|
|
@ -135,4 +135,7 @@ crash.log
|
|||
*.tfvars
|
||||
|
||||
#excel reports
|
||||
*.xlsx
|
||||
*.xlsx
|
||||
|
||||
# json files
|
||||
*.json
|
||||
|
|
@ -7,10 +7,13 @@ from key_request_parser import krparser
|
|||
|
||||
from datetime import datetime, timedelta
|
||||
import datetime
|
||||
import re
|
||||
import json
|
||||
|
||||
import typing
|
||||
from decorators import timer
|
||||
|
||||
|
||||
def getSLO(ENV, DTAPIToken, DTENV):
|
||||
def get_slo(ENV, DTAPIToken, DTENV) -> pd.DataFrame:
|
||||
# DTENV = base url
|
||||
# DTAPIToken = sec token
|
||||
dtclient = dynatraceAPI.Dynatrace(DTENV, DTAPIToken)
|
||||
|
|
@ -29,7 +32,8 @@ def previous_week_range(date: datetime):
|
|||
return start_date, end_date
|
||||
|
||||
|
||||
def main():
|
||||
@timer
|
||||
def main() -> None:
|
||||
# Get All SLOs
|
||||
|
||||
reportItem = {}
|
||||
|
|
@ -47,7 +51,7 @@ def main():
|
|||
|
||||
# krp = krparser.KRParser(krparser.KROption.VALIDATE_EXISTS | krparser.KROption.VALIDATE_HASDATA ,DTURL, DTTOKEN)
|
||||
|
||||
slosF = getSLO(env, DTTOKEN, DTURL)
|
||||
slosF = get_slo(env, DTTOKEN, DTURL)
|
||||
slosF = slosF[slosF["name"].str.startswith("TP_")]
|
||||
|
||||
# parse the metric Expression to get Services and Requests
|
||||
|
|
@ -55,7 +59,7 @@ def main():
|
|||
krs = []
|
||||
krp = krparser.KRParser(
|
||||
krparser.KROption.VALIDATE_EXISTS
|
||||
| krparser.KROption.VALIDATE_HASDATA
|
||||
# | krparser.KROption.VALIDATE_HASDATA
|
||||
| krparser.KROption.RESOLVESERVICES,
|
||||
DTURL,
|
||||
DTTOKEN,
|
||||
|
|
@ -79,43 +83,32 @@ def main():
|
|||
# "serviceName": "$servicename$"
|
||||
# }]
|
||||
|
||||
reportItem[str(env)] = {}
|
||||
|
||||
for kr in krs:
|
||||
reportItem[kr.metadata["sloName"]] = {}
|
||||
reportItem[kr.metadata["sloName"]]["sloname"] = kr.metadata["sloName"]
|
||||
reportItem[kr.metadata["sloName"]]["services"] = []
|
||||
reportItem[str(env)][kr.metadata["sloName"]] = {}
|
||||
reportItem[str(env)][kr.metadata["sloName"]]["sloname"] = kr.metadata[
|
||||
"sloName"
|
||||
]
|
||||
reportItem[str(env)][kr.metadata["sloName"]]["services"] = []
|
||||
reportItem[str(env)][kr.metadata["sloName"]]["requests"] = []
|
||||
|
||||
reportItem[kr.metadata["sloName"]]["services"].append(
|
||||
{"serviceName": "$servicename$"}
|
||||
)
|
||||
for key_request in kr.keyRequests:
|
||||
reportItem[str(env)][kr.metadata["sloName"]]["requests"].append(
|
||||
{
|
||||
"displayName": key_request["displayName"],
|
||||
"entityId": key_request["entityId"],
|
||||
}
|
||||
)
|
||||
|
||||
extract_services_and_requests(kr.metadata["metricExpression"])
|
||||
|
||||
print(reportItem)
|
||||
# filtering the SLO dataframe based on those dates and the service name
|
||||
|
||||
|
||||
def extract_services_and_requests(metric_expression: str):
|
||||
services = []
|
||||
requests = []
|
||||
|
||||
result = metric_expression.split("entityName.in")
|
||||
regex_pattern = r"~(.*?)~"
|
||||
method_list = ["GET", "POST", "http"]
|
||||
for x in result:
|
||||
matches = re.findall(regex_pattern, x)
|
||||
for match in matches:
|
||||
if match != "SERVICE":
|
||||
# TODO: not working properly. fix needed
|
||||
res = any(ele in match for ele in method_list)
|
||||
if res:
|
||||
requests.extend(matches)
|
||||
else:
|
||||
services.extend(matches)
|
||||
|
||||
print(f"services: {services}")
|
||||
print("-" * 80)
|
||||
print(f"requests: {requests}")
|
||||
return result
|
||||
for service in key_request["services"]:
|
||||
reportItem[str(env)][kr.metadata["sloName"]]["services"].append(
|
||||
{
|
||||
"type": service["type"],
|
||||
"displayName": service["displayName"],
|
||||
"entityId": service["entityId"],
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
|
|
|||
|
|
@ -0,0 +1,12 @@
|
|||
from time import time
|
||||
|
||||
|
||||
def timer(func):
|
||||
def wrapper_function(*args, **kwargs):
|
||||
start = time()
|
||||
result = func(*args, **kwargs)
|
||||
end = time()
|
||||
print(f"Function {func.__name__!r} executed in {(end - start):.4f} seconds.")
|
||||
return result
|
||||
|
||||
return wrapper_function
|
||||
Loading…
Reference in New Issue