def recordTimer()

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)
  }