This is an automated email from the ASF dual-hosted git repository. jamesnetherton pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
commit d6d148ff5399638cfc95ab134fc3f70900a2554e Author: Pasquale Congiusti <pasquale.congiu...@gmail.com> AuthorDate: Wed Feb 19 15:39:49 2025 +0100 feat(extensions): telemetry-dev --- catalog/pom.xml | 13 ++ .../modules/ROOT/examples/others/telemetry-dev.yml | 13 ++ docs/modules/ROOT/nav.adoc | 1 + .../pages/reference/extensions/telemetry-dev.adoc | 84 +++++++++++++ extensions/pom.xml | 1 + extensions/telemetry-dev/deployment/pom.xml | 72 +++++++++++ .../dev/deployment/TelemetryDevProcessor.java | 58 +++++++++ .../deployment/src/test/java/TelemetryDevTest.java | 59 +++++++++ extensions/telemetry-dev/pom.xml | 39 ++++++ extensions/telemetry-dev/runtime/pom.xml | 105 ++++++++++++++++ .../telemetry/dev/CamelTelemetryDevConfig.java | 60 +++++++++ .../telemetry/dev/TelemetryDevTracerProducer.java | 49 ++++++++ .../main/resources/META-INF/quarkus-extension.yaml | 33 +++++ integration-tests/pom.xml | 1 + integration-tests/telemetry-dev/pom.xml | 134 +++++++++++++++++++++ .../telemetry/dev/it/TelemetryDevResource.java | 41 +++++++ .../telemetry/dev/it/TelemetryDevRouteBuilder.java | 28 +++++ .../src/main/resources/application.properties | 23 ++++ .../component/telemetry/dev/it/TelemetryDevIT.java | 24 ++++ .../telemetry/dev/it/TelemetryDevTest.java | 81 +++++++++++++ poms/bom/pom.xml | 20 +++ poms/bom/src/main/generated/flattened-full-pom.xml | 20 +++ .../src/main/generated/flattened-reduced-pom.xml | 20 +++ .../generated/flattened-reduced-verbose-pom.xml | 20 +++ tooling/scripts/test-categories.yaml | 3 +- 25 files changed, 1001 insertions(+), 1 deletion(-) diff --git a/catalog/pom.xml b/catalog/pom.xml index cb83c40993..fad6e03a40 100644 --- a/catalog/pom.xml +++ b/catalog/pom.xml @@ -4114,6 +4114,19 @@ </exclusion> </exclusions> </dependency> + <dependency> + <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-telemetry-dev</artifactId> + <version>${project.version}</version> + <type>pom</type> + <scope>test</scope> + <exclusions> + <exclusion> + <groupId>*</groupId> + <artifactId>*</artifactId> + </exclusion> + </exclusions> + </dependency> <dependency> <groupId>org.apache.camel.quarkus</groupId> <artifactId>camel-quarkus-threadpoolfactory-vertx</artifactId> diff --git a/docs/modules/ROOT/examples/others/telemetry-dev.yml b/docs/modules/ROOT/examples/others/telemetry-dev.yml new file mode 100644 index 0000000000..08f6287f0e --- /dev/null +++ b/docs/modules/ROOT/examples/others/telemetry-dev.yml @@ -0,0 +1,13 @@ +# Do not edit directly! +# This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page +cqArtifactId: camel-quarkus-telemetry-dev +cqArtifactIdBase: telemetry-dev +cqNativeSupported: true +cqStatus: Stable +cqDeprecated: false +cqJvmSince: 3.22.0 +cqNativeSince: 3.22.0 +cqCamelPartName: telemetry-dev +cqCamelPartTitle: Telemetry Dev +cqCamelPartDescription: Basic implementation of Camel Telemetry useful for development purposes +cqExtensionPageTitle: Telemetry Dev diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc index 30d1496bff..4d829ed52c 100644 --- a/docs/modules/ROOT/nav.adoc +++ b/docs/modules/ROOT/nav.adoc @@ -299,6 +299,7 @@ *** xref:reference/extensions/syslog.adoc[Syslog] *** xref:reference/extensions/tarfile.adoc[Tar File] *** xref:reference/extensions/telegram.adoc[Telegram] +*** xref:reference/extensions/telemetry-dev.adoc[Telemetry Dev] *** xref:reference/extensions/threadpoolfactory-vertx.adoc[ThreadPoolFactory Vert.x] *** xref:reference/extensions/thrift.adoc[Thrift] *** xref:reference/extensions/tika.adoc[Tika] diff --git a/docs/modules/ROOT/pages/reference/extensions/telemetry-dev.adoc b/docs/modules/ROOT/pages/reference/extensions/telemetry-dev.adoc new file mode 100644 index 0000000000..e920e720ee --- /dev/null +++ b/docs/modules/ROOT/pages/reference/extensions/telemetry-dev.adoc @@ -0,0 +1,84 @@ +// Do not edit directly! +// This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page +[id="extensions-telemetry-dev"] += Telemetry Dev +:linkattrs: +:cq-artifact-id: camel-quarkus-telemetry-dev +:cq-native-supported: true +:cq-status: Stable +:cq-status-deprecation: Stable +:cq-description: Basic implementation of Camel Telemetry useful for development purposes +:cq-deprecated: false +:cq-jvm-since: 3.22.0 +:cq-native-since: 3.22.0 + +ifeval::[{doc-show-badges} == true] +[.badges] +[.badge-key]##JVM since##[.badge-supported]##3.22.0## [.badge-key]##Native since##[.badge-supported]##3.22.0## +endif::[] + +Basic implementation of Camel Telemetry useful for development purposes + +[id="extensions-telemetry-dev-whats-inside"] +== What's inside + +* xref:{cq-camel-components}:others:telemetry-dev.adoc[Telemetry Dev] + +Please refer to the above link for usage and configuration details. + +[id="extensions-telemetry-dev-maven-coordinates"] +== Maven coordinates + +https://{link-quarkus-code-generator}/?extension-search=camel-quarkus-telemetry-dev[Create a new project with this extension on {link-quarkus-code-generator}, window="_blank"] + +Or add the coordinates to your existing project: + +[source,xml] +---- +<dependency> + <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-telemetry-dev</artifactId> +</dependency> +---- +ifeval::[{doc-show-user-guide-link} == true] +Check the xref:user-guide/index.adoc[User guide] for more information about writing Camel Quarkus applications. +endif::[] + +[id="extensions-telemetry-dev-additional-camel-quarkus-configuration"] +== Additional Camel Quarkus configuration + +[width="100%",cols="80,5,15",options="header"] +|=== +| Configuration property | Type | Default + + +a| [[quarkus-camel-telemetrydev-exclude-patterns]]`link:#quarkus-camel-telemetrydev-exclude-patterns[quarkus.camel.telemetryDev.exclude-patterns]` + +Sets whether to disable tracing for endpoint URIs or Processor ids that match the given comma separated patterns. The +pattern can take the following forms: + +1. An exact match on the endpoint URI. E.g platform-http:/some/path + +2. A wildcard match. E.g platform-http:++*++ + +3. A regular expression matching the endpoint URI. E.g platform-http:/prefix/.++*++ +| `string` +| + +a| [[quarkus-camel-telemetrydev-trace-processors]]`link:#quarkus-camel-telemetrydev-trace-processors[quarkus.camel.telemetryDev.trace-processors]` + +Sets whether to create new OpenTelemetry spans for each Camel Processor. Use the excludePatterns property to filter +out Processors. +| `boolean` +| `false` + +a| [[quarkus-camel-telemetrydev-trace-format]]`link:#quarkus-camel-telemetrydev-trace-format[quarkus.camel.telemetryDev.trace-format]` + +The output format for traces +| `string` +| +|=== + +[.configuration-legend] +{doc-link-icon-lock}[title=Fixed at build time] Configuration property fixed at build time. All other configuration properties are overridable at runtime. + diff --git a/extensions/pom.xml b/extensions/pom.xml index 7ea63643c3..6bc0558088 100644 --- a/extensions/pom.xml +++ b/extensions/pom.xml @@ -250,6 +250,7 @@ <module>syslog</module> <module>tarfile</module> <module>telegram</module> + <module>telemetry-dev</module> <module>tika</module> <module>timer</module> <module>twilio</module> diff --git a/extensions/telemetry-dev/deployment/pom.xml b/extensions/telemetry-dev/deployment/pom.xml new file mode 100644 index 0000000000..8899e4b9db --- /dev/null +++ b/extensions/telemetry-dev/deployment/pom.xml @@ -0,0 +1,72 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +--> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-telemetry-dev-parent</artifactId> + <version>3.22.0-SNAPSHOT</version> + <relativePath>../pom.xml</relativePath> + </parent> + + <artifactId>camel-quarkus-telemetry-dev-deployment</artifactId> + <name>Camel Quarkus :: Telemetry Dev :: Deployment</name> + + <dependencies> + <dependency> + <groupId>io.quarkus</groupId> + <artifactId>quarkus-jackson-deployment</artifactId> + </dependency> + <dependency> + <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-core-deployment</artifactId> + </dependency> + <dependency> + <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-telemetry-dev</artifactId> + </dependency> + <dependency> + <groupId>io.quarkus</groupId> + <artifactId>quarkus-junit5-internal</artifactId> + <scope>test</scope> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <configuration> + <annotationProcessorPaths> + <path> + <groupId>io.quarkus</groupId> + <artifactId>quarkus-extension-processor</artifactId> + <version>${quarkus.version}</version> + </path> + </annotationProcessorPaths> + </configuration> + </plugin> + </plugins> + </build> + +</project> diff --git a/extensions/telemetry-dev/deployment/src/main/java/org/apache/camel/quarkus/component/telemetry/dev/deployment/TelemetryDevProcessor.java b/extensions/telemetry-dev/deployment/src/main/java/org/apache/camel/quarkus/component/telemetry/dev/deployment/TelemetryDevProcessor.java new file mode 100644 index 0000000000..113522b9e8 --- /dev/null +++ b/extensions/telemetry-dev/deployment/src/main/java/org/apache/camel/quarkus/component/telemetry/dev/deployment/TelemetryDevProcessor.java @@ -0,0 +1,58 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.quarkus.component.telemetry.dev.deployment; + +import io.quarkus.arc.deployment.AdditionalBeanBuildItem; +import io.quarkus.arc.deployment.UnremovableBeanBuildItem; +import io.quarkus.deployment.annotations.BuildProducer; +import io.quarkus.deployment.annotations.BuildStep; +import io.quarkus.deployment.builditem.FeatureBuildItem; +import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem; +import org.apache.camel.quarkus.component.telemetry.dev.TelemetryDevTracerProducer; +import org.apache.camel.telemetry.Tracer; +import org.apache.camel.telemetrydev.DevSpanAdapter; +import org.apache.camel.telemetrydev.DevTrace; + +class TelemetryDevProcessor { + + private static final String FEATURE = "camel-telemetry-dev"; + + @BuildStep + FeatureBuildItem feature() { + return new FeatureBuildItem(FEATURE); + } + + @BuildStep + AdditionalBeanBuildItem telemetryDevTracerProducerBean() { + return AdditionalBeanBuildItem.builder() + .setUnremovable() + .addBeanClass(TelemetryDevTracerProducer.class) + .build(); + } + + @BuildStep + UnremovableBeanBuildItem camelTracerUnremovableBean() { + return UnremovableBeanBuildItem.beanTypes(Tracer.class); + } + + @BuildStep + void registerForReflection(BuildProducer<ReflectiveClassBuildItem> reflectiveClass) { + reflectiveClass.produce(ReflectiveClassBuildItem.builder(DevTrace.class, DevSpanAdapter.class) + .methods() + .build()); + } +} diff --git a/extensions/telemetry-dev/deployment/src/test/java/TelemetryDevTest.java b/extensions/telemetry-dev/deployment/src/test/java/TelemetryDevTest.java new file mode 100644 index 0000000000..eddb44788d --- /dev/null +++ b/extensions/telemetry-dev/deployment/src/test/java/TelemetryDevTest.java @@ -0,0 +1,59 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.quarkus.component.telemetry.dev.deployment; + +import java.util.Set; + +import io.quarkus.test.QuarkusUnitTest; +import jakarta.inject.Inject; +import org.apache.camel.CamelContext; +import org.apache.camel.telemetrydev.TelemetryDevTracer; +import org.jboss.shrinkwrap.api.ShrinkWrap; +import org.jboss.shrinkwrap.api.spec.JavaArchive; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertInstanceOf; +import static org.junit.jupiter.api.Assertions.assertTrue; + +public class TelemetryDevTest { + + private static final String EXCLUDE_PATTERNS = "platform-http:*,platform-http:/prefix/.*"; + + @RegisterExtension + static final QuarkusUnitTest CONFIG = new QuarkusUnitTest() + .overrideConfigKey("quarkus.camel.telemetryDev.trace-format", "tree") + .overrideConfigKey("quarkus.camel.telemetryDev.exclude-patterns", EXCLUDE_PATTERNS) + .overrideConfigKey("quarkus.camel.telemetryDev.trace-processors", "true") + .setArchiveProducer(() -> ShrinkWrap.create(JavaArchive.class)); + + @Inject + CamelContext context; + + @Test + public void camelTelemetryDevTracerRegistryBeanNotNull() { + Set<TelemetryDevTracer> tracers = context.getRegistry().findByType(TelemetryDevTracer.class); + assertEquals(1, tracers.size()); + + TelemetryDevTracer tracer = tracers.iterator().next(); + assertInstanceOf(TelemetryDevTracer.class, tracer); + assertEquals("tree", tracer.getTraceFormat()); + assertEquals(EXCLUDE_PATTERNS, tracer.getExcludePatterns()); + assertTrue(tracer.isTraceProcessors()); + } +} diff --git a/extensions/telemetry-dev/pom.xml b/extensions/telemetry-dev/pom.xml new file mode 100644 index 0000000000..7d7165b06f --- /dev/null +++ b/extensions/telemetry-dev/pom.xml @@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +--> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-extensions</artifactId> + <version>3.22.0-SNAPSHOT</version> + <relativePath>../pom.xml</relativePath> + </parent> + + <artifactId>camel-quarkus-telemetry-dev-parent</artifactId> + <name>Camel Quarkus :: Telemetry Dev</name> + <packaging>pom</packaging> + + <modules> + <module>deployment</module> + <module>runtime</module> + </modules> +</project> diff --git a/extensions/telemetry-dev/runtime/pom.xml b/extensions/telemetry-dev/runtime/pom.xml new file mode 100644 index 0000000000..feedaecfe0 --- /dev/null +++ b/extensions/telemetry-dev/runtime/pom.xml @@ -0,0 +1,105 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +--> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-telemetry-dev-parent</artifactId> + <version>3.22.0-SNAPSHOT</version> + <relativePath>../pom.xml</relativePath> + </parent> + + <artifactId>camel-quarkus-telemetry-dev</artifactId> + <name>Camel Quarkus :: Telemetry Dev :: Runtime</name> + <description>Basic implementation of Camel Telemetry useful for development purposes</description> + + <properties> + <camel.quarkus.jvmSince>3.22.0</camel.quarkus.jvmSince> + <camel.quarkus.nativeSince>3.22.0</camel.quarkus.nativeSince> + </properties> + + <dependencies> + <dependency> + <groupId>io.quarkus</groupId> + <artifactId>quarkus-jackson</artifactId> + </dependency> + <dependency> + <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-core</artifactId> + </dependency> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-telemetry-dev</artifactId> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>io.quarkus</groupId> + <artifactId>quarkus-extension-maven-plugin</artifactId> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <configuration> + <annotationProcessorPaths> + <path> + <groupId>io.quarkus</groupId> + <artifactId>quarkus-extension-processor</artifactId> + <version>${quarkus.version}</version> + </path> + </annotationProcessorPaths> + </configuration> + </plugin> + </plugins> + </build> + + + <profiles> + <profile> + <id>full</id> + <activation> + <property> + <name>!quickly</name> + </property> + </activation> + <build> + <plugins> + <plugin> + <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-maven-plugin</artifactId> + <executions> + <execution> + <id>update-extension-doc-page</id> + <goals> + <goal>update-extension-doc-page</goal> + </goals> + <phase>process-classes</phase> + </execution> + </executions> + </plugin> + </plugins> + </build> + </profile> + </profiles> +</project> diff --git a/extensions/telemetry-dev/runtime/src/main/java/org/apache/camel/quarkus/component/telemetry/dev/CamelTelemetryDevConfig.java b/extensions/telemetry-dev/runtime/src/main/java/org/apache/camel/quarkus/component/telemetry/dev/CamelTelemetryDevConfig.java new file mode 100644 index 0000000000..1e10232797 --- /dev/null +++ b/extensions/telemetry-dev/runtime/src/main/java/org/apache/camel/quarkus/component/telemetry/dev/CamelTelemetryDevConfig.java @@ -0,0 +1,60 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.quarkus.component.telemetry.dev; + +import java.util.Optional; + +import io.quarkus.runtime.annotations.ConfigPhase; +import io.quarkus.runtime.annotations.ConfigRoot; +import io.smallrye.config.ConfigMapping; +import io.smallrye.config.WithDefault; + +@ConfigRoot(phase = ConfigPhase.RUN_TIME) +@ConfigMapping(prefix = "quarkus.camel.telemetryDev") +public interface CamelTelemetryDevConfig { + + /** + * Sets whether to disable tracing for endpoint URIs or Processor ids that match the given comma separated patterns. The + * pattern can take the following forms: + * + * 1. An exact match on the endpoint URI. E.g platform-http:/some/path + * + * 2. A wildcard match. E.g platform-http:++*++ + * + * 3. A regular expression matching the endpoint URI. E.g platform-http:/prefix/.++*++ + * + * @asciidoclet + */ + Optional<String> excludePatterns(); + + /** + * Sets whether to create new OpenTelemetry spans for each Camel Processor. Use the excludePatterns property to filter + * out Processors. + * + * @asciidoclet + */ + @WithDefault("false") + boolean traceProcessors(); + + /** + * The output format for traces + * + * @asciidoclet + */ + Optional<String> traceFormat(); + +} diff --git a/extensions/telemetry-dev/runtime/src/main/java/org/apache/camel/quarkus/component/telemetry/dev/TelemetryDevTracerProducer.java b/extensions/telemetry-dev/runtime/src/main/java/org/apache/camel/quarkus/component/telemetry/dev/TelemetryDevTracerProducer.java new file mode 100644 index 0000000000..cfb068af79 --- /dev/null +++ b/extensions/telemetry-dev/runtime/src/main/java/org/apache/camel/quarkus/component/telemetry/dev/TelemetryDevTracerProducer.java @@ -0,0 +1,49 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.quarkus.component.telemetry.dev; + +import io.quarkus.arc.DefaultBean; +import jakarta.enterprise.inject.Produces; +import jakarta.inject.Inject; +import jakarta.inject.Singleton; +import org.apache.camel.telemetrydev.TelemetryDevTracer; + +@Singleton +public class TelemetryDevTracerProducer { + + @Inject + CamelTelemetryDevConfig config; + + @Produces + @Singleton + @DefaultBean + public TelemetryDevTracer getOpenTelemetry() { + TelemetryDevTracer telemetryDevTracer = new TelemetryDevTracer(); + if (config.excludePatterns().isPresent()) { + telemetryDevTracer.setExcludePatterns(config.excludePatterns().get()); + } + + if (config.traceProcessors()) { + telemetryDevTracer.setTraceProcessors(config.traceProcessors()); + } + + if (config.traceFormat().isPresent()) { + telemetryDevTracer.setTraceFormat(config.traceFormat().get()); + } + return telemetryDevTracer; + } +} diff --git a/extensions/telemetry-dev/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions/telemetry-dev/runtime/src/main/resources/META-INF/quarkus-extension.yaml new file mode 100644 index 0000000000..ba3c5b3f82 --- /dev/null +++ b/extensions/telemetry-dev/runtime/src/main/resources/META-INF/quarkus-extension.yaml @@ -0,0 +1,33 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# This is a generated file. Do not edit directly! +# To re-generate, run the following command from the top level directory: +# +# mvn -N cq:update-quarkus-metadata +# +--- +name: "Camel Telemetry Dev" +description: "Basic implementation of Camel Telemetry useful for development purposes" +metadata: + icon-url: "https://raw.githubusercontent.com/apache/camel-website/main/antora-ui-camel/src/img/logo-d.svg" + sponsor: "Apache Software Foundation" + guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/telemetry-dev.html" + categories: + - "integration" + status: + - "stable" diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml index e9cc4500d1..763a8d9d4c 100644 --- a/integration-tests/pom.xml +++ b/integration-tests/pom.xml @@ -228,6 +228,7 @@ <module>syslog</module> <module>tarfile</module> <module>telegram</module> + <module>telemetry-dev</module> <module>tika</module> <module>twilio</module> <module>twitter</module> diff --git a/integration-tests/telemetry-dev/pom.xml b/integration-tests/telemetry-dev/pom.xml new file mode 100644 index 0000000000..2d918e76ac --- /dev/null +++ b/integration-tests/telemetry-dev/pom.xml @@ -0,0 +1,134 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +--> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-build-parent-it</artifactId> + <version>3.22.0-SNAPSHOT</version> + <relativePath>../../poms/build-parent-it/pom.xml</relativePath> + </parent> + + <artifactId>camel-quarkus-integration-test-telemetry-dev</artifactId> + <name>Camel Quarkus :: Integration Tests :: Telemetry Dev</name> + <description>Integration tests for Camel Quarkus Telemetry Dev extension</description> + + <dependencies> + <dependency> + <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-telemetry-dev</artifactId> + </dependency> + <dependency> + <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-direct</artifactId> + </dependency> + <dependency> + <groupId>io.quarkus</groupId> + <artifactId>quarkus-resteasy</artifactId> + </dependency> + + <!-- test dependencies --> + <dependency> + <groupId>io.quarkus</groupId> + <artifactId>quarkus-junit5</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>io.rest-assured</groupId> + <artifactId>rest-assured</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.awaitility</groupId> + <artifactId>awaitility</artifactId> + <scope>test</scope> + </dependency> + </dependencies> + + <profiles> + <profile> + <id>native</id> + <activation> + <property> + <name>native</name> + </property> + </activation> + <properties> + <quarkus.native.enabled>true</quarkus.native.enabled> + </properties> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-failsafe-plugin</artifactId> + <executions> + <execution> + <goals> + <goal>integration-test</goal> + <goal>verify</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> + </profile> + <profile> + <id>virtualDependencies</id> + <activation> + <property> + <name>!noVirtualDependencies</name> + </property> + </activation> + <dependencies> + <!-- The following dependencies guarantee that this module is built after them. You can update them by running `mvn process-resources -Pformat -N` from the source tree root directory --> + <dependency> + <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-direct-deployment</artifactId> + <version>${project.version}</version> + <type>pom</type> + <scope>test</scope> + <exclusions> + <exclusion> + <groupId>*</groupId> + <artifactId>*</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-telemetry-dev-deployment</artifactId> + <version>${project.version}</version> + <type>pom</type> + <scope>test</scope> + <exclusions> + <exclusion> + <groupId>*</groupId> + <artifactId>*</artifactId> + </exclusion> + </exclusions> + </dependency> + </dependencies> + </profile> + </profiles> + +</project> diff --git a/integration-tests/telemetry-dev/src/main/java/org/apache/camel/quarkus/component/telemetry/dev/it/TelemetryDevResource.java b/integration-tests/telemetry-dev/src/main/java/org/apache/camel/quarkus/component/telemetry/dev/it/TelemetryDevResource.java new file mode 100644 index 0000000000..2422a79a02 --- /dev/null +++ b/integration-tests/telemetry-dev/src/main/java/org/apache/camel/quarkus/component/telemetry/dev/it/TelemetryDevResource.java @@ -0,0 +1,41 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.quarkus.component.telemetry.dev.it; + +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.Produces; +import jakarta.ws.rs.core.MediaType; +import org.apache.camel.ProducerTemplate; + +@Path("/telemetrydev") +@ApplicationScoped +public class TelemetryDevResource { + + @Inject + ProducerTemplate producerTemplate; + + @Path("/trace") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String traceRoute() { + return producerTemplate.requestBody("direct:start", null, String.class); + } + +} diff --git a/integration-tests/telemetry-dev/src/main/java/org/apache/camel/quarkus/component/telemetry/dev/it/TelemetryDevRouteBuilder.java b/integration-tests/telemetry-dev/src/main/java/org/apache/camel/quarkus/component/telemetry/dev/it/TelemetryDevRouteBuilder.java new file mode 100644 index 0000000000..4415969b9b --- /dev/null +++ b/integration-tests/telemetry-dev/src/main/java/org/apache/camel/quarkus/component/telemetry/dev/it/TelemetryDevRouteBuilder.java @@ -0,0 +1,28 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.quarkus.component.telemetry.dev.it; + +import org.apache.camel.builder.RouteBuilder; + +public class TelemetryDevRouteBuilder extends RouteBuilder { + + @Override + public void configure() throws Exception { + from("direct:start") + .setBody().constant("Traced direct:start"); + } +} diff --git a/integration-tests/telemetry-dev/src/main/resources/application.properties b/integration-tests/telemetry-dev/src/main/resources/application.properties new file mode 100644 index 0000000000..e6d5c71e9c --- /dev/null +++ b/integration-tests/telemetry-dev/src/main/resources/application.properties @@ -0,0 +1,23 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +quarkus.camel.telemetryDev.trace-format=json +quarkus.log.handler.file.my-file-handler.enable=true +quarkus.log.handler.file.my-file-handler.path=target/traces.log +quarkus.log.handler.file.my-file-handler.format=%s + +quarkus.log.category."LOG_TRACE".handlers=my-file-handler +quarkus.log.category."LOG_TRACE".use-parent-handlers=false \ No newline at end of file diff --git a/integration-tests/telemetry-dev/src/test/java/org/apache/camel/quarkus/component/telemetry/dev/it/TelemetryDevIT.java b/integration-tests/telemetry-dev/src/test/java/org/apache/camel/quarkus/component/telemetry/dev/it/TelemetryDevIT.java new file mode 100644 index 0000000000..a132620c97 --- /dev/null +++ b/integration-tests/telemetry-dev/src/test/java/org/apache/camel/quarkus/component/telemetry/dev/it/TelemetryDevIT.java @@ -0,0 +1,24 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.quarkus.component.telemetry.dev.it; + +import io.quarkus.test.junit.QuarkusIntegrationTest; + +@QuarkusIntegrationTest +class TelemetryDevIT extends TelemetryDevTest { + +} diff --git a/integration-tests/telemetry-dev/src/test/java/org/apache/camel/quarkus/component/telemetry/dev/it/TelemetryDevTest.java b/integration-tests/telemetry-dev/src/test/java/org/apache/camel/quarkus/component/telemetry/dev/it/TelemetryDevTest.java new file mode 100644 index 0000000000..b3e366da5d --- /dev/null +++ b/integration-tests/telemetry-dev/src/test/java/org/apache/camel/quarkus/component/telemetry/dev/it/TelemetryDevTest.java @@ -0,0 +1,81 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.quarkus.component.telemetry.dev.it; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.TimeUnit; + +import com.fasterxml.jackson.databind.ObjectMapper; +import io.quarkus.test.junit.QuarkusTest; +import io.restassured.RestAssured; +import org.apache.camel.telemetrydev.DevSpanAdapter; +import org.apache.camel.telemetrydev.DevTrace; +import org.junit.jupiter.api.Test; + +import static org.awaitility.Awaitility.await; +import static org.hamcrest.CoreMatchers.equalTo; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; + +@QuarkusTest +class TelemetryDevTest { + + private final ObjectMapper mapper = new ObjectMapper(); + + protected Map<String, DevTrace> tracesFromLog() throws IOException { + Map<String, DevTrace> answer = new HashMap<>(); + Path path = Paths.get("target/traces.log"); + List<String> allTraces = Files.readAllLines(path); + for (String trace : allTraces) { + DevTrace st = mapper.readValue(trace, DevTrace.class); + if (answer.get(st.getTraceId()) != null) { + // Multiple traces exists for this traceId: this may happen + // when we deal with async events (like wiretap and the like) + DevTrace existing = answer.get(st.getTraceId()); + List<DevSpanAdapter> mergedSpans = st.getSpans(); + mergedSpans.addAll(existing.getSpans()); + st = new DevTrace(st.getTraceId(), mergedSpans); + } + answer.put(st.getTraceId(), st); + } + + return answer; + } + + @Test + public void testTracedCamelRoute() throws IOException { + RestAssured.get("/telemetrydev/trace") + .then() + .statusCode(200) + .body(equalTo("Traced direct:start")); + + await().atMost(30, TimeUnit.SECONDS).pollDelay(50, TimeUnit.MILLISECONDS).until(() -> tracesFromLog().size() == 1); + DevTrace trace = tracesFromLog().values().iterator().next(); + assertNotNull(trace.getSpans()); + assertEquals(2, trace.getSpans().size()); + assertNull(trace.getSpans().get(0).getTag("parentSpan")); + assertEquals(trace.getSpans().get(0).getTag("spanid"), trace.getSpans().get(1).getTag("parentSpan")); + } + +} diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml index 8fd6c24e64..fde3c0c4f0 100644 --- a/poms/bom/pom.xml +++ b/poms/bom/pom.xml @@ -2719,6 +2719,16 @@ <artifactId>camel-telegram</artifactId> <version>${camel.version}</version> </dependency> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-telemetry</artifactId> + <version>${camel.version}</version> + </dependency> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-telemetry-dev</artifactId> + <version>${camel.version}</version> + </dependency> <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-test-junit5</artifactId> @@ -6138,6 +6148,16 @@ <artifactId>camel-quarkus-telegram-deployment</artifactId> <version>${camel-quarkus.version}</version> </dependency> + <dependency> + <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-telemetry-dev</artifactId> + <version>${camel-quarkus.version}</version> + </dependency> + <dependency> + <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-telemetry-dev-deployment</artifactId> + <version>${camel-quarkus.version}</version> + </dependency> <dependency> <groupId>org.apache.camel.quarkus</groupId> <artifactId>camel-quarkus-threadpoolfactory-vertx</artifactId> diff --git a/poms/bom/src/main/generated/flattened-full-pom.xml b/poms/bom/src/main/generated/flattened-full-pom.xml index 678c774202..0f6052c140 100644 --- a/poms/bom/src/main/generated/flattened-full-pom.xml +++ b/poms/bom/src/main/generated/flattened-full-pom.xml @@ -2655,6 +2655,16 @@ <artifactId>camel-telegram</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> <version>4.11.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> </dependency> + <dependency> + <groupId>org.apache.camel</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> + <artifactId>camel-telemetry</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> + <version>4.11.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> + </dependency> + <dependency> + <groupId>org.apache.camel</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> + <artifactId>camel-telemetry-dev</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> + <version>4.11.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> + </dependency> <dependency> <groupId>org.apache.camel</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> <artifactId>camel-test-junit5</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> @@ -6062,6 +6072,16 @@ <artifactId>camel-quarkus-telegram-deployment</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> <version>3.22.0-SNAPSHOT</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> </dependency> + <dependency> + <groupId>org.apache.camel.quarkus</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> + <artifactId>camel-quarkus-telemetry-dev</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> + <version>3.22.0-SNAPSHOT</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> + </dependency> + <dependency> + <groupId>org.apache.camel.quarkus</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> + <artifactId>camel-quarkus-telemetry-dev-deployment</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> + <version>3.22.0-SNAPSHOT</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> + </dependency> <dependency> <groupId>org.apache.camel.quarkus</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> <artifactId>camel-quarkus-threadpoolfactory-vertx</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> diff --git a/poms/bom/src/main/generated/flattened-reduced-pom.xml b/poms/bom/src/main/generated/flattened-reduced-pom.xml index bad2086d01..5defb60d9b 100644 --- a/poms/bom/src/main/generated/flattened-reduced-pom.xml +++ b/poms/bom/src/main/generated/flattened-reduced-pom.xml @@ -2645,6 +2645,16 @@ <artifactId>camel-telegram</artifactId> <version>4.11.0</version> </dependency> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-telemetry</artifactId> + <version>4.11.0</version> + </dependency> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-telemetry-dev</artifactId> + <version>4.11.0</version> + </dependency> <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-test-junit5</artifactId> @@ -6052,6 +6062,16 @@ <artifactId>camel-quarkus-telegram-deployment</artifactId> <version>3.22.0-SNAPSHOT</version> </dependency> + <dependency> + <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-telemetry-dev</artifactId> + <version>3.22.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-telemetry-dev-deployment</artifactId> + <version>3.22.0-SNAPSHOT</version> + </dependency> <dependency> <groupId>org.apache.camel.quarkus</groupId> <artifactId>camel-quarkus-threadpoolfactory-vertx</artifactId> diff --git a/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml b/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml index b2996b759d..e058a56e1e 100644 --- a/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml +++ b/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml @@ -2645,6 +2645,16 @@ <artifactId>camel-telegram</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> <version>4.11.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> </dependency> + <dependency> + <groupId>org.apache.camel</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> + <artifactId>camel-telemetry</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> + <version>4.11.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> + </dependency> + <dependency> + <groupId>org.apache.camel</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> + <artifactId>camel-telemetry-dev</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> + <version>4.11.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> + </dependency> <dependency> <groupId>org.apache.camel</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> <artifactId>camel-test-junit5</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> @@ -6052,6 +6062,16 @@ <artifactId>camel-quarkus-telegram-deployment</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> <version>3.22.0-SNAPSHOT</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> </dependency> + <dependency> + <groupId>org.apache.camel.quarkus</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> + <artifactId>camel-quarkus-telemetry-dev</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> + <version>3.22.0-SNAPSHOT</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> + </dependency> + <dependency> + <groupId>org.apache.camel.quarkus</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> + <artifactId>camel-quarkus-telemetry-dev-deployment</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> + <version>3.22.0-SNAPSHOT</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> + </dependency> <dependency> <groupId>org.apache.camel.quarkus</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> <artifactId>camel-quarkus-threadpoolfactory-vertx</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> diff --git a/tooling/scripts/test-categories.yaml b/tooling/scripts/test-categories.yaml index 31463339e8..f6fd3c45e1 100644 --- a/tooling/scripts/test-categories.yaml +++ b/tooling/scripts/test-categories.yaml @@ -49,6 +49,7 @@ group-02: - protobuf - smallrye-reactive-messaging - sql + - telemetry-dev group-03: - bean-validator - box @@ -84,8 +85,8 @@ group-04: - minio - mongodb-grouped - mybatis - - sjms-artemis-client - observability-services + - sjms-artemis-client group-05: - avro - base64