As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
nota
Essa fonte de dados é somente para o Grafana Enterprise. Para obter mais informações, consulte Gerenciar o acesso aos plug-ins do Enterprise.
Além disso, em espaços de trabalho compatíveis com a versão 9 ou mais recente, essa fonte de dados pode requerer a instalação do plug-in apropriado. Para obter mais informações, consulte Ampliar o espaço de trabalho com plug-ins.
Adicionar a fonte de dados
Selecione as fontes de dados no painel esquerdo do Grafana.
Selecione Adicionar fonte de dados:
Insira oracle
para encontrar a fonte de dados.
Insira os detalhes do servidor Oracle.
Insira um nome de host (ou endereço IP) junto com o número da porta e o nome de usuário e a senha para se conectar.
Com a opção de alternância tnsnames, qualquer entrada válida encontrada no arquivo de configuração tnsnames.ora pode ser usada, junto com a autenticação básica.
Semelhante ao exemplo anterior, mas usando Kerberos para autenticação. Consulte o guia de configuração específico do kerberos para obter detalhes sobre como configurar o sistema operacional ou o contêiner do Docker para usar o kerberos.
Opcionalmente, altere o fuso horário usado para se conectar ao servidor Oracle e para ser usado por macros com reconhecimento de fuso horário. A configuração padrão é UTC.
Salve e teste a fonte de dados. Você deve ver uma mensagem em verde com “Conexão de banco de dados OK”.
Uso
Macros
Para simplificar a sintaxe e permitir partes dinâmicas, como filtros de intervalo de datas, a consulta pode conter macros. O nome da coluna deve estar entre aspas duplas ("
).
Exemplo de macro | Descrição |
---|---|
*$__time(dateColumn)* | Será substituído por uma expressão para renomear a coluna para `time`. Por exemplo, `dateColumn as time` *$__timeEpoch(dateColumn)* | Será substituído por uma expressão para renomear a coluna para time e converter o valor para carimbo de data e hora Unix (em milissegundos). |
*$__timeFilter(dateColumn)* | Será substituído por um filtro de intervalo de tempo usando o nome da coluna especificada. Por exemplo, `dateColumn BETWEEN TO_DATE('19700101','yyyymmdd') + (1/24/60/60/1000) * 1500376552001 AND TO_DATE('19700101','yyyymmdd') + (1/24/60/60/1000) * 1500376552002` *$__timeFrom()* | Será substituído pelo início da seleção de hora atualmente ativa convertida no tipo de dados DATE . Por exemplo, TO_DATE('19700101','yyyymmdd') +
(1/24/60/60/1000) * 1500376552001 . |
*$__timeTo()* | Será substituído pelo final da seleção de hora atualmente ativa convertida no tipo de dados `DATE`. *$__timeGroup(dateColumn,"5m")* | Será substituído por uma expressão utilizável na cláusula GROUP BY. |
*$__timeGroup(dateColumn,"5m"[, fillvalue])* | Será substituído por uma expressão utilizável na cláusula GROUP BY. Fornecer um fillValue de valor NULL ou flutuante preencherá automaticamente as séries vazias no intervalo de tempo com esse valor. Por exemplo, timeGroupcreatedAt, ′1m′, 0.*__timeGroup(dateColumn,"5m", 0)*. |
*timeGroup(dateColumn, ‘5m’, NULL) * |SameasabovebutNULLwillbeusedasvalueformissingpoints.*__timeGroup(dateColumn,"5m", previous)* | O mesmo que acima, mas o valor anterior dessa série será usado como valor de preenchimento; se nenhum valor tiver sido visto ainda, NULL será usado. |
*$__ unixEpochFilter (DateColumn) * | Será substituído por um filtro de intervalo de tempo usando o nome da coluna especificada com horários representados como timestamp unix (em milissegundos). Por exemplo, `DateColumn >= 1500376552001 AND DateColumn <= 1500376552002` *$__ () * unixEpochFrom | Será substituído pelo início da seleção de hora atualmente ativa como carimbo de data e hora do Unix. Por exemplo, 1500376552001 . |
*$__unixEpochTo()* | Será substituído pelo final da seleção de hora atualmente ativa como carimbo de data e hora do Unix. Por exemplo, 1500376552002 . |
O plug-in também é compatível com uma notação usando chaves {}
. Use essa notação quando forem necessárias consultas dentro dos parâmetros.
nota
Use um tipo de notação por consulta. Se a consulta precisar de chaves, todos os macros na consulta deverão usar chaves.
$__timeGroup{"dateColumn",'5m'}
$__timeGroup{SYS_DATE_UTC("SDATE"),'5m'}
$__timeGroup{FROM_TZ(CAST("SDATE" as timestamp), 'UTC'), '1h'}
O editor de consultas tem um link de SQL gerado que aparece após a execução de uma consulta, no modo de edição do painel. Quando você escolhe o link, ele se expande e mostra a string SQL bruta interpolada que foi executada.
Consultas de tabelas
Se a opção de consulta Formatar como estiver definida como Tabela, você então poderá basicamente fazer qualquer tipo de consulta SQL. O painel de tabela mostrará automaticamente os resultados das colunas e linhas retornadas pela consulta. Você pode controlar o nome das colunas do painel Tabela usando a sintaxe as
regular de seleção de coluna SQL.
Consultas de séries temporais
Se você definir Formatar como como série temporal, para uso no painel do grafo, por exemplo, a consulta deverá retornar uma coluna chamada time
que retorne uma data e hora SQL ou qualquer tipo de dados numéricos representando o Unix epoch em segundos. O Grafana interpreta as colunas DATE e TIMESTAMP sem fuso horário explícito como UTC. Qualquer coluna, exceto time
e metric
, é tratada como uma coluna de valor. Você pode retornar uma coluna chamada metric
que é usada como nome da métrica para a coluna de valor.
O código de exemplo a seguir mostra a coluna de metric
:
SELECT
$__timeGroup("time_date_time", '5m') AS time,
MIN("value_double"),
'MIN' as metric
FROM test_data
WHERE $__timeFilter("time_date_time")
GROUP BY $__timeGroup("time_date_time", '5m')
ORDER BY time
Mais consultas — usando oracle-fake-data-gen
SELECT
$__timeGroup("createdAt", '5m') AS time,
MIN("value"),
'MIN' as metric
FROM "grafana_metric"
WHERE $__timeFilter("createdAt")
GROUP BY $__timeGroup("createdAt", '5m')
ORDER BY time
O código de exemplo a seguir mostra um série temporal de dados fictícios.
SELECT
"createdAt",
"value"
FROM "grafana_metric"
WHERE $__timeFilter("createdAt")
ORDER BY "createdAt" ASC
SELECT
"createdAt" as time,
"value" as value
FROM "grafana_metric"
WHERE $__timeFilter("createdAt")
ORDER BY time ASC
O exemplo a seguir mostra um resultado de tabela útil.
select tc.table_name Table_name
,tc.column_id Column_id
,lower(tc.column_name) Column_name
,lower(tc.data_type) Data_type
,nvl(tc.data_precision,tc.data_length) Length
,lower(tc.data_scale) Data_scale
,tc.nullable nullable
FROM all_tab_columns tc
,all_tables t
WHERE tc.table_name = t.table_name
Modelos
Em vez da codificação rígida dos nomes de servidores, das aplicações e dos sensores em suas consultas de métricas, você pode usar variáveis no lugar deles. As variáveis são mostradas como caixas de seleção suspensas na parte superior do dashboard. Essas caixas suspensas facilitam a alteração dos dados exibidos no dashboard.
Variável de consulta
Se você adicionar uma variável de modelo do tipo Query
, poderá escrever uma consulta Oracle que possa retornar itens como nomes de medições, nomes de chave ou valores de chave que são mostrados como uma caixa de seleção suspensa.
Por exemplo, você pode ter uma variável que contém todos os valores da coluna hostname
em uma tabela caso especifique uma consulta como esta na configuração de modelo de Consulta de variável.
SELECT "hostname" FROM host
Uma consulta pode retornar várias colunas, e o Grafana criará automaticamente uma lista delas. Por exemplo, a consulta a seguir retornará uma lista com valores de hostname
e hostname2
.
SELECT "host.hostname", "other_host.hostname2" FROM host JOIN other_host ON host.city = other_host.city
Para usar macros dependentes do intervalo de tempo, como $__timeFilter("time_column")
em sua consulta, o modo de atualização da variável do modelo precisa ser definido como Na alteração do intervalo de tempo.
SELECT "event_name" FROM event_log WHERE $__timeFilter("time_column")
Outra opção é uma consulta que pode criar uma variável de chave/valor. A consulta deve retornar duas colunas denominadas __text
e __value
. O valor da coluna __text
deve ser exclusivo (se não for exclusivo, o primeiro valor será usado). As opções na lista suspensa terão um texto e um valor que permitem que você tenha um nome amigável como texto e um ID como valor. O código de exemplo a seguir mostra uma consulta com hostname
como o texto e id
como o valor.
SELECT "hostname" AS __text, "id" AS __value FROM host
Você também pode criar variáveis aninhadas. Por exemplo, se você tivesse outra variável denominada region
. Então você pode fazer com que a variável hosts mostre apenas os hosts da região selecionada atualmente com uma consulta como esta (se region
for uma variável de vários valores, use o operador IN
de comparação em vez de =
para comparar com vários valores).
SELECT "hostname" FROM host WHERE region IN('$region')
Usar variáveis em consultas
Os valores das variáveis do modelo só ficam entre aspas quando a variável do modelo é de multi-value
.
Se a variável for uma variável de vários valores, então use o operador de comparação IN
em vez de =
para comparar com vários valores.
Há duas sintaxes:
$<varname>
Exemplo com uma variável de modelo denominada hostname
:
SELECT
"atimestamp" as time,
"aint" as value
FROM table
WHERE $__timeFilter("atimestamp") AND "hostname" IN('$hostname')
ORDER BY "atimestamp" ASC
[[varname]]
Exemplo com uma variável de modelo denominada hostname
:
SELECT
"atimestamp" as time,
"aint" as value
FROM table
WHERE $__timeFilter("atimestamp") AND "hostname" IN('[[hostname]]')
ORDER BY atimestamp ASC