| 
17 | 17 | import io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdk;  | 
18 | 18 | import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;  | 
19 | 19 | import java.io.InputStream;  | 
20 |  | -import java.nio.file.Files;  | 
21 |  | -import java.nio.file.Paths;  | 
 | 20 | +import java.net.URL;  | 
22 | 21 | import java.time.Duration;  | 
23 | 22 | import java.util.List;  | 
24 | 23 | 
 
  | 
@@ -81,10 +80,15 @@ private static void buildFromDefaultRules(  | 
81 | 80 |   private static void buildFromUserRules(  | 
82 | 81 |       MetricConfiguration conf, ConfigProperties configProperties) {  | 
83 | 82 |     List<String> configFiles = configProperties.getList("otel.jmx.config");  | 
 | 83 | +    String configFileUrlString;  | 
84 | 84 |     for (String configFile : configFiles) {  | 
85 |  | -      JmxMetricInsight.getLogger().log(FINE, "JMX config file name: {0}", configFile);  | 
 | 85 | +      configFileUrlString = configFile;  | 
 | 86 | +      if (configFile != null && !configFile.contains("://")) {  | 
 | 87 | +        configFileUrlString = "file://" + configFile;  | 
 | 88 | +      }  | 
 | 89 | +      JmxMetricInsight.getLogger().log(FINE, "JMX config file name: {0}", configFileUrlString);  | 
86 | 90 |       RuleParser parserInstance = RuleParser.get();  | 
87 |  | -      try (InputStream inputStream = Files.newInputStream(Paths.get(configFile))) {  | 
 | 91 | +      try (InputStream inputStream = new URL(configFileUrlString).openStream()) {  | 
88 | 92 |         parserInstance.addMetricDefsTo(conf, inputStream, configFile);  | 
89 | 93 |       } catch (Exception e) {  | 
90 | 94 |         // yaml parsing errors are caught and logged inside of addMetricDefsTo  | 
 | 
0 commit comments