Pregunta

Tengo un AWSTATS en ejecución y los informes se construyen a partir de archivos de registro de IIS. Tengo una sección adicional para ver todas las acciones de los Perlscripts ejecutados en el Sitio.

La configuración se ve así:

ExtraSectionName1="Actions"
ExtraSectionCodeFilter1="200 304"
ExtraSectionCondition1="URL,\/cgi\-bin\/.+\.pl"
ExtraSectionFirstColumnTitle1="Action"
ExtraSectionFirstColumnValues1="QUERY_STRING,action=([a-zA-Z0-9]+)"
ExtraSectionFirstColumnFormat1="%s"
ExtraSectionStatTypes1=HPB
ExtraSectionAddAverageRow1=0
ExtraSectionAddSumRow1=1
MaxNbOfExtra1=20
MinHitExtra1=1

La salida se ve así:

Action    Pages    Hits
foo       1234     1234
bar       5678     5678

Pero hay algunas acciones con el mismo nombre en diferentes scripts de Perl.
Necesitaría esto:

Script    Action    Pages    Hits
foo.pl    foo       1234     1234
bar.pl    foo       1234     1234
foo.pl    bar       5678     5678
bar.pl    bar       5678     5678

¿Alguien sabe cómo crear dicho informe?

EDITAR:

Investigué más y todas las publicaciones del foro que he encontrado dicen que no es posible tener dos columnas en una sección adicional sin piratear awstats.pl

Ahora estoy tratando de ponerlo en una columna usando URLWITHQUERY para emitir algo así:

Action                  Pages    Hits
foo.pl?action=foo       1234     1234
foo.pl?action=bar       1234     1234
bar.pl?action=foo       5678     5678
...

El nuevo problema es que la consulta tiene más parámetros que la acción, que no están ordenadas. Probé esto

ExtraSectionFirstColumnValues1="URLWITHQUERY,([a-zA-Z0-9]+\.pl\?).*(action=[a-zA-Z0-9]+)"

Pero Awstats solo obtiene el valor del primer par de soporte e ignora el resto. Creo que funciona internamente con $1 proporcionado por el Perl Regex 'Magic'.

¿Algunas ideas?

¿Fue útil?

Solución 2

He encontrado una solución.

awstats.pl obtiene los datos de las secciones adicionales especificadas en line 19664 - 19750

Esta es mi modificación:

# Line 19693 - 19701 in awstats.pl (AWStats version 7 Revision 1.971)
elsif ( $rowkeytype eq 'URLWITHQUERY' ) {
    if ( "$urlwithnoquery$tokenquery$standalonequery" =~
        /$rowkeytypeval/ )
    {
        $rowkeyval = "$1$2"; # I simply added a $2 for the second capture group
        $rowkeyok  = 1;
        last;
    }
}

Esto obtendrá el primer y el segundo grupo de captura especificado en ExtrasectionFirstColumnValuesx Regex.

Ejemplo:

ExtraSectionFirstColumnValues1="URLWITHQUERY,([a-zA-Z0-9]+\.pl\?).*(action=[a-zA-Z0-9]+)"

No hace falta decir que necesita agregar un $3 $4 $5 ... Si necesita más grupos.

Otros consejos

¿quizás?

ExtraSectionFirstColumnTitle1="Script"
ExtraSectionFirstColumnValues1="URL,\/cgi\-bin\/(.+\.pl)`enter code here`"
ExtraSectionFirstColumnFormat1="%s"

ExtraSectionFirstColumnTitle2="Action"
ExtraSectionFirstColumnValues2="QUERY_STRING,action=([a-zA-Z0-9]+)"
ExtraSectionFirstColumnFormat2="%s"
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top