]> err.no Git - varnish/commitdiff
Add varnishstat program
authorphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Wed, 28 Jun 2006 11:21:06 +0000 (11:21 +0000)
committerphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Wed, 28 Jun 2006 11:21:06 +0000 (11:21 +0000)
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@247 d4fa192b-c00b-0410-8231-f00ffab90ce4

varnish-cache/bin/Makefile.am
varnish-cache/bin/varnishstat/Makefile.am [new file with mode: 0644]
varnish-cache/bin/varnishstat/varnishstat.c [new file with mode: 0644]
varnish-cache/configure.ac

index 267714fec8fd03cde43dae02e7a002ccaa732cd7..375fed566d229f420babf723704e232fb68a510a 100644 (file)
@@ -1,3 +1,3 @@
 # $Id$
 
-SUBDIRS = varnishd varnishlog
+SUBDIRS = varnishd varnishlog varnishstat
diff --git a/varnish-cache/bin/varnishstat/Makefile.am b/varnish-cache/bin/varnishstat/Makefile.am
new file mode 100644 (file)
index 0000000..3aa7fe3
--- /dev/null
@@ -0,0 +1,9 @@
+# $Id: Makefile.am 133 2006-04-06 09:38:00Z phk $
+
+INCLUDES = -I$(top_srcdir)/include
+
+bin_PROGRAMS = varnishstat
+
+varnishlog_SOURCES = varnishstat.c
+
+# varnishlog_LDADD = $(top_builddir)/lib/libvarnishapi/libvarnishapi.la 
diff --git a/varnish-cache/bin/varnishstat/varnishstat.c b/varnish-cache/bin/varnishstat/varnishstat.c
new file mode 100644 (file)
index 0000000..37b822c
--- /dev/null
@@ -0,0 +1,62 @@
+/*
+ * $Id: varnishlog.c 153 2006-04-25 08:17:43Z phk $
+ *
+ * Log tailer for Varnish
+ */
+
+#include <stdio.h>
+#include <errno.h>
+#include <string.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <sys/mman.h>
+
+#include <shmlog.h>
+
+static struct shmloghead *loghead;
+
+int
+main(int argc, char **argv)
+{
+       int fd;
+       int i;
+       struct shmloghead slh;
+       struct varnish_stats *VSL_stats;
+
+       fd = open(SHMLOG_FILENAME, O_RDONLY);
+       if (fd < 0) {
+               fprintf(stderr, "Cannot open %s: %s\n",
+                   SHMLOG_FILENAME, strerror(errno));
+               exit (1);
+       }
+       i = read(fd, &slh, sizeof slh);
+       if (i != sizeof slh) {
+               fprintf(stderr, "Cannot read %s: %s\n",
+                   SHMLOG_FILENAME, strerror(errno));
+               exit (1);
+       }
+       if (slh.magic != SHMLOGHEAD_MAGIC) {
+               fprintf(stderr, "Wrong magic number in file %s\n",
+                   SHMLOG_FILENAME);
+               exit (1);
+       }
+
+       loghead = mmap(NULL, slh.size + sizeof slh,
+           PROT_READ, MAP_HASSEMAPHORE, fd, 0);
+       if (loghead == MAP_FAILED) {
+               fprintf(stderr, "Cannot mmap %s: %s\n",
+                   SHMLOG_FILENAME, strerror(errno));
+               exit (1);
+       }
+       
+       VSL_stats = &loghead->stats;
+
+#define MAC_STAT(n,t,f,d) \
+    printf("%12ju  " d "\n", (VSL_stats->n));
+#include "stat_field.h"
+#undef MAC_STAT
+
+       exit (0);
+
+}
index bf4f81c8af3f08c79d8c6fd53c43231429541b69..1113ff4cf39f2e84c9e39605e8df27160811a934 100644 (file)
@@ -68,6 +68,7 @@ AC_CONFIG_FILES([
     bin/Makefile
     bin/varnishd/Makefile
     bin/varnishlog/Makefile
+    bin/varnishstat/Makefile
     contrib/Makefile
     include/Makefile
     lib/Makefile