blob: 73725bee0cb1a3959eef2cfd488e59bac706652d [file]
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.lightbend</groupId>
<artifactId>telemetry-sample</artifactId>
<version>1.0-SNAPSHOT</version>
<licenses>
<license>
<name>CC0</name>
<url>https://creativecommons.org/publicdomain/zero/1.0</url>
</license>
</licenses>
<!--
TODO: Remove `lightbend.cinnamon.version` after releasing 2.16.0 and
updating it on akka-platform-dependencies
-->
<!-- tag::telemetry-build-properties[] -->
<properties>
<scala.version>2.13.3</scala.version>
<scala.binary.version>2.13</scala.binary.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<version.number>${git.commit.time}-${git.commit.id.abbrev}</version.number>
<lightbend.cinnamon.version>2.16.1</lightbend.cinnamon.version>
</properties>
<!-- end::telemetry-build-properties[] -->
<!-- tag::telemetry-commercial-repository[] -->
<repositories>
<repository>
<id>lightbend-commercial</id>
<name>Lightbend Commercial</name>
<url>${env.LIGHTBEND_COMMERCIAL_MVN}</url>
</repository>
</repositories>
<!-- end::telemetry-commercial-repository[] -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.lightbend.akka</groupId>
<artifactId>akka-platform-dependencies_${scala.binary.version}</artifactId>
<version>0.3.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-actor-typed_${scala.binary.version}</artifactId>
</dependency>
<!-- tag::telemetry-dependencies[] -->
<!-- Use Coda Hale Metrics -->
<dependency>
<groupId>com.lightbend.cinnamon</groupId>
<artifactId>cinnamon-chmetrics</artifactId>
<version>${lightbend.cinnamon.version}</version>
</dependency>
<!-- Use Akka instrumentations -->
<dependency>
<groupId>com.lightbend.cinnamon</groupId>
<artifactId>cinnamon-akka_${scala.binary.version}</artifactId>
<version>${lightbend.cinnamon.version}</version>
</dependency>
<!-- Use Akka Persistence instrumentation -->
<dependency>
<groupId>com.lightbend.cinnamon</groupId>
<artifactId>cinnamon-akka-persistence_${scala.binary.version}</artifactId>
<version>${lightbend.cinnamon.version}</version>
</dependency>
<!-- Akka Projection instrumentations -->
<dependency>
<groupId>com.lightbend.cinnamon</groupId>
<artifactId>cinnamon-akka-projection_${scala.binary.version}</artifactId>
<version>${lightbend.cinnamon.version}</version>
</dependency>
<!-- Use Akka HTTP instrumentation -->
<dependency>
<groupId>com.lightbend.cinnamon</groupId>
<artifactId>cinnamon-akka-http_${scala.binary.version}</artifactId>
<version>${lightbend.cinnamon.version}</version>
</dependency>
<!-- Use Akka gRPC instrumentation -->
<dependency>
<groupId>com.lightbend.cinnamon</groupId>
<artifactId>cinnamon-akka-grpc_${scala.binary.version}</artifactId>
<version>${lightbend.cinnamon.version}</version>
</dependency>
<!-- end::telemetry-dependencies[] -->
<!-- tag::telemetry-prometheus-dependencies[] -->
<!-- Cinnamon Prometheus core dependency -->
<dependency>
<groupId>com.lightbend.cinnamon</groupId>
<artifactId>cinnamon-prometheus</artifactId>
<version>${lightbend.cinnamon.version}</version>
</dependency>
<!-- Cinnamon Prometheus HTTP server dependency -->
<dependency>
<groupId>com.lightbend.cinnamon</groupId>
<artifactId>cinnamon-prometheus-httpserver</artifactId>
<version>${lightbend.cinnamon.version}</version>
</dependency>
<!-- end::telemetry-prometheus-dependencies[] -->
<!-- tag::telemetry-opentracing-dependencies[] -->
<!-- Cinnamon OpenTracing core dependency -->
<dependency>
<groupId>com.lightbend.cinnamon</groupId>
<artifactId>cinnamon-opentracing_${scala.binary.version}</artifactId>
<version>${lightbend.cinnamon.version}</version>
</dependency>
<!-- Cinnamon OpenTracing Zipkin reporter dependency -->
<dependency>
<groupId>com.lightbend.cinnamon</groupId>
<artifactId>cinnamon-opentracing-zipkin</artifactId>
<version>${lightbend.cinnamon.version}</version>
</dependency>
<!-- end::telemetry-opentracing-dependencies[] -->
</dependencies>
<build>
<plugins>
<plugin>
<groupId>com.diffplug.spotless</groupId>
<artifactId>spotless-maven-plugin</artifactId>
<version>2.4.1</version>
<configuration>
<scala>
<scalafmt>
<version>2.7.4</version>
<file>${project.basedir}/.scalafmt.conf</file>
</scalafmt>
</scala>
</configuration>
</plugin>
<!-- tag::telemetry-agent-copy[] -->
<!-- Copy the agent to a know location that can be referenced later -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.1.2</version>
<executions>
<execution>
<id>copy</id>
<phase>compile</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>com.lightbend.cinnamon</groupId>
<artifactId>cinnamon-agent</artifactId>
<overWrite>true</overWrite>
<destFileName>cinnamon-agent.jar</destFileName>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
<!-- end::telemetry-agent-copy[] -->
<!-- tag::telemetry-javaagent-run[] -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<executable>java</executable>
<arguments>
<argument>-javaagent:${project.build.directory}/dependency/cinnamon-agent.jar</argument>
<argument>-classpath</argument>
<classpath />
<argument>com.lightbend.telemetry.sample.Main</argument>
</arguments>
</configuration>
</plugin>
<!-- end::telemetry-javaagent-run[] -->
<!-- tag::telemetry-javaagent-test[] -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
<configuration>
<argLine>-javaagent:${project.build.directory}/dependency/cinnamon-agent.jar</argLine>
</configuration>
</plugin>
<!-- end::telemetry-javaagent-test[] -->
<!-- tag::telemetry-javaagent-docker[] -->
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.35.0</version>
<configuration>
<verbose>true</verbose>
<useColor>true</useColor>
<images>
<image>
<name>%a</name>
<build>
<from>docker.io/library/adoptopenjdk:11-jre-hotspot</from>
<tags>
<tag>${version.number}</tag>
</tags>
<entryPoint>
<exec>
<arg>java</arg>
<arg>-cp</arg>
<arg>/maven/*</arg>
<!-- /cinnamon-agent folder matches the assembly name below -->
<arg>-javaagent:/cinnamon-agent/cinnamon-agent.jar</arg>
<arg>com.lightbend.telemetry.sample.Main</arg>
</exec>
</entryPoint>
<assemblies>
<!-- An inline assembly to add the agent jar to the Docker image -->
<assembly>
<name>cinnamon-agent</name>
<mode>dir</mode>
<inline>
<includeBaseDirectory>false</includeBaseDirectory>
<fileSets>
<fileSet>
<directory>${project.build.directory}/dependency</directory>
<outputDirectory>.</outputDirectory>
<fileMode>0644</fileMode>
</fileSet>
</fileSets>
</inline>
</assembly>
<assembly>
<descriptorRef>artifact-with-dependencies</descriptorRef>
</assembly>
</assemblies>
</build>
</image>
</images>
</configuration>
<executions>
<execution>
<id>build-docker-image</id>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- end::telemetry-javaagent-docker[] -->
<plugin>
<groupId>pl.project13.maven</groupId>
<artifactId>git-commit-id-plugin</artifactId>
<version>4.0.4</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>revision</goal>
</goals>
</execution>
</executions>
<configuration>
<dateFormat>yyyyMMdd-HHmmss</dateFormat>
<!-- Version can be defined with -Dversion.number=0.1-SNAPSHOT if git is not used -->
<dotGitDirectory>${project.basedir}/.git</dotGitDirectory>
<failOnNoGitDirectory>false</failOnNoGitDirectory>
<generateGitPropertiesFile>false</generateGitPropertiesFile>
</configuration>
</plugin>
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<version>4.4.1</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
<configuration>
<scalaVersion>${scala.version}</scalaVersion>
</configuration>
</plugin>
</plugins>
</build>
</project>