Estamos ajustando nossa lógica de validação de ingestão OTLP para ser menos rigorosa ao encontrar valores de atributos longos.
New Relic O OTLP endpoint tem uma variedade de limites de atributos . Atualmente, se você enviar New Relic um intervalo OTLP, métrica ou trace com um atributo de string que exceda o limite de 4.095 caracteres, um NrIntegrationError será gerado e o registro inteiro será descartado.
Esta é a causa mais comum de dados ausentes. Felizmente, há uma solução fácil:
Em vez de descartar registros que violam esse limite, vamos simplesmente truncar o atributo longo para 4.095 caracteres.
Implementaremos essa mudança em 2 de junho de 2025.
Como isso vai me afetar
Acreditamos que isso será um alívio bem-vindo em quase todos os casos. Dados ausentes podem ser difíceis de rastrear e diagnosticar, especialmente em ambientes com um grande número de implantações gerenciadas por muitas equipes individuais. Com essa mudança, o endpoint OTLP do New Relic incorporará melhor nossa filosofia de "armazenar o que você envia" e terá uma armadilha comum a menos.
No entanto, dado o modelo de preços baseado no uso do New Relic, essa mudança significa que os registros que foram descartados anteriormente por exceder os limites agora serão armazenados e contribuirão para o uso de dados da sua conta.
Se você estiver seguindo nossa documentação endpoint OTLP sobre limites de atributos, não há nada a fazer. A conformidade com os limites de atributos significa que nenhum dado está sendo descartado no momento e, portanto, nenhum dado adicional será armazenado.
Para verificar se algum dado em sua conta está sendo descartado devido a exceder o limite de comprimento do atributo, execute a seguinte consulta NRQL:
FROM NrIntegrationError SELECT * WHERE message like 'One or more OTLP data point(s) was dropped because the length of an attribute value was over the limit.
Se esta consulta retornar resultados, você poderá ver uma alteração no uso e, portanto, no faturamento após essa alteração. O valor exato depende da frequência com que os registros violam os limites. Veja a mitigação para obter conselhos sobre como compensar qualquer uso adicional de dados que você possa incorrer.
Mitigação
Parte da proposta de valor central da OpenTelemetry é fornecer ferramentas para assumir o controle do seu pipeline de dados de telemetria. Por isso, há uma variedade de ferramentas disponíveis para ajudar a mitigar uma mudança no uso de dados. Para uma discussão completa, consulte Gerenciar volume de ingestão de dados do OpenTelemetry. Algumas estratégias são particularmente relevantes aqui:
Truncar atributo longo
Aproveitando o processador de transformação de coletor e o editor truncate_all , trunque todos os atributos para algum limite conhecido, conforme demonstrado aqui. É isso que o endpoint OTLP do New Relic fará após essa alteração. No entanto, você pode aproveitar essa técnica para compensar uma mudança no uso definindo um limite menor do que os limites da plataforma New Relic. Por exemplo, você pode definir um limite de 1000 se achar que precisará apenas dos primeiros 1000 caracteres para seu caso de uso de observabilidade.
transform: trace_statements: - truncate_all(span.attributes, 4095) - truncate_all(resource.attributes, 4095) log_statements: - truncate_all(log.attributes, 4095) - truncate_all(resource.attributes, 4095) metric_statements: - truncate_all(datapoint.attributes, 4095) - truncate_all(resource.attributes, 4095)
Solte o atributo ofensivo
Aproveitando o processador de transformação de coletor e o editor delete_key , exclua atributos que não são valiosos:
transform: trace_statements: - delete_key(span.attributes, "attribute.key.to.drop") log_statements: - delete_key(log.attributes, "attribute.key.to.drop") metric_statements: - delete_key(datapoint.attributes, "attribute.key.to.drop")
Você pode optar por remover chaves de atributos que são particularmente longas e, portanto, contribuem muito para o uso, ou atributos que são curtos, mas geralmente não são úteis. Para referência, a lista a seguir resume os 10 atributos mais comuns que violam o limite de comprimento:
exception.stactrace
other
- um resumo para atributo personalizado não definido nas convenções semânticas OpenTelemetrydb.statement
process.command_line
graphql.document
db.operation
db.query.text
http.url
exception.message
http.target
Envie menos registros com amostragem
Compense os dados adicionais ajustando sua taxa de amostragem usando qualquer uma das estratégias discutidas aqui.