diff --git a/instrumentation/jmx/javaagent/README.md b/instrumentation/jmx-metrics/javaagent/README.md similarity index 92% rename from instrumentation/jmx/javaagent/README.md rename to instrumentation/jmx-metrics/javaagent/README.md index c2c3b3e1e650..75f8788e79ef 100644 --- a/instrumentation/jmx/javaagent/README.md +++ b/instrumentation/jmx-metrics/javaagent/README.md @@ -96,7 +96,7 @@ rules: - bean: java.lang:name=*,type=MemoryPool label: pool: param(name) - type: attrib(Type) + type: attr(Type) mapping: Usage.used: metric: my.own.jvm.memory.pool.used @@ -110,7 +110,7 @@ rules: unit: By ``` -The ObjectName pattern will match a number of MBeans, each for a different memory pool. The number and names of available memory pools, however, will be known only at runtime. To report values for all actual memory pools using only two metrics, we use metric attributes (referenced by the configuration file as `label`s). The first metric attribute, named `pool` will have its value derived from the ObjectName parameter `name` - which corresponds to the memory pool name. The second metric attribute, named `type` will get its value from the corresponding MBean attribute named `Type`. The values of this attribute are strings `HEAP` or `NON_HEAP` classifying the corresponding memory pool. Here the definition of the metric attributes is shared by both metrics, but it is also possible to define them at the individual metric level. +The ObjectName pattern will match a number of MBeans, each for a different memory pool. The number and names of available memory pools, however, will be known only at runtime. To report values for all actual memory pools using only two metrics, we use metric attributes (referenced by the configuration file as `label` elements). The first metric attribute, named `pool` will have its value derived from the ObjectName parameter `name` - which corresponds to the memory pool name. The second metric attribute, named `type` will get its value from the corresponding MBean attribute named `Type`. The values of this attribute are strings `HEAP` or `NON_HEAP` classifying the corresponding memory pool. Here the definition of the metric attributes is shared by both metrics, but it is also possible to define them at the individual metric level. Using the above rule, when running on HotSpot JVM for Java 11, the following combinations of metric attributes will be reported. - {pool="Compressed Class Space", type="NON_HEAP"} @@ -154,7 +154,7 @@ The referenced MBean has two attributes of interest, `bytesReceived`, and `bytes Keep in mind that when defining a metric multiple times like this, its type, unit and description must be exactly the same. Otherwise there will be complaints about attempts to redefine a metric in a non-compatible way. The example also demonstrates that when specifying a number of MBean attribute mappings within the same rule, the metric type can be declared only once (outside of the `mapping` section). -Even when not reusing the metric name, special care also has to be taken when using ObjectName patterns (or specifying multiple ObjectNames). Different ObjectNames matching the pattern must result in using different metric attributes. Otherwise the same metric will be reported multiple times (using different values), which will likely clobber the previous values. +Even when not reusing the metric name, special care also has to be taken when using ObjectName patterns (or specifying multiple ObjectNames - see the General Syntax section at the bottom of the page). Different ObjectNames matching the pattern must result in using different metric attributes. Otherwise the same metric will be reported multiple times (using different values), which will likely clobber the previous values. ### Making shortcuts @@ -211,7 +211,7 @@ Thus, the above definitions will create several metrics, named `my.kafka.streams The metric descriptions will remain undefined, unless they are provided by the queried MBeans. -### General syntax +### General Syntax Here is the general description of the accepted configuration file syntax. The whole contents of the file is case-sensitive, with exception for `type` as described in the table below. @@ -221,7 +221,7 @@ rules: # start of list of configuration rules - bean: # can contain wildcards label: # optional metric attributes, they apply to all metrics below : param() # is used as the key to extract value from actual ObjectName - : attrib() # is used as the attribute name to extract value from MBean + : attr() # is used as the attribute name to extract value from MBean prefix: # optional, useful for avoiding specifying metric names below unit: # optional, redefines the default unit for the whole rule type: # optional, redefines the default type for the whole rule @@ -251,9 +251,9 @@ The following table explains the used terms with more details. | Syntactic Element | Description | | ---------------- | --------------- | -| OBJECTNAME | A syntactically valid string representing an ObjectName (see [ObjectName constructor](https://docs.oracle.com/javase/8/docs/api/javax/management/ObjectName.html#ObjectName-java.lang.String-) ). | +| OBJECTNAME | A syntactically valid string representing an ObjectName (see [ObjectName constructor](https://docs.oracle.com/javase/8/docs/api/javax/management/ObjectName.html#ObjectName-java.lang.String-)). | | LABEL | Any well-formed string that can be used as a metric [attribute](https://opentelemetry.io/docs/reference/specification/common/#attribute) key. | -| ATTRIB | A non-empty string used as a name of the MBean attribute. The attribute value must be a String, otherwise the specified label (metric attribute) will not be used. | +| ATTR | A non-empty string used as a name of the MBean attribute. The attribute value must be a String, otherwise the specified label (metric attribute) will not be used. | | PARAM | A non-empty string used as a property key for the ObjectName identifying the MBean which provides the metric value. If the ObjectName does not have a property with the given key, the specified label will not be used. | | METRIC_NAME_PREFIX | Any non-empty string which will be prepended to the specified metric (instrument) names. | | METRIC_NAME | Any non-empty string. The string, prefixed by the optional prefix (see above) must satisfy [instrument naming rule](https://opentelemetry.io/docs/reference/specification/metrics/api/#instrument-naming-rule). | @@ -267,6 +267,6 @@ The following table explains the used terms with more details. This version of JMX Metric Insight has a number of limitations. -- Attributes with the same name but belonging to different MBeans described by a single metric rule must have the same type (long or double). +- MBean attributes with the same name but belonging to different MBeans described by a single metric rule must have the same type (long or double). - All MBeans which are described by the specified ObjectNames in a single rule must be registered with the same MBeanServer instance. - While MBeanServers and MBeans can be created dynamically by the application, it is assumed that they will live indefinitely. Their disappearance may not be recognized properly, and may lead to some memory leaks. diff --git a/instrumentation/jmx/javaagent/activemq.md b/instrumentation/jmx-metrics/javaagent/activemq.md similarity index 100% rename from instrumentation/jmx/javaagent/activemq.md rename to instrumentation/jmx-metrics/javaagent/activemq.md diff --git a/instrumentation/jmx-metrics/javaagent/build.gradle.kts b/instrumentation/jmx-metrics/javaagent/build.gradle.kts new file mode 100644 index 000000000000..84d770745ffe --- /dev/null +++ b/instrumentation/jmx-metrics/javaagent/build.gradle.kts @@ -0,0 +1,10 @@ +plugins { + id("otel.javaagent-instrumentation") +} + +dependencies { + implementation(project(":instrumentation:jmx-metrics:jmx-engine:library")) + implementation(project(":instrumentation:jmx-metrics:jmx-yaml:library")) + + compileOnly("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure") +} diff --git a/instrumentation/jmx/javaagent/hadoop.md b/instrumentation/jmx-metrics/javaagent/hadoop.md similarity index 100% rename from instrumentation/jmx/javaagent/hadoop.md rename to instrumentation/jmx-metrics/javaagent/hadoop.md diff --git a/instrumentation/jmx/javaagent/jetty.md b/instrumentation/jmx-metrics/javaagent/jetty.md similarity index 100% rename from instrumentation/jmx/javaagent/jetty.md rename to instrumentation/jmx-metrics/javaagent/jetty.md diff --git a/instrumentation/jmx/javaagent/kafka-broker.md b/instrumentation/jmx-metrics/javaagent/kafka-broker.md similarity index 100% rename from instrumentation/jmx/javaagent/kafka-broker.md rename to instrumentation/jmx-metrics/javaagent/kafka-broker.md diff --git a/instrumentation/jmx/javaagent/src/main/java/io/opentelemetry/instrumentation/javaagent/jmx/JmxMetricInsightInstaller.java b/instrumentation/jmx-metrics/javaagent/src/main/java/io/opentelemetry/instrumentation/javaagent/jmx/JmxMetricInsightInstaller.java similarity index 100% rename from instrumentation/jmx/javaagent/src/main/java/io/opentelemetry/instrumentation/javaagent/jmx/JmxMetricInsightInstaller.java rename to instrumentation/jmx-metrics/javaagent/src/main/java/io/opentelemetry/instrumentation/javaagent/jmx/JmxMetricInsightInstaller.java diff --git a/instrumentation/jmx/javaagent/src/main/resources/jmx/rules/activemq.yaml b/instrumentation/jmx-metrics/javaagent/src/main/resources/jmx/rules/activemq.yaml similarity index 100% rename from instrumentation/jmx/javaagent/src/main/resources/jmx/rules/activemq.yaml rename to instrumentation/jmx-metrics/javaagent/src/main/resources/jmx/rules/activemq.yaml diff --git a/instrumentation/jmx/javaagent/src/main/resources/jmx/rules/hadoop.yaml b/instrumentation/jmx-metrics/javaagent/src/main/resources/jmx/rules/hadoop.yaml similarity index 100% rename from instrumentation/jmx/javaagent/src/main/resources/jmx/rules/hadoop.yaml rename to instrumentation/jmx-metrics/javaagent/src/main/resources/jmx/rules/hadoop.yaml diff --git a/instrumentation/jmx/javaagent/src/main/resources/jmx/rules/jetty.yaml b/instrumentation/jmx-metrics/javaagent/src/main/resources/jmx/rules/jetty.yaml similarity index 100% rename from instrumentation/jmx/javaagent/src/main/resources/jmx/rules/jetty.yaml rename to instrumentation/jmx-metrics/javaagent/src/main/resources/jmx/rules/jetty.yaml diff --git a/instrumentation/jmx/javaagent/src/main/resources/jmx/rules/kafka-broker.yaml b/instrumentation/jmx-metrics/javaagent/src/main/resources/jmx/rules/kafka-broker.yaml similarity index 100% rename from instrumentation/jmx/javaagent/src/main/resources/jmx/rules/kafka-broker.yaml rename to instrumentation/jmx-metrics/javaagent/src/main/resources/jmx/rules/kafka-broker.yaml diff --git a/instrumentation/jmx/javaagent/src/main/resources/jmx/rules/tomcat.yaml b/instrumentation/jmx-metrics/javaagent/src/main/resources/jmx/rules/tomcat.yaml similarity index 100% rename from instrumentation/jmx/javaagent/src/main/resources/jmx/rules/tomcat.yaml rename to instrumentation/jmx-metrics/javaagent/src/main/resources/jmx/rules/tomcat.yaml diff --git a/instrumentation/jmx/javaagent/src/main/resources/jmx/rules/wildfly.yaml b/instrumentation/jmx-metrics/javaagent/src/main/resources/jmx/rules/wildfly.yaml similarity index 100% rename from instrumentation/jmx/javaagent/src/main/resources/jmx/rules/wildfly.yaml rename to instrumentation/jmx-metrics/javaagent/src/main/resources/jmx/rules/wildfly.yaml diff --git a/instrumentation/jmx/javaagent/tomcat.md b/instrumentation/jmx-metrics/javaagent/tomcat.md similarity index 100% rename from instrumentation/jmx/javaagent/tomcat.md rename to instrumentation/jmx-metrics/javaagent/tomcat.md diff --git a/instrumentation/jmx/javaagent/wildfly.md b/instrumentation/jmx-metrics/javaagent/wildfly.md similarity index 100% rename from instrumentation/jmx/javaagent/wildfly.md rename to instrumentation/jmx-metrics/javaagent/wildfly.md diff --git a/instrumentation/jmx/jmx-engine/library/build.gradle.kts b/instrumentation/jmx-metrics/jmx-engine/library/build.gradle.kts similarity index 100% rename from instrumentation/jmx/jmx-engine/library/build.gradle.kts rename to instrumentation/jmx-metrics/jmx-engine/library/build.gradle.kts diff --git a/instrumentation/jmx/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/AttributeInfo.java b/instrumentation/jmx-metrics/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/AttributeInfo.java similarity index 100% rename from instrumentation/jmx/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/AttributeInfo.java rename to instrumentation/jmx-metrics/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/AttributeInfo.java diff --git a/instrumentation/jmx/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/AttributeValueExtractor.java b/instrumentation/jmx-metrics/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/AttributeValueExtractor.java similarity index 95% rename from instrumentation/jmx/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/AttributeValueExtractor.java rename to instrumentation/jmx-metrics/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/AttributeValueExtractor.java index db18fcf01b50..2c976dd626ba 100644 --- a/instrumentation/jmx/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/AttributeValueExtractor.java +++ b/instrumentation/jmx-metrics/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/AttributeValueExtractor.java @@ -113,7 +113,7 @@ AttributeInfo getAttributeInfo(MBeanServer server, ObjectName objectName) { // Verify correctness of configuration by attempting to extract the metric value. // The value will be discarded, but its type will be checked. - Object sampleValue = extractAttributeValue(server, objectName); + Object sampleValue = extractAttributeValue(server, objectName, logger); // Only numbers can be used to generate metric values if (sampleValue instanceof Number) { @@ -162,7 +162,10 @@ AttributeInfo getAttributeInfo(MBeanServer server, ObjectName objectName) { * * @param server the MBeanServer to use * @param objectName the ObjectName specifying the MBean to use, it should not be a pattern - * @param logger the logger to use, may be null + * @param logger the logger to use, may be null. Typically we want to log any issues with the + * attributes during MBean discovery, but once the attribute is successfuly detected and + * confirmed to be eligble for metric evaluation, any further attribute extraction + * malfunctions will be silent to avoid flooding the log. * @return the attribute value, if found, or null if an error occurred */ private Object extractAttributeValue(MBeanServer server, ObjectName objectName, Logger logger) { diff --git a/instrumentation/jmx/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/BeanFinder.java b/instrumentation/jmx-metrics/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/BeanFinder.java similarity index 100% rename from instrumentation/jmx/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/BeanFinder.java rename to instrumentation/jmx-metrics/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/BeanFinder.java diff --git a/instrumentation/jmx/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/BeanPack.java b/instrumentation/jmx-metrics/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/BeanPack.java similarity index 100% rename from instrumentation/jmx/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/BeanPack.java rename to instrumentation/jmx-metrics/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/BeanPack.java diff --git a/instrumentation/jmx/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/DetectionStatus.java b/instrumentation/jmx-metrics/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/DetectionStatus.java similarity index 100% rename from instrumentation/jmx/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/DetectionStatus.java rename to instrumentation/jmx-metrics/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/DetectionStatus.java diff --git a/instrumentation/jmx/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/JmxMetricInsight.java b/instrumentation/jmx-metrics/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/JmxMetricInsight.java similarity index 100% rename from instrumentation/jmx/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/JmxMetricInsight.java rename to instrumentation/jmx-metrics/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/JmxMetricInsight.java diff --git a/instrumentation/jmx/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/LabelExtractor.java b/instrumentation/jmx-metrics/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/LabelExtractor.java similarity index 100% rename from instrumentation/jmx/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/LabelExtractor.java rename to instrumentation/jmx-metrics/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/LabelExtractor.java diff --git a/instrumentation/jmx/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/MetricBanner.java b/instrumentation/jmx-metrics/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/MetricBanner.java similarity index 100% rename from instrumentation/jmx/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/MetricBanner.java rename to instrumentation/jmx-metrics/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/MetricBanner.java diff --git a/instrumentation/jmx/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/MetricConfiguration.java b/instrumentation/jmx-metrics/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/MetricConfiguration.java similarity index 100% rename from instrumentation/jmx/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/MetricConfiguration.java rename to instrumentation/jmx-metrics/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/MetricConfiguration.java diff --git a/instrumentation/jmx/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/MetricDef.java b/instrumentation/jmx-metrics/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/MetricDef.java similarity index 100% rename from instrumentation/jmx/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/MetricDef.java rename to instrumentation/jmx-metrics/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/MetricDef.java diff --git a/instrumentation/jmx/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/MetricExtractor.java b/instrumentation/jmx-metrics/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/MetricExtractor.java similarity index 100% rename from instrumentation/jmx/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/MetricExtractor.java rename to instrumentation/jmx-metrics/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/MetricExtractor.java diff --git a/instrumentation/jmx/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/MetricLabel.java b/instrumentation/jmx-metrics/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/MetricLabel.java similarity index 100% rename from instrumentation/jmx/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/MetricLabel.java rename to instrumentation/jmx-metrics/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/MetricLabel.java diff --git a/instrumentation/jmx/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/MetricRegistrar.java b/instrumentation/jmx-metrics/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/MetricRegistrar.java similarity index 100% rename from instrumentation/jmx/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/MetricRegistrar.java rename to instrumentation/jmx-metrics/jmx-engine/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/MetricRegistrar.java diff --git a/instrumentation/jmx/jmx-engine/library/src/test/java/io/opentelemetry/instrumentation/jmx/engine/AttributeExtractorTest.java b/instrumentation/jmx-metrics/jmx-engine/library/src/test/java/io/opentelemetry/instrumentation/jmx/engine/AttributeExtractorTest.java similarity index 100% rename from instrumentation/jmx/jmx-engine/library/src/test/java/io/opentelemetry/instrumentation/jmx/engine/AttributeExtractorTest.java rename to instrumentation/jmx-metrics/jmx-engine/library/src/test/java/io/opentelemetry/instrumentation/jmx/engine/AttributeExtractorTest.java diff --git a/instrumentation/jmx/jmx-yaml/library/build.gradle.kts b/instrumentation/jmx-metrics/jmx-yaml/library/build.gradle.kts similarity index 66% rename from instrumentation/jmx/jmx-yaml/library/build.gradle.kts rename to instrumentation/jmx-metrics/jmx-yaml/library/build.gradle.kts index 7dd35d0e9e8c..69042741983b 100644 --- a/instrumentation/jmx/jmx-yaml/library/build.gradle.kts +++ b/instrumentation/jmx-metrics/jmx-yaml/library/build.gradle.kts @@ -4,7 +4,7 @@ plugins { dependencies { implementation("org.yaml:snakeyaml") - implementation(project(":instrumentation:jmx:jmx-engine:library")) + implementation(project(":instrumentation:jmx-metrics:jmx-engine:library")) testImplementation(project(":testing-common")) } diff --git a/instrumentation/jmx/jmx-yaml/library/src/main/java/io/opentelemetry/instrumentation/jmx/yaml/JmxConfig.java b/instrumentation/jmx-metrics/jmx-yaml/library/src/main/java/io/opentelemetry/instrumentation/jmx/yaml/JmxConfig.java similarity index 100% rename from instrumentation/jmx/jmx-yaml/library/src/main/java/io/opentelemetry/instrumentation/jmx/yaml/JmxConfig.java rename to instrumentation/jmx-metrics/jmx-yaml/library/src/main/java/io/opentelemetry/instrumentation/jmx/yaml/JmxConfig.java diff --git a/instrumentation/jmx/jmx-yaml/library/src/main/java/io/opentelemetry/instrumentation/jmx/yaml/JmxRule.java b/instrumentation/jmx-metrics/jmx-yaml/library/src/main/java/io/opentelemetry/instrumentation/jmx/yaml/JmxRule.java similarity index 100% rename from instrumentation/jmx/jmx-yaml/library/src/main/java/io/opentelemetry/instrumentation/jmx/yaml/JmxRule.java rename to instrumentation/jmx-metrics/jmx-yaml/library/src/main/java/io/opentelemetry/instrumentation/jmx/yaml/JmxRule.java diff --git a/instrumentation/jmx/jmx-yaml/library/src/main/java/io/opentelemetry/instrumentation/jmx/yaml/Metric.java b/instrumentation/jmx-metrics/jmx-yaml/library/src/main/java/io/opentelemetry/instrumentation/jmx/yaml/Metric.java similarity index 100% rename from instrumentation/jmx/jmx-yaml/library/src/main/java/io/opentelemetry/instrumentation/jmx/yaml/Metric.java rename to instrumentation/jmx-metrics/jmx-yaml/library/src/main/java/io/opentelemetry/instrumentation/jmx/yaml/Metric.java diff --git a/instrumentation/jmx/jmx-yaml/library/src/main/java/io/opentelemetry/instrumentation/jmx/yaml/MetricStructure.java b/instrumentation/jmx-metrics/jmx-yaml/library/src/main/java/io/opentelemetry/instrumentation/jmx/yaml/MetricStructure.java similarity index 97% rename from instrumentation/jmx/jmx-yaml/library/src/main/java/io/opentelemetry/instrumentation/jmx/yaml/MetricStructure.java rename to instrumentation/jmx-metrics/jmx-yaml/library/src/main/java/io/opentelemetry/instrumentation/jmx/yaml/MetricStructure.java index 4cc2a03b70f2..f6cc52513fe3 100644 --- a/instrumentation/jmx/jmx-yaml/library/src/main/java/io/opentelemetry/instrumentation/jmx/yaml/MetricStructure.java +++ b/instrumentation/jmx-metrics/jmx-yaml/library/src/main/java/io/opentelemetry/instrumentation/jmx/yaml/MetricStructure.java @@ -107,7 +107,7 @@ private static void addLabels(List list, Map tagMap private static MetricLabel buildLabel(String key, String target) { // The recognized forms of target are: // - param(STRING) - // - attrib(STRING) + // - attr(STRING) // - STRING // where STRING is the name of the corresponding parameter key, attribute name, // or the direct value to use @@ -118,9 +118,9 @@ private static MetricLabel buildLabel(String key, String target) { if (k > 0) { return new MetricLabel(key, MetricLabel.fromParameter(target.substring(6, k).trim())); } - } else if (target.startsWith("attrib(")) { + } else if (target.startsWith("attr(")) { if (k > 0) { - return new MetricLabel(key, MetricLabel.fromAttribute(target.substring(7, k).trim())); + return new MetricLabel(key, MetricLabel.fromAttribute(target.substring(5, k).trim())); } } else if (k < 0) { return new MetricLabel(key, MetricLabel.fromConstant(target)); diff --git a/instrumentation/jmx/jmx-yaml/library/src/main/java/io/opentelemetry/instrumentation/jmx/yaml/RuleParser.java b/instrumentation/jmx-metrics/jmx-yaml/library/src/main/java/io/opentelemetry/instrumentation/jmx/yaml/RuleParser.java similarity index 100% rename from instrumentation/jmx/jmx-yaml/library/src/main/java/io/opentelemetry/instrumentation/jmx/yaml/RuleParser.java rename to instrumentation/jmx-metrics/jmx-yaml/library/src/main/java/io/opentelemetry/instrumentation/jmx/yaml/RuleParser.java diff --git a/instrumentation/jmx/jmx-yaml/library/src/test/java/io/opentelemetry/instrumentation/jmx/engine/RuleParserTest.java b/instrumentation/jmx-metrics/jmx-yaml/library/src/test/java/io/opentelemetry/instrumentation/jmx/engine/RuleParserTest.java similarity index 98% rename from instrumentation/jmx/jmx-yaml/library/src/test/java/io/opentelemetry/instrumentation/jmx/engine/RuleParserTest.java rename to instrumentation/jmx-metrics/jmx-yaml/library/src/test/java/io/opentelemetry/instrumentation/jmx/engine/RuleParserTest.java index d8bdc2dd1393..b67025d8f0bf 100644 --- a/instrumentation/jmx/jmx-yaml/library/src/test/java/io/opentelemetry/instrumentation/jmx/engine/RuleParserTest.java +++ b/instrumentation/jmx-metrics/jmx-yaml/library/src/test/java/io/opentelemetry/instrumentation/jmx/engine/RuleParserTest.java @@ -44,7 +44,7 @@ static void setup() throws Exception { + " - OBJECT:NAME2=*\n" + " label:\n" + " LABEL_KEY1: param(PARAMETER)\n" - + " LABEL_KEY2: attrib(ATTRIBUTE)\n" + + " LABEL_KEY2: attr(ATTRIBUTE)\n" + " prefix: METRIC_NAME_PREFIX\n" + " mapping:\n" + " ATTRIBUTE1:\n" @@ -133,7 +133,7 @@ void testConf3() throws Exception { + " - bean: my-test:type=4\n" + " label:\n" + " LABEL_KEY1: param(PARAMETER)\n" - + " LABEL_KEY2: attrib(ATTRIBUTE)\n" + + " LABEL_KEY2: attr(ATTRIBUTE)\n" + " prefix: PREFIX.\n" + " type: upDownCounter\n" + " unit: DEFAULT_UNIT\n" @@ -363,7 +363,7 @@ void testInvalidTag() throws Exception { + " mapping:\n" + " ATTRIB:\n" + " label:\n" - + " LABEL: attr(something)\n" + + " LABEL: attrib(something)\n" + " metric: METRIC_NAME\n"; runNegativeTest(yaml); } @@ -390,7 +390,7 @@ void testInvalidTagFromAttribute() throws Exception { + " mapping:\n" + " ATTRIB:\n" + " label:\n" - + " LABEL: attrib(.used)\n" + + " LABEL: attr(.used)\n" + " metric: METRIC_NAME\n"; runNegativeTest(yaml); } @@ -404,7 +404,7 @@ void testEmptyTagFromAttribute() throws Exception { + " mapping:\n" + " ATTRIB:\n" + " label:\n" - + " LABEL: attrib( )\n" + + " LABEL: attr( )\n" + " metric: METRIC_NAME\n"; runNegativeTest(yaml); } diff --git a/instrumentation/jmx/javaagent/build.gradle.kts b/instrumentation/jmx/javaagent/build.gradle.kts deleted file mode 100644 index 0804b9a57cfe..000000000000 --- a/instrumentation/jmx/javaagent/build.gradle.kts +++ /dev/null @@ -1,10 +0,0 @@ -plugins { - id("otel.javaagent-instrumentation") -} - -dependencies { - implementation(project(":instrumentation:jmx:jmx-engine:library")) - implementation(project(":instrumentation:jmx:jmx-yaml:library")) - - compileOnly("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure") -} diff --git a/settings.gradle.kts b/settings.gradle.kts index 39df775d853e..ae3814065052 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -298,9 +298,9 @@ include(":instrumentation:jetty-httpclient:jetty-httpclient-9.2:library") include(":instrumentation:jetty-httpclient:jetty-httpclient-9.2:testing") include(":instrumentation:jms-1.1:javaagent") include(":instrumentation:jms-1.1:javaagent-unit-tests") -include(":instrumentation:jmx:javaagent") -include(":instrumentation:jmx:jmx-engine:library") -include(":instrumentation:jmx:jmx-yaml:library") +include(":instrumentation:jmx-metrics:javaagent") +include(":instrumentation:jmx-metrics:jmx-engine:library") +include(":instrumentation:jmx-metrics:jmx-yaml:library") include(":instrumentation:jsf:jsf-common:javaagent") include(":instrumentation:jsf:jsf-common:testing") include(":instrumentation:jsf:jsf-mojarra-1.2:javaagent")