• /
  • EnglishEspañolFrançais日本語한국어Português
  • Inicia sesiónComenzar ahora

Te ofrecemos esta traducción automática para facilitar la lectura.

En caso de que haya discrepancias entre la versión en inglés y la versión traducida, se entiende que prevalece la versión en inglés. Visita esta página para obtener más información.

Crea una propuesta

Diferencias en el esquema de datos del gateway

Los procesadores de puerta de enlace operan sobre los datos de telemetría antes de que lleguen a New Relic, lo que significa que algunos atributos disponibles en NRDB aún no están disponibles en la puerta de enlace. Comprender estas diferencias es fundamental al escribir expresiones OTTL para los procesadores de filtrado, transformación y muestreo.

Por qué difieren los esquemas

Flujo de datos y enriquecimiento

Cuando los datos de telemetría fluyen a través de la plataforma de New Relic:

  1. Procesamiento de la puerta de enlace - Su puerta de enlace recibe telemetría sin procesar de agentes y otras fuentes
  2. Enriquecimiento - New Relic agrega atributos (como entity.guid, appName) y renombra algunos atributos existentes
  3. Procesamiento de reglas de la nube - Las reglas de la nube basadas en NRQL operan con datos enriquecidos
  4. Almacenamiento - Los datos se almacenan en NRDB con todos los enriquecimientos aplicados

Impacto en los procesadores de la puerta de enlace

Los procesadores de Gateway ven datos de pre-enriquecimiento, lo que significa:

  • Algunos atributos aún no existen (como entity.guid, appName, entityGuid)
  • Los nombres de los atributos pueden diferir de lo que ve en NRDB
  • La lógica de filtrado y transformación debe tener en cuenta este conjunto reducido de atributos

Las reglas de nube ven datos posteriores al enriquecimiento, lo que significa:

  • Todos los atributos enriquecidos están disponibles
  • Las consultas NRQL pueden hacer referencia a atributos que no existen en el gateway

Fuentes de datos

El gateway recibe telemetría de:

  • Agentes de New Relic APM (múltiples lenguajes soportados)
  • Agente de New Relic Infrastructure
  • Colectores de OpenTelemetry
  • APIs de New Relic (API de eventos, API de logs, API de trazas, API de métricas)
  • Otras fuentes compatibles con OTLP

Importante

Consulte la documentación de configuración del agente para verificar qué agentes y versiones son compatibles con la implementación del gateway.

Todos los datos llegan como JSON complejos y multianidados con numerosos atributos.

Escribir expresiones OTTL para procesadores de gateway

Disponibilidad de atributos

Al escribir condiciones de filtro o declaraciones de transformación OTTL:

Atributos disponibles:

  • Atributos de telemetría principales enviados por agentes/recopiladores
  • Atributos que su instrumentación agrega directamente
  • Atributos estándar de OTLP (como span_id, trace_id, severity.number)

Atributos no disponibles (agregados durante el enriquecimiento):

  • entity.guid, entityGuid
  • appId, appName
  • host (en la mayoría de los casos)
  • realAgentId
  • Varios atributos de metadatos específicos de NR

Consulte la tabla de referencia de atributos a continuación para obtener detalles completos.

Mejores practicas

Pruebe con datos reales: Utilice los datos de monitoreo de su gateway para verificar qué atributos existen en su telemetría antes de escribir filtros complejos.

Utilice los atributos disponibles:

# ✓ Works - span_id exists in raw telemetry
filter/Spans:
config:
spans:
- 'span_id.string == "abc123"'
# ✗ May not work - entity.guid added during enrichment
filter/Spans:
config:
spans:
- 'attributes["entity.guid"] == "xyz789"'

Considera las reglas en la nube para atributos enriquecidos: Si tu lógica de filtrado requiere atributos enriquecidos (como appName o entity.guid), utiliza reglas en la nube en lugar de procesadores de gateway.

Consulte la tabla de referencia: Antes de usar un atributo en un filtro o transformación, verifique que no figure como "no disponible en el gateway" en la tabla a continuación.

Referencia de atributos por tipo de dato

La siguiente tabla muestra qué atributos no están disponibles a nivel de gateway para cada tipo de datos de telemetría. Si necesita filtrar o transformar basándose en estos atributos, considere usar reglas de nube en su lugar.

Tipo de datos

atributo no disponible en la puerta de enlace

Ejemplo de expresión de filtro (OTTL)

Transacción (APM)

appId

,

appName

,

containerId

,

entity.guid

,

entityGuid

,

host

,

realAgentId

,

transactionSubType

,

transactionType

attributes["guid"] == "c2906c2e8b9f11ff"

Evento personalizado

appId

,

appName

,

containerId

,

entityGuid

,

host

,

realAgentId

attributes["myFloat"] == 0.603

Rastreo de errores

aggregateFacet

,

appId

,

appName

,

applicationIds

,

count

,

entity.guid

,

entityGuid

,

error.class

,

message

,

path

,

exceptionClass

,

fingerprint

,

id

,

message

,

realAgentId

,

storageId

,

timestamp

,

transactionName

,

transactionUiName

attributes["traceId"] == "b366efe772fa6d1c8e0852558026c40e"

Error de transacción

aggregateFacet

,

appId

,

appName

,

containerId

,

entity.guid

,

entityGuid

,

host

,

realAgentId

,

transactionUiName

attributes["error.message"] == "my expected error message"

Log

entity.guids

,

messageId

,

newrelic.logPattern

,

newrelic.logs.batchIndex

,

newrelic.source

span_id == "8b583de97341d094"

Métrica (intervalo de tiempo)

appId

,

appName

,

entity.guid

,

entityGuid

,

language

,

metricName

,

metricTimesliceName

,

newrelic.timeslice.value

,

scope

,

timestamp

Utilice métricas dimensionales o reglas de nube

Span (rastreo distribuido)

appId

,

appName

,

containerId

,

duration.ms

,

entity.guid

,

entity.name

,

entityGuid

,

host

,

id

,

process.id

,

realAgentId

,

trace.id

name == "WebTransaction/Go/GET /log"

Seguimiento de SQL

applicationIds

,

callCount

,

databaseMetricName

,

entity.guid

,

id

,

maxCallTime

,

minCallTime

,

path

,

realAgentId

,

sql

,

sqlId

,

storageId

,

timestamp

,

totalCallTime

,

uri

attributes["uri"] == "Custom/Simple/sqlTransaction"

Rastreo de transacciones

storageId

,

uri

,

path

,

agentRunId

,

applicationIds

,

duration

,

entity.guid

,

guid

,

id

,

protocolVersion

,

realAgentId

,

timestamp

Utilice los atributos disponibles en los datos de traza sin procesar

Métrica (medidor)

newrelic.source

(valor:

metricAPI

),

metricName

:

{type, count, latest, max, min, sum}

name == "redis_aof_rewrite_in_progress" and value < 100

Métrica (resumen)

newrelic.source

(valor:

metricAPI

),

metricName

:

{type, count, max, min, sum}

attributes["scrapedTargetKind"] == "user_provided"

Métrica (conteo)

newrelic.source

(valor:

metricAPI

),

metricName

:

{type, count}

attributes["instrumentation.name"] == "nri-prometheus"

SystemSample (Infraestructura)

Ninguno

attributes["entityKey"] == "vagrant"

StorageSample (Infraestructura)

entityAndMountPoint

attributes["inodesUsed"] == 161604

NetworkSample (Infraestructura)

entityAndInterface

attributes["entityKey"] == "vagrant"

ProcessSample (Infraestructura)

entityAndPid

attributes["entityKey"] == "vagrant"

ContainerSample (Infraestructura)

entityGuid

,

entityType

,

entityId

attributes["agentName"] == "ContainerSampleAgent"

Escenarios comunes

Filtrado por entidad

Problema: Desea filtrar spans por entidad, pero entity.guid no existe en el gateway.

Solución: Use el nombre del servicio u otros atributos de identificación que existan en la telemetría sin procesar:

filter/Spans:
config:
spans:
- 'attributes["service.name"] == "my-service"'

Filtrado por nombre de la aplicación

Problema: Las transacciones de APM no tienen appName en el gateway.

Solución: Utilice los atributos que su agente establece directamente o aplique el filtrado después del enriquecimiento con reglas de la nube.

Agregar información de la entidad

Problema: Desea agregar contexto de entidad a la telemetría en el gateway.

Solución: No puede acceder a entity.guid en el gateway, pero puede agregar sus propios metadatos de identificación:

transform/Logs:
config:
log_statements:
- set(attributes["deployment"], "production-us-east")
- set(attributes["cluster"], "k8s-prod-01")

Resolución de problemas

El filtro no coincide con los datos esperados

Si su procesador de filtros no coincide con los datos que espera:

  1. Comprobar la disponibilidad del atributo - Verifica que el atributo exista en el gateway (no solo en NRDB)
  2. Inspecciona la telemetría real - Usa el monitoreo del gateway para ver qué atributos están realmente presentes
  3. Probar el acceso al atributo - Pruebe un filtro simple en el atributo para ver si existe:
    filter/Test:
    config:
    logs:
    - 'attributes["entity.guid"] != ""' # Will match nothing if attribute doesn't exist

La transformación no establece los valores esperados

Si los atributos no se están agregando o modificando:

  1. Verificar nombres de atributos - Los nombres de atributos previos al enriquecimiento pueden diferir de NRDB
  2. Verifique el tipo de datos - Asegúrese de acceder a los atributos correctamente (p. ej., attributes["key"] vs. acceso directo a campos)
  3. Revise el orden de los procesadores - Asegúrese de que las transformaciones se ejecuten antes que los filtros que dependen de ellas

Próximos pasos

Copyright © 2026 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.