Skip to content

Create a monitoring-alerting-samples #29

Description

@hurier-m

This repository was really helpful for me to backup and restore Cloud Monitoring dashboards.

I'd like to have a similar repository for sharing alerting policies, following the same structure.

I already adapted the script (i.e., like alerting.sh) and tested it for AI/ML alert policies.

#!/usr/bin/env bash

set -eE

ACTION=${1:?"action [import | export ] is required as argument \$1"}

alerting_export () {
    # action is $1
    alert_id=${2:?"alert id is required as argument \$2"}
    project_id=${3:?"project id is required as argument \$3"}
    output_file=${4:?"output file name is requred as argument \$4"}

    project_number=$(gcloud projects describe "${project_id}" --format="value(projectNumber)")

    echo "Exporting alerting \"$alert_id\" from project \"$project_id\" to file \"${output_file}\""

    gcloud alpha monitoring policies describe \
        "projects/${project_number}/alertPolicies/${alert_id}" --format=json \
        | jq  'del(.name, .creationRecord, .mutationRecord, .notificationChannels)' \
        | jq  'del(.conditions[].name)' \
        > "${output_file}"

    echo "Export finished"
}

alerting_import () {
    # action is $1
    project_id=${2:?"project id is required as argument \$2"}
    input_file=${3:?"input file is requred as argument \$3"}

    gcloud alpha monitoring policies create \
        --project "${project_id}" \
        --policy-from-file "${input_file}"
}

if [ "$ACTION" = "export" ]; then
    alerting_export "$@"
elif [ "$ACTION" = "import" ]; then
    alerting_import "$@"
else
    echo "unknown action: ${ACTION}"
    exit 1
fi

Note: this script doesn't export and create notification channels.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions