Skip to content

Add ibm-mq-metrics #1960

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 60 commits into
base: main
Choose a base branch
from
Open

Conversation

breedx-splk
Copy link
Contributor

This is the first part of #1941. It adds a new component called ibm-mq-metrics which provides a runnable utility that can fetch metrics from IBM MQ series and emit them as otel metrics. It is based on https://github.com/signalfx/opentelemetry-ibm-mq-monitoring. This code is alpha quality.

There are a few pieces that are still missing from this PR:

  • e2e tests. We have a set of end-to-end "golden" tests that validate data using a docker-compose environment. These have not yet been added, due in part to the golden image only being available in a splunk registry (see #40721 for more info)
  • ability to run the integrationTest target. This requires running the ibm mq server as a docker container, which is not yet included.
  • workflows to run the above

@breedx-splk breedx-splk requested a review from a team June 13, 2025 22:47
@otelbot-java-contrib
Copy link
Contributor

❌ The result from spotlessApply could not be committed to the PR branch, see logs: https://github.com/open-telemetry/opentelemetry-java-contrib/actions/runs/15645359085.

@otelbot-java-contrib
Copy link
Contributor

🔧 The result from spotlessApply was committed to the PR branch.

3 similar comments
@otelbot-java-contrib
Copy link
Contributor

🔧 The result from spotlessApply was committed to the PR branch.

@otelbot-java-contrib
Copy link
Contributor

🔧 The result from spotlessApply was committed to the PR branch.

@otelbot-java-contrib
Copy link
Contributor

🔧 The result from spotlessApply was committed to the PR branch.

@breedx-splk
Copy link
Contributor Author

Ok, so I've done an update that does the following:

  • updates most metric names to include the ibm.mq namespace prefix
  • updates most attribute names to include the ibm.mq prefix
  • creates a new attributes constant class, to reduce the duplication of string constants, which is a maintainability problem.

Thanks for looking.

@mcmho
Copy link

mcmho commented Jul 23, 2025

thank you @breedx-splk for all the update! So we are waiting for @trask to give the final blessing?

@breedx-splk
Copy link
Contributor Author

thank you @breedx-splk for all the update! So we are waiting for @trask to give the final blessing?

Not necessarily @trask, but any of the approvers/maintainers of this repo.

1. Configure the IBM SSL Cipher Suite in the config.yml.
Note that, to use some CipherSuites the unrestricted policy needs to be configured in JRE.
Please visit [this link](http://www.ibm.com/support/knowledgecenter/SSYKE2_8.0.0/com.ibm.java.security.component.80.doc/security-component/sdkpolicyfiles.html)
for more details. For Oracle JRE, please update with [JCE Unlimited Strength Jurisdiction Policy](http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it would be a good idea to mention that this is not needed on oracle 9 and later and also in 8 since u161 https://www.oracle.com/java/technologies/javase/8u161-relnotes.html#JDK-8170157

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems then like it would be safe to say just "java 8 below 8u161" then right?

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8" ?>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

as far as I can tell tests don't include log4j

@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="UTF-8"?>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

as far as I can tell log4j isn't included in the fat jar

ConfigWrapper config, ScheduledExecutorService service, OpenTelemetry otel) {
MeterProvider meterProvider = otel.getMeterProvider();

Runtime.getRuntime().addShutdownHook(new Thread(service::shutdown));
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suspect that this doesn't do anything. Since the ScheduledExecutorService used here doesn't use daemon threads (and if it did then app would terminate when the main thread exits).

@breedx-splk breedx-splk requested a review from a team as a code owner July 24, 2025 21:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants