# Importing Dashboards and Alerts into Kloudfuse

## Using Kloudfuse Catalog Service

See [Catalog Service](https://docs.kloudfuse.com/platform/3.2.5/service-catalog/).

|     |     |
| --- | --- |
|  | Deprecation<br>This feature is deprecated as of 3.2.2 Kloudfuse release.<br>See [Using Kloudfuse Customer Scripts](https://docs.kloudfuse.com/platform/3.2.5/importing-dashboards-alerts/#customer-scripts). |

## Using Kloudfuse Customer Scripts

Kloudfuse provides Python scripts to manage alerts and dashboards in Grafana, to enable you to upload, download, and delete alerts and dashboards in specified folders within Grafana.

This document is your guide to efficiently manage Grafana alerts and dashboards using the `alert.py` and `dashboard.py` scripts.

### Prerequisites

- Python 3.x
- Required Python packages: `requests`, `loguru`, `argparse` (use the requirements.txt file to install all the packages `pip3 install -r requirements.txt`)
- Access to a Grafana instance with API authentication

### Common Arguments

These arguments apply to both alert and dashboard scripts:

`-f, --folder-name`

Grafana folder name

`-a, --grafana-address`

Grafana server URL

`-u, --grafana-username`

Grafana username (default: `admin`)

`-p, --grafana-password`

Grafana password (default: `password`)

`-v, --verify-ssl`

Disable SSL verification (default: enabled). Use this flag to skip SSL verification when connecting to Grafana.

|     |     |
| --- | --- |
|  | - Replace `<grafana-instance>` with the actual Grafana server URL.<br>  <br>- Ensure that the API credentials have the necessary permissions to manage alerts and dashboards.<br>  <br>- The `-f` flag is required. It is a placeholder in some multi-directory operations. |

### Manage Dashboards

To migrate (download and upload) existing **dashboards**, use the `dashboard.py` files, hosted for you in our `customer/blob/main/scripts/assets/` directory.

#### Upload Dashboards

Upload dashboards to a specified folder in Grafana.

**Upload a Single Dashboard**

```code
python dashboard.py upload -s /path/to/dashboard.json \
    -f "My Dashboard Folder" \
    -a https://<grafana-instance>/grafana \
    -u admin -p password
```

**Upload All Dashboards from a Directory**

```code
python dashboard.py upload -d /path/to/dashboards/directory \
    -f "My Dashboard Folder" \
    -a https://<grafana-instance>/grafana \
    -u admin -p password
```

**Upload Dashboards from Multiple Directories**

```code
python dashboard.py upload -m /path/to/dashboards_root_directory \
    -a https://<grafana-instance>/grafana \
    -u admin -p password \
    -f "all"
```

#### Download Dashboards

Retrieve dashboards from Grafana, and save them as JSON files.

**Download a Single Dashboard**

```code
python dashboard.py download -s "Dashboard Name" -o /path/to/dashboard.json \
    -f "My Dashboard Folder" \
    -a https://<grafana-instance>/grafana \
    -u admin -p password
```

**Download All Dashboards from a Folder**

```code
python dashboard.py download -d -o /path/to/dashboards/download/ \
    -f "My Dashboard Folder" \
    -a https://<grafana-instance>/grafana \
    -u admin -p password
```

**Download Dashboards from All Folders**

```code
python dashboard.py download -m -o /path/to/dashboards/download/ \
    -a https://<grafana-instance>/grafana \
    -u admin -p password \
    -f "all"
```

### Manage Alerts

To migrate (download and upload) or delete existing **alerts**, use the `alert.py` file, hosted for you in our `customer/blob/main/scripts/assets/` directory.

#### Upload Alerts

Upload alerts to a specific Grafana folder.

**Upload a Single Alert**

```code
python alert.py upload -s /path/to/alert.json \
    -f "My Alert Folder" \
    -a https://<grafana-instance>/grafana \
    -u admin -p password
```

**Upload Multiple Alerts from a Directory**

```code
python alert.py upload -d /path/to/alerts/directory \
    -f "My Alert Folder" \
    -a https://<grafana-instance>/grafana \
    -u admin -p password
```

**Upload Alerts from Multiple Directories**

```code
python alert.py upload -m /path/to/root_directory \
    -a https://<grafana-instance>/grafana \
    -u admin -p password \
    -f "placeholder"
```

#### Download Alerts

Retrieve alerts from Grafana, and save them as JSON files.

**Download a Single Alert**

```code
python alert.py download -s "Alert Name" -o /path/to/alert.json \
    -f "My Alert Folder" \
    -a https://<grafana-instance>/grafana \
    -u admin -p password
```

**Download All Alerts from a Folder**

```code
python alert.py download -d -o /path/to/alerts/download/ \
    -f "My Alert Folder" \
    -a https://<grafana-instance>/grafana \
    -u admin -p password
```

**Download Alerts from All Folders**

```code
python alert.py download -m -o /path/to/alerts/download/ \
    -a https://<grafana-instance>/grafana \
    -u admin -p password \
    -f "placeholder"
```

#### Delete Alerts

Remove alerts from Grafana.

**Delete a Single Alert**

```code
python alert.py delete -s "Alert Name" \
    -f "My Alert Folder" \
    -a https://<grafana-instance>/grafana \
    -u admin -p password
```

**Delete All Alerts in a Folder**

```code
python alert.py delete -d -f "My Alert Folder" \
    -a https://<grafana-instance>/grafana \
    -u admin -p password
```
