add verifier stats
This commit is contained in:
parent
06aaebadc4
commit
95d3897971
@ -19,7 +19,7 @@ deHottisSmmapdMIB MODULE-IDENTITY
|
|||||||
"
|
"
|
||||||
::= { deHottis 2 }
|
::= { deHottis 2 }
|
||||||
|
|
||||||
dhsMIBObjects OBJECT IDENTIFIER ::= { deHottisSmmapdMIB 1 }
|
dhsSmmapdStats OBJECT IDENTIFIER ::= { deHottisSmmapdMIB 1 }
|
||||||
|
|
||||||
dhsNumber1 OBJECT-TYPE
|
dhsNumber1 OBJECT-TYPE
|
||||||
SYNTAX Counter32
|
SYNTAX Counter32
|
||||||
@ -27,7 +27,7 @@ dhsNumber1 OBJECT-TYPE
|
|||||||
STATUS current
|
STATUS current
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
"number1"
|
"number1"
|
||||||
::= { dhsMIBObjects 1 }
|
::= { dhsSmmapdStats 1 }
|
||||||
|
|
||||||
|
|
||||||
DhsServerStat ::=
|
DhsServerStat ::=
|
||||||
@ -53,7 +53,7 @@ dhsServerStat OBJECT-TYPE
|
|||||||
STATUS current
|
STATUS current
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
"Statistics of the server"
|
"Statistics of the server"
|
||||||
::= { dhsMIBObjects 2 }
|
::= { dhsSmmapdStats 2 }
|
||||||
|
|
||||||
|
|
||||||
dhsAccepted OBJECT-TYPE
|
dhsAccepted OBJECT-TYPE
|
||||||
@ -161,6 +161,127 @@ dhsNetStringFailure OBJECT-TYPE
|
|||||||
::= { dhsServerStat 13 }
|
::= { dhsServerStat 13 }
|
||||||
|
|
||||||
|
|
||||||
|
DhsVerifierStat ::=
|
||||||
|
SEQUENCE {
|
||||||
|
dhsVCacheEntries Integer32,
|
||||||
|
dhsVRunningWorkerThreads Integer32,
|
||||||
|
dhsVWorkerThreads Counter32,
|
||||||
|
dhsVFailedWorkerThreads Counter32,
|
||||||
|
dhsVTimedOutWorkerThreads Counter32,
|
||||||
|
dhsVRunningCheckerThreads Integer32,
|
||||||
|
dhsVCheckerThreads Counter32,
|
||||||
|
dhsVFailedCheckerThreads Counter32,
|
||||||
|
dhsVAnsweredFromCache Counter32,
|
||||||
|
dhsVReturnedOK Counter32,
|
||||||
|
dhsVReturnedNOK Counter32,
|
||||||
|
dhsVReturnedTNOK Counter32
|
||||||
|
}
|
||||||
|
|
||||||
|
dhsVerifierStat OBJECT-TYPE
|
||||||
|
SYNTAX DhsVerifierStat
|
||||||
|
MAX-ACCESS read-only
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"Statistics of the verifier"
|
||||||
|
::= { dhsSmmapdStats 3 }
|
||||||
|
|
||||||
|
|
||||||
|
dhsVCacheEntries OBJECT-TYPE
|
||||||
|
SYNTAX Integer32
|
||||||
|
MAX-ACCESS read-only
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"Entries in verifier cache"
|
||||||
|
::= { dhsVerifierStat 1 }
|
||||||
|
|
||||||
|
dhsVRunningWorkerThreads OBJECT-TYPE
|
||||||
|
SYNTAX Integer32
|
||||||
|
MAX-ACCESS read-only
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"Running verifier worker threads"
|
||||||
|
::= { dhsVerifierStat 2 }
|
||||||
|
|
||||||
|
dhsVWorkerThreads OBJECT-TYPE
|
||||||
|
SYNTAX Counter32
|
||||||
|
MAX-ACCESS read-only
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"verifier worker threads"
|
||||||
|
::= { dhsVerifierStat 3 }
|
||||||
|
|
||||||
|
dhsVFailedWorkerThreads OBJECT-TYPE
|
||||||
|
SYNTAX Counter32
|
||||||
|
MAX-ACCESS read-only
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"failed to start verifier worker threads"
|
||||||
|
::= { dhsVerifierStat 4 }
|
||||||
|
|
||||||
|
dhsVTimedOutWorkerThreads OBJECT-TYPE
|
||||||
|
SYNTAX Counter32
|
||||||
|
MAX-ACCESS read-only
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"timed out verifier worker threads"
|
||||||
|
::= { dhsVerifierStat 5 }
|
||||||
|
|
||||||
|
dhsVRunningCheckerThreads OBJECT-TYPE
|
||||||
|
SYNTAX Integer32
|
||||||
|
MAX-ACCESS read-only
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"Running verifier checker threads"
|
||||||
|
::= { dhsVerifierStat 6 }
|
||||||
|
|
||||||
|
dhsVCheckerThreads OBJECT-TYPE
|
||||||
|
SYNTAX Counter32
|
||||||
|
MAX-ACCESS read-only
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"verifier checker threads"
|
||||||
|
::= { dhsVerifierStat 7 }
|
||||||
|
|
||||||
|
dhsVFailedCheckerThreads OBJECT-TYPE
|
||||||
|
SYNTAX Counter32
|
||||||
|
MAX-ACCESS read-only
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"failed to start verifier checker threads"
|
||||||
|
::= { dhsVerifierStat 8 }
|
||||||
|
|
||||||
|
dhsVAnsweredFromCache OBJECT-TYPE
|
||||||
|
SYNTAX Counter32
|
||||||
|
MAX-ACCESS read-only
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"answers taken directly from cache"
|
||||||
|
::= { dhsVerifierStat 9 }
|
||||||
|
|
||||||
|
dhsVReturnedOK OBJECT-TYPE
|
||||||
|
SYNTAX Counter32
|
||||||
|
MAX-ACCESS read-only
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"verifier returned OK"
|
||||||
|
::= { dhsVerifierStat 10 }
|
||||||
|
|
||||||
|
dhsVReturnedNOK OBJECT-TYPE
|
||||||
|
SYNTAX Counter32
|
||||||
|
MAX-ACCESS read-only
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"verifier returned NOK"
|
||||||
|
::= { dhsVerifierStat 11 }
|
||||||
|
|
||||||
|
dhsVReturnedTNOK OBJECT-TYPE
|
||||||
|
SYNTAX Counter32
|
||||||
|
MAX-ACCESS read-only
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"verifier returned TNOK"
|
||||||
|
::= { dhsVerifierStat 12 }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
END
|
END
|
||||||
|
@ -6,7 +6,7 @@ port = 8887
|
|||||||
; plugin_dir = /home/who/Sources/sf/smmapdfw
|
; plugin_dir = /home/who/Sources/sf/smmapdfw
|
||||||
; plugins = test_worker1 test_worker2 verifier cyruscheck lua_worker
|
; plugins = test_worker1 test_worker2 verifier cyruscheck lua_worker
|
||||||
plugins = verifier
|
plugins = verifier
|
||||||
enable_stats = 1
|
enable_stats = 0
|
||||||
enable_snmp = 1
|
enable_snmp = 1
|
||||||
|
|
||||||
[snmp]
|
[snmp]
|
||||||
|
@ -1,3 +1,25 @@
|
|||||||
|
|
||||||
|
/*
|
||||||
|
Copyright (C) 2004, Wolfgang Hottgenroth
|
||||||
|
|
||||||
|
This file is part of smmapdfw.
|
||||||
|
|
||||||
|
smmapdfw is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
smmapdfw is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||||
|
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with smmapdfw. If not, write to the Free Software Foundation, 59
|
||||||
|
Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
#if ENABLE_NETSNMP==1
|
#if ENABLE_NETSNMP==1
|
||||||
@ -5,6 +27,8 @@
|
|||||||
#include <net-snmp/net-snmp-includes.h>
|
#include <net-snmp/net-snmp-includes.h>
|
||||||
#include <net-snmp/agent/net-snmp-agent-includes.h>
|
#include <net-snmp/agent/net-snmp-agent-includes.h>
|
||||||
|
|
||||||
|
#include <syslog.h>
|
||||||
|
|
||||||
#include "stats.h"
|
#include "stats.h"
|
||||||
#include "smmapd.h"
|
#include "smmapd.h"
|
||||||
|
|
||||||
@ -51,13 +75,11 @@ handle_it(netsnmp_mib_handler *handler,
|
|||||||
u_char type)
|
u_char type)
|
||||||
{
|
{
|
||||||
int i, cnt, value;
|
int i, cnt, value;
|
||||||
printf("*** handler: %s\n", reginfo->handlerName);
|
|
||||||
for (i=0; i<num_var_cnt_map; i++)
|
for (i=0; i<num_var_cnt_map; i++)
|
||||||
if (0 == strcmp(reginfo->handlerName, var_cnt_map[i].var)) {
|
if (0 == strcmp(reginfo->handlerName, var_cnt_map[i].var)) {
|
||||||
cnt = var_cnt_map[i].cnt;
|
cnt = var_cnt_map[i].cnt;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
printf("*** cnt: %d\n", cnt);
|
|
||||||
|
|
||||||
switch(reqinfo->mode) {
|
switch(reqinfo->mode) {
|
||||||
case MODE_GET:
|
case MODE_GET:
|
||||||
@ -99,7 +121,7 @@ void map_var_cnt(int cnt, char* var) {
|
|||||||
num_var_cnt_map++;
|
num_var_cnt_map++;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define NETSNMP_REGISTER_SCALAR(A, B, C) netsnmp_register_scalar(netsnmp_create_handler_registration(#A, B, A##_oid, OID_LENGTH(A##_oid), HANDLER_CAN_RONLY)); map_var_cnt(C, #A); printf("registered: %s\n", #A)
|
#define NETSNMP_REGISTER_SCALAR(A, B, C) netsnmp_register_scalar(netsnmp_create_handler_registration(#A, B, A##_oid, OID_LENGTH(A##_oid), HANDLER_CAN_RONLY)); map_var_cnt(C, #A)
|
||||||
|
|
||||||
void
|
void
|
||||||
init_dhsMIBObjects(void)
|
init_dhsMIBObjects(void)
|
||||||
@ -119,6 +141,19 @@ init_dhsMIBObjects(void)
|
|||||||
static oid dhsTimeoutFailure_oid[] = { 1,3,6,1,4,1,9676,2,1,2,12 };
|
static oid dhsTimeoutFailure_oid[] = { 1,3,6,1,4,1,9676,2,1,2,12 };
|
||||||
static oid dhsNetStringFailure_oid[] = { 1,3,6,1,4,1,9676,2,1,2,13 };
|
static oid dhsNetStringFailure_oid[] = { 1,3,6,1,4,1,9676,2,1,2,13 };
|
||||||
|
|
||||||
|
static oid dhsVCacheEntries_oid[] = { 1,3,6,1,4,1,9676,2,1,3,1 };
|
||||||
|
static oid dhsVRunningWorkerThreads_oid[] = { 1,3,6,1,4,1,9676,2,1,3,2 };
|
||||||
|
static oid dhsVWorkerThreads_oid[] = { 1,3,6,1,4,1,9676,2,1,3,3 };
|
||||||
|
static oid dhsVFailedWorkerThreads_oid[] = { 1,3,6,1,4,1,9676,2,1,3,4 };
|
||||||
|
static oid dhsVTimedOutWorkerThreads_oid[] = { 1,3,6,1,4,1,9676,2,1,3,5 };
|
||||||
|
static oid dhsVRunningCheckerThreads_oid[] = { 1,3,6,1,4,1,9676,2,1,3,6 };
|
||||||
|
static oid dhsVCheckerThreads_oid[] = { 1,3,6,1,4,1,9676,2,1,3,7 };
|
||||||
|
static oid dhsVFailedCheckerThreads_oid[] = { 1,3,6,1,4,1,9676,2,1,3,8 };
|
||||||
|
static oid dhsVAnsweredFromCache_oid[] = { 1,3,6,1,4,1,9676,2,1,3,9 };
|
||||||
|
static oid dhsVReturnedOK_oid[] = { 1,3,6,1,4,1,9676,2,1,3,10 };
|
||||||
|
static oid dhsVReturnedNOK_oid[] = { 1,3,6,1,4,1,9676,2,1,3,11 };
|
||||||
|
static oid dhsVReturnedTNOK_oid[] = { 1,3,6,1,4,1,9676,2,1,3,12 };
|
||||||
|
|
||||||
DEBUGMSGTL(("dhsMIBObjects", "Initializing\n"));
|
DEBUGMSGTL(("dhsMIBObjects", "Initializing\n"));
|
||||||
|
|
||||||
NETSNMP_REGISTER_SCALAR(dhsNumber1, handle_number1, 0);
|
NETSNMP_REGISTER_SCALAR(dhsNumber1, handle_number1, 0);
|
||||||
@ -136,10 +171,24 @@ init_dhsMIBObjects(void)
|
|||||||
NETSNMP_REGISTER_SCALAR(dhsTimeoutFailure, handle_counter32, SMM_TIMEOUT_NOK+STAT_CNT_OFFSET);
|
NETSNMP_REGISTER_SCALAR(dhsTimeoutFailure, handle_counter32, SMM_TIMEOUT_NOK+STAT_CNT_OFFSET);
|
||||||
NETSNMP_REGISTER_SCALAR(dhsNetStringFailure, handle_counter32, SMM_NETSTRING_UNPARSABLE+STAT_CNT_OFFSET);
|
NETSNMP_REGISTER_SCALAR(dhsNetStringFailure, handle_counter32, SMM_NETSTRING_UNPARSABLE+STAT_CNT_OFFSET);
|
||||||
|
|
||||||
|
NETSNMP_REGISTER_SCALAR(dhsVCacheEntries, handle_integer32, STAT_CNT_VERIFIER_CACHE);
|
||||||
|
NETSNMP_REGISTER_SCALAR(dhsVRunningWorkerThreads, handle_integer32, STAT_CNT_VERIFIER_WORKER_R_THREADS);
|
||||||
|
NETSNMP_REGISTER_SCALAR(dhsVWorkerThreads, handle_counter32, STAT_CNT_VERIFIER_WORKER_THREADS);
|
||||||
|
NETSNMP_REGISTER_SCALAR(dhsVFailedWorkerThreads, handle_counter32, STAT_CNT_VERIFIER_WORKER_THREADS_FAILED);
|
||||||
|
NETSNMP_REGISTER_SCALAR(dhsVTimedOutWorkerThreads, handle_counter32, STAT_CNT_VERIFIER_WORKER_THREADS_TIMEOUT);
|
||||||
|
NETSNMP_REGISTER_SCALAR(dhsVRunningCheckerThreads, handle_integer32, STAT_CNT_VERIFIER_CHECKER_R_THREADS);
|
||||||
|
NETSNMP_REGISTER_SCALAR(dhsVCheckerThreads, handle_counter32, STAT_CNT_VERIFIER_CHECKER_THREADS);
|
||||||
|
NETSNMP_REGISTER_SCALAR(dhsVFailedCheckerThreads, handle_counter32, STAT_CNT_VERIFIER_CHECKER_THREADS_FAILED);
|
||||||
|
NETSNMP_REGISTER_SCALAR(dhsVAnsweredFromCache, handle_counter32, STAT_CNT_VERIFIER_ANSWERED_FROM_CACHE);
|
||||||
|
NETSNMP_REGISTER_SCALAR(dhsVReturnedOK, handle_counter32, STAT_CNT_VERIFIER_RETURNED_OK);
|
||||||
|
NETSNMP_REGISTER_SCALAR(dhsVReturnedNOK, handle_counter32, STAT_CNT_VERIFIER_RETURNED_NOK);
|
||||||
|
NETSNMP_REGISTER_SCALAR(dhsVReturnedTNOK, handle_counter32, STAT_CNT_VERIFIER_RETURNED_TNOK);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void snmp_subagent_main () {
|
void snmp_subagent_main () {
|
||||||
snmp_enable_stderrlog();
|
snmp_disable_log();
|
||||||
netsnmp_ds_set_boolean(NETSNMP_DS_APPLICATION_ID, NETSNMP_DS_AGENT_ROLE, 1);
|
netsnmp_ds_set_boolean(NETSNMP_DS_APPLICATION_ID, NETSNMP_DS_AGENT_ROLE, 1);
|
||||||
init_agent("smmapd_subagent");
|
init_agent("smmapd_subagent");
|
||||||
init_dhsMIBObjects();
|
init_dhsMIBObjects();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user