diff options
Diffstat (limited to 'kamon-examples/kamon-annotation-example/java')
9 files changed, 187 insertions, 0 deletions
diff --git a/kamon-examples/kamon-annotation-example/java/pom.xml b/kamon-examples/kamon-annotation-example/java/pom.xml new file mode 100644 index 00000000..32f4f86b --- /dev/null +++ b/kamon-examples/kamon-annotation-example/java/pom.xml @@ -0,0 +1,64 @@ +<?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>kamon.annotation</groupId> + <artifactId>kamon-spring-boot</artifactId> + <version>0.1.0</version> + + + <parent> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-parent</artifactId> + <version>1.4.0.RELEASE</version> + </parent> + + <dependencies> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-web</artifactId> + </dependency> + <dependency> + <groupId>io.kamon</groupId> + <artifactId>kamon-core_2.11</artifactId> + <version>0.6.2</version> + </dependency> + <dependency> + <groupId>io.kamon</groupId> + <artifactId>kamon-annotation_2.11</artifactId> + <version>0.6.2</version> + </dependency> + <dependency> + <groupId>io.kamon</groupId> + <artifactId>kamon-akka_2.11</artifactId> + <version>0.6.2</version> + </dependency> + <dependency> + <groupId>io.kamon</groupId> + <artifactId>kamon-log-reporter_2.11</artifactId> + <version>0.6.2</version> + </dependency> + </dependencies> + + <properties> + <java.version>1.8</java.version> + </properties> + + + <build> + <plugins> + <plugin> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-maven-plugin</artifactId> + </plugin> + </plugins> + </build> + + <repositories> + <repository> + <id>io.kamon</id> + <url>http://snapshots.kamon.io</url> + </repository> + </repositories> +</project> diff --git a/kamon-examples/kamon-annotation-example/java/src/main/java/kamon/KamonSpringApplication.java b/kamon-examples/kamon-annotation-example/java/src/main/java/kamon/KamonSpringApplication.java new file mode 100644 index 00000000..8103306b --- /dev/null +++ b/kamon-examples/kamon-annotation-example/java/src/main/java/kamon/KamonSpringApplication.java @@ -0,0 +1,12 @@ +package kamon; + +import kamon.akka.pingpong.PingPong; +import kamon.annotation.KamonController; +import org.springframework.boot.SpringApplication; + +public class KamonSpringApplication { + public static void main(String... args) { + Kamon.start(); + SpringApplication.run(new Object[] {KamonController.class, PingPong.class}, args); + } +} diff --git a/kamon-examples/kamon-annotation-example/java/src/main/java/kamon/akka/pingpong/PingPong.java b/kamon-examples/kamon-annotation-example/java/src/main/java/kamon/akka/pingpong/PingPong.java new file mode 100644 index 00000000..8ef2f621 --- /dev/null +++ b/kamon-examples/kamon-annotation-example/java/src/main/java/kamon/akka/pingpong/PingPong.java @@ -0,0 +1,22 @@ +package kamon.akka.pingpong; + +import akka.actor.ActorRef; +import akka.actor.ActorSystem; +import akka.actor.Props; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; + +@Component +public class PingPong { + + @PostConstruct + public void initialize() { + final ActorSystem system = ActorSystem.create("kamon-spring-boot-actor-system"); + + final ActorRef pinger = system.actorOf(Props.create(Pinger.class), "pinger"); + final ActorRef ponger = system.actorOf(Props.create(Ponger.class), "ponger"); + + pinger.tell(new Ponger.PongMessage(), ponger); + } +} diff --git a/kamon-examples/kamon-annotation-example/java/src/main/java/kamon/akka/pingpong/Pinger.java b/kamon-examples/kamon-annotation-example/java/src/main/java/kamon/akka/pingpong/Pinger.java new file mode 100644 index 00000000..dcab35b6 --- /dev/null +++ b/kamon-examples/kamon-annotation-example/java/src/main/java/kamon/akka/pingpong/Pinger.java @@ -0,0 +1,12 @@ +package kamon.akka.pingpong; + +import akka.actor.UntypedActor; + +class Pinger extends UntypedActor { + static final class PingMessage {} + + public void onReceive(Object message) throws Exception { + if (message instanceof Ponger.PongMessage) getSender().tell(new PingMessage(), getSelf()); + else unhandled(message); + } +} diff --git a/kamon-examples/kamon-annotation-example/java/src/main/java/kamon/akka/pingpong/Ponger.java b/kamon-examples/kamon-annotation-example/java/src/main/java/kamon/akka/pingpong/Ponger.java new file mode 100644 index 00000000..b4e8ecfa --- /dev/null +++ b/kamon-examples/kamon-annotation-example/java/src/main/java/kamon/akka/pingpong/Ponger.java @@ -0,0 +1,12 @@ +package kamon.akka.pingpong; + +import akka.actor.UntypedActor; + +class Ponger extends UntypedActor { + static final class PongMessage {} + + public void onReceive(Object message) throws Exception { + if (message instanceof Pinger.PingMessage) getSender().tell(new PongMessage(), getSelf()); + else unhandled(message); + } +} diff --git a/kamon-examples/kamon-annotation-example/java/src/main/java/kamon/annotation/KamonController.java b/kamon-examples/kamon-annotation-example/java/src/main/java/kamon/annotation/KamonController.java new file mode 100644 index 00000000..27eeda53 --- /dev/null +++ b/kamon-examples/kamon-annotation-example/java/src/main/java/kamon/annotation/KamonController.java @@ -0,0 +1,17 @@ +package kamon.annotation; + +import org.springframework.boot.autoconfigure.*; +import org.springframework.stereotype.*; +import org.springframework.web.bind.annotation.*; + +@Controller +@EnableAutoConfiguration +@RequestMapping("/kamon") +@EnableKamon +public class KamonController { + + @RequestMapping("/counter") + @ResponseBody + @Count(name = "awesomeCounter") + public String counter() { return "count!!!"; } +} diff --git a/kamon-examples/kamon-annotation-example/java/src/main/resources/META-INF/aop.xml b/kamon-examples/kamon-annotation-example/java/src/main/resources/META-INF/aop.xml new file mode 100644 index 00000000..9b144860 --- /dev/null +++ b/kamon-examples/kamon-annotation-example/java/src/main/resources/META-INF/aop.xml @@ -0,0 +1,8 @@ +<!DOCTYPE aspectj PUBLIC "-//AspectJ//DTD//EN" "http://www.eclipse.org/aspectj/dtd/aspectj.dtd"> + +<aspectj> + <weaver options="-Xlint:ignore"> + <include within="kamon..*"/> + <exclude within="org.aspectj.*"/> + </weaver> +</aspectj> diff --git a/kamon-examples/kamon-annotation-example/java/src/main/resources/application.conf b/kamon-examples/kamon-annotation-example/java/src/main/resources/application.conf new file mode 100644 index 00000000..1755bfc5 --- /dev/null +++ b/kamon-examples/kamon-annotation-example/java/src/main/resources/application.conf @@ -0,0 +1,21 @@ +############################### +# Kamon related configuration # +############################### + +kamon { + + metric { + filters { + trace.includes = [ "**" ] + akka-actor.includes = [ "**" ] + akka-actor.excludes = ["*/system/**", "*/user/IO-**" ] + akka-dispatcher.includes = [ "**" ] + akka-dispatcher.excludes = [ ] + } + } + + modules { + kamon-annotation.auto-start = yes + kamon-log-reporter.auto-start = yes + } +} diff --git a/kamon-examples/kamon-annotation-example/java/src/main/resources/logback.xml b/kamon-examples/kamon-annotation-example/java/src/main/resources/logback.xml new file mode 100644 index 00000000..fac5ad3d --- /dev/null +++ b/kamon-examples/kamon-annotation-example/java/src/main/resources/logback.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<configuration> + <property name="CONSOLE_LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${PID:- } [%t] --- %-40.40logger{39} : %m%n%wex"/> + + <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" /> + + <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> + <encoder> + <pattern>${CONSOLE_LOG_PATTERN}</pattern> + </encoder> + </appender> + + <root level="INFO"> + <appender-ref ref="CONSOLE" /> + </root> + + <!-- logger name="org.springframework" level="DEBUG"/ --> + +</configuration> |