Skip to content

Commit

Permalink
Jaeger extension plus documentation skeleton
Browse files Browse the repository at this point in the history
project structure
  • Loading branch information
brunobat committed Oct 7, 2022
1 parent 580d6f4 commit fc8fe30
Show file tree
Hide file tree
Showing 33 changed files with 1,274 additions and 3 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,6 @@ buildNumber.properties
.mvn/timing.properties
# https://github.com/takari/maven-wrapper#usage-without-binary-jar
.mvn/wrapper/maven-wrapper.jar
/.idea/.gitignore
/.github/
/.idea/
14 changes: 11 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# quarkus-opentelemetry-exporter
Quarkus extensions related with additional OpenTelemetry exporters
# Quarkus OpenTelemetry Exporters

[![Version](https://img.shields.io/maven-central/v/io.quarkiverse.opentelemetry.exporter/quarkus-opentelemetry-exporter?logo=apache-maven&style=flat-square)](https://search.maven.org/artifact/io.quarkiverse.opentelemetry.exporter/quarkus-opentelemetry-exporter)

Work in progress
## About Exporters

Exporters are OpenTelemetry SDK Plugins which implement the Exporter interface, and emit telemetry to consumers, usually observability vendors.



## Documentation

The documentation for this extension is stored in the `docs/` directory.
5 changes: 5 additions & 0 deletions docs/antora.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
name: quarkus-opentelemetry-exporter
title: Quarkus Opentelemetry Exporter
version: dev
nav:
- modules/ROOT/nav.adoc
2 changes: 2 additions & 0 deletions docs/modules/ROOT/nav.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
* xref:index.adoc[Introduction]
* xref:quarkus-opentelemetry-exporter-jaeger.adoc[Quarkus Opentelemetry Exporter Jaeger]
3 changes: 3 additions & 0 deletions docs/modules/ROOT/pages/includes/attributes.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
:project-version: 0

:examples-dir: ./../examples/
13 changes: 13 additions & 0 deletions docs/modules/ROOT/pages/index.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
= Quarkus OpenTelemetry Exporter

include::./includes/attributes.adoc[]

TIP: Exporters are OpenTelemetry (OTel) SDK Plugins which implement the Exporter interface, and emit telemetry to consumers, usually observability vendors.

Quarkus already includes the default OTLP exporter. This project will host additional ones.

== Additional resources
* https://quarkus.io/guides/opentelemetry[Quarkus OpenTelemetry guide]
* https://opentelemetry.io/docs/concepts/data-collection/[OTel Data collection]

Please ask questions on stackoverflow (using `quarkus` and `opentelemetry` tags, or join us in the https://quarkusio.zulipchat.com/[Quarkus Zulip] chatroom,
27 changes: 27 additions & 0 deletions docs/modules/ROOT/pages/quarkus-opentelemetry-exporter-jaeger.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
= Quarkus Opentelemetry Exporter Jaeger

include::./includes/attributes.adoc[]

TIP: Describe what the extension does here.

== Installation

If you want to use this extension, you need to add the `io.quarkiverse.opentelemetry.exporter:quarkus-opentelemetry-exporter` extension first to your build file.

For instance, with Maven, add the following dependency to your POM file:

[source,xml,subs=attributes+]
----
<dependency>
<groupId>io.quarkiverse.opentelemetry.exporter</groupId>
<artifactId>quarkus-opentelemetry-exporter-jaeger</artifactId>
<version>{project-version}</version>
</dependency>
----

//[[extension-configuration-reference]]
//== Extension Configuration Reference
//
//TIP: Remove this section if you don't have Quarkus configuration properties in your extension.
//
//include::includes/quarkus-opentelemetry-exporter.adoc[leveloffset=+1, opts=optional]
106 changes: 106 additions & 0 deletions docs/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>io.quarkiverse.opentelemetry.exporter</groupId>
<artifactId>quarkus-opentelemetry-exporter-parent</artifactId>
<version>999-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

<artifactId>quarkus-opentelemetry-exporter-docs</artifactId>
<name>Quarkus Opentelemetry Exporter - Documentation</name>

<dependencies>
<!-- Make sure the doc is built after the other artifacts -->
<dependency>
<groupId>io.quarkiverse.opentelemetry.exporter</groupId>
<artifactId>quarkus-opentelemetry-exporter-jaeger</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>

<build>
<sourceDirectory>modules/ROOT/examples</sourceDirectory>
<plugins>
<plugin>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>it.ozimov</groupId>
<artifactId>yaml-properties-maven-plugin</artifactId>
<executions>
<execution>
<phase>initialize</phase>
<goals>
<goal>read-project-properties</goal>
</goals>
<configuration>
<files>
<file>${project.basedir}/../.github/project.yml</file>
</files>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy-resources</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>modules/ROOT/pages/includes</outputDirectory>
<resources>
<resource>
<directory>${project.basedir}/../target/asciidoc/generated/config/</directory>
<include>quarkus-opentelemetry-exporter.adoc</include>
<filtering>false</filtering>
</resource>
<resource>
<directory>${project.basedir}/templates/includes</directory>
<include>attributes.adoc</include>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
<execution>
<id>copy-images</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>target/generated-docs/_images</outputDirectory>
<resources>
<resource>
<directory>${project.basedir}/modules/ROOT/assets/images/</directory>
<filtering>false</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.asciidoctor</groupId>
<artifactId>asciidoctor-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

</project>
3 changes: 3 additions & 0 deletions docs/templates/includes/attributes.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
:project-version: ${release.current-version}

:examples-dir: ./../examples/
92 changes: 92 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>io.quarkiverse</groupId>
<artifactId>quarkiverse-parent</artifactId>
<version>10</version>
<relativePath/> <!-- always from repository -->
</parent>

<groupId>io.quarkiverse.opentelemetry.exporter</groupId>
<artifactId>quarkus-opentelemetry-exporter-parent</artifactId>
<version>999-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Quarkus Opentelemetry Exporter - Parent</name>

<modules>
<module>quarkus-opentelemetry-exporter-jaeger</module>
<module>docs</module>
</modules>

<properties>
<compiler-plugin.version>3.8.1</compiler-plugin.version>
<maven.compiler.release>11</maven.compiler.release>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

<quarkus.version>2.13.1.Final</quarkus.version>
<opentelemetry.version>1.18.0</opentelemetry.version>
<opentelemetry-alpha.version>1.18.0-alpha</opentelemetry-alpha.version>

<assertj-core.version>3.23.1</assertj-core.version>
<junit-jupiter.version>1.17.5</junit-jupiter.version>
</properties>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-bom</artifactId>
<version>${quarkus.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-bom</artifactId>
<version>${opentelemetry.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-bom-alpha</artifactId>
<version>${opentelemetry-alpha.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>io.opentelemetry.instrumentation</groupId>
<artifactId>opentelemetry-instrumentation-bom-alpha</artifactId>
<version>${opentelemetry-alpha.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-maven-plugin</artifactId>
<version>${quarkus.version}</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>${compiler-plugin.version}</version>
<configuration>
<compilerArgs>
<arg>-parameters</arg>
</compilerArgs>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
72 changes: 72 additions & 0 deletions quarkus-opentelemetry-exporter-jaeger/deployment/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>io.quarkiverse.opentelemetry.exporter</groupId>
<artifactId>quarkus-opentelemetry-exporter-jaeger-parent</artifactId>
<version>999-SNAPSHOT</version>
</parent>

<artifactId>quarkus-opentelemetry-exporter-jaeger-deployment</artifactId>
<name>Quarkus Opentelemetry Exporter Jaeger- Deployment</name>

<dependencies>
<dependency>
<groupId>io.quarkiverse.opentelemetry.exporter</groupId>
<artifactId>quarkus-opentelemetry-exporter-jaeger</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-opentelemetry-deployment</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-grpc-common-deployment</artifactId>
</dependency>

<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-junit5-internal</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>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>${assertj-core.version}</version>
<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>${project.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
</plugins>
</build>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package io.quarkiverse.opentelemetry.exporter.jaeger.deployment;

import io.quarkus.deployment.Feature;
import io.quarkus.deployment.annotations.BuildStep;
import io.quarkus.deployment.builditem.FeatureBuildItem;

// Executed even if the extension is disabled, see https://github.com/quarkusio/quarkus/pull/26966/
public class JaegerExporterAlwaysEnabledProcessor {

@BuildStep
FeatureBuildItem feature() {
return new FeatureBuildItem(Feature.OPENTELEMETRY_JAEGER_EXPORTER);
}

}
Loading

0 comments on commit fc8fe30

Please sign in to comment.