zipkin-server
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency> <groupId>io.zipkin</groupId> <artifactId>zipkin-server</artifactId> <version>3.5.1</version> </dependency>
<?xml version="1.0" encoding="UTF-8"?> <!-- Copyright The OpenZipkin Authors SPDX-License-Identifier: Apache-2.0 --> <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>io.zipkin</groupId> <artifactId>zipkin-parent</artifactId> <version>3.5.1</version> </parent> <artifactId>zipkin-server</artifactId> <name>Zipkin Server</name> <properties> <main.basedir>${project.basedir}/..</main.basedir> <!-- Spring Boot 3 requires JRE 17 --> <maven.compiler.source>17</maven.compiler.source> <maven.compiler.target>17</maven.compiler.target> <maven.compiler.release>17</maven.compiler.release> <!-- Sometimes we need to override Armeria's Brave version --> <brave.version>6.1.0</brave.version> <zipkin-reporter.version>3.5.0</zipkin-reporter.version> <log4j.version>2.23.1</log4j.version> <proto.generatedSourceDirectory>${project.build.directory}/generated-test-sources/wire</proto.generatedSourceDirectory> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-bom</artifactId> <version>${log4j.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-bom</artifactId> <version>${netty.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>io.zipkin.brave</groupId> <artifactId>brave-bom</artifactId> <version>${brave.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>com.fasterxml.jackson</groupId> <artifactId>jackson-bom</artifactId> <version>${jackson.version}</version> <type>pom</type> <scope>import</scope> </dependency> <!-- reconcile armeria and spring-boot versions --> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-bom</artifactId> <version>${micrometer.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <!-- Makes sure spring doesn't eagerly bind tomcat or slf4j --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <version>${spring-boot.version}</version> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> <version>${spring-boot.version}</version> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> <!-- We only include a couple actuator endpoints, and metrics are served directly --> <exclusion> <groupId>io.micrometer</groupId> <artifactId>*</artifactId> </exclusion> </exclusions> </dependency> <!-- module support requires org.springframework.boot.loader.launch.PropertiesLauncher From version 3, this is no longer included in spring-boot-starter. --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-loader-classic</artifactId> <version>${spring-boot.version}</version> </dependency> <!-- Use log4j 2 as default logging implementation --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> <version>${spring-boot.version}</version> </dependency> <!-- More efficient, gRPC ready server with brave tracing built-in --> <dependency> <groupId>com.linecorp.armeria</groupId> <artifactId>armeria-spring-boot3-autoconfigure</artifactId> <version>${armeria.version}</version> <exclusions> <exclusion> <groupId>com.linecorp.armeria</groupId> <artifactId>armeria-logback</artifactId> </exclusion> <exclusion> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.linecorp.armeria</groupId> <artifactId>armeria-brave6</artifactId> <version>${armeria.version}</version> </dependency> <dependency> <groupId>com.linecorp.armeria</groupId> <artifactId>armeria-grpc-protocol</artifactId> <version>${armeria.version}</version> </dependency> <!-- Eureka service discovery --> <dependency> <groupId>com.linecorp.armeria</groupId> <artifactId>armeria-eureka</artifactId> <version>${armeria.version}</version> </dependency> <!--Prometheus metrics--> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> </dependency> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus-simpleclient</artifactId> </dependency> <dependency> <groupId>com.netflix.concurrency-limits</groupId> <artifactId>concurrency-limits-core</artifactId> <version>0.5.3</version> </dependency> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-core</artifactId> </dependency> <dependency> <groupId>${project.groupId}.zipkin2</groupId> <artifactId>zipkin</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>${project.groupId}.zipkin2</groupId> <artifactId>zipkin-collector</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jul-to-slf4j</artifactId> <version>${slf4j.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> <version>${slf4j.version}</version> </dependency> <!-- the "exec" jar will exclude this --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>${slf4j.version}</version> <scope>provided</scope> </dependency> <!-- the "slim" jar will exclude this --> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <scope>provided</scope> </dependency> <!-- Optional, but packaged in the supported distribution --> <!-- Cassandra backend --> <dependency> <groupId>${project.groupId}.zipkin2</groupId> <artifactId>zipkin-storage-cassandra</artifactId> <version>${project.version}</version> <optional>true</optional> </dependency> <!-- Elasticsearch http --> <dependency> <groupId>${project.groupId}.zipkin2</groupId> <artifactId>zipkin-storage-elasticsearch</artifactId> <version>${project.version}</version> <optional>true</optional> </dependency> <!-- MySQL backend --> <dependency> <groupId>${project.groupId}.zipkin2</groupId> <artifactId>zipkin-storage-mysql-v1</artifactId> <version>${project.version}</version> <optional>true</optional> </dependency> <dependency> <groupId>org.mariadb.jdbc</groupId> <artifactId>mariadb-java-client</artifactId> <version>${mariadb-java-client.version}</version> <optional>true</optional> </dependency> <dependency> <groupId>com.zaxxer</groupId> <artifactId>HikariCP</artifactId> <version>${HikariCP.version}</version> <optional>true</optional> </dependency> <!-- ActiveMQ Collector --> <dependency> <groupId>${project.groupId}.zipkin2</groupId> <artifactId>zipkin-collector-activemq</artifactId> <version>${project.version}</version> <optional>true</optional> </dependency> <!-- Kafka Collector --> <dependency> <groupId>${project.groupId}.zipkin2</groupId> <artifactId>zipkin-collector-kafka</artifactId> <version>${project.version}</version> <optional>true</optional> </dependency> <!-- RabbitMQ Collector --> <dependency> <groupId>${project.groupId}.zipkin2</groupId> <artifactId>zipkin-collector-rabbitmq</artifactId> <version>${project.version}</version> <optional>true</optional> </dependency> <!-- Scribe Collector --> <dependency> <groupId>${project.groupId}.zipkin2</groupId> <artifactId>zipkin-collector-scribe</artifactId> <version>${project.version}</version> <optional>true</optional> </dependency> <!-- Pulsar Collector --> <dependency> <groupId>${project.groupId}.zipkin2</groupId> <artifactId>zipkin-collector-pulsar</artifactId> <version>${project.version}</version> <optional>true</optional> </dependency> <!-- Trace api controller activity with Brave --> <dependency> <groupId>io.zipkin.brave</groupId> <artifactId>brave</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>io.zipkin.brave</groupId> <artifactId>brave-context-slf4j</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>io.zipkin.reporter2</groupId> <artifactId>zipkin-reporter-brave</artifactId> <version>${zipkin-reporter.version}</version> <optional>true</optional> </dependency> <!-- <dependency>--> <!-- <groupId>io.zipkin.brave.cassandra</groupId>--> <!-- <artifactId>brave-instrumentation-cassandra-driver</artifactId>--> <!-- <version>0.10.3</version>--> <!-- <optional>true</optional>--> <!-- </dependency>--> <!-- Test dependencies --> <!-- to test the experimental grpc endpoint with the square/wire library --> <dependency> <groupId>io.zipkin.proto3</groupId> <artifactId>zipkin-proto3</artifactId> <version>${zipkin-proto3.version}</version> <scope>test</scope> </dependency> <!-- Our json codec is shaded, but Intellij doesn't understand that when running tests. --> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>${gson.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>com.squareup.wire</groupId> <artifactId>wire-runtime-jvm</artifactId> <version>${wire.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId> <version>${okhttp.version}</version> <scope>test</scope> <exclusions> <!-- let wire control the okio version --> <exclusion> <groupId>com.squareup.okio</groupId> <artifactId>okio</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <version>${junit-jupiter.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>com.linecorp.armeria</groupId> <artifactId>armeria-junit5</artifactId> <version>${armeria.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.testcontainers</groupId> <artifactId>junit-jupiter</artifactId> <version>${testcontainers.version}</version> <scope>test</scope> </dependency> <!-- Don't use spring-boot-starter-test as it complicates the dependency tree and causes heavier downloads. We only need the spring-provided libraries --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-test-autoconfigure</artifactId> <version>${spring-boot.version}</version> <exclusions> <exclusion> <groupId>*</groupId> <artifactId>*</artifactId> </exclusion> </exclusions> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-test</artifactId> <version>${spring-boot.version}</version> <exclusions> <exclusion> <groupId>*</groupId> <artifactId>*</artifactId> </exclusion> </exclusions> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> <scope>test</scope> </dependency> <!-- Needed by ZipkinHttpClientSender --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> <exclusions> <exclusion> <groupId>*</groupId> <artifactId>*</artifactId> </exclusion> </exclusions> <scope>test</scope> </dependency> <dependency> <groupId>${project.groupId}.zipkin2</groupId> <artifactId>zipkin-tests</artifactId> <version>${project.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.awaitility</groupId> <artifactId>awaitility</artifactId> <version>${awaitility.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>com.jayway.jsonpath</groupId> <artifactId>json-path</artifactId> <version>2.9.0</version> <scope>test</scope> </dependency> <!-- Main code uses jul and tests log with log4j --> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-jul</artifactId> <scope>test</scope> </dependency> <!-- Don't add log4j-slf4j-impl as simplelogger is in the classpath! --> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-1.2-api</artifactId> <scope>test</scope> </dependency> </dependencies> <profiles> <profile> <id>actuator</id> <activation> <property> <name>!skipActuator</name> </property> </activation> <dependencies> <!-- /actuator endpoints --> <dependency> <groupId>com.linecorp.armeria</groupId> <artifactId>armeria-spring-boot3-actuator-autoconfigure</artifactId> <version>${armeria.version}</version> <optional>true</optional> </dependency> </dependencies> </profile> <profile> <id>include-lens</id> <activation> <property> <name>!skipLens</name> </property> </activation> <dependencies> <!-- Static content for the Lens UI --> <dependency> <groupId>${project.groupId}</groupId> <artifactId>zipkin-lens</artifactId> <version>${project.version}</version> </dependency> </dependencies> </profile> </profiles> <build> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> <plugins> <!-- wire-maven-plugin cannot get proto definitions from dependencies, so we will --> <plugin> <artifactId>maven-dependency-plugin</artifactId> </plugin> <!-- Ensure jul -> log4j --> <plugin> <artifactId>maven-failsafe-plugin</artifactId> <configuration> <systemPropertyVariables> <java.util.logging.manager>org.apache.logging.log4j.jul.LogManager</java.util.logging.manager> </systemPropertyVariables> </configuration> </plugin> <plugin> <groupId>de.m3y.maven</groupId> <artifactId>wire-maven-plugin</artifactId> <executions> <execution> <phase>generate-test-sources</phase> <goals> <goal>generate-sources</goal> </goals> <configuration> <generatedSourceDirectory>${proto.generatedSourceDirectory}</generatedSourceDirectory> </configuration> </execution> </executions> </plugin> <!-- Adds the output directory from proto source generation for the test compiler --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>${build-helper-maven-plugin.version}</version> <executions> <execution> <id>add-test-source</id> <phase>generate-test-sources</phase> <goals> <goal>add-test-source</goal> </goals> <configuration> <sources> <source>${proto.generatedSourceDirectory}</source> </sources> </configuration> </execution> </executions> </plugin> <plugin> <groupId>pl.project13.maven</groupId> <artifactId>git-commit-id-plugin</artifactId> <version>${git-commit-id.version}</version> <executions> <execution> <id>extract-git-info</id> <goals> <goal>revision</goal> </goals> </execution> </executions> <configuration> <failOnNoGitDirectory>false</failOnNoGitDirectory> </configuration> </plugin> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>${spring-boot.version}</version> <configuration> <mainClass>zipkin.server.ZipkinServer</mainClass> <executable>true</executable> </configuration> <executions> <execution> <id>exec</id> <goals> <goal>repackage</goal> </goals> <configuration> <classifier>exec</classifier> <excludes> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> </dependency> </excludes> </configuration> </execution> <!-- Make a jar less than half the size, which only supports armeria-native features --> <execution> <id>slim</id> <goals> <goal>repackage</goal> </goals> <configuration> <classifier>slim</classifier> <!-- https://github.com/spring-projects/spring-boot/issues/3426 transitive exclude doesn't work --> <excludeGroupIds> com.google.auto.value,com.google.guava,io.dropwizard.metrics,org.apache.cassandra,com.github.jnr,org.ow2.asm,org.jooq,javax.xml.bind,org.mariadb.jdbc,com.zaxxer,org.apache.activemq,org.apache.geronimo.specs,org.fusesource.hawtbuf,org.apache.kafka,com.github.luben,org.lz4,org.xerial.snappy,com.rabbitmq,jakarta.annotation,org.apache.thrift,org.apache.logging.log4j </excludeGroupIds> <excludes> <!-- Actuator --> <dependency> <groupId>com.linecorp.armeria</groupId> <artifactId>armeria-spring-boot3-actuator-autoconfigure</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-actuator-autoconfigure</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-actuator</artifactId> </dependency> <dependency> <groupId>com.fasterxml.jackson.datatype</groupId> <artifactId>jackson-datatype-jsr310</artifactId> </dependency> <!-- Log4J 2 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency> <!-- Unnecessary netty deps --> <dependency> <groupId>io.netty</groupId> <artifactId>netty-codec-haproxy</artifactId> </dependency> <!-- removes boringssl from jar as all archs end up too big we add this back in docker --> <dependency> <groupId>io.netty</groupId> <artifactId>netty-tcnative-boringssl-static</artifactId> </dependency> <!-- Unnecessary micrometer deps --> <!-- TODO: https://github.com/micrometer-metrics/micrometer/issues/1599 --> <!-- <dependency>--> <!-- <!– only used by TimeWindowPercentileHistogram –>--> <!-- <groupId>org.hdrhistogram</groupId>--> <!-- <artifactId>HdrHistogram</artifactId>--> <!-- </dependency>--> <!-- <dependency>--> <!-- <!– we don't use pause detector –>--> <!-- <groupId>org.latencyutils</groupId>--> <!-- <artifactId>LatencyUtils</artifactId>--> <!-- </dependency>--> <!-- storage and collectors which have 3rd party deps --> <dependency> <groupId>${project.groupId}.zipkin2</groupId> <artifactId>zipkin-storage-cassandra</artifactId> </dependency> <dependency> <groupId>io.zipkin.brave.cassandra</groupId> <artifactId>brave-instrumentation-cassandra-driver</artifactId> </dependency> <!-- MySQL backend --> <dependency> <groupId>${project.groupId}.zipkin2</groupId> <artifactId>zipkin-storage-mysql-v1</artifactId> </dependency> <!-- ActiveMQ Collector --> <dependency> <groupId>${project.groupId}.zipkin2</groupId> <artifactId>zipkin-collector-activemq</artifactId> </dependency> <!-- Kafka Collector --> <dependency> <groupId>${project.groupId}.zipkin2</groupId> <artifactId>zipkin-collector-kafka</artifactId> </dependency> <!-- RabbitMQ Collector --> <dependency> <groupId>${project.groupId}.zipkin2</groupId> <artifactId>zipkin-collector-rabbitmq</artifactId> </dependency> <!-- Scribe Collector --> <dependency> <groupId>${project.groupId}.zipkin2</groupId> <artifactId>zipkin-collector-scribe</artifactId> </dependency> <exclude> <groupId>com.linecorp.armeria</groupId> <artifactId>armeria-thrift0.18</artifactId> </exclude> </excludes> </configuration> </execution> </executions> </plugin> </plugins> </build> </project>