From 4a68bc671d0b630ac43b07cf263bf3d162bd4fc4 Mon Sep 17 00:00:00 2001
From: Muriki <mgy20@inf.ufpr.br>
Date: Fri, 28 Feb 2025 15:31:41 -0300
Subject: [PATCH] Adicionado Grafana.md

---
 docs/source/pages/Monitoramento/Grafana.md    | 116 ++++++++++++++++++
 docs/source/pages/Monitoramento/Prometheus.md |  78 ------------
 2 files changed, 116 insertions(+), 78 deletions(-)
 create mode 100644 docs/source/pages/Monitoramento/Grafana.md

diff --git a/docs/source/pages/Monitoramento/Grafana.md b/docs/source/pages/Monitoramento/Grafana.md
new file mode 100644
index 0000000..8d3f06a
--- /dev/null
+++ b/docs/source/pages/Monitoramento/Grafana.md
@@ -0,0 +1,116 @@
+# Grafana
+
+## Objetivo
+Documentar funcionalidades do Grafana
+
+
+## Links
+1. [Instalação](https://grafana.com/docs/grafana/latest/setup-grafana/installation/)
+
+
+## Dependências
+1. Grafana, 11.5.2, Dashboards
+
+
+## Instalação
+Instale de acordo com sua distribuição na [documentação](https://grafana.com/docs/grafana/latest/setup-grafana/installation/)
+
+Exemplo com Debian
+```bash
+# Dependencies
+sudo apt-get install -y apt-transport-https software-properties-common wget
+
+# GPG keys
+sudo mkdir -p /etc/apt/keyrings/
+wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/grafana.gpg > /dev/null
+
+# APT sources
+echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
+sudo apt-get update
+
+# Installs the latest OSS release:
+sudo apt-get install grafana
+```
+
+
+## Dashboards
+Para criar dashboards e visualizar dados:
+
+- Em `Data source` adicione a fonte dos dados
+- Em `Dashboards` adicione dentro de um folder `new -> new dashboard` para criar um novo dashboard ou `new -> import` para importar um template pronto.
+- Para importar, adicione a ID da biblioteca de templates do grafana (ou o JSON correspondente), os sources necessários e clique em load. Finalmente salve o dashboard.
+
+
+
+## Alertas
+É possível configurar o grafana para enviar alertas a um canal de comunicação como email, telegram ou discord.
+
+- Alto uso de CPU
+- Alto uso de memória
+- Alto tempo de consulta
+- Alto uso de arquivos abertos
+- Número de conexões
+
+#### Contact points
+Primeiro é necessario adicionar o discord como um dos pontos de notificação.
+
+Acessando a aba `Alerting->Contact points` clique em `Add contact point`.
+
+De um nome, selecione Discord como integração, adicione a URL do Webhook do canal de destino do Discord e clique em `Teste`.
+
+Se uma notificação de teste for enviada ao Discord, clique em salvar.
+
+#### Notification policies
+Politicas de notificação determinam como os alertas interagem com contact points.
+
+#### Alert rules
+Para criar alertas acesse `Alerting->Alert Rules` e clique em `create alert rules`.
+
+Coloque um nome no alerta, selecione o Data source (prometheus para este caso).
+
+Perceba que a confuguração é baseada em blocos de entrada e saída, inicialmente há 3 blocos de nome `A`, `B` e `C` das quais é possível renomear.
+
+Para o bloco A selecione a métrica a ser testada como `pg_up` para determinar se um banco postgres está rodando e selecione os filter labels de acordo.
+
+Para o bloco B selecione uma função com base na métrica de saída do bloco A. Um exemplo é `Last` que representa o último valor lido.
+
+Para o bloco C selecione o gatilho o alerta, ou seja, se o valor de saída de B for maior ou menor que alguma condição.
+
+Configure o folder e o intervalo de tempo dos testes. Adicione também em `Description` e `Summary` informações adicionais que vão ser enviadas como parte da notificação do alerta e clique em salvar.
+
+#### Templates
+
+Para alterar o template padrão de notificação do grafana, acesse `Contact points` e clique em `Add template`. Adicione um nome e preencha o campo `Content` com o seguinte template:
+
+```go
+{{ define "alert_severity_prefix_emoji" -}}
+	{{- if ne .Status "firing" -}}
+		:white_check_mark:
+	{{- else if eq .CommonLabels.severity "critical" -}}
+		:red_circle:
+	{{- else if eq .CommonLabels.severity "warning" -}}
+		:warning:
+	{{- end -}}
+{{- end -}}
+
+
+{{ define "slack.title" -}}
+	{{ template "alert_severity_prefix_emoji" . }} 
+	[{{- .Status | toUpper -}}{{- if eq .Status "firing" }} x {{ .Alerts.Firing | len -}}{{- end }}  | {{ .CommonLabels.env | toUpper -}} ] ||  {{ .CommonLabels.alertname -}}
+{{- end -}}
+
+{{- define "slack.text" -}}
+{{- range .Alerts -}}
+{{ if gt (len .Annotations) 0 }}
+*Summary*: {{ .Annotations.summary}}
+*Description*: {{ .Annotations.description }}
+Labels: 
+{{ range .Labels.SortedPairs }}{{ if or (eq .Name "env") (eq .Name "instance") }}• {{ .Name }}: `{{ .Value }}`
+{{ end }}{{ end }}
+{{ end }}
+{{ end }}
+{{ end }}
+```
+
+Por fim, os templates são configurados aos contact points, portanto edite o contact point do discord e no campo `Optional Discord settings` adicione em Title `{{ template "slack.title" . }}` e para Message content adicione `{{ template "slack.text" . }}`
+
diff --git a/docs/source/pages/Monitoramento/Prometheus.md b/docs/source/pages/Monitoramento/Prometheus.md
index c8702ff..b1fb4dc 100644
--- a/docs/source/pages/Monitoramento/Prometheus.md
+++ b/docs/source/pages/Monitoramento/Prometheus.md
@@ -222,81 +222,3 @@ scrape_configs:
 
 Finalmente reinicie o serviço do prometheus.
 
-## Alertas
-É possível configurar o grafana para enviar alertas a um canal de comunicação como email, telegram ou discord.
-
-- Alto uso de CPU
-- Alto uso de memória
-- Alto tempo de consulta
-- Alto uso de arquivos abertos
-- Número de conexões
-
-#### Contact points
-Primeiro é necessario adicionar o discord como um dos pontos de notificação.
-
-Acessando a aba `Alerting->Contact points` clique em `Add contact point`.
-
-De um nome, selecione Discord como integração, adicione a URL do Webhook do canal de destino do Discord e clique em `Teste`.
-
-Se uma notificação de teste for enviada ao Discord, clique em salvar.
-
-#### Notification policies
-Politicas de notificação determinam como os alertas interagem com contact points.
-
-#### Alert rules
-Para criar alertas acesse `Alerting->Alert Rules` e clique em `create alert rules`.
-
-Coloque um nome no alerta, selecione o Data source (prometheus para este caso).
-
-Perceba que a confuguração é baseada em blocos de entrada e saída, inicialmente há 3 blocos de nome `A`, `B` e `C` das quais é possível renomear.
-
-Para o bloco A selecione a métrica a ser testada como `pg_up` para determinar se um banco postgres está rodando e selecione os filter labels de acordo.
-
-Para o bloco B selecione uma função com base na métrica de saída do bloco A. Um exemplo é `Last` que representa o último valor lido.
-
-Para o bloco C selecione o gatilho o alerta, ou seja, se o valor de saída de B for maior ou menor que alguma condição.
-
-Configure o folder e o intervalo de tempo dos testes. Adicione também em `Description` e `Summary` informações adicionais que vão ser enviadas como parte da notificação do alerta e clique em salvar.
-
-#### Templates
-
-Para alterar o template padrão de notificação do grafana, acesse `Contact points` e clique em `Add template`. Adicione um nome e preencha o campo `Content` com o seguinte template:
-
-```go
-{{ define "alert_severity_prefix_emoji" -}}
-	{{- if ne .Status "firing" -}}
-		:white_check_mark:
-	{{- else if eq .CommonLabels.severity "critical" -}}
-		:red_circle:
-	{{- else if eq .CommonLabels.severity "warning" -}}
-		:warning:
-	{{- end -}}
-{{- end -}}
-
-
-{{ define "slack.title" -}}
-	{{ template "alert_severity_prefix_emoji" . }} 
-	[{{- .Status | toUpper -}}{{- if eq .Status "firing" }} x {{ .Alerts.Firing | len -}}{{- end }}  | {{ .CommonLabels.env | toUpper -}} ] ||  {{ .CommonLabels.alertname -}}
-{{- end -}}
-
-{{- define "slack.text" -}}
-{{- range .Alerts -}}
-{{ if gt (len .Annotations) 0 }}
-*Summary*: {{ .Annotations.summary}}
-*Description*: {{ .Annotations.description }}
-Labels: 
-{{ range .Labels.SortedPairs }}{{ if or (eq .Name "env") (eq .Name "instance") }}• {{ .Name }}: `{{ .Value }}`
-{{ end }}{{ end }}
-{{ end }}
-{{ end }}
-{{ end }}
-```
-
-Por fim, os templates são configurados aos contact points, portanto edite o contact point do discord e no campo `Optional Discord settings` adicione em Title `{{ template "slack.title" . }}` e para Message content adicione `{{ template "slack.text" . }}`
-
-## Dashboards - Grafana
-Para criar dashboards e visualizar dados:
-
-- Em `Data source` adicione a fonte dos dados
-- Em `Dashboards` adicione dentro de um folder `new -> new dashboard` para criar um novo dashboard ou `new -> import` para importar um template pronto.
-- Para importar, adicione a ID da biblioteca de templates do grafana (ou o JSON correspondente), os sources necessários e clique em load. Finalmente salve o dashboard.
-- 
GitLab