Uma maneira de gerenciar a ingestão de dados é estabelecer regras para eliminação de dados. Com a eliminação de dados, você pode:
- Filtre dados sem importância e de baixo valor
- Filtre dados potencialmente confidenciais
Visão geral
Com regras para eliminação de dados, você pode especificar quais tipos de dados não deseja que sejam salvos em sua organização New Relic.
Os dados descartados não contam para a ingestão de dados e, portanto, não são faturáveis. Para saber mais sobre quais dados são considerados faturáveis ou não, consulte Ingestão de dados.
As regras de descarte se aplicam apenas aos dados que chegam a partir do momento em que você cria a regra. Eles não excluem dados que já foram ingeridos.
Saiba mais sobre como eliminar dados neste vídeo (7:09 minutos):
Além de criar regras para descarte de dados, outras maneiras de minimizar dados indesejados incluem:
- Se você quiser descartar dados de métrica de fração de tempo do APM, poderá usar regras de normalização métrica.
- Se você estiver relatando um log, poderá descartar os dados log por meio da interface.
- Se você estiver usando a gravação remota do Prometheus, consulte Eliminar dados de gravação remota do Prometheus.
Requisitos
A capacidade de criar e editar regras de filtro de descarte está vinculada ao recursoNRQL drop rules
.
Os seguintes tipos de dados podem ser destino para eliminação de dados:
Evento relatado pelo APM
Evento relatado pelo browser
Evento relatado em dispositivos móveis
Evento relatado pelo Sintético
Evento personalizado (como aqueles gerados pela API do agente do APM ou pela API do evento)
Log dados (você também pode usar a interface para descartar dados)
Períodos distributed tracing
Evento de monitoramento de infraestrutura padrão e evento de integração de infraestrutura . Algumas advertências:
- Quando você descarta esses dados, os dados brutos são descartados, mas os eventos agregados
SystemSample
,ProcessSample
,NetworkSample
eStorageSample
ainda estão disponíveis (para saber mais sobre isso, consulte retenção de dados). Embora ainda estejam disponíveis, esses dados não contam para a ingestão e não são faturáveis. - Os dados brutos da infraestrutura são usados para alertas, portanto, se você descartar esses dados, não poderá alertá-los. Como os dados agregados ainda estão disponíveis, você ainda poderá ver esses dados em gráficos com intervalos de tempo acima de 59 minutos.
- Quando você descarta esses dados, os dados brutos são descartados, mas os eventos agregados
Métrica dimensional (o tipo de dados
Metric
). Algumas advertências:- Para organização em nosso modelo de precificação original: o faturamento é baseado na assinatura do produto, o que significa que as métricas dimensionais perdidas permanecem faturáveis.
- Para métricas geradas pelo serviço evento-to-métrica: as regras de eliminação não funcionarão, mas essas métricas podem ser interrompidas ou atributo removidas desabilitando ou reconfigurando a regra evento-to-métrica.
Crie uma regra para descartar dados
Cuidado
Tenha cuidado ao decidir descartar dados. Os dados que você descarta não podem ser recuperados. Para obter mais detalhes sobre possíveis problemas, consulte Notas de cuidado.
Para descartar dados, crie uma regra de eliminação no formato NerdGraphque inclua:
Uma string NRQL que especifica quais tipos de dados serão eliminados
Um tipo
action
que especifica como aplicar a string NRQL
Você pode formar e fazer a chamada no NerdGraph API Explorer: one.newrelic.com > Apps > NerdGraph API explorer.
O limite do comprimento da consulta NRQL é de 4.096 caracteres. Se exceder o comprimento, o nerdGraph gerará um erro INVALID_NRQL_TOO_LONG
.
Existem duas maneiras de descartar dados:
Drop entire data types or a data subset (com filtro opcional). Isso usa o tipo
DROP_DATA
action e usa NRQL do formato:SELECT * FROM DATA_TYPE_1, DATA_TYPE_2 (WHERE OPTIONAL_FILTER)Para esse tipo de regra de eliminação, você não pode usar nada além de
*
na cláusulaSELECT
.Drop attributes from data types (com filtro opcional). Isso usa o tipo
DROP_ATTRIBUTES
action e usa NRQL do formato:SELECT dropAttr1, dropAttr2 FROM DATA_TYPE (WHERE OPTIONAL_FILTER)Para este tipo de regra de eliminação, você deve passar uma lista não vazia de nomes brutos de atributos.
Restrições NRQL
Nem todas as cláusulas NRQL fazem sentido para gerar regras de eliminação. Você pode fornecer uma cláusula WHERE
para selecionar dados com atributo específico. Outros recursos como LIMIT
, TIMESERIES
, COMPARE WITH
, FACET
e outras cláusulas não podem ser utilizados.
SINCE
e UNTIL
não são suportados em regras de descarte. Se você tiver regras específicas de tempo (digamos, abandonar tudo até um momento no futuro), use WHERE timestamp < (epoch milliseconds in the future)
. Você também não pode usar SINCE
para eliminar dados históricos: as regras de eliminação de NRQL só se aplicam aos dados relatados após a criação da regra de eliminação. Se você precisar excluir dados que já foram relatados, entre em contato com seu representante da New Relic.
JOIN
e subconsultas também não são suportadas. As regras de eliminação são aplicadas a cada ponto de dados de forma independente e outros dados não podem ser consultados para determinar se uma regra de eliminação deve ser aplicada.
Os dois tipos de ação têm estas restrições:
DROP_DATA
pode usar apenasSELECT *
.DROP_ATTRIBUTES
requer o uso deSELECT
com atributo "bruto" (atributo sem função agregadora aplicada). Isso também significa que você não pode usarSELECT *
. Além disso, existem alguns atributos que são essenciais para seu tipo de dados ecannot be dropped
(como
timestamp
em dados de evento). Se você incluí-los, o registro falhará.
Exemplo de regras de descarte
Aqui estão alguns exemplos de regras de descarte:
Verifique se sua regra de descarte funciona
Depois de criar uma regra de descarte, verifique se ela está funcionando conforme o esperado. A regra deverá entrar em vigor rapidamente após um registro bem-sucedido, então tente executar uma versão TIMESERIES
da consulta que você registrou para ver se os dados desaparecem.
Tipo de regra de eliminação | NRQL |
---|---|
| Drop rule NRQL:
Validation NRQL:
Deve cair para 0. Para verificar se isso não afetou mais nada, inverta a cláusula |
| Drop rule NRQL:
Validation NRQL:
Ambas as linhas devem cair para 0. Para verificar se isso não afetou o evento que continha esses atributos e ainda deveria, inverta a cláusula |
Ver regras
Aqui está um exemplo de chamada do NerdGraph que retorna as regras de descarte definidas em uma conta:
{ actor { account(id: YOUR_ACCOUNT_ID) { nrqlDropRules { list { rules { id nrql accountId action createdBy createdAt description } error { reason description } } } } }}
Excluir regras de descarte
Aqui está um exemplo de chamada do NerdGraph excluindo duas regras de descarte específicas:
mutation { nrqlDropRulesDelete(accountId: YOUR_ACCOUNT_ID, ruleIds: ["48", "98"]) { successes { id nrql accountId action description } failures { error { reason description } submitted { ruleId accountId } } }}
Histórico de regras de eliminação de auditoria
Para ver quem criou e excluiu regras de descarte, consulte o registro de auditoria da sua conta. O endpointda lista também inclui o ID do usuário da pessoa que criou a regra.
Cuidados ao descartar dados
Ao criar regras de descarte, você é responsável por garantir que as regras identifiquem e descartem com precisão os dados que atendem às condições que você estabeleceu. Você também é responsável por monitorar a regra, bem como pelos dados que você divulgar à New Relic.
A New Relic não pode garantir que esta funcionalidade resolverá completamente as preocupações de divulgação de dados que você possa ter. A New Relic não analisa nem monitor a eficácia das regras que você desenvolve.
A criação de regras sobre dados confidenciais pode vazar informações sobre os tipos de dados que você mantém, incluindo o formato dos seus dados ou sistemas (por exemplo, por meio de referência a endereços de e-mail ou números de cartão de crédito específicos). As regras que você cria, incluindo todas as informações nessas regras, podem ser visualizadas e editadas por qualquer usuário com as permissões de controle de acesso baseadas em função relevantes.
Apenas novos dados serão descartados. Os dados existentes não podem ser editados ou excluídos.
Eliminar atributo em rollups de métricas dimensionais
Métrica dimensional métrica agregada em rollups para armazenamento de longo prazo e como forma de otimizar consultas de longo prazo. Os limites de cardinalidade métrica são aplicados a esses dados.
Você pode usar este recurso para decidir qual atributo você não precisa para armazenamento e consulta de longo prazo, mas gostaria de manter para consultas em tempo real.
Por exemplo, adicionar containerId
como um atributo pode ser útil para resolução de problemas em tempo real ou análise recente, mas pode não ser necessário ao consultar tendências maiores durante longos períodos de tempo. Devido ao quão único algo como containerId
pode ser, ele pode levá-lo rapidamente aos limites de cardinalidade métrica que, quando atingido, interrompe a síntese de rollups para o restante daquele dia UTC.
Esse recurso também permite manter a cardinalidade alta atributo nos dados brutos e removê-la dos rollups, o que lhe dá mais controle sobre a rapidez com que você se aproxima dos limites de cardinalidade.
Uso
Drop attributes from dimensional metrics rollups (com filtro opcional). Isso usa o tipo DROP_ATTRIBUTES_FROM_METRIC_AGGREGATES
action e usa NRQL do formato:
SELECT dropAttr1, dropAttr2 FROM Metric (WHERE OPTIONAL_FILTER)
Aqui está um exemplo de solicitação do NerdGraph:
mutation { nrqlDropRulesCreate( accountId: YOUR_ACCOUNT_ID rules: [ { action: DROP_ATTRIBUTES_FROM_METRIC_AGGREGATES nrql: "SELECT containerId FROM Metric WHERE metricName = 'some.metric'" description: "Removes the containerId from long term querys." } ] ) { successes { id } failures { submitted { nrql } error { reason description } } }}
Para verificar se está funcionando, aguarde de 3 a 5 minutos para que a regra seja escolhida e os dados agregados sejam gerados. Então, supondo que o exemplo de NRQL acima seja sua regra de descarte, execute a seguinte consulta:
SELECT count(containerId) FROM Metric WHERE metricName = 'some.metric' TIMESERIES SINCE 2 hours agoSELECT count(containerId) FROM Metric WHERE metricName = 'some.metric' TIMESERIES SINCE 2 hours ago RAW
A primeira consulta recupera rollups de métricas e deve cair para 0, já que containerId
foi eliminado de acordo com a nova regra de eliminação. A segunda consulta recupera matérias-primas métricas usando a palavra-chave RAW
e deve continuar estável, uma vez que os dados brutos não são afetados pela nova regra de eliminação. Para mais informações sobre como ver o impacto que isso terá na sua cardinalidade, confira Entenda e consulte cardinalidade alta métrica.
Restrições
Todas as restrições aplicáveis a DROP_ATTRIBUTES
aplicam-se a DROP_ATTRIBUTES_FROM_METRIC_AGGREGATES
com a restrição adicional de que você só pode destinar o tipo de dados Metric
. Eles também não funcionam em Metric
dados de consulta de segmentação criados por um evento para regra métrica ou em Metric
dados de consulta de segmentação da fração de tempo.
Saber mais
Recomendações para aprender mais:
- Noções básicas e terminologia do NerdGraph
- Noções básicas de NRQL
- Navegue no Fórum de suporte para discussões da comunidade sobre regras de eliminação de NRQL.
- Para um mergulho profundo na gestão da ingestão de dados para uma organização complexa, consulte a governação da ingestão de dados.