As variáveis permitem filtrar gráficos individuais ou painéis inteiros sem modificar as instruções de consulta subjacentes. Elas usam a sintaxe ${{variable_name|default_value}} ou ${{variable_name|default_value|prefix}} para ajustar dinamicamente os placeholders nas suas instruções de consulta. É possível filtrar dados em todo um painel ou dentro de um único gráfico.
Filtrar um painel inteiro
Tipos de filtro
Cada gráfico é alimentado por uma instrução de consulta. Os filtros modificam as condições da consulta ou substituem variáveis de placeholder para todos os gráficos em um painel. O Simple Log Service (SLS) oferece suporte a três tipos de filtros:
Filter: Utiliza pares chave-valor de campos de log para filtrar dados. Esse tipo pesquisa nos resultados da consulta por logs que contêm ou não contêm um par
Key:Valueespecífico. Por exemplo, ao visualizar page views (PVs) para diferentes métodos de requisição, adicione um filtro para alternar entre os métodos usando itens de lista dinâmica.Variable Replacement: Primeiro, defina uma variável na instrução de consulta do seu gráfico e, em seguida, adicione um filtro para substituí-la dinamicamente por um valor selecionado. Por exemplo, visualize PVs por intervalos de 10, 60 ou 600 segundos.
Metric Filter: Refina as métricas ingeridas com base em seus rótulos e valores correspondentes. Caso você especifique múltiplas condições de filtro, elas serão combinadas com um operador lógico AND.
Tipo de filtro
Tipo Variable replacement
Filtro de métrica
Filtrar um único gráfico com substituição de variável
Configure a Variable Replacement para um único gráfico. O SLS adiciona um filtro no canto superior esquerdo desse gráfico, permitindo refinar seus dados de forma independente. O exemplo a seguir configura uma tabela para visualizar PVs em diferentes intervalos de tempo.
Etapa 1: Configurar a substituição de variável
-
No lado esquerdo da página de edição do gráfico, configure o intervalo de tempo da consulta, o Logstore e uma instrução de consulta que inclua uma variável.
A seguinte instrução de consulta recupera os PVs para diferentes intervalos de tempo. A sintaxe
${{date|60}}define uma variável chamadadatecom um valor padrão de 60.* | select __time__ - __time__ % ${{date | 60}} as time, COUNT(*) as pv, avg(request_time) as duration, request_method GROUP BY time, request_method order by time limit 1000Após executar a consulta, defina o Logstore como website_log e o intervalo de tempo como 15 Minutes(Relative). O resultado da consulta exibe o PV e o tempo médio de requisição agrupados por tempo e método de requisição em uma tabela.
-
Configure a substituição de variável.
No lado direito da página de edição do gráfico, selecione Table como tipo de gráfico e clique em .
Na caixa de diálogo Variable Replacement, defina Variable Key como date e Display Name como time. Para os valores da variável, defina o Display Name como min e hour, com valores de substituição correspondentes de 60 e 3600.
No canto superior direito da página, clique em OK. Em seguida, clique em Save. Na caixa de diálogo Save Dashboard, clique em Confirm.
Etapa 2: Filtrar o gráfico
Após salvar as configurações, um filtro aparece no canto superior esquerdo do gráfico. Ao selecionar um valor no filtro, o SLS reexecuta a consulta com o novo valor. Por exemplo, se você selecionar hour, o SLS executa a seguinte instrução de consulta:
(*)| select __time__ - __time__ % 3600 as time, COUNT(*) as pv, avg(request_time) as duration, request_method GROUP BY time, request_method order by time limit 1000
Usar variáveis com eventos de interação
Ao configurar Interaction Occurrences para um gráfico, também é possível definir uma variável. Quando a interação é acionada, o sistema atualiza automaticamente a variável com o valor proveniente da interação. Isso vincula dinamicamente os gráficos para análise detalhada (drill-down). Para um exemplo detalhado, consulte Exemplos de configuração.
Na janela de configuração Open Logstore, selecione o Logstore de destino, como website_log. Na caixa de entrada Filter query, clique em Add Variable para referenciar uma variável. Por exemplo, na consulta * | SELECT date_format(__time__ - __time__ % 60, '%H:%i:%s') as "${time}", ${time} é a variável definida na ocorrência de interação.
Uso avançado: Usar variáveis com prefixo
Melhore a filtragem incluindo um prefixo nas suas variáveis, usando a sintaxe ${{variable_name|default_value|prefix}}.
Se nenhum valor for selecionado para a variável, a consulta será executada usando o valor padrão.
Se um valor for selecionado, a consulta combinará o prefixo e o valor selecionado.
Filtrar um painel: Filtragem por método HTTP
Variável
Formato da variável:
${{method_filter|http_method in ('GET','POST')|http_method =}}-
Instrução de consulta:
(*)|select status, count(1) as err_count where ${{method_filter|request_method in ('GET','POST')|request_method =}} and status>=400 group by status-
Se nenhum valor for selecionado: A consulta analisa por padrão a distribuição de erros (código de status 400 ou superior) para requisições GET e POST. A consulta efetiva é:
(*)|select status, count(1) as err_count where request_method in ('GET','POST') and status>=400 group by status -
Se 'DELETE' for selecionado: A consulta passa a analisar erros para o método
DELETE. A consulta efetiva é:(*)| select status, count(1) as err_count where request_method ='DELETE' and status>=400 group by status
-
Procedimento
-
Configure o gráfico. Na página de edição do gráfico, configure o intervalo de tempo, o Logstore e uma instrução de consulta que inclua a variável. Selecione Table como tipo de gráfico. Clique em Apply para visualizar e, em seguida, clique em OK para salvar.
A instrução de consulta de exemplo é
* | select status, count(1) as err_count where ${{method_filter|request_method in ('GET','POST')|request_method =}} and status>=400 group by status, onde${{method_filter|...|...}}é a sintaxe da variável. Defina a fonte de dados como website_log. -
Configure o filtro de variável. No painel Filter, adicione valores à lista suspensa para a variável
method_filter.Defina Type como Variable Replacement. Na seção de itens de lista estática, adicione
'GET','POST','PUT'e'DELETE'. Em seguida, clique em OK. Filtre o painel. Clique no filtro e selecione
'DELETE'. O painel é atualizado e exibe estatísticas baseadas na instrução de consulta(*)| select status, count(1) as err_count where request_method ='DELETE' and status>=400 group by status.
Filtrar um gráfico: Filtragem por limiar de tempo de requisição
Variável
Formato da variável:
${{slow_query|request_time>50|request_time>}}-
Instrução de consulta:
(*)| select request_uri, avg(request_time) as avg_time where ${{slow_query|request_time>50|request_time>}} group by request_uri order by avg_time desc-
Se nenhum valor for selecionado: A consulta busca por padrão APIs com tempo de requisição superior a 50 ms, ordenadas pelo tempo médio. A consulta efetiva é:
(*)| select request_uri, avg(request_time) as avg_time where request_time>50 group by request_uri order by avg_time desc Se 1000 for selecionado: A consulta é ajustada para analisar APIs lentas que levam mais de 1.000 ms. A consulta efetiva é:
(*)| select request_uri, avg(request_time) as avg_time where request_time>1000 group by request_uri order by avg_time desc
-
Procedimento
-
Configure o gráfico. Na página de edição do gráfico, configure o intervalo de tempo, o Logstore e uma instrução de consulta que inclua a variável.
À direita, selecione Table como tipo de gráfico. No painel inferior esquerdo, edite a instrução de consulta para incluir a variável. Na seção Variable Replacement à direita, configure a chave da variável e o nome de exibição. Ao terminar, clique em OK.
-
Configure a substituição de variável. No lado direito da página de edição do gráfico, clique em Variable Replacement. Na caixa de diálogo Variable Replacement, adicione valores para a variável
slow_query.Na lista de valores da variável, adicione os seguintes itens: nome de exibição 50ms (valor de substituição
50, definido como padrão), 100ms (valor de substituição100), 200ms (valor de substituição200), 300ms (valor de substituição300), 400ms (valor de substituição400), 500ms (valor de substituição500) e 1000ms (valor de substituição1000). Em seguida, clique em OK. Filtre o gráfico. Clique no filtro no canto superior esquerdo do gráfico. Ao selecionar
1000ms, o gráfico é atualizado e exibe estatísticas baseadas na instrução de consulta(*)| select request_uri, avg(request_time) as avg_time where request_time>1000 group by request_uri order by avg_time desc.


