Painel de Monitorização
O OmniDB tem uma funcionalidade interessante chamada Monitoring Dashboard (Painel de Monitorização). Sabemos que uma imagem vale mais que mil palavras, por isso repare:

Como pode ver, este é um novo tipo de separador interior que mostra alguns gráficos e grelhas. Este separador interior Monitoring abre-se automaticamente assim que expande o nó raiz da árvore (o nó PostgreSQL). Pode mantê-lo aberto ou fechá-lo a qualquer momento. Para o abrir novamente, clique com o botão direito no nó raiz e clique em Dashboard.

O painel é composto por retângulos de informação práticos chamados Monitoring Units (Unidades de Monitorização). Aqui está um exemplo de Unidade de Monitorização e os seus elementos de interface:

- 1: Título da Unidade de Monitorização;
- 2: Atualiza a Unidade de Monitorização. Dependendo do tipo, clicar neste botão atualiza toda a área de desenho ou faz apenas com que o gráfico obtenha um novo conjunto de valores;
- 3: Coloca a Unidade de Monitorização em pausa;
- 4: Intervalo em segundos para a atualização automática;
- 5: Remove a Unidade de Monitorização do Painel de Monitorização;
- 6: Área de desenho, que será diferente consoante o tipo da Unidade de Monitorização.
Tipos de Unidades de Monitorização
Existem 3 tipos de Unidades de Monitorização:
- Grid (Grelha): O tipo mais simples, apenas executa uma consulta de tempos a tempos e mostra os resultados numa grelha de dados.

- Chart (Gráfico): De cada vez que atualiza, gera um novo gráfico completo. O conjunto de valores antigo é perdido. Isto é mais útil para gráficos circulares, mas outros tipos de gráficos também podem ser usados.

- Timeseries (Séries Temporais): Este é talvez o tipo mais útil de Unidade de Monitorização. É um gráfico que acrescenta um novo conjunto de valores de cada vez que atualiza. Gráficos de linhas ou de barras são os mais adequados para este tipo. Os últimos 100 conjuntos de valores são mantidos pelo componente do lado do cliente para serem vistos pelo utilizador.

Mostrar e ocultar unidades no painel
Se clicar no botão Refresh All (Atualizar Tudo), todas as Unidades de Monitorização serão atualizadas de uma só vez. Também pode remover Unidades de Monitorização indesejadas clicando em Remove (Remover). Vamos avançar e remover todas as unidades do painel, deixando-o vazio:

As 17 unidades que vêm incorporadas no OmniDB (métricas de servidor PostgreSQL e MySQL — taxa de transações, backends, produção de WAL, tamanho de base de dados/tabela, e assim por diante) funcionam como código nativo e não precisam de nada extra instalado na base de dados.

Agora que o nosso painel está vazio, vamos adicionar algumas unidades. Clique no botão Manage Units (Gerir Unidades).

Clique na ação verde para adicionar qualquer uma das unidades incorporadas — por exemplo, Backends e Database Size (Tamanho da Base de Dados). Aguarde alguns segundos e terá um painel como este:

De forma semelhante, pode adicionar e remover qualquer unidade que desejar para personalizar o painel da forma que preferir.
Escrever Unidades de Monitorização personalizadas
O OmniDB permite-lhe escrever as suas próprias unidades, ou personalizar as existentes, escrevendo uma única consulta SQL — a mesma ligação e permissões que o seu editor SQL já tem, apenas a ser executada periodicamente em vez de sob demanda. Não existe uma linguagem de scripting separada nem uma sandbox para aprender.
Nota: uma vez que a consulta é executada novamente sem supervisão a cada intervalo de atualização, apenas são
aceites consultas SELECT (ou WITH ... SELECT) — uma instrução destrutiva
colada por engano é rejeitada de imediato, em vez de ser disparada silenciosamente por
um temporizador.
Para criar uma nova Unidade de Monitorização, clique no botão Manage Units no painel, depois clique no botão New Unit (Nova Unidade). Abrirá um novo tipo de separador interior com um Nome, uma lista pendente de Tipo, um Intervalo de Atualização, e um único editor de Consulta SQL (além de uma lista pendente de Tipo de Gráfico, mostrada apenas para unidades Chart).
O formato da consulta depende do Tipo da unidade:
-
Grid: sem formato específico — quaisquer colunas e linhas que a consulta devolva tornam-se diretamente a grelha. Por exemplo:
SELECT * FROM pg_stat_activity -
Chart: uma linha por categoria — a primeira coluna é o rótulo, as restantes colunas são cada uma delas uma série (o nome da coluna torna-se o nome da série). Escolha o Tipo de Gráfico (barras, circular, anel ou linhas) na lista pendente ao lado do seletor de Tipo. Por exemplo, um gráfico circular do tamanho das bases de dados:
SELECT datname, round(pg_catalog.pg_database_size(datname) / 1048576.0, 2) AS size_mb FROM pg_catalog.pg_database WHERE datname NOT IN ('template0', 'template1') -
Timeseries: exatamente uma linha — cada coluna numérica torna-se numa série de linha à qual são continuamente acrescentados valores, atualizada no intervalo configurado. Por exemplo, para acompanhar o tamanho da base de dados ao longo do tempo:
SELECT round(sum(pg_catalog.pg_database_size(datname)) / 1048576.0, 2) AS total_size_mb FROM pg_catalog.pg_database WHERE NOT datistemplate
Escreva (ou cole) a consulta no editor de Consulta SQL, depois clique no botão Test (Testar) para a ver renderizada na área de pré-visualização — pode testar quantas vezes quiser. Quando estiver satisfeito com o resultado, dê um nome à unidade, defina um intervalo de atualização, e clique em Save (Guardar). Feche o separador de edição e a nova unidade aparece na lista de unidades, pronta para ser adicionada ao painel (ação verde), tal como uma unidade incorporada.