transferandstuff/MRP_microservices.py

56 lines
1.7 KiB
Python

from decouple import config
import yaml
import requests
import json
import pandas as pd
import time
from distutils.version import LooseVersion
from dynatraceAPI import Dynatrace
def GatherAllAgents(DTAPIToken, DTENV,friendlyName):
reportingFolder = config('REPORTING_FOLDER')
env = DTENV
DTAPIToken = DTAPIToken
result_tags = ["Environment", "Hub", "PaaS", "Cloud", "ms-id","compass-id","app-id","app.bmwgroup.com/archetype","app.bmwgroup.com/archetype-version"]
search_tags = ["app.bmwgroup.com/archtetype"]
dtClient = Dynatrace(env, DTAPIToken)
params = {}
pgs = dtClient.returnPageination(f"/api/v2/entities?entitySelector=type(PROCESS_GROUP),tag([KUBERNETES]app.bmwgroup.com/archetype)&fields=+tags", params, list_item="entities")
df = pd.DataFrame()
for pg in pgs.elements:
row={'displayName':pg['displayName']}
for tag in pg['tags']:
if tag['key'] in result_tags:
try:
row.update({ tag['key']:tag['value']})
except:
row.update({ tag['key']:tag['key']})
df = df.append(row,ignore_index=True)
df.to_csv(reportingFolder + friendlyName + '_mrps.csv')
with open('./environment.yaml') as file:
doc = yaml.safe_load(file)
for item, doc in doc.items():
token = dict(doc[2])
url = dict(doc[1])
print("Crawling through: " + item)
print("Check if token exists in environment...")
if(config(token.get('env-token-name')) != ""):
print("Gather data, hold on a minute")
DTTOKEN = config(token.get('env-token-name'))
DTURL = url.get('env-url')
GatherAllAgents(DTTOKEN,DTURL,item)
else:
print("token not found, skipping " + item)