in service/src/main/scala/org/apache/celeborn/common/metrics/sink/JsonServlet.scala [241:338]
def recordTimer(
absSource: AbstractSource,
nt: NamedTimer,
metricDatas: ArrayBuffer[MetricData]): Unit = {
val timestamp = System.currentTimeMillis
val labelNames = new ArrayBuffer[String]
val labelValues = new ArrayBuffer[String]
nt.labels.map { case (k, v) =>
labelNames += k
labelValues += v
}
val snapshot = nt.timer.getSnapshot
updateInnerMetrics(
absSource,
MetricData(s"${nt.name}_Count", nt.timer.getCount, timestamp, labelNames, labelValues),
metricDatas)
updateInnerMetrics(
absSource,
MetricData(
s"${nt.name}_Max",
absSource.reportNanosAsMills(snapshot.getMax),
timestamp,
labelNames,
labelValues),
metricDatas)
updateInnerMetrics(
absSource,
MetricData(
s"${nt.name}_Mean",
absSource.reportNanosAsMills(snapshot.getMean),
timestamp,
labelNames,
labelValues),
metricDatas)
updateInnerMetrics(
absSource,
MetricData(
s"${nt.name}_Min",
absSource.reportNanosAsMills(snapshot.getMin),
timestamp,
labelNames,
labelValues),
metricDatas)
updateInnerMetrics(
absSource,
MetricData(
s"${nt.name}_50thPercentile",
absSource.reportNanosAsMills(snapshot.getMedian),
timestamp,
labelNames,
labelValues),
metricDatas)
updateInnerMetrics(
absSource,
MetricData(
s"${nt.name}_75thPercentile",
absSource.reportNanosAsMills(snapshot.get75thPercentile),
timestamp,
labelNames,
labelValues),
metricDatas)
updateInnerMetrics(
absSource,
MetricData(
s"${nt.name}_95thPercentile",
absSource.reportNanosAsMills(snapshot.get95thPercentile),
timestamp,
labelNames,
labelValues),
metricDatas)
updateInnerMetrics(
absSource,
MetricData(
s"${nt.name}_98thPercentile",
absSource.reportNanosAsMills(snapshot.get98thPercentile),
timestamp,
labelNames,
labelValues),
metricDatas)
updateInnerMetrics(
absSource,
MetricData(
s"${nt.name}_99thPercentile",
absSource.reportNanosAsMills(snapshot.get99thPercentile),
timestamp,
labelNames,
labelValues),
metricDatas)
updateInnerMetrics(
absSource,
MetricData(
s"${nt.name}_999thPercentile",
absSource.reportNanosAsMills(snapshot.get999thPercentile),
timestamp,
labelNames,
labelValues),
metricDatas)
}