def recordHistogram()

in service/src/main/scala/org/apache/celeborn/common/metrics/sink/JsonServlet.scala [137:239]


  def recordHistogram(
      absSource: AbstractSource,
      nh: NamedHistogram,
      metricDatas: ArrayBuffer[MetricData]): Unit = {
    val timestamp = System.currentTimeMillis
    val labelNames = new ArrayBuffer[String]
    val labelValues = new ArrayBuffer[String]
    nh.labels.map { case (k, v) =>
      labelNames += k
      labelValues += v
    }
    val snapshot = nh.histogram.getSnapshot
    updateInnerMetrics(
      absSource,
      MetricData(
        s"${nh.name}_Count",
        nh.histogram.getCount,
        timestamp,
        labelNames,
        labelValues),
      metricDatas)
    updateInnerMetrics(
      absSource,
      MetricData(
        s"${nh.name}_Max",
        absSource.reportNanosAsMills(snapshot.getMax),
        timestamp,
        labelNames,
        labelValues),
      metricDatas)
    updateInnerMetrics(
      absSource,
      MetricData(
        s"${nh.name}_Mean",
        absSource.reportNanosAsMills(snapshot.getMean),
        timestamp,
        labelNames,
        labelValues),
      metricDatas)
    updateInnerMetrics(
      absSource,
      MetricData(
        s"${nh.name}_Min",
        absSource.reportNanosAsMills(snapshot.getMin),
        timestamp,
        labelNames,
        labelValues),
      metricDatas)
    updateInnerMetrics(
      absSource,
      MetricData(
        s"${nh.name}_50thPercentile",
        absSource.reportNanosAsMills(snapshot.getMedian),
        timestamp,
        labelNames,
        labelValues),
      metricDatas)
    updateInnerMetrics(
      absSource,
      MetricData(
        s"${nh.name}_75thPercentile",
        absSource.reportNanosAsMills(snapshot.get75thPercentile),
        timestamp,
        labelNames,
        labelValues),
      metricDatas)
    updateInnerMetrics(
      absSource,
      MetricData(
        s"${nh.name}_95thPercentile",
        absSource.reportNanosAsMills(snapshot.get95thPercentile),
        timestamp,
        labelNames,
        labelValues),
      metricDatas)
    updateInnerMetrics(
      absSource,
      MetricData(
        s"${nh.name}_98thPercentile",
        absSource.reportNanosAsMills(snapshot.get98thPercentile),
        timestamp,
        labelNames,
        labelValues),
      metricDatas)
    updateInnerMetrics(
      absSource,
      MetricData(
        s"${nh.name}_99thPercentile",
        absSource.reportNanosAsMills(snapshot.get99thPercentile),
        timestamp,
        labelNames,
        labelValues),
      metricDatas)
    updateInnerMetrics(
      absSource,
      MetricData(
        s"${nh.name}_999thPercentile",
        absSource.reportNanosAsMills(snapshot.get999thPercentile),
        timestamp,
        labelNames,
        labelValues),
      metricDatas)
  }