# Alert Message Api

## Discord and Slack custom messages with Message API

Software install

### 1 - Clone repository

```
git clone git@github.com:Michel-Leidson/alert-message-api.git
```

### 2 - Enter the project directory

```
cd alert-message-api
```

### 3 - Install dependencies

```
npm install
```

### 4 - Create and configure config.json file in root directory of aplication

```
nano config.json

{
    "slack": {
        "url":"<YOUR SLACK URL WEBHOOK HERE>"
    },
    "discord":{
        "url":"<YOUR DISCORD URL WEBHOOK HERE>"
    },
    "grafana":{
        "url":"YOUR GRAFANA URL HERE"
    },
    "alertmanager": {
        "url":"YOUR ALERTMANAGER URL HERE"
    }
}
```

### 5 - Running the server.js file with PM2

```
pm2 start server.js
```

Configuring external Alertmanager in Grafana

#### 1 - Select Alert Admin menu in Grafana

<figure><img src="/files/VRJEzLzJUzfVPFlu4doW" alt=""><figcaption></figcaption></figure>

#### 2 - Click in "Add Alertmanager"

<figure><img src="/files/7bdWPDNk7CJuHL0PljDG" alt=""><figcaption></figcaption></figure>

#### 3 - Type URL alermanager and click in "Add Alertmanagers" button

<figure><img src="/files/fONYAjvXPiYRqzVxELyY" alt=""><figcaption></figcaption></figure>

Configuring webhook routes in alertmanager config file

#### 1 - Configuring alertmanager config file

```
sudo nano /usr/local/alertmanager/alertmanager.yml

route:
    
  group_by: ['alertname']
  group_wait: 30s
  group_interval: 1m
  repeat_interval: 12h
  receiver: "apialert"

  routes:

    - receiver: "apialert"
      group_wait: 30s
      group_interval: 1m
      repeat_interval: 12h
      continue: true

    - receiver: "apialertslack"
      group_wait: 30s
      group_interval: 1m
      repeat_interval: 12h
      continue: true


receivers:

  - name: "apialert"
    webhook_configs:
    - url: "http://127.0.0.1:5002/discord"

  - name: "apialertslack"
    webhook_configs:
    - url: "http://127.0.0.1:5002/slack"
```

### 2 - Restart alertmanager

```
sudo systemctl restart alertmanager
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.stakepool.dev.br/polygon/binaries/alert-message-api.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
