Lighttpd: mod_status patch

Wer mittels Munin den Lighty tracken will, wird feststellen, dass es im gegensatz zum Apache-Status keine Anzeige der Idle-Servers gibt.

Aus diesem Grund habe ich mal fix einen Patch für die Version 1.5.0 geschrieben, der die Ausgabe der ?auto Page um die Anzeige von “IdleServers” und “Scoreboard” ergänzt.

CODE:

--- src/mod_status.c        2008-01-08 00:00:00.000000000 +0100
+++ src/mod_status.c    2008-01-08 00:00:00.000000000 +0100

@@ -569,6 +569,8 @@
        double avg;
        time_t ts;
        size_t j;
+       unsigned int k;
+       unsigned int l;


        b = chunkqueue_get_append_buffer(con->send);

@@ -595,6 +597,11 @@
        buffer_append_long(b, srv->conns->used);
        BUFFER_APPEND_STRING_CONST(b, "\n");

+       /* output idle servers */
+        BUFFER_APPEND_STRING_CONST(b, "IdleServers: ");
+        buffer_append_long(b, srv->conns->size - srv->conns->used);
+        BUFFER_APPEND_STRING_CONST(b, "\n");
+

        /* output traffic */
        BUFFER_APPEND_STRING_CONST(b, "Traffic: ");
        avg = p->abs_traffic_out / (srv->cur_ts - srv->startup_ts);
@@ -610,6 +617,18 @@
        buffer_append_long(b, avg);
        BUFFER_APPEND_STRING_CONST(b, "\n");

+       /* output scoreboard */
+        BUFFER_APPEND_STRING_CONST(b, "Scoreboard: ");
+        for (k = 0; k < srv->conns->used; k++) {
+               connection *c = srv->conns->ptr[k];
+               const char *state = connection_get_short_state(c->state);
+               buffer_append_string_len(b, state, 1);
+        }
+        for (l = 0; l < srv->conns->size - srv->conns->used; l++) {
+               BUFFER_APPEND_STRING_CONST(b, "_");
+        }
+        BUFFER_APPEND_STRING_CONST(b, "\n");
+

        /* set text/plain output */

        response_header_overwrite(srv, con, CONST_STR_LEN("Content-Type"), CONST_STR_LEN("text/plain"));

Anleitung:

cd lighttpd-1.5.0
wget http://trac.lighttpd.net/trac/attachment/ticket/1507/mod_status.1.5.patch?format=raw
patch -p0 < mod_status.patch
make distclean
./configure
make
make install

[UPDATE]
Der Patch wurde im Changelog 2045 bzw. 2046 ins nächste Lighttpd Release aufgenommen.

del.icio.us:Lighttpd: mod_status patch digg:Lighttpd: mod_status patch spurl:Lighttpd: mod_status patch wists:Lighttpd: mod_status patch simpy:Lighttpd: mod_status patch newsvine:Lighttpd: mod_status patch blinklist:Lighttpd: mod_status patch furl:Lighttpd: mod_status patch reddit:Lighttpd: mod_status patch fark:Lighttpd: mod_status patch blogmarks:Lighttpd: mod_status patch Y!:Lighttpd: mod_status patch smarking:Lighttpd: mod_status patch magnolia:Lighttpd: mod_status patch segnalo:Lighttpd: mod_status patch

Kommentar schreiben

:-< (@) (D) (~) (ap) (I) (Z) (8) :-s (mp) (||) (a) :-) (K) :-O :> (w) (&) (u) (so) (f) :-[ (p) (N) :p (H) (tu) (x) (T) :@ (xx) (r) |-) (}) (G) (c) (%) :-* (o) (#) (?) <:o) (L) :-$ *-) (st) (Y) (S) ({) (yn) (*) (co) :-| (B) (M) (li) (h5) (sn) (bah) (um) :-# :'( (^) 8-) (ci) ;) 8o| (ip) (mo) +o( (E) (pl) 8-| (6) (au) :^) (brb) ^o) (pi)