Add a configurable "significant error" metric
[vpp.git] / gmod / gmod / mod_vpp.c
index c28f1a5..4a82ca7 100644 (file)
@@ -70,7 +70,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 +108,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 +135,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}
 };