X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=gmod%2Fgmod%2Fmod_vpp.c;h=71479d2afba9ff1e6f1f912c72db36623a8737a6;hb=f15866146adcf3273da6f29f05d42193c7af4b07;hp=c28f1a51c598878e2341726394f2b7b4a4a1bf6a;hpb=fc659e711520630d7f1f1ece3d72ffb398d5cef6;p=vpp.git diff --git a/gmod/gmod/mod_vpp.c b/gmod/gmod/mod_vpp.c index c28f1a51c59..71479d2afba 100644 --- a/gmod/gmod/mod_vpp.c +++ b/gmod/gmod/mod_vpp.c @@ -21,7 +21,7 @@ #include #include #include -#include +#include #include mmodule vpp_module; @@ -33,21 +33,25 @@ static int vpp_metric_init (apr_pool_t *p) apr_array_header_t *list_params = vpp_module.module_params_list; mmparam *params; char *chroot_path = 0; + svmdb_map_args_t _ma, *ma= &_ma; int i; if (str_params) { - debug_msg("[mod_vpp]Received string params: %s", str_params); + clib_warning("[mod_vpp]Received string params: %s", str_params); } /* Multiple name/value pair parameters. */ if (list_params) { - debug_msg("[mod_vpp]Received following params list: "); + clib_warning("[mod_vpp]Received following params list: "); params = (mmparam*) list_params->elts; for(i=0; i< list_params->nelts; i++) { - debug_msg("\tParam: %s = %s", params[i].name, params[i].value); + clib_warning("\tParam: %s = %s", params[i].name, params[i].value); } } - svmdb_client = svmdb_map_chroot (chroot_path); + memset (ma, 0, sizeof (*ma)); + ma->root_path = (char *)chroot_path; + + svmdb_client = svmdb_map (ma); /* Initialize the metadata storage for each of the metrics and then @@ -70,7 +74,7 @@ static g_val_t vpp_metric_handler (int metric_index) { g_val_t val; pid_t *vpp_pidp; - f64 *vector_ratep, *vpp_rx_ratep; + f64 *vector_ratep, *vpp_rx_ratep, *sig_error_ratep; switch (metric_index) { case 0: @@ -108,6 +112,16 @@ static g_val_t vpp_metric_handler (int metric_index) val.d = 0.0; break; + case 3: + sig_error_ratep = svmdb_local_get_vec_variable + (svmdb_client, "vpp_sig_error_rate", sizeof (*vector_ratep)); + if (sig_error_ratep) { + val.d = *sig_error_ratep; + vec_free (sig_error_ratep); + } else + val.d = 0.0; + break; + default: val.d = 0.0; } @@ -125,6 +139,10 @@ static Ganglia_25metric vpp_metric_info[] = {0, "Input_Rate", 100, GANGLIA_VALUE_DOUBLE, "5 sec RX rate", "both", "%.1f", UDP_HEADER_SIZE+8, "VPP Aggregate RX Rate"}, + {0, "Sig_Error_Rate", 100, GANGLIA_VALUE_DOUBLE, + "5 sec significant error rate", + "both", "%.1f", + UDP_HEADER_SIZE+8, "VPP Significant Error Rate"}, {0, NULL} };