我正在开发一个进行音频识别的 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( ??? );