Initial commit of JmxScraper code.#1
Conversation
…tandalone and can read config file.
Refactoring of JmxScraperConfigFactory. Added first unit tests.
jmx-scraper/src/main/java/io/opentelemetry/contrib/jmxscraper/JmxScraper.java
Show resolved
Hide resolved
...craper/src/main/java/io/opentelemetry/contrib/jmxscraper/config/JmxScraperConfigFactory.java
Show resolved
Hide resolved
| public JmxScraperConfig createConfigFromArgs(List<String> args) { | ||
| if (!args.isEmpty() && (args.size() != 2 || !args.get(0).equalsIgnoreCase("-config"))) { | ||
| System.out.println( | ||
| "Usage: java io.opentelemetry.contrib.jmxscraper.JmxScraper " |
There was a problem hiding this comment.
The actual command is based on java -jar as the main class is provided in the manifest. If we really want to have the original JVM command line we can get it through JMX, but I don't think it's worth the extra complexity.
There was a problem hiding this comment.
Good point. I blindly copied this code from jmx-metrics.
Also - the factory is not the place where commandline arguments should be parsed. I'll refactor it.
| props.load(is); | ||
| } catch (IOException e) { | ||
| System.out.println("Failed to read config properties from stdin: " + e.getMessage()); | ||
| System.exit(1); |
There was a problem hiding this comment.
I think it's better to keep the calls to System.exit in main and propagate IOException in the method signature (or wrap it into a ConfigurationException), otherwise that makes this code impossible to unit test.
|
|
||
| public JmxClient(JmxScraperConfig config) throws MalformedURLException { | ||
| this.url = new JMXServiceURL(config.getServiceUrl()); | ||
| ; |
jmx-scraper/src/main/java/io/opentelemetry/contrib/jmxscraper/config/JmxScraperConfig.java
Show resolved
Hide resolved
...er/src/test/java/io/opentelemetry/contrib/jmxscraper/config/JmxScraperConfigFactoryTest.java
Outdated
Show resolved
Hide resolved
...er/src/test/java/io/opentelemetry/contrib/jmxscraper/config/JmxScraperConfigFactoryTest.java
Show resolved
Hide resolved
Argument parsing moved to the main class. Argument validation now throw exception. More tests added for config factory. Created unit tests for JmxScraper class.
| import javax.management.remote.JMXServiceURL; | ||
|
|
||
| @SuppressWarnings("unused") // TODO: Temporary | ||
| public class JmxClient { |
There was a problem hiding this comment.
This will need to be replaced with the RemoteJmxClient class introduced in #2
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…elemetry#1449) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…plugin to v3.18.1 (open-telemetry#1450) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…rumentation-bom-alpha to v2.8.0-alpha (open-telemetry#1456) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Jack Berg <jberg@newrelic.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Otmar Ertl <otmar.ertl@gmail.com>
Co-authored-by: jackshirazi <jacks@fasterj.com>
…ry#1457) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
|
|
||
| Some metrics (e.g. `tomcat.sessions`) are configured to query multiple MBeans. By default, only the value in the first MBean | ||
| is recorded for the metric and all other values are dropped. To aggregate the MBean values together, set the | ||
| `otel.jmx.aggregate.across.mbeans` property to `true`. |
There was a problem hiding this comment.
This is something that we will have to add support in the instrumentation side as well.
commit b84a73e Merge: 352202f 7df9862 Author: SylvainJuge <763082+SylvainJuge@users.noreply.github.com> Date: Tue Sep 17 11:13:11 2024 +0200 Merge pull request #2 from SylvainJuge/jmx-scraper-it basic JMX client implementation + tests commit 7df9862 Author: Sylvain Juge <763082+SylvainJuge@users.noreply.github.com> Date: Tue Sep 17 11:11:50 2024 +0200 fix bad merge again commit e4a8f83 Author: Sylvain Juge <763082+SylvainJuge@users.noreply.github.com> Date: Tue Sep 17 11:10:26 2024 +0200 fix bad merge again commit dad197b Author: Sylvain Juge <763082+SylvainJuge@users.noreply.github.com> Date: Tue Sep 17 11:09:18 2024 +0200 fix bad merge commit f8a73d7 Author: Sylvain Juge <763082+SylvainJuge@users.noreply.github.com> Date: Tue Sep 17 11:08:42 2024 +0200 spotless commit eab01e9 Author: Sylvain Juge <763082+SylvainJuge@users.noreply.github.com> Date: Tue Sep 17 11:01:47 2024 +0200 spotless commit f6667dd Merge: 5b3ef9d 352202f Author: Sylvain Juge <763082+SylvainJuge@users.noreply.github.com> Date: Tue Sep 17 10:55:34 2024 +0200 Merge branch 'jmx-scrapper' of github.com:SylvainJuge/opentelemetry-java-contrib into jmx-scraper-it commit 5b3ef9d Author: Sylvain Juge <763082+SylvainJuge@users.noreply.github.com> Date: Tue Sep 17 10:51:11 2024 +0200 add TODOs commit 352202f Merge: 5a82aac 40a2591 Author: SylvainJuge <763082+SylvainJuge@users.noreply.github.com> Date: Tue Sep 17 10:50:50 2024 +0200 Merge pull request #1 from robsunday/jmx-scrapper Initial commit of JmxScraper code. commit 40a2591 Author: jack-berg <34418638+jack-berg@users.noreply.github.com> Date: Mon Sep 16 16:05:50 2024 -0500 Add declarative config support for RuleBasedRoutingSampler (open-telemetry#1440) commit 6d39e93 Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Date: Mon Sep 16 10:40:16 2024 -0700 Update dependency com.uber.nullaway:nullaway to v0.11.3 (open-telemetry#1457) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> commit eb5dc6f Author: Bruno Baptista <brunobat@gmail.com> Date: Mon Sep 16 18:26:53 2024 +0100 Fix native mode error cause by static init of random (open-telemetry#862) commit 5ffa348 Author: jack-berg <34418638+jack-berg@users.noreply.github.com> Date: Mon Sep 16 12:23:41 2024 -0500 Add declarative config support for aws xray propagators (open-telemetry#1442) commit 151b744 Author: SylvainJuge <763082+SylvainJuge@users.noreply.github.com> Date: Mon Sep 16 19:23:19 2024 +0200 add span stacktrace config option (open-telemetry#1414) Co-authored-by: jackshirazi <jacks@fasterj.com> commit 9ee5fb1 Author: Yury Bubnov <ybubnov@gmail.com> Date: Mon Sep 16 10:18:51 2024 -0700 Issue-1034 Short XRay Trace (open-telemetry#1036) commit 11a2e1a Author: Jeffrey Chien <chienjef@amazon.com> Date: Mon Sep 16 13:18:10 2024 -0400 Fix Tomcat metric definitions to aggregate multiple MBeans. (open-telemetry#1366) commit 9fa44be Author: Pranav Sharma <sharmapranav@google.com> Date: Mon Sep 16 11:22:32 2024 -0400 Fix incorrect cloud.platform value for GCF (open-telemetry#1454) commit 11f2111 Author: Peter Findeisen <pfindeis@cisco.com> Date: Mon Sep 16 08:21:46 2024 -0700 Composite Samplers prototype (open-telemetry#1443) Co-authored-by: Otmar Ertl <otmar.ertl@gmail.com> commit b3386de Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Date: Mon Sep 16 08:20:44 2024 -0700 Update plugin com.squareup.wire to v5.1.0 (open-telemetry#1452) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> commit 27b631d Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Date: Mon Sep 16 08:20:21 2024 -0700 Update errorProneVersion to v2.32.0 (open-telemetry#1453) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> commit 791df4b Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Date: Mon Sep 16 09:50:03 2024 -0500 Update dependency io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha to v2.8.0-alpha (open-telemetry#1456) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Jack Berg <jberg@newrelic.com> commit 19357e6 Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Date: Tue Sep 10 15:20:46 2024 -0700 Update dependency com.gradle.enterprise:com.gradle.enterprise.gradle.plugin to v3.18.1 (open-telemetry#1450) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> commit 460470b Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Date: Tue Sep 10 15:20:23 2024 -0700 Update plugin com.gradle.develocity to v3.18.1 (open-telemetry#1451) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> commit b45cdab Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Date: Tue Sep 10 12:32:56 2024 +0300 Update dependency com.linecorp.armeria:armeria-bom to v1.30.1 (open-telemetry#1449) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> commit d36106e Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Date: Tue Sep 10 09:11:26 2024 +0300 Update micrometer packages to v1.13.4 (open-telemetry#1448) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> commit fb25c79 Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Date: Mon Sep 9 15:44:53 2024 +0300 Update dependency gradle to v8.10.1 (open-telemetry#1447) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> commit f847561 Author: robsunday <rniedziela@splunk.com> Date: Tue Sep 17 09:22:21 2024 +0200 Code review changes: Argument parsing moved to the main class. Argument validation now throw exception. More tests added for config factory. Created unit tests for JmxScraper class. commit 03788ff Author: Sylvain Juge <763082+SylvainJuge@users.noreply.github.com> Date: Mon Sep 16 17:26:12 2024 +0200 add TODO for testing server SSL support commit a3fbeb5 Author: Sylvain Juge <763082+SylvainJuge@users.noreply.github.com> Date: Mon Sep 16 17:08:16 2024 +0200 add TODO to enable server-side SSL commit 1619595 Author: Sylvain Juge <763082+SylvainJuge@users.noreply.github.com> Date: Mon Sep 16 16:59:17 2024 +0200 wip commit 164679f Author: robsunday <rniedziela@splunk.com> Date: Wed Sep 11 12:34:12 2024 +0200 Cleanup of config. Refactoring of JmxScraperConfigFactory. Added first unit tests. commit 165fcb8 Author: robsunday <rniedziela@splunk.com> Date: Tue Sep 10 12:36:29 2024 +0200 Initial commit of JmxScraper code. Application compiles and runs as standalone and can read config file.
refactor in a single method + reuse available port detect
In scope:
In few places I added temporary @SuppressWarnings. They will be removed after later on.
I will get rid of prometheus HTTP endpoint related code in next PR