Uso de parâmetros de consulta em suas consultas DataPrime
A variável IBM® Cloud Logs DataPrime $p permite incorporar variáveis em suas consultas DataPrime para painéis personalizados e parâmetros relacionados ao tempo.
Esse recurso externaliza as variáveis como se elas estivessem escritas diretamente em uma consulta. Isso aumenta a flexibilidade para filtragem, cálculos e visualizações, permitindo entradas definidas pelo usuário e manipulação de dados contextuais.
Como funciona o site $p ?
-
$prepresenta parâmetros de consulta que podem ser usados em widgets, consultas e filtros externos, como um seletor de horário do painel. -
$ppermite a filtragem dinâmica e outras ações sem a necessidade de modificações manuais na consulta. -
Os usuários podem passar e manipular esses parâmetros no painel.
Definição de parâmetros de consulta
Você pode usar a variável $p ao configurar painéis personalizados e ao criar consultas na exibição Logs.
Painéis customizados
Depois que uma variável é criada em painéis personalizados, os valores da variável escolhidos pelo usuário são refletidos como parâmetros de consulta em uma consulta DataPrime usando $p.<variable_name>.
As variáveis em painéis personalizados são tratadas como valores de cadeia de caracteres ou de várias cadeias de caracteres, o que significa que as variáveis numéricas não podem ser definidas diretamente. As variáveis numéricas podem ser usadas
em consultas, por exemplo, filter duration > $p.minDuration.
Logs
Na exibição Logs, você pode fazer cálculos de tempo na consulta DataPrime usando $p.timeRange.*, com $p permitindo que você obtenha dados da janela de tempo determinada pelo seletor de tempo da interface
do usuário.
Parâmetros relacionados ao tempo
Os parâmetros relacionados ao tempo são criados automaticamente. Você pode obter dados de uma janela de tempo determinada pelo seletor de tempo da interface do usuário usando timeRange em painéis personalizados e na exibição Logs.
Os parâmetros relacionados ao tempo incluem:
$p.timeRange.startTime- A hora de início do seletor de hora da interface do usuário (por exemplo, 2024-03-06T08:00:00Z )
$p.timeRange.endTime- A hora final do seletor de hora da interface do usuário (por exemplo, 2024-03-06T12:00:00Z )
Exemplos de uso de parâmetros de consulta
As seções a seguir fornecem exemplos de uso do site $p.
Trabalhar com uma variável de valor único
O exemplo de consulta a seguir incorpora uma variável de valor único, conforme indicado pelo uso de ==.
source logs
| filter cluster_name == $p.cluster
Isso filtra os registros em que cluster_name corresponde à variável de valor único definida pelo usuário $p.cluster.
Os usuários podem modificar dinamicamente esse valor usando a interface do usuário de painéis personalizados.
Trabalho com variáveis de seleção múltipla
As variáveis de seleção múltipla permitem que os usuários passem vários valores potenciais em um único parâmetro.
Manipulação da seleção de "qualquer valor"
Quando um usuário seleciona "qualquer valor", o sistema trata isso como null, o que significa que o filtro é ignorado.
source logs
| filter $p.clusters == null || $p.clusters.arrayContains($d.clusterId)
Se o usuário selecionar "qualquer valor" para $p.clusters, ele será tratado como nulo, removendo o filtro. Caso contrário, o filtro garante que $d.clusterId exista dentro dos valores selecionados de $p.clusters.
Lista estática de valores
Crie uma variável minDurationSeconds com uma lista estática de valores (por exemplo, 1, 5, 10, 30, 60). Esses valores são tratados como cadeias de caracteres, mas podem ser usados como um número na consulta da seguinte forma:
source logs
| filter duration ≥ $p.minDuration:number
Definição de um campo dinâmico groupby usando uma variável
Usando variáveis dinâmicas, o site groupby permite que as consultas se adaptem com base em critérios definidos pelo usuário, possibilitando uma análise e agregação de dados mais flexível. A consulta a seguir agrupa os dados com
base no campo especificado pela variável $p.myGroupByVar e, em seguida, agrega os resultados contando o número de ocorrências em cada grupo.
groupby $d[$p.myGroupByVar] calculate count()
Isso difere de groupby $p.my_group_by_variable calculate count(). Como a variável é uma string, a execução dessa consulta seria efetivamente idêntica a groupby 'my_value' calculate count(), o que significa que ela fará
uma groupby em uma string estática, agregando todos os resultados em um único grupo chamado my_value.
Filtragem de logs em um intervalo de tempo específico
Isso filtra os registros dentro do intervalo de tempo especificado, garantindo que o campo de duração seja maior ou igual a $p.minDuration.
source logs between $p.timeRange.startTime and $p.timeRange.endTime
| filter duration >= $p.minDuration
Arredondamento para a hora mais próxima
Este exemplo ajusta o intervalo de tempo para a hora completa mais próxima antes de filtrar os registros com base na duração. Qualquer cálculo de tempo pode ser feito usando o site $p.timeRange.*.
source logs between $p.timeRange.startTime/1h and $p.timeRange.endTime/1h+1h
| filter duration >= $p.minDuration
Juntando os dados da semana passada para o mesmo período de tempo
Usando o comando join, a consulta a seguir une e compara o número de logs por subsistema de hoje com os de exatamente uma semana antes.
source logs
| groupby $l.subsystemname calculate count() as cnt
| join (source logs timeshifted -7d
| groupby $l.subsystemname calculate count() as cnt) using subsystemname into a_week_before
Esse exemplo detalhado oferece uma maneira de obter mais controle sobre o intervalo de tempo, se necessário.
source logs
| groupby $l.subsystemname calculate count() as cnt
| join (source logs between $p.timeRange.startTime-7d and $p.timeRange.endTime-7d
| groupby $l.subsystemname calculate count() as cnt) using subsystemname into a_week_before