public static Map parseSinkProperties()

in spark-operator/src/main/java/org/apache/spark/k8s/operator/metrics/MetricsSystemFactory.java [61:86]


  public static Map<String, MetricsSystem.SinkProperties> parseSinkProperties(
      Properties metricsProperties) {
    Map<String, MetricsSystem.SinkProperties> propertiesMap = new HashMap<>();
    // e.g: "sink.graphite.class"="org.apache.spark.metrics.sink.ConsoleSink"
    Enumeration<?> valueEnumeration = metricsProperties.propertyNames();
    while (valueEnumeration.hasMoreElements()) {
      String key = (String) valueEnumeration.nextElement();
      int firstDotIndex = StringUtils.ordinalIndexOf(key, ".", 1);
      int secondDotIndex = StringUtils.ordinalIndexOf(key, ".", 2);
      if (key.startsWith(SINK)) {
        String shortName = key.substring(firstDotIndex + 1, secondDotIndex);
        MetricsSystem.SinkProperties sinkProperties =
            propertiesMap.getOrDefault(shortName, new MetricsSystem.SinkProperties());
        if (key.endsWith(CLASS)) {
          sinkProperties.setClassName(metricsProperties.getProperty(key));
        } else {
          sinkProperties
              .getProperties()
              .put(key.substring(secondDotIndex + 1), metricsProperties.getProperty(key));
        }
        propertiesMap.put(shortName, sinkProperties);
      }
    }
    sinkPropertiesSanityCheck(propertiesMap);
    return propertiesMap;
  }