docs: @Override
    public TimelineMetric druidEventToTimelineMetric(ServiceMetricEvent serviceMetricEvent)
    {
      if (!this.isInWhiteList(serviceMetricEvent)) {
        return null;
      }
      final ImmutableList.Builder<String> metricNameBuilder = new ImmutableList.Builder<>();
      if (!Strings.isNullOrEmpty(namespacePrefix)) {
        metricNameBuilder.add(namespacePrefix);
      }
      metricNameBuilder.add(AmbariMetricsEmitter.sanitize(serviceMetricEvent.getService()));
      metricNameBuilder.addAll(this.getOrderedDimValues(serviceMetricEvent));
      metricNameBuilder.add(AmbariMetricsEmitter.sanitize(serviceMetricEvent.getMetric()));
  
      TimelineMetric metric = new TimelineMetric();
      metric.setMetricName(Joiner.on(".").join(metricNameBuilder.build()));
      metric.setAppId(appName);
      metric.setHostName(serviceMetricEvent.getHost());
      metric.setType(serviceMetricEvent.getFeed());
      metric.setInstanceId(serviceMetricEvent.getService());
      long ts = serviceMetricEvent.getCreatedTime().getMillis();
      metric.setStartTime(ts);
      metric.setTimestamp(ts);
      metric.getMetricValues().put(ts, serviceMetricEvent.getValue().doubleValue());
      return metric;
    }