53 lines
1.9 KiB
Python
53 lines
1.9 KiB
Python
import os
|
|
import dynatraceAPI
|
|
import logging
|
|
from decouple import config
|
|
import yaml
|
|
import pandas as pd
|
|
from dynatrace import Dynatrace
|
|
import logging
|
|
|
|
|
|
def getDashboardsWithViewCount(DT_CLIENT, METRIC_SELECTOR, RESOLUTION,
|
|
FROM_DATE, TO_DATE):
|
|
metrics = DT_CLIENT.metrics.query(METRIC_SELECTOR, RESOLUTION, FROM_DATE,
|
|
TO_DATE)
|
|
return metrics
|
|
|
|
|
|
def getDashboards(DT_CLIENT):
|
|
dashboards = DT_CLIENT.dashboards.list(owner=None, tags=None)
|
|
return dashboards
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
logging.basicConfig(level=logging.WARNING, format='%(levelname)s: %(message)s')
|
|
|
|
with open(os.path.basename("./environment.yaml")) as env_cfg:
|
|
environment = yaml.safe_load(env_cfg)
|
|
|
|
for item, doc in environment.items():
|
|
logging.info(item, " checking token ...")
|
|
|
|
if config(dict(doc[2]).get("env-token-name"), default='') != "":
|
|
DT_URL = dict(doc[1]).get("env-url")
|
|
DT_TOKEN = config(dict(doc[2]).get("env-token-name"), default='')
|
|
METRIC_SELECTOR = dict(doc[5]).get("metricSelector")
|
|
RESOLUTION = dict(doc[6]).get("resolution")
|
|
FROM_DATE= dict(doc[7]).get("fromDate")
|
|
TO_DATE= dict(doc[8]).get("toDate")
|
|
|
|
logging.info(item, " init Dynatrace client ...")
|
|
DT_CLIENT = Dynatrace(DT_URL, DT_TOKEN, logging.Logger("ERROR"),
|
|
None, None, 0, 10*1000)
|
|
|
|
logging.info(item, " fetching all dashboards ...")
|
|
dashboards = getDashboards(DT_CLIENT)
|
|
|
|
logging.info(item, " fetching dashboards with view count that are\
|
|
older than 6 Months...")
|
|
viewcounts = getDashboardsWithViewCount(DT_CLIENT, METRIC_SELECTOR,
|
|
RESOLUTION, FROM_DATE,
|
|
TO_DATE)
|