Troncos locos

Por la mañana, sin tomar un sorbo de café, abres el correo y ves un informe de error sobre lo que funcionaba bien para sí mismo, no falló y realmente no molestó. No hay ideas en movimiento, no hay sospechosos, tampoco hubo grandes cambios en el código: debe ingresar a los registros.

Y no fuiste allí hace tanto tiempo que distribuiste un archivo con registros de hasta 100 mb. o hasta 500 mb. ¡Infierno! O tal vez hasta 10 GB (*). Y la evidencia preciosa se encuentra en algún lugar entre 10,737,418,240 bytes, que debe ejecutarse con urgencia para averiguar qué está sucediendo, mientras el café ya se está enfriando.

O tal vez un archivo con doscientos archivos (digamos 5 MB cada uno) de registros rotos fue al informe con un avance y necesita pegarlos de alguna manera, y luego mirar, cavar y pensar.

¿Eso es familiar?

En general, todos nosotros, de una forma u otra, nos enfrentamos a la necesidad de analizar los "rastros de vida" de nuestras creaciones, y es bueno si el archivo pesa un par de MB, porque abrir un registro de 1 GB con un bloc de notas e incluso intentar hacer una búsqueda es una tarea dudosa.

Debajo del corte, le contaré acerca de una herramienta que no tiene límites (**) en el tamaño de los archivos abiertos, pero tiene una búsqueda muy rápida.

Y te invito a unirte al desarrollo.

Y sí, habrá muchas fotos interesantes.

Por lo tanto, parecería una tarea trivial abrir los registros y buscar, a veces puede encontrarse en un tamaño de archivo banal. Puedes abrir un poco con cualquier cosa, al menos con el mismo bloc de notas o bloc de notas ++, pero en amapolas y Linux, por lo que a veces es más fácil dejar todo en la consola con un gato y hacer una búsqueda.

Entre otras cosas, puede usar el notepad ++ mencionado, atom, logExpert, sublime, bare vim, bbedit, glogg, etc. Tengo que decir de inmediato que no todos abrirán gigabyte 2, y algunos de los supervivientes se romperán en la búsqueda. Y de todo lo anterior, quizás solo el átomo sea verdaderamente multiplataforma, y ​​quiero tener una cosa cuando tengo que trabajar en varias plataformas en paralelo. Y cuántos comen RAM para procesar al menos un par de cientos de megabytes de registros es una historia diferente.

Esa es la razón por la que tenemos la herramienta Chipmunk, que fue aserrada bajo tareas estrechas, pero rápidamente se convirtió en una solución integral para analizar registros. Chipmunk no puede hacer nada más; sus tareas se reducen a una simple:

  • abrir registros sin preocuparse por el tamaño del archivo;
  • busque para que no espere, pero vea el resultado inmediatamente;
  • recuerde todas sus búsquedas y guárdelas cuidadosamente a pedido;
  • ayudarlo a percibir visualmente la información;
  • comportarse modestamente en relación con la RAM;
  • para resolver otras tareas más estrechas, pero siempre reducidas al análisis de registros.

Bueno, hablemos de todo en orden.

Recursos


Chipmunk no carga nada en la RAM, excepto el trozo de registros que es visible en la pantalla (bueno, un poco más de almacenamiento en búfer, pero esto es un poco). Al caminar alrededor del archivo, chipmunk lee un fragmento del archivo (correspondiente a la posición del desplazamiento) y solo lo carga en la memoria. Gracias a esto, los apetitos por la RAM son bastante inteligibles y no fluctúan, y la primera "pantalla" con el contenido del archivo se muestra de inmediato (aunque la indexación continuará con el fondo).

Conveniencia y visualización.


imagen

Hay un administrador de consultas de búsqueda donde puedes:

  • Asigna colores a los filtros (lo que facilita la percepción de los datos)
  • guarde la colección de filtros en un archivo para que siempre tenga a mano un patrón de búsqueda listo para usar.

Puede, por ejemplo, buscar en el archivo la frecuencia de las coincidencias (cuanto mayor sea la columna, más coincidencias en el fragmento del archivo).

imagen

O puede especificar un grupo en una expresión regular y obtener un gráfico hermoso (en el ejemplo utilizado, la expresión Uso de CPU: \ s + (\ d + \. \ D +) ). Y ahora puede ver dónde el consumo de CPU era anormal y qué registros deberían examinarse cuidadosamente.

imagen

Además de buscar por sí mismo, se pueden marcar líneas individuales de registros, que siempre se presentarán en la ventana de resultados de búsqueda. Esto es muy conveniente cuando vi algo importante entre un par de millones de líneas y no quieres perderlo de vista.

Combinación de archivos


Para resolver los problemas asociados con varios archivos, chipmunk puede ocultar archivos en uno (por ejemplo, en la fecha del último cambio en el archivo). Todo lo que se necesita:

  • lanzar un grupo de archivos a la ventana de la ardilla listada
  • si necesitas ordenar los archivos como quieras
  • Además, puede buscar todos los archivos y, por ejemplo, excluir aquellos archivos que no tienen coincidencias con la palabra "error" (bueno, ¿por qué deberíamos ir a donde todo está tan tranquilo?)

imagen

Como resultado, obtenemos en la ventana una secuencia de todos los archivos seleccionados.

Si necesita un mecanismo más complejo para combinar registros (por ejemplo, si tiene registros de diferentes dispositivos / fuentes), puede usar la función de combinación, que determina el formato de la marca de tiempo para cada archivo y muestra los registros en orden cronológico.

imagen

Preste atención a las etiquetas de color a la izquierda de la salida: estas son etiquetas de archivo. Es decir, no ve la salida de un archivo tras otro (concatenación), sino la salida ordenada por tiempo de todos los archivos (fusión).

Características especiales


Si alguna vez ha encontrado DLT, entonces sabe lo difícil que es usar DLTViewer. La buena noticia es que Chipmunk es una alternativa para abrir y analizar archivos DLT. Además, también es compatible con la transmisión DLT.

imagen

Cuando abra el archivo DLT, verá de inmediato un resumen del archivo, que incluye una lista de todos los componentes, lo cual es conveniente si está interesado en un APID específico y no en el registro completo.

Hablando de hilos


Fuera de la caja con chipmunk viene un complemento simple "Comandos", que le permitirá ejecutar cualquier comando de consola y recibir salida en chipmunk con la capacidad de buscar esta salida. Naturalmente, si tiene una búsqueda activa (por ejemplo, un filtro guardado), los datos del resultado se actualizarán a medida que la transmisión se actualice desde el comando de la consola.

imagen

Oh si complementos


Hay pocos de ellos hasta ahora. Así es, realmente no es suficiente. Solo hay 5 públicos (aquellos que son de dominio público y accesibles para el administrador de complementos), no públicos, ni siquiera sé, tal vez un par de docenas.

Escribir su complemento es muy simple (haré una reserva para una tarea simple).

Por ejemplo, si sus registros contienen mensajes presentados en forma de bytes, y desea verlos inmediatamente en forma legible (es decir, decodificada); es fácil cortar un complemento, que recibirá el fragmento de registro seleccionado como entrada y arrojará la salida decodificada al panel. O tal vez incluso decodificar sobre la marcha y mostrar un texto inteligible en la pantalla, y no A5 FF 13 EE ... etc.

En general, hay dos tipos de extensiones: el primer trabajo con el render, es decir, le permiten cambiar la presentación de la salida: si desea columnas, por favor; Quiero decodificar algo sobre la marcha, puedes; existe el deseo de pegar gráficos (por ejemplo, íconos); no está claro por qué lo necesita, pero puede hacerlo.

Otro tipo de complementos (y es más interesante), aquellos que pueden suministrar datos (crear secuencias). Por ejemplo, ¿desea ver la salida del puerto serie? No es un problema: el caso es un nuevo proyecto npm, incluimos nuestro puerto de puerto favorito en él, agregamos una pequeña interfaz de usuario a su gusto y ahora su complemento puede arrojar datos a la ardilla listada.

Por conveniencia y primeras citas, como es habitual en familias decentes, hay un repositorio de inicio rápido con un par de tres ejemplos.

Si está interesado, hágamelo saber en los comentarios: haré una guía posterior separada para crear y publicar complementos (por cierto, no es necesario registrarse para publicar).

En lugar de una conclusión


Eso es probablemente todo. No quiero hacer un folleto publicitario o una tarjeta de usuario de esta publicación, por lo tanto, brevemente con un mínimo de letras. Mi objetivo es compartir con ustedes otra herramienta para trabajar con registros, que puede ser útil para resolver muchos problemas.

El proyecto es completamente de código abierto y abierto a su participación, cualquiera de su participación. ¿Quieres ver apoyo para algo así? Cree un problema y seleccione "Solicitud de funciones". Encontrado un error? Estaremos encantados de ver un informe de error de usted con una breve descripción (pero suficiente) del problema. El inglés es bienvenido, pero el ruso no está prohibido.

Y, por supuesto, poner la atesorada estrella en Github, en solo unos segundos, sentirá una leve calidez y una mejora en el estado de ánimo gracias a nuestra gratitud por la aprobación de lo que estamos haciendo. Para usted, haga clic en - para nosotros, comentarios e inspiración.

Gracias.

Lanzamientos

Otros enlaces

Aclaración
(*) , (1 <). , . . 10-20 , . embedded .

(**), , . chipmunk . , chipmunk RAM, , SSD.

All Articles