我正在开发一个执行音频识别的java应用程序。我需要知道已识别数据包的平均数量,但是在应用程序范围内,而不是进程范围。识别过程结束后,它会返回应用程序收到的数据包数量和识别的数据包数量(应用程序实际处理的数据包)。
final int receivedPackets = stats.getReceivedPacketsCount();
final int recognizedPackets = stats.getRecognizedPacketsCount();
请考虑以下示例:
Process 1
Received packets - 10
Recognized packets - 4
Avg Recog packets - 0,4 (recognized / received)
Process 2
Received packets - 10
Recognized packets - 6
Avg Recog packets - 0,6
Total avg recog packets = avg(0,4 + 0,6) = 0,5
问题是,我尝试使用直方图指标类型,但它只接受更新方法中的int
或long
值。
我也试过使用RatioGauge,但它没有更新'方法,每次要更新值时都需要取消注册并注册它,从而丢失历史记录。
那么,我该如何公开这个十进制值?
metricRegistry.histogram("AvgRecognizedPackets").update( ??? );