Skip to content

Commit a2f8e56

Browse files
committed
Add support for remote jmx rules files.
1 parent 8eef5ca commit a2f8e56

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

instrumentation/jmx-metrics/javaagent/src/main/java/io/opentelemetry/instrumentation/javaagent/jmx/JmxMetricInsightInstaller.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,7 @@
1717
import io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdk;
1818
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
1919
import java.io.InputStream;
20-
import java.nio.file.Files;
21-
import java.nio.file.Paths;
20+
import java.net.URL;
2221
import java.time.Duration;
2322
import java.util.List;
2423

@@ -81,10 +80,15 @@ private static void buildFromDefaultRules(
8180
private static void buildFromUserRules(
8281
MetricConfiguration conf, ConfigProperties configProperties) {
8382
List<String> configFiles = configProperties.getList("otel.jmx.config");
83+
String configFileUrlString;
8484
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);
8690
RuleParser parserInstance = RuleParser.get();
87-
try (InputStream inputStream = Files.newInputStream(Paths.get(configFile))) {
91+
try (InputStream inputStream = new URL(configFileUrlString).openStream()) {
8892
parserInstance.addMetricDefsTo(conf, inputStream, configFile);
8993
} catch (Exception e) {
9094
// yaml parsing errors are caught and logged inside of addMetricDefsTo

0 commit comments

Comments
 (0)