コード例 #1
0
ファイル: stackdriver_utils.py プロジェクト: spotify/klio
def create_stackdriver_group(project, job_name, region):
    client = monitoring.GroupServiceClient()
    name, dashboard_name = generate_group_meta(project, job_name, region)
    group = {
        "display_name": dashboard_name,
        "filter": "resource.metadata.name=starts_with({})".format(job_name),
    }

    try:
        group = client.create_group(request={"name": name, "group": group})
    except Exception as e:
        msg = ("Could not create a Stackdriver for job '{}': {}. "
               "Skipping...".format(job_name, e))
        logging.error(msg)
        return

    group_id = group.name.split("/")[-1]
    url = STACKDRIVER_GROUP_TPL.format(
        base_url=STACKDRIVER_GROUP_BASE_URL,
        group_id=group_id,
        display_name=dashboard_name,
        project=project,
    )
    msg = "Created dashboard '{}' for job '{}': {}".format(
        dashboard_name, job_name, url)
    logging.info(msg)
    return url
コード例 #2
0
ファイル: stackdriver_utils.py プロジェクト: spotify/klio
def get_stackdriver_group_url(project, job_name, region):
    client = monitoring.GroupServiceClient()
    name, dashboard_name = generate_group_meta(project, job_name, region)
    groups = client.list_groups(request={"name": name})

    for group in groups:
        if group.display_name == dashboard_name:
            group_id = group.name.split("/")[-1]
            return STACKDRIVER_GROUP_TPL.format(
                base_url=STACKDRIVER_GROUP_BASE_URL,
                group_id=group_id,
                display_name=dashboard_name,
                project=project,
            )
コード例 #3
0
def delete_stackdriver_group(project, job_name, region):
    client = monitoring.GroupServiceClient()
    name, dashboard_name = generate_group_meta(project, job_name, region)

    try:
        for group in client.list_groups(name):
            if group.display_name == dashboard_name:
                client.delete_group(group.name, recursive=True)
                msg = "Deleted dashboard '{}' for job '{}'".format(
                    dashboard_name, job_name)
                logging.info(msg)
                return
    except Exception as e:
        msg = ("Could not delete a Stackdriver for job '{}': {}. "
               "Skipping...".format(job_name, e))
        logging.error(msg)
        return

    logging.warning(
        "No dashboard for job '{}' could be found. Nothing deleted".format(
            job_name))