A blog about data, information and IT, by Mario Alberich

Jun 05
2013

Siege: extraer URLs reales de los logs (II)

Con el proceso anterior, ya teníamos las URIs, y nos faltaba añadir el host y el protocolo para tener una URL completa.  Esto se puede conseguir echando mano del comando sed:

~$ cat {archivo-de-log} | awk '{print $7}' | sort | uniq | sed -e 's/^/http:\/\/sopadebits/g'

Qué hace esto exactamente? Busca el inicio de la cadena (el carácter "^" es una expresión regular que indica eso) y le añade el dominio (en mi caso, el de este blog sin el ".com"). Es necesario escapar las barras (\/), como ya es habitual en las expresiones regulares.

Con lo anterior, nos sale una lista de URLs completas. Cambiando lo anterior, a punto para ser usadas con siege. Sólo falta guardarlas en un archivo de texto. Así que el proceso completo sería:

~$ cat {archivo-de-log} | awk '{print $7}' | sort | uniq | sed -e 's/^/http:\/\/sopadebits/g' > urls.txt

Ejecutar Siege con una lista de URLs


Con lo anterior, sólo queda indicar a Siege que queremos utilizar ese archivo "urls.txt" para que realice las pruebas. Esto es tan sencillo como:

~$ siege -c {concurrencia} -f ./urls.txt

¡Ahí tienes la ejecución! Dependiendo del número de URLs y usuarios concurrentes, el test tardará más o menos en ejecutarse y mostrará los resultados al final.

Filtrar/eliminar algunas URLs del listado


Si por ejemplo queremos limpiar las URLs que cargan CSS, o archivos JS o imágenes PNG, podemos utilizar la herramienta grep:

~$ grep -vE "\.(js|css|gif|png|kml)"

Integrándola en el conjunto de pipes anteriores, el resultado quedaría así:

~$ cat {archivo-de-log} | awk '{print $7}' | grep -vE "\.(js|css|gif|png)" | sort | uniq | sed -e 's/^/http:\/\/sopadebits/g' > urls.txt

La opción "-v" de grep permite seleccionar las líneas que NO contengan la expresión indicada, y la opción "E" permite indicar una expresión regular. Con eso ya tenemos la lista de URLs limpias y podemos volver a ejecutar la prueba.

Tags

gestión documental 10     Recuperación información 11     Linux 7     Usabilidad 5     open source 3     Tagging 12     lógica borrosa 2     fuentes de información 12     Google 6     off-topic 6     spam 2     grafos 6     Web social 11     modelización 12     Productividad 11     buscadores 2     utilidades 17     Profesionales 9     SEO 5     estándares 3     veracidad 3     relevancia 2     lingüística 2     PLN 2     lenguajes documentales 2     apis-mashups 3     reseñas 7     Flash 7     Gráficos estadísticos 13     Publicidad 3     Innovación 5     muestreo estadístico 9     PHP 14     internet 2     testeo 12     desarrollo 3     visualizacion 36     javascript 16     datos abiertos 9     elecciones 2     simulación 5     html5 7     phing 9     ssh 2     seguridad 3     indicadores 2     demografía 3     media 2     algoritmos 7     shell 4     mysql 2     backup 2     big data 6     twitter 2     d3js 11     revealjs 2     metodología 6     data-journalism 6     smartcities 2     NYT 2     privacidad 3     benchmarking 4     recopilaciones 21     magento 5     formacion 2     github 2     HHVM 3     psicología 2     angularjs 3     grep 2     nodejs 5     promises 2     mapreduce 3     crossfilter 2     exploración de datos 2     machine learning 2    

© 2007 and beyond Mario Alberich, licensed under CC-BY-SA unless stated otherwise.