summaryrefslogtreecommitdiffabout
path: root/src
authorSergey Poznyakoff <gray@gnu.org.ua>2016-04-27 11:26:04 (GMT)
committer Sergey Poznyakoff <gray@gnu.org.ua>2016-04-27 12:02:18 (GMT)
commit94973146c58df26b20e17e2e5b1274216ca88969 (patch) (side-by-side diff)
tree17538cc2991af0acec5bebfe6a826ef67cd9fc95 /src
parent319c154c46214fdc5d8f8b498ae5a23bc8d03072 (diff)
downloadvarnish-mib-94973146c58df26b20e17e2e5b1274216ca88969.tar.gz
varnish-mib-94973146c58df26b20e17e2e5b1274216ca88969.tar.bz2
Support for Varnish 4.1
* NEWS: Update. * bootstrap: Rewrite as a Perl script; create m4/varnish_mib.m4 from src/varnish_mib.mib2c * configure.ac: Version 1.1.90 Use AC_CHECK_VSC_C_MAIN_MEMBERS Define VARNISHAPI_MAJOR, VARNISHAPI_MINOR and VARNISHAPI_PATCH for use in preprocessor directives. * src/betab.c [VARNISHAPI_MINOR] (VSC_POINT_FMT): Define depending on Varnish API minor version. * src/varnish_mib.mib2c (varnish_translate_table): New variable. It is used both by varnish_translate in this module, and by bootstrap to produce a list of macros checking for members of struct VSC_C_main. Output preprocessor conditionals in right places. * src/vcli.c (vcli_connect): Fix cc warnings. * src/varnish-mib.8: Update.
Diffstat (limited to 'src') (more/less context) (ignore whitespace changes)
-rw-r--r--src/betab.c8
-rw-r--r--src/varnish-mib.840
-rw-r--r--src/varnish_mib.mib2c39
-rw-r--r--src/vcli.c4
4 files changed, 69 insertions, 22 deletions
diff --git a/src/betab.c b/src/betab.c
index b583958..49e02f7 100644
--- a/src/betab.c
+++ b/src/betab.c
@@ -61,3 +61,9 @@ create_entry(netsnmp_tdata *table_data, long idx,
#define VSC_POINT_NAME(p) ((p)->desc->name)
-#define VSC_POINT_FMT(p) ((p)->desc->fmt)
+#if VARNISHAPI_MINOR == 0
+# define VSC_POINT_FMT(p) ((p)->desc->fmt)
+#elif VARNISHAPI_MINOR == 1
+# define VSC_POINT_FMT(p) ((p)->desc->ctype)
+#else
+# error "unsupported Varnish API minor number"
+#endif
diff --git a/src/varnish-mib.8 b/src/varnish-mib.8
index 4559b0c..0c54e6f 100644
--- a/src/varnish-mib.8
+++ b/src/varnish-mib.8
@@ -1,3 +1,3 @@
.\" This file is part of Varnish-mib -*- nroff -*-
-.\" Copyright (C) 2014-2015 Sergey Poznyakoff
+.\" Copyright (C) 2014-2016 Sergey Poznyakoff
.\"
@@ -15,3 +15,3 @@
.\" along with Varnish-mib. If not, see <http://www.gnu.org/licenses/>.
-.TH VARNISH-MIB 8 "November 28, 2014" "varnish-mib"
+.TH VARNISH-MIB 8 "April 27, 2016" "varnish-mib"
.SH NAME
@@ -29,3 +29,12 @@ loaded into
as shown above (actual path can of course differ, depending on how
-the package was configured).
+the package was configured). Varnish version \fB4.0\fR and \fB4.1\fR
+are supported.
+.PP
+When using with \fBVarnish\fR version \fB4.1\fR, make sure the
+\fB_.vsm\fR file is readable for \fBsnmpd\fR. This file is normally
+located in \fB/var/lib/varnish/\fIHOSTNAME\fR and has mode \fB640\fR.
+Its owner is determined by the \fB\-j\fR (\fB\-\-jail\fR)
+\fBvarnishd\fR option. There are two ways to ensure it is readable:
+either make sure \fBsnmpd\fR and \fBvarnishd\fR run with the same user
+group, or use \fBsetfacl\fR(1) to tune access to that file.
.PP
@@ -36,4 +45,4 @@ administrative interface. For these to work, the module must have
read access to Varnish secret file. In other words, the secret file
-must be readable either by the user \fBsnmpd\fR runs as, or by one
-of this user's groups.
+must be readable either by the user \fBsnmpd\fR runs as, or by its
+group.
.SH CONFIGURATION OPTIONS
@@ -95,2 +104,13 @@ the backend before delivering it to the client.
.TP
+.B clientRequests400
+Client requests received, subject to 400 errors.
+.TP
+.B clientRequests411
+Client requests received, subject to 411 errors. This variable is
+available only in Varnish version \fR4.0\fR.
+.TP
+.B clientRequests413
+Client requests received, subject to 413 errors. This variable is
+available only in Varnish version \fR4.0\fR.
+.TP
.B clientBan
@@ -130,3 +150,4 @@ unless the backend closes it.
.B backendConnUnused
-Number of unused backend connections.
+Number of unused backend connections. This variable is available only
+in Varnish version \fR4.0\fR.
.TP
@@ -239,3 +260,3 @@ Number of sessions closed.
.B sessPipeline
-Session pipeline.
+Session pipeline. This variable is available only in Varnish version \fR4.0\fR.
.TP
@@ -254,3 +275,4 @@ Number of session accept failures.
.B sessPipeOverflow
-Number of session pipe overflows.
+Number of session pipe overflows. This variable is available only in
+Varnish version \fR4.0\fR.
.SS Branch \(dqthreads\(dq
@@ -359,3 +381,3 @@ Report bugs to <gray@gnu.org>.
.SH COPYRIGHT
-Copyright \(co 2014 Sergey Poznyakoff
+Copyright \(co 2014-2016 Sergey Poznyakoff
.br
diff --git a/src/varnish_mib.mib2c b/src/varnish_mib.mib2c
index a5367e0..9d49ce9 100644
--- a/src/varnish_mib.mib2c
+++ b/src/varnish_mib.mib2c
@@ -1,3 +1,3 @@
# This file is part of varnish-mib -*- c -*-
-# Copyright (C) 2014-2015 Sergey Poznyakoff
+# Copyright (C) 2014-2016 Sergey Poznyakoff
#
@@ -26,5 +26,3 @@
@startperl@
-$vars{'varnish_translate'} = sub {
- my $name = shift;
- my %trans = (
+$vars{'varnish_translate_table'} = {
uptime => [ 'MAIN', 'uptime' ],
@@ -104,5 +102,8 @@ $vars{'varnish_translate'} = sub {
- );
+};
+
+$vars{'varnish_translate'} = sub {
+ my $name = shift;
- my $r = $trans{$name};
+ my $r = $vars{'varnish_translate_table'}->{$name};
if (!defined($r)) {
@@ -119,2 +120,9 @@ $vars{'varnish_translate'} = sub {
}
+ if ($vars{'varnish_type'} eq 'MAIN') {
+ $vars{'varnish_if'} = "#if HAVE_STRUCT_VSC_C_MAIN_" . uc($vars{'varnish_member'});
+ $vars{'varnish_endif'} = '#endif';
+ } else {
+ delete $vars{'varnish_if'};
+ delete $vars{'varnish_endif'}
+ }
return 0;
@@ -226,2 +234,6 @@ varnish_get_vsm_data()
@foreach $i scalar@
+ @startperl@
+ &{$vars{'varnish_translate'}}($vars{'i'});
+ @endperl@
+$varnish_if
static int
@@ -236,6 +248,2 @@ handle_$i(netsnmp_mib_handler *handler,
- @startperl@
- &{$vars{'varnish_translate'}}($vars{'i'});
- @endperl@
-
if (!varnish_get_vsm_data())
@@ -361,2 +369,3 @@ handle_$i(netsnmp_mib_handler *handler,
}
+$varnish_endif
@end@
@@ -545,3 +554,8 @@ init_$modulename(void)
@foreach $i scalar@
+ @startperl@
+ &{$vars{'varnish_translate'}}($vars{'i'});
+ @endperl@
+$varnish_if
const oid ${i}_oid[] = { $i.commaoid };
+$varnish_endif
@end@
@@ -569,2 +583,6 @@ init_$modulename(void)
@foreach $i scalar@
+ @startperl@
+ &{$vars{'varnish_translate'}}($vars{'i'});
+ @endperl@
+$varnish_if
netsnmp_register_scalar(
@@ -579,2 +597,3 @@ init_$modulename(void)
));
+$varnish_endif
@end@
diff --git a/src/vcli.c b/src/vcli.c
index 736d9b3..c204cf3 100644
--- a/src/vcli.c
+++ b/src/vcli.c
@@ -441,3 +441,3 @@ vcli_connect(struct VSM_data *vd, struct vcli_conn *conn)
}
- DEBUGMSGTL(("varnish_mib:vcli", "-T '%s'\n", vt.b));
+ DEBUGMSGTL(("varnish_mib:vcli", "-T '%s'\n", (char*) vt.b));
@@ -491,3 +491,3 @@ vcli_connect(struct VSM_data *vd, struct vcli_conn *conn)
}
- DEBUGMSGTL(("varnish_mib:vcli", "-S '%s'\n", vt.b));
+ DEBUGMSGTL(("varnish_mib:vcli", "-S '%s'\n", (char*) vt.b));
s = strdup(vt.b);

Return to:

Send suggestions and report system problems to the System administrator.