@@ -52,6 +52,9 @@ class ProgramMetrics : public Program
5252 options.add_options ()(" monitoring" ,
5353 po::bool_switch (&mOptions .monitoring ),
5454 " Toggle monitoring metrics sending" );
55+ options.add_options ()(" force-report" ,
56+ po::bool_switch (&mOptions .forceReport ),
57+ " Force report for invalid serial numbers (doesn't send monitoring metrics)" );
5558 }
5659
5760 virtual void run (const boost::program_options::variables_map& /* map*/ )
@@ -95,11 +98,15 @@ class ProgramMetrics : public Program
9598 float localClock = bar2->getLocalClock () / 1e6 ;
9699 uint32_t totalPacketsPerSecond = bar2->getTotalPacketsPerSecond (bar0->getEndpointNumber ());
97100
98- if (card.serialId .getSerial () == 0x7fffffff || card.serialId .getSerial () == 0x0 ) {
101+ if (! mOptions . forceReport && ( card.serialId .getSerial () == 0x7fffffff || card.serialId .getSerial () == 0x0 ) ) {
99102 std::cout << " Bad serial reported, bad card state, exiting" << std::endl;
100103 return ;
101104 }
102105
106+ if (mOptions .forceReport ) {
107+ mOptions .monitoring = false ; // force disable sending metrics with force
108+ }
109+
103110 if (mOptions .monitoring ) {
104111 monitoring->send (Metric{ " card" }
105112 .addValue (card.pciAddress .toString (), " pciAddress" )
@@ -150,6 +157,7 @@ class ProgramMetrics : public Program
150157 struct OptionsStruct {
151158 bool jsonOut = false ;
152159 bool monitoring = false ;
160+ bool forceReport = false ;
153161 } mOptions ;
154162};
155163
0 commit comments