Una gran cantidad de datos log pueden ayudarle a solucionar problemas. Pero ¿qué pasa si un atributo en su log contiene miles de caracteres? ¿Cuántos de estos datos puede almacenar New Relic? ¿Y cómo encontrar información útil en todos estos datos?
¿Cómo funcionan las manchas?
Para valores de cadena largos que son más largos de lo que se puede almacenar en NRDB (4094 caracteres), almacenamos la cadena larga en tres partes:
Secciones log largos | Descripción |
---|---|
Primeros 4.094 caracteres | Los primeros 4094 caracteres se almacenan en un campo de evento |
Siguientes 128.000 bytes UTF-8 | Los siguientes 128.000 bytes UTF-8 de la cadena se almacenan en un campo La cantidad real de caracteres almacenados depende de la representación UTF-8 de los caracteres. UTF-8 representa caracteres Unicode de uno a cuatro bytes, por lo que almacenaremos entre 32 000 y 128 000 caracteres después de los primeros 4094 caracteres. |
Personajes restantes | Todos los caracteres que superen los 4094 caracteres más 128 000 bytes se eliminan y no se almacenan. |
Resultados de la consulta | Blob consulta tiene un límite de 20 resultados. Cuando utilice |
Entonces el campo largo message
se almacenaría como:
message: <first 4,094 characters as a string>newrelic.ext.message: <next 128,000 bytes as a 'blob'>
Sugerencia
Puede buscar los primeros 4.094 caracteres de un atributo de cadena. También puede crear alertas para los primeros 4.094 caracteres. Sin embargo, dado que el almacenamiento blob
no se puede buscar, el texto que supere los primeros 4094 caracteres no se puede buscar ni generar alertas.
Consulta tus datos para blobs
one.newrelic.com > All capabilities > Logs: Para consultar datos de blobs extendidos en su registro, asegúrese de incluir comillas invertidas en la sintaxis de blobs de su atributo.
Para consultar cualquier dato log en New Relic, ejecute la siguiente consulta:
SELECT * FROM Log
Para expandir los datos del blob, ejecute la siguiente consulta utilizando message
o cualquier otro atributo. Asegúrese de incluir el atributo del blob entre comillas invertidas. Por ejemplo:
SELECT message, another-attribute, blob(`newrelic.ext.message`), blob(`newrelic.ext.another-attribute`) FROM Log
Esto expande los datos del blob para que pueda verlos (pero no buscarlos). Por ejemplo, New Relic devuelve:
{ "message": <first 4,094 characters> "newrelic.ext.message": <the next 128,000 bytes as Base64> "another-attribute": <first 4,094 characters> "newrelic.ext.another-attribute": <the next 128,000 bytes as Base64>}
La UI del registro vuelve a unir automáticamente el valor original cuando se mira la vista detallada log . Al realizar consultas utilizando NRQL directamente, debe unir manualmente la información de la siguiente manera:
- Decodificando la Base64 del valor del atributo
newrelic.ext.
- Convertir el UTF-8 resultante en una cadena
- Agregar esa cadena a los primeros 4.094 caracteres del atributo "principal"
Retención de datos para registros largos
NRDB conserva sus registros de blobs durante un mes. Si tiene un mensaje de registro largo almacenado como LogExtendedRecord
, esos datos también seguirán estando disponibles durante un mes en NRDB.
Después de que pase un mes, no se crearán más atributos LogExtendedRecord
nuevos. Todos se almacenarán en NRDB como blobs.