rastreo distribuido te ayuda monitor y analizar el comportamiento de tus sistemas distribuidos. Después de habilitar el rastreo distribuido, puede utilizar nuestras herramientas UI para buscar trazas y analizarlas.
Si busca solucionar errores en una transacción que abarca muchos servicios:
- Abra la página UI de rastreo distribuido.
- Ordene su traza usando un filtro para encontrar esa solicitud específica y muestre solo la traza que contiene errores.
- En la página de detalles de la traza, revise el tramo a lo largo de la ruta de solicitud que originó el error.
- Observando la clase de error y el mensaje, navegue hasta el servicio desde su intervalo en la traza para que pueda ver que el error se está produciendo a un ritmo elevado.
Continúe leyendo para explorar las opciones en la UI de rastreo distribuido.
Abra la UIde rastreo distribuido
Para ver la traza de un servicio específico:
Ingresa a one.newrelic.com > All entities.
En
Your system
en el panel izquierdo, seleccione la entidad que contiene la traza que desea inspeccionar.
Haga clic en
Distributed tracing
en el panel izquierdo.
O, para ver la traza de todas sus cuentas:
Vaya a
one.newrelic.com > All Capabilities
.
Haga clic en el mosaico
Traces
.
Sugerencia
Si no tiene acceso a las cuentas de algunos servicios en una traza, ofuscaremos algunos detalles de esos servicios.
Filtra tus datos de tramo
Contamos con una variedad de herramientas para ayudarte a encontrar trazas y tramos para que puedas resolver problemas. La página de apertura de rastreo distribuido se completa con una lista predeterminada de traza. Puede refinar rápidamente esta lista utilizando estas herramientas:
La barra de consulta Find traces es una forma rápida de limitar la búsqueda de traza. Puede comenzar a escribir en la barra de consulta o usar el menú desplegable para crear una consulta compuesta.
Las devoluciones de la consulta se basan en el atributo span , no en el atributo traza. Usted define tramos que tienen ciertos criterios y la búsqueda muestra una traza que contiene esos tramos.
Si utiliza un filtro de múltiples atributos, se verá afectado por el primer atributo seleccionado. rastreo distribuido informa sobre dos tipos de datos: transacción evento y spans. Cuando selecciona un atributo en el filtro, el tipo de datos al que está asociado el atributo dicta los atributos disponibles. Por ejemplo, si filtra por un atributo adjunto a un evento de transacción, solo los atributos del evento de transacción estarán disponibles cuando intente agregar un filtro por valores de atributos adicionales.
Las consultas de traza son similares a NRQL (nuestro lenguaje de consulta), con algunas excepciones principales:
Los valores de cadena no requieren comillas (por ejemplo, puede usar
appName = MyApp
oappName = 'MyApp'
)El operador
like
no requiere%
(por ejemplo, puede usarappName like product
oappName like %product%
).Estos son dos ejemplos de cómo utilizar la barra de consulta:
La consulta en la imagen a continuación encuentra una traza que:
Pase por la aplicación WebPortal y Inventory Service
Tener una llamada de almacenamiento de datos del Servicio de Inventario que demore más de 500 ms
Contiene un error en cualquier intervalo.
Ir a one.newrelic.com > All capabilities > Apps > Distributed tracing
La consulta en la imagen a continuación encuentra una traza que:
Contiene tramos que pasan a través de la aplicación WebPortal y donde se produjo un error en cualquier tramo de la aplicación WebPortal.
Contiene tramos donde el atributo
customer_user_email
contiene un valor que termina enhotmail.com
en cualquier parte de la traza.Ir a one.newrelic.com > All capabilities > Apps > Distributed tracing
Además de la barra de consulta en la parte superior de la página, puede usar una variedad de filtros en el panel izquierdo para encontrar la traza que le interesa.
Infinite tracing data: Seleccione esto solo para mostrar la traza relacionada con la característica Infinite Tracing.
Multi span traces only: Utilice esto para ocultar la traza de un solo tramo.
Error filters: En Errors , seleccione los errores por los que filtrar.
Histogram filters: Debajo de Errors en la parte inferior del panel izquierdo, puede hacer clic en More filters para mostrar los filtros de histograma. Arrastre los controles deslizantes para cambiar los valores, como Trace duration:
- Arrastre el extremo izquierdo del control deslizante para realizar comparaciones mayores que.
- Arrastre el extremo derecho del control deslizante para realizar comparaciones menores.
- Arrastre cada extremo del control deslizante hacia el centro para filtrar por un rango.
Cuando arrastra el control deslizante, cambia tanto la lista de trazas como lo que se muestra en los gráficos de trazas.
Organice sus datos de tramo
La vista predeterminada de rastreo distribuido muestra la traza agrupada por el mismo tramo de entrada raíz. En otras palabras, las trazas se agrupan por el lapso donde New Relic comenzó a registrar la solicitud. Puedes deslizar el botón Group similar traces para activar y desactivar esto.
Con los grupos de trazas, obtienes una vista de alto nivel de la traza para que puedas comprender el comportamiento de las solicitudes para grupos de trazas similares. Esto le ayuda a comprender las caídas o picos en el recuento, la duración y los errores de las trazas. Cuando hace clic en uno de los grupos de trazas, obtiene todos los detalles estándar en el contexto del grupo de trazas específico que seleccionó.
Si Group similar traces está activado, verás tres gráficos en la parte superior de la página en rastreo distribuido. Estos gráficos le muestran el recuento de trazas, la duración del percentil 95 y el recuento de errores para cada uno de los grupos de trazas enumerados en la tabla debajo de los gráficos. Para cambiar los filtros en estos gráficos, consulte los filtros del panel izquierdo.
El diagrama de dispersión de trazas es una forma rápida de buscar trazas periféricas. Esto está disponible en la página de inicio de rastreo distribuido si desactivas el botón Group similar traces en la parte superior de la página.
En el diagrama de dispersión, puede mover el cursor por el gráfico para ver los detalles del trazado y puede hacer clic en puntos individuales para obtener detalles:
Controle lo que se muestra en el diagrama de dispersión:
Seleccione el tipo de duración en el menú desplegable
View by
:
Backend duration
Root span duration
Trace duration
En
Facet traces by
, seleccione una de estas opciones:
Root entry span
: Agrupar por la transacción raíz, que es el extremo del servicio raíz. En una traza donde el Servicio A llama al Servicio B y el Servicio B llama al Servicio C, el tramo de entrada raíz es el extremo del Servicio A. Por ejemplo: "Servicio A - GET /usuario/%".
Root entity
: Grupo por el nombre de la primera entidad en traza. En una traza donde el Servicio A llama al Servicio B y el Servicio B llama al Servicio C, la entidad raíz sería el Servicio A.
Errors
: Agrupar según si la traza contiene errores o no.
- Para obtener consejos sobre cómo cambiar los filtros en el diagrama de dispersión, consulte los filtros del panel izquierdo.
Sugerencia
Algunas consultas que producen muchos resultados pueden resultar en falso positivo en los gráficos. Esto podría manifestarse como gráficos que muestran resultados de traza que no están en la lista de traza.
Detalles adicionales UI
Aquí hay algunos detalles, reglas y límites adicionales UI de rastreo distribuido:
Los errores a nivel de tramo le muestran dónde se originaron los errores en un proceso, cómo surgieron y dónde se manejaron. Cada lapso que termina con un error se muestra con un error en la UI y contribuye al recuento total de errores para esa traza.
A continuación se ofrecen algunos consejos generales para comprender los errores de extensión:
Los tramos con errores se resaltan en rojo en la UI del rastreo distribuido. Puede ver más información en el panel Error Details para cada tramo.
Todos los tramos que salen con errores se cuentan en el recuento de errores de tramo.
Cuando se producen varios errores en el mismo intervalo, solo se escribe uno en el intervalo en este orden de prioridad:
- A
noticeError
- El error de intervalo más reciente dentro del alcance de ese intervalo
Esta tabla describe cómo se manejan los diferentes errores de intervalo:
Tipo de error
Descripción
Tramos que terminan en errores
Un error que sale del límite de un intervalo da como resultado un error en ese intervalo y en cualquier intervalo antecesor que también salga con un error, hasta que se detecta el error o sale de la transacción. Puede ver si se detecta un error en un intervalo de ancestros.
Errores de aviso
Los errores detectados por las llamadas a la API del agente
noticeError
o por la instrumentación automática del agente se adjuntan al intervalo de ejecución actual.Errores de código de respuesta
Los errores del código de respuesta se adjuntan al intervalo asociado, como por ejemplo:
Span de cliente: Transacción externa con el prefijo
http
odb
.Intervalo de entrada: En el caso de una transacción que finaliza con un error de código de respuesta.
El código de respuesta para estos intervalos se captura como un atributo
http.statusCode
y se adjunta a ese intervalo.
Errores de OpenTelemetry
El cuadro Error Details del panel derecho está lleno de intervalos que contienen
otel.status_code = ERROR
y muestra el contenido deotel.status_description
.Sugerencia
Los eventos de intervalo de OpenTelemetry manejados por la aplicación/servicio se muestran independientemente del estado de error de intervalo y no están necesariamente asociados con un estado de error de intervalo. Puede ver las excepciones y no excepciones de eventos de intervalo haciendo clic en View span events en el panel derecho.
- A
Si un intervalo se muestra como anómalo en la UI, significa que se cumplen las siguientes condiciones:
- El tramo es más de dos estándar más lento que el promedio de todos los tramos con el mismo nombre del mismo servicio durante las últimas seis horas.
- La duración del tramo es superior al 10% de la duración de la traza.
Cuando un proceso llama a otro proceso, y ambos procesos están instrumentados por New Relic, la traza contiene tanto una representación de la llamada del lado del cliente como una representación del lado del servidor. El lapso de cliente (proceso de llamada) puede tener diferencias relacionadas con el tiempo en comparación con el lapso del servidor (llamado proceso). Estas diferencias podrían deberse a:
Desfase del reloj, debido a diferencias horarias en el reloj del sistema
Diferencias en la duración, debido a cosas como la latencia de la red o el retraso en la resolución de DNS
La UI muestra estas diferencias relacionadas con el tiempo mostrando un esquema del intervalo de cliente en el mismo espacio que el intervalo del servidor. Este lapso representa la duración del lapso de cliente.
No es posible determinar todos los factores que contribuyen a estas discrepancias relacionadas con el tiempo, pero aquí hay algunos patrones de intervalos comunes y consejos para comprenderlos:
R. Cuando una extensión de cliente es más larga que la extensión del servidor, esto podría deberse a la latencia en varias áreas, como: tiempo de red, tiempo de cola, tiempo de resolución de DNS o de un balanceador de carga que no podemos ver. B. Cuando un intervalo de cliente comienza y finaliza antes de que comience un intervalo de servidor, esto podría deberse a una desviación del reloj o a que el servidor realiza un trabajo asincrónico que continúa después de enviar la respuesta. C. Cuando un intervalo de cliente comienza después de un intervalo de servidor, lo más probable es que se trate de un desfase del reloj.
Las trazas fragmentadas son trazas a las que les faltan tramos. Cuando falta un tramo o tiene ID principales de tramo no válidos, su tramo secundario queda separado del resto de la traza, a lo que nos referimos como "huérfano". Los tramos huérfanos aparecen en la parte inferior de la traza, y carecerán de líneas de conexión con el resto de la traza. Si tiene tramos fragmentados, verá la palabra Fragmented en la parte superior de la página de detalles:
Tipos de propiedades de intervalo huérfano indicadas en la UI:
No root span. Falta el intervalo raíz, que es la primera operación de la solicitud. Cuando esto sucede, el intervalo con la timestamp más antigua se muestra como raíz.
Orphaned span. Un solo tramo al que le falta un tramo principal. Esto podría deberse a que el tramo principal tiene un ID que no coincide con su tramo secundario.
Orphaned trace fragment. Un grupo de tramos conectados donde el primer tramo del grupo es un tramo huérfano.
Esto puede suceder por varias razones, que incluyen:
Collection limits. Algunas aplicaciones de alto rendimiento pueden exceder los límites de recopilación (por ejemplo, límites de recopilación del agente APM o límites de API). Cuando esto sucede, es posible que a la traza le falten tramos. Una forma de remediar esto es desactivar algunos informes para que no se alcance el límite.
Incorrect instrumentation. Si una aplicación se instrumenta incorrectamente, no pasará el contexto de traza correctamente y esto resultará en una traza fragmentada. Para remediar esto, examine la fuente de datos que genera intervalos huérfanos para asegurarse de que la instrumentación se realice correctamente. Para descubrir la fuente de datos de un tramo, selecciónelo y examine los detalles del tramo.
Spans still arriving. Si aún no se ha recopilado parte del principal del tramo, esto puede resultar en espacios temporales hasta que se haya informado toda la traza.
UI display limits. Se pueden producir tramos huérfanos si una traza excede el límite de visualización de tramos de 10K.
Las trazas conservadas son similares a las instantáneas de la traza original. Archivan una traza completa que ha sido visualizada previamente y ha superado el período de retención. Las trazas completas solo están disponibles durante 7 días, a menos que hayas comprado la retención extendida (que se reflejaría automáticamente en la UI). Sin embargo, la traza conservada puede existir hasta por 1 año y generalmente funciona como la traza original.
Tenga en cuenta que la traza conservada no mostrará datos de rendimiento del intervalo ni datos de anomalía del intervalo. Es posible que no se pueda acceder a la traza conservada si una entidad en una traza conservada se elimina, caduca o deja de informar datos.
Si no tiene acceso a las cuentas de New Relic que monitor otros servicios, algunos de los detalles del período y del servicio se ocultarán en la UI. La ofuscación puede incluir:
Nombre del tramo oculto por asteriscos
Nombre del servicio reemplazado por ID de cuenta de New Relic y ID de aplicación
Para obtener más información sobre los factores que afectan su acceso a las cuentas, consulte Acceso a la cuenta.
Al visualizar la cascada de tramos, es posible que los nombres de tramos se muestren en un formato incompleto que sea más legible para los humanos que el nombre completo del tramo. Para encontrar el nombre completo, seleccione ese intervalo y busque Full span name. Conocer el nombre completo puede resultar valioso para consultar esos datos con NRQL.
En ocasiones, a una traza le pueden faltar (o parecer tener) tramos o servicios. Esto puede manifestarse como una discrepancia entre el recuento de tramos o servicios de una traza que se muestra en la lista de traza y el recuento que se muestra en la página de detalles de la traza .
Los motivos por los que faltan tramos y las discrepancias en el recuento incluyen:
Es posible que un agente haya alcanzado su límite de recopilación de intervalos.
Es posible que un intervalo se cuente inicialmente pero no se muestre en una visualización de traza, por motivos como la latencia de la red o un problema de consulta.
Es posible que la UI haya alcanzado su límite de visualización de 10 K.
Todos los tramos recopilados, incluidos los que no se muestran, se pueden consultar con NRQL.
Además de estas herramientas UI , también puedes consultar el ejemplo de consulta NRQL en consulta rastreo distribuido data.