diff --git a/.gitignore b/.gitignore index 8c7cac6e2..1c147897b 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,9 @@ .pygments-cache .DS_Store +# Mill specific +out/ + # sbt specific dist/* target/ diff --git a/.opencode/skills/sbt-to-mill-migration/SKILL.md b/.opencode/skills/sbt-to-mill-migration/SKILL.md new file mode 100644 index 000000000..9c046d959 --- /dev/null +++ b/.opencode/skills/sbt-to-mill-migration/SKILL.md @@ -0,0 +1,278 @@ +--- +name: sbt-to-mill-migration +description: Migrate Kamon modules from SBT to Mill build system following project conventions for naming, dependencies, shading, and testing +--- + +# SBT to Mill Migration Guide for Kamon + +This skill documents the conventions and procedures for migrating Kamon modules from SBT to Mill build system. + +## Project Structure + +### Directory Layout + +- Mill build files use `package.mill` in subdirectories (e.g., `core/package.mill`, `reporters/package.mill`) +- Main build configuration lives in `build.mill` at the project root +- Source code follows SBT layout: `src/main/scala`, `src/test/scala`, `src/main/resources`, etc. +- **When migrating**: Rename the module directory from `reporters/kamon-{name}/` to `reporters/{name}/` (drop the `kamon-` prefix). Do NOT copy individual files - rename the entire directory to preserve git history and avoid leaving old directories behind. + +### Module Naming Conventions + +- **Mill module names**: Use simple names WITHOUT the `kamon-` prefix (e.g., `prometheus`, `datadog`, `opentelemetry`). Use camelCase if there are several words in the module name. +- **Artifact names**: Preserve the original `kamon-*` naming via `artifactName` override +- **Cross-compilation**: All modules extend `Cross[moduleName](AllScalaVersions)` for Scala 2.13 and 3.3 support + +Example: + +```scala +object prometheus extends Cross[prometheus](AllScalaVersions) +trait prometheus extends KamonModule { + override def artifactName = "kamon-prometheus" // Preserves Maven artifact name + // ... +} +``` + +## Dependency Management + +### Centralized Dependencies (Deps Object) + +All commonly used dependencies are defined in `build.mill` in the `Deps` object: + +```scala +object Deps { + // Versions - use `Version` suffix + val okhttpVersion = "4.12.0" + val scalatestVersion = "3.2.9" + + // Dependencies - NO suffix, just the library name + def okhttp = mvn"com.squareup.okhttp3:okhttp:$okhttpVersion" + def scalatest = mvn"org.scalatest::scalatest:$scalatestVersion" +} +``` + +**Naming Rules:** + +- Version vals: `{libraryName}Version` (e.g., `okhttpVersion`, `scalatestVersion`) +- Dependency defs: Just the library name, no suffix (e.g., `okhttp`, `scalatest`, `logbackClassic`) + +### Using Dependencies in Modules + +Reference dependencies using `Deps.*`: + +```scala +def mvnDeps = Seq( + Deps.okhttp, + Deps.scalatest +) +``` + +### Scala Version-Specific Dependencies + +For libraries that don't publish Scala 3 artifacts, use conditional logic: + +```scala +def mvnDeps = { + val baseDeps = Seq(Deps.scalatest) + if (crossValue == Scala2Version) { + baseDeps :+ mvn"com.typesafe.akka::akka-http:10.1.8" + } else { + // Use Scala 2.13 artifact for Scala 3 + baseDeps :+ mvn"com.typesafe.akka:akka-http_2.13:10.1.8" + } +} +``` + +## Shaded Dependencies + +### When to Use Shading + +Shade dependencies that could cause conflicts with user applications (e.g., okhttp, protobuf, internal utilities). Only shade +dependencies if there were shading configurations in the corresponding SBT project definition. + +### Implementation Pattern + +```scala +trait myModule extends KamonModule { + // Dependencies to shade - these get bundled into the JAR + def shadedMvnDeps = Seq( + Deps.okhttp, + Deps.protobuf + ) + + // Make shaded deps available at compile time + def compileMvnDeps = shadedMvnDeps + + // Define relocation rules + override def shadingRules = super.shadingRules ++ Seq( + Rule.Relocate("okhttp3.**", "kamon.lib.@1"), + Rule.Relocate("okio.**", "kamon.lib.@1"), + Rule.Relocate("com.google.protobuf.**", "kamon.apm.shaded.@1"), + Rule.ExcludePattern("META-INF/maven.*") + ) + + // Use shaded JAR as the published artifact + override def jar: T[PathRef] = jarWithShadedDependencies +} +``` + +### Shading Conventions + +- Use `kamon.lib.@1` for common libraries shared across modules +- Use `kamon.{module}.shaded.@1` for module-specific shading (e.g., `kamon.apm.shaded.@1`) +- Always include `Rule.ExcludePattern("META-INF/maven.*")` to avoid maven metadata conflicts + +## Test Module Configuration + +### Standard Test Module Pattern + +```scala +object test extends SbtTests with TestModule.ScalaTest { + def moduleDeps = super.moduleDeps ++ Seq(core.testkit(crossValue)) + + def mvnDeps = Seq( + Deps.scalatest, + Deps.logbackClassic // Optional, for logging in tests + ) +} +``` + +### Tests with Kanela Agent + +Instrumentation modules require the Kanela agent attached to the JVM for tests to pass. Use the `TestWithKanelaAgent` trait (defined in `KamonModule`) instead of `SbtTests with TestModule.ScalaTest`: + +```scala +object test extends TestWithKanelaAgent { + def moduleDeps = super.moduleDeps ++ Seq(core.testkit(crossValue)) + + def mvnDeps = Seq( + Deps.scalatest, + Deps.logbackClassic + ) +} +``` + +The `TestWithKanelaAgent` trait: +- Extends `SbtTests with TestModule.ScalaTest` +- Resolves the Kanela agent JAR from `Deps.kanelaAgent` +- Adds `-javaagent:/path/to/kanela-agent.jar` to `forkArgs` + +Use this trait for any module in `instrumentation/` that has tests requiring bytecode instrumentation (context propagation, executor instrumentation, etc.). + +### Important Notes + +- Always include `core.testkit(crossValue)` in test `moduleDeps` - it provides jctools dependency needed at test runtime +- Use `SbtTests` trait for SBT-style test directory layout +- Use `TestModule.ScalaTest` for ScalaTest framework + +## Migration Checklist + +### For Each Module + +1. **Create the Mill module structure** + - Add module definition to appropriate `package.mill` + - Set `artifactName` to preserve Maven artifact name + - Configure `moduleDeps` to reference other Kamon modules + +2. **Configure dependencies** + - Use `Deps.*` for common dependencies + - Set up `shadedMvnDeps`, `compileMvnDeps`, and `shadingRules` if shading is needed + - Override `jar` to use `jarWithShadedDependencies` if shading + +3. **Rename module directory** + - Rename the entire directory from `reporters/kamon-{name}/` to `reporters/{name}/` (or `instrumentation/kamon-{name}/` to `instrumentation/{name}/`) + - Use `mv` or `git mv` to preserve git history + - Keep the SBT source layout (`src/main/scala`, etc.) + - **IMPORTANT**: After verifying the migration works, delete the old `kamon-{name}` directory if you copied instead of renamed + +4. **Configure test module** + - Add test object with `SbtTests with TestModule.ScalaTest` + - Include `core.testkit(crossValue)` in `moduleDeps` + - For instrumentation modules: use `TestWithKanelaAgent` instead (includes Kanela agent for tests) + +5. **Verify the migration** + + ```bash + # Test for Scala 2.13 + mill 'reporters.{moduleName}[2.13.13].test' + + # Test for Scala 3 + mill 'reporters.{moduleName}[3.3.0].test' + ``` + +6. **Check compilation resolves** + + ```bash + mill resolve 'reporters.{moduleName}[__].compile' + ``` + +## Reference: SBT to Mill Mapping + +| SBT | Mill | +| -------------------------------------------------------- | ------------------------------------------------ | +| `libraryDependencies += "org" %% "name" % "ver"` | `mvn"org::name:ver"` | +| `libraryDependencies += "org" % "name" % "ver"` | `mvn"org:name:ver"` | +| `libraryDependencies += "org" % "name" % "ver" % "test"` | Add to test module's `mvnDeps` | +| `dependsOn(otherProject)` | `def moduleDeps = Seq(other(crossValue))` | +| `dependsOn(otherProject % "test")` | Add to test module's `moduleDeps` | +| `assembly / assemblyShadeRules` | `def shadingRules` + `jarWithShadedDependencies` | +| `javaAgents += "org" % "name" % "ver" % "test"` | Use `TestWithKanelaAgent` trait (for Kanela) | +| `Test / fork := true` with javaagent | Override `forkArgs` in test module | + +## Common Issues and Solutions + +### Issue: "object JavaConverters is deprecated" + +This is a warning, not an error. The code still works but uses deprecated Scala 2.13 APIs. + +### Issue: Mill internal classloader errors + +Retry the command - these are transient Mill daemon issues, not actual build problems. + +### Issue: Test can't find jctools classes + +Ensure `core.testkit(crossValue)` is in the test module's `moduleDeps`. + +### Issue: Scala 3 compilation fails with missing annotations + +Add compile-time dependencies: + +```scala +def compileMvnDeps = Seq( + mvn"com.google.auto.value:auto-value-annotations:1.9" +) +``` + +### Issue: Testcontainers version incompatibility + +If migrating a module that uses Testcontainers, ensure you're using version 2.0.3 or later to avoid Docker API compatibility issues. Testcontainers 2.0.0 introduced breaking changes: + +**Required changes for Testcontainers 2.0+:** + +1. **Update dependency names** - Modules are now prefixed with `testcontainers-`: + ```scala + // In Deps object (build.mill) + def testContainersPostgres = mvn"org.testcontainers:testcontainers-postgresql:$testContainersVersion" + def testContainersMysql = mvn"org.testcontainers:testcontainers-mysql:$testContainersVersion" + ``` + +2. **Update package imports** - Container classes moved to module-specific packages: + ```scala + // Before (1.x) + import org.testcontainers.containers.PostgreSQLContainer + import org.testcontainers.containers.MySQLContainer + + // After (2.0+) + import org.testcontainers.postgresql.PostgreSQLContainer + import org.testcontainers.mysql.MySQLContainer + ``` + +3. **Remove core dependency** - Specific container modules transitively include the core module: + ```scala + // In test module mvnDeps - NO NEED to explicitly include testContainersCore + def mvnDeps = Seq( + Deps.testContainersPostgres, // This transitively includes testcontainers core + Deps.testContainersMysql + ) + ``` + +**Note:** The core testcontainers artifact remains `org.testcontainers:testcontainers` (not `testcontainers-core`), but you typically don't need to depend on it directly. diff --git a/.scalafmt.conf b/.scalafmt.conf index bdb782069..87fa0dd15 100644 --- a/.scalafmt.conf +++ b/.scalafmt.conf @@ -1,6 +1,6 @@ version = "3.8.0" -runner.dialect = "scala213" +runner.dialect = scala213source3 maxColumn = 120 diff --git a/build.mill b/build.mill new file mode 100644 index 000000000..9cf7bb539 --- /dev/null +++ b/build.mill @@ -0,0 +1,337 @@ +//| mill-version: 1.0.6-jvm +//| mvnDeps: +//| - com.goyeau::mill-git::0.3.2 +//| - com.lihaoyi::mill-contrib-buildinfo:$MILL_VERSION + +package build + +import mill.*, javalib.*, publish.* +import scalalib.* +import javalib.Assembly.* + +import mill.contrib.buildinfo.BuildInfo +import com.goyeau.mill.git.GitVersionModule +import coursier.parse.JavaOrScalaModule.ScalaModule +import mill.api.Task.Simple +import mill.javalib.Dep + +def Scala2Version = "2.13.13" +def Scala3Version = "3.3.7" +def AllScalaVersions = Seq(Scala2Version, Scala3Version) + +/** Common dependency versions and definitions */ +object Deps { + // Versions + val okhttpVersion = "4.12.0" + val okhttpMockVersion = "4.10.0" + val jettyVersion = "9.4.25.v20191220" + val slf4jVersion = "2.0.17" + val logbackClassicVersion = "1.5.17" + val scalatestVersion = "3.2.9" + val hdrHistogramVersion = "2.1.9" + val jctoolsVersion = "3.3.0" + val typesafeConfigVersion = "1.4.3" + val nanojsonVersion = "1.8" + val protobufVersion = "3.21.7" + val kanelaAgentVersion = "2.0.0" + val guavaVersion = "24.1-jre" + val pekkoVersion = "1.0.1" + val pekkoHttpVersion = "1.0.0" + val pekkoGrpcVersion = "1.0.0" + val pekkoConnectorsKafkaVersion = "1.0.0" + val pekkoHttpJson4sVersion = "2.0.0" + val json4sVersion = "4.0.6" + val grpcStubVersion = "1.43.2" + val scalaPbVersion = "0.11.8" + val jsqlparserVersion = "4.1" + val hikariCpVersion = "4.0.3" + val h2Version = "1.4.192" + val postgresqlVersion = "42.5.4" + val mariadbVersion = "2.2.6" + val mysqlVersion = "9.3.0" + val sqliteVersion = "3.34.0" + val awsJdbcWrapperVersion = "2.5.6" + val testContainersVersion = "2.0.3" + val slick213Version = "3.3.2" + val slick3Version = "3.5.0-M5" + val twitterUtilVersion = "20.3.0" + val scalazVersion = "7.2.28" + val catsEffect2Version = "2.1.2" + val catsEffect3Version = "3.3.14" + val caffeineVersion = "2.8.5" + val lagomVersion = "1.6.7" + val finagleVersion = "21.12.0" + val bijectionVersion = "0.9.7" + val jedisVersion = "3.6.0" + val lettuceVersion = "6.1.2.RELEASE" + val rediscalaVersion = "1.13.0" + val mongoVersion = "4.2.3" + val mongoLegacyVersion = "3.11.0" + val mongoLegacyScalaVersion = "2.7.0" + val mongoLegacyReactiveVersion = "1.12.0" + val elasticsearchVersion = "7.9.1" + val opensearchVersion = "1.3.14" + val kafkaVersion = "3.4.0" + val apacheCxfVersion = "3.3.6" + val apacheHttpClientVersion = "4.0" + val mockServerVersion = "5.13.2" + val akkaVersion = "2.7.1" + val akkaHttpVersion = "10.5.3" + + // Common dependencies + def okhttp = mvn"com.squareup.okhttp3:okhttp:$okhttpVersion" + def okhttpMock = mvn"com.squareup.okhttp3:mockwebserver:$okhttpMockVersion" + def jettyServer = mvn"org.eclipse.jetty:jetty-server:$jettyVersion" + def jettyServlet = mvn"org.eclipse.jetty:jetty-servlet:$jettyVersion" + def slf4jApi = mvn"org.slf4j:slf4j-api:$slf4jVersion" + def slf4jNop = mvn"org.slf4j:slf4j-nop:$slf4jVersion" + def logbackClassic = mvn"ch.qos.logback:logback-classic:$logbackClassicVersion" + def scalatest = mvn"org.scalatest::scalatest:$scalatestVersion" + def hdrHistogram = mvn"org.hdrhistogram:HdrHistogram:$hdrHistogramVersion" + def jctools = mvn"org.jctools:jctools-core:$jctoolsVersion" + def typesafeConfig = mvn"com.typesafe:config:$typesafeConfigVersion" + def nanojson = mvn"com.grack:nanojson:$nanojsonVersion" + def protobuf = mvn"com.google.protobuf:protobuf-java:$protobufVersion" + def kanelaAgent = mvn"io.kamon:kanela-agent:$kanelaAgentVersion" + def guava = mvn"com.google.guava:guava:$guavaVersion" + def jsqlparser = mvn"com.github.jsqlparser:jsqlparser:$jsqlparserVersion" + + // JDBC dependencies + def hikariCp = mvn"com.zaxxer:HikariCP:$hikariCpVersion" + def h2 = mvn"com.h2database:h2:$h2Version" + def postgresql = mvn"org.postgresql:postgresql:$postgresqlVersion" + def mariadb = mvn"org.mariadb.jdbc:mariadb-java-client:$mariadbVersion" + def mysqlConnector = mvn"com.mysql:mysql-connector-j:$mysqlVersion" + def sqliteJdbc = mvn"org.xerial:sqlite-jdbc:$sqliteVersion" + def awsJdbcWrapper = mvn"software.amazon.jdbc:aws-advanced-jdbc-wrapper:$awsJdbcWrapperVersion" + def testContainersPostgres = mvn"org.testcontainers:testcontainers-postgresql:$testContainersVersion" + def testContainersMysql = mvn"org.testcontainers:testcontainers-mysql:$testContainersVersion" + def slick(scalaVersion: String) = { + val version = if (scalaVersion == Scala3Version) slick3Version else slick213Version + mvn"com.typesafe.slick::slick:$version" + } + def slickHikariCp(scalaVersion: String) = { + val version = if (scalaVersion == Scala3Version) slick3Version else slick213Version + mvn"com.typesafe.slick::slick-hikaricp:$version" + } + + // Twitter and Scalaz dependencies + def twitterUtil = mvn"com.twitter::util-core:$twitterUtilVersion" + def scalazConcurrent = mvn"org.scalaz::scalaz-concurrent:$scalazVersion" + + // Cats Effect dependencies + def catsEffect2 = mvn"org.typelevel::cats-effect:$catsEffect2Version" + def catsEffect3 = mvn"org.typelevel::cats-effect:$catsEffect3Version" + + // Caffeine dependencies + def caffeine = mvn"com.github.ben-manes.caffeine:caffeine:$caffeineVersion" + + // Lagom dependencies + def lagomServer = mvn"com.lightbend.lagom::lagom-server:$lagomVersion" + + // Finagle dependencies + def finagleHttp = mvn"com.twitter::finagle-http:$finagleVersion" + def bijectionUtil = mvn"com.twitter::bijection-util:$bijectionVersion" + + // Redis dependencies + def jedis = mvn"redis.clients:jedis:$jedisVersion" + def lettuce = mvn"io.lettuce:lettuce-core:$lettuceVersion" + def rediscala = mvn"io.github.rediscala::rediscala:$rediscalaVersion" + def testContainers = mvn"org.testcontainers:testcontainers:$testContainersVersion" + + // MongoDB dependencies + def mongoDriverSync = mvn"org.mongodb:mongodb-driver-sync:$mongoVersion" + def mongoScalaDriver(scalaVersion: String) = { + // MongoDB Scala driver uses underscore notation, not double colon + mvn"org.mongodb.scala:mongo-scala-driver_${if (scalaVersion == Scala3Version) "2.13" else "2.13"}:$mongoVersion" + } + def mongoDriverReactive = mvn"org.mongodb:mongodb-driver-reactivestreams:$mongoVersion" + def testContainersMongo = mvn"org.testcontainers:testcontainers-mongodb:$testContainersVersion" + + // MongoDB Legacy dependencies (3.x driver) + def mongoLegacyDriverSync = mvn"org.mongodb:mongodb-driver-sync:$mongoLegacyVersion" + def mongoLegacyScalaDriver = mvn"org.mongodb.scala::mongo-scala-driver:$mongoLegacyScalaVersion" + def mongoLegacyDriverReactive = mvn"org.mongodb:mongodb-driver-reactivestreams:$mongoLegacyReactiveVersion" + + // Elasticsearch dependencies + def elasticsearchRestClient = mvn"org.elasticsearch.client:elasticsearch-rest-client:$elasticsearchVersion" + def elasticsearchRestHighLevelClient = mvn"org.elasticsearch.client:elasticsearch-rest-high-level-client:$elasticsearchVersion" + def testContainersElasticsearch = mvn"org.testcontainers:testcontainers-elasticsearch:$testContainersVersion" + + // OpenSearch dependencies + def opensearchRestClient = mvn"org.opensearch.client:opensearch-rest-client:$opensearchVersion" + def opensearchRestHighLevelClient = mvn"org.opensearch.client:opensearch-rest-high-level-client:$opensearchVersion" + + // Kafka dependencies + def kafkaClients = mvn"org.apache.kafka:kafka-clients:$kafkaVersion" + def testContainersKafka = mvn"org.testcontainers:testcontainers-kafka:$testContainersVersion" + + // Apache CXF dependencies + def apacheCxfFrontendSimple = mvn"org.apache.cxf:cxf-rt-frontend-simple:$apacheCxfVersion" + def apacheCxfFrontendJaxws = mvn"org.apache.cxf:cxf-rt-frontend-jaxws:$apacheCxfVersion" + def apacheCxfTransportsHttp = mvn"org.apache.cxf:cxf-rt-transports-http:$apacheCxfVersion" + def jaxbApi = mvn"javax.xml.bind:jaxb-api:2.3.1" + + // Apache HttpClient dependencies + def apacheHttpClient = mvn"org.apache.httpcomponents:httpclient:$apacheHttpClientVersion" + + // MockServer dependencies (shared by apache-cxf and apache-httpclient) + def mockServerClient = mvn"org.mock-server:mockserver-client-java:$mockServerVersion" + def testContainersMockServer = mvn"org.testcontainers:testcontainers-mockserver:$testContainersVersion" + + // Pekko dependencies + def pekkoActor = mvn"org.apache.pekko::pekko-actor:$pekkoVersion" + def pekkoTestkit = mvn"org.apache.pekko::pekko-testkit:$pekkoVersion" + def pekkoSlf4j = mvn"org.apache.pekko::pekko-slf4j:$pekkoVersion" + def pekkoRemote = mvn"org.apache.pekko::pekko-remote:$pekkoVersion" + def pekkoCluster = mvn"org.apache.pekko::pekko-cluster:$pekkoVersion" + def pekkoClusterSharding = mvn"org.apache.pekko::pekko-cluster-sharding:$pekkoVersion" + def pekkoProtobuf = mvn"org.apache.pekko::pekko-protobuf:$pekkoVersion" + def pekkoHttp = mvn"org.apache.pekko::pekko-http:$pekkoHttpVersion" + def pekkoStream = mvn"org.apache.pekko::pekko-stream:$pekkoVersion" + def pekkoHttpTestkit = mvn"org.apache.pekko::pekko-http-testkit:$pekkoHttpVersion" + def pekkoHttpJson4s = mvn"com.github.pjfanning::pekko-http-json4s:$pekkoHttpJson4sVersion" + def pekkoDiscovery = mvn"org.apache.pekko::pekko-discovery:$pekkoVersion" + def pekkoGrpcRuntime = mvn"org.apache.pekko::pekko-grpc-runtime:$pekkoGrpcVersion" + def pekkoConnectorsKafka = mvn"org.apache.pekko::pekko-connectors-kafka:$pekkoConnectorsKafkaVersion" + def json4sNative = mvn"org.json4s::json4s-native:$json4sVersion" + def grpcStub = mvn"io.grpc:grpc-stub:$grpcStubVersion" + def scalaPbRuntime = mvn"com.thesamet.scalapb::scalapb-runtime:$scalaPbVersion" + + // Akka dependencies + def akkaActor = mvn"com.typesafe.akka::akka-actor:$akkaVersion" + def akkaTestkit = mvn"com.typesafe.akka::akka-testkit:$akkaVersion" + def akkaSlf4j = mvn"com.typesafe.akka::akka-slf4j:$akkaVersion" + def akkaRemote = mvn"com.typesafe.akka::akka-remote:$akkaVersion" + def akkaCluster = mvn"com.typesafe.akka::akka-cluster:$akkaVersion" + def akkaClusterSharding = mvn"com.typesafe.akka::akka-cluster-sharding:$akkaVersion" + def akkaProtobuf = mvn"com.typesafe.akka::akka-protobuf-v3:$akkaVersion" + def akkaStream = mvn"com.typesafe.akka::akka-stream:$akkaVersion" + def akkaDiscovery = mvn"com.typesafe.akka::akka-discovery:$akkaVersion" + + // Akka HTTP dependencies + def akkaHttp = mvn"com.typesafe.akka::akka-http:$akkaHttpVersion" + def akkaHttp2Support = mvn"com.typesafe.akka::akka-http2-support:$akkaHttpVersion" + def akkaHttpTestkit = mvn"com.typesafe.akka::akka-http-testkit:$akkaHttpVersion" + def akkaHttpJson4s = mvn"de.heikoseeberger:akka-http-json4s_2.13:1.27.0" + .exclude("org.json4s" -> "*") + .exclude("com.typesafe.akka" -> "*") + + // Akka gRPC dependencies + val akkaGrpcVersion = "2.3.4" + def akkaGrpcRuntime = mvn"com.lightbend.akka.grpc::akka-grpc-runtime:$akkaGrpcVersion" + + // Alpakka Kafka (Akka Streams Kafka connector) + val alpakkaKafkaVersion = "2.1.1" + def alpakkaKafka = mvn"com.typesafe.akka::akka-stream-kafka:$alpakkaKafkaVersion" + + // Annotation shading dependencies + val glassfishElVersion = "3.0.1-b11" + def glassfishEl = mvn"org.glassfish:javax.el:$glassfishElVersion" + + // System metrics + val oshiVersion = "6.4.13" + def oshiCore = mvn"com.github.oshi:oshi-core:$oshiVersion" +} + +trait KamonModule extends CrossSbtModule with SonatypeCentralPublishModule { + + def scalacOptions = { + val commonSettings = Seq( + "-release:8", + "-feature", + "-unchecked", + "-deprecation", + "-encoding", + "UTF-8", + "-language:postfixOps", + "-language:higherKinds", + "-language:existentials", + "-language:implicitConversions" + ) + + val scala2Settings = Seq("-g:vars", "-Ywarn-dead-code", "-Xlog-reflective-calls") + val scala3Settings = Seq("-source:3.0-migration") + val crossScalaVersionSettings = if(crossValue == Scala2Version) scala2Settings else scala3Settings + commonSettings ++ crossScalaVersionSettings + } + + def publishVersion: T[String] = GitVersionModule.version()() + + def pomSettings = PomSettings( + description = "The Kamon Instrumentation Agent", + organization = "io.kamon", + url = "https://github.com/kamon-io/kanela", + licenses = Seq(License.MIT), + versionControl = VersionControl.github("kamon-io", "kanela"), + developers = Seq( + Developer("Ivan", "Topolnjak", "https://github.com/ivantopo"), + Developer("Diego", "Parra", "https://github.com/dpsoft") + ) + ) + + /** Dependencies to be shaded (included) in the jar */ + def shadedMvnDeps: Seq[Dep] = Seq.empty + + /** + * Shading rules for the assembly. Override to add relocation rules. + * Example: Seq(Assembly.Rule.Relocate("com.typesafe.config", "kamon.lib.com.typesafe.config")) + */ + def shadingRules: Seq[Assembly.Rule] = Assembly.defaultRules + + def jarWithShadedDependencies: T[PathRef] = Task { + // Get paths from localClasspath (same as default jar) + val localPaths = localClasspath().map(_.path).filter(os.exists) + + // Resolve shaded dependencies (including transitives) + val shadedDepPaths: Seq[os.Path] = if (shadedMvnDeps.nonEmpty) { + defaultResolver().classpath(shadedMvnDeps).map(_.path) + } else { + Seq.empty + } + + // Create assembly with local classes + shaded deps + val assembly = Assembly.create( + destJar = Task.dest / "out.jar", + inputPaths = localPaths ++ shadedDepPaths, + manifest = manifest(), + assemblyRules = shadingRules, + shader = AssemblyModule.jarjarabramsWorker() + ) + + assembly.pathRef + } + + /** Test module that runs with the Kanela agent attached */ + trait TestWithKanelaAgent extends SbtTests with TestModule.ScalaTest { + + def kanelaAgentJar: T[PathRef] = Task { + defaultResolver() + .classpath(Seq(Deps.kanelaAgent)) + .find(_.path.last.startsWith("kanela-agent")) + .getOrElse(throw new RuntimeException("Could not find kanela-agent JAR")) + } + + override def forkArgs: T[Seq[String]] = Task { + val agentPath = kanelaAgentJar().path + super.forkArgs() ++ Seq( + s"-javaagent:$agentPath" + ) + } + + override def forkEnv: T[Map[String, String]] = Task { + super.forkEnv() ++ sys.env + ("DOCKER_HOST" -> "unix:///var/run/docker.sock") + } + } +} + +trait BuildInfoSettings extends BuildInfo { outer: KamonModule => + + def buildInfoPackageName = "kamon.status" + def buildInfoStaticCompiled = true + def buildInfoMembers = Seq( + BuildInfo.Value("version", publishVersion()), + ) + + override def resources: T[Seq[PathRef]] = super[BuildInfo].resources +} diff --git a/core/kamon-core/src/main/colfer/Context.colf b/core/core/src/main/colfer/Context.colf similarity index 100% rename from core/kamon-core/src/main/colfer/Context.colf rename to core/core/src/main/colfer/Context.colf diff --git a/core/kamon-core/src/main/colfer/Span.colf b/core/core/src/main/colfer/Span.colf similarity index 100% rename from core/kamon-core/src/main/colfer/Span.colf rename to core/core/src/main/colfer/Span.colf diff --git a/core/kamon-core/src/main/colfer/building.md b/core/core/src/main/colfer/building.md similarity index 100% rename from core/kamon-core/src/main/colfer/building.md rename to core/core/src/main/colfer/building.md diff --git a/core/kamon-core/src/main/java/kamon/context/generated/binary/context/BooleanTag.java b/core/core/src/main/java/kamon/context/generated/binary/context/BooleanTag.java similarity index 100% rename from core/kamon-core/src/main/java/kamon/context/generated/binary/context/BooleanTag.java rename to core/core/src/main/java/kamon/context/generated/binary/context/BooleanTag.java diff --git a/core/kamon-core/src/main/java/kamon/context/generated/binary/context/Context.java b/core/core/src/main/java/kamon/context/generated/binary/context/Context.java similarity index 100% rename from core/kamon-core/src/main/java/kamon/context/generated/binary/context/Context.java rename to core/core/src/main/java/kamon/context/generated/binary/context/Context.java diff --git a/core/kamon-core/src/main/java/kamon/context/generated/binary/context/Entry.java b/core/core/src/main/java/kamon/context/generated/binary/context/Entry.java similarity index 100% rename from core/kamon-core/src/main/java/kamon/context/generated/binary/context/Entry.java rename to core/core/src/main/java/kamon/context/generated/binary/context/Entry.java diff --git a/core/kamon-core/src/main/java/kamon/context/generated/binary/context/LongTag.java b/core/core/src/main/java/kamon/context/generated/binary/context/LongTag.java similarity index 100% rename from core/kamon-core/src/main/java/kamon/context/generated/binary/context/LongTag.java rename to core/core/src/main/java/kamon/context/generated/binary/context/LongTag.java diff --git a/core/kamon-core/src/main/java/kamon/context/generated/binary/context/StringTag.java b/core/core/src/main/java/kamon/context/generated/binary/context/StringTag.java similarity index 100% rename from core/kamon-core/src/main/java/kamon/context/generated/binary/context/StringTag.java rename to core/core/src/main/java/kamon/context/generated/binary/context/StringTag.java diff --git a/core/kamon-core/src/main/java/kamon/context/generated/binary/context/Tags.java b/core/core/src/main/java/kamon/context/generated/binary/context/Tags.java similarity index 100% rename from core/kamon-core/src/main/java/kamon/context/generated/binary/context/Tags.java rename to core/core/src/main/java/kamon/context/generated/binary/context/Tags.java diff --git a/core/kamon-core/src/main/java/kamon/context/generated/binary/span/Span.java b/core/core/src/main/java/kamon/context/generated/binary/span/Span.java similarity index 100% rename from core/kamon-core/src/main/java/kamon/context/generated/binary/span/Span.java rename to core/core/src/main/java/kamon/context/generated/binary/span/Span.java diff --git a/core/kamon-core/src/main/java/kamon/svm/substitutions/KamonSubstitutions.java b/core/core/src/main/java/kamon/svm/substitutions/KamonSubstitutions.java similarity index 100% rename from core/kamon-core/src/main/java/kamon/svm/substitutions/KamonSubstitutions.java rename to core/core/src/main/java/kamon/svm/substitutions/KamonSubstitutions.java diff --git a/core/kamon-core/src/main/java/kamon/util/CompletionStageSpanFinisher.java b/core/core/src/main/java/kamon/util/CompletionStageSpanFinisher.java similarity index 100% rename from core/kamon-core/src/main/java/kamon/util/CompletionStageSpanFinisher.java rename to core/core/src/main/java/kamon/util/CompletionStageSpanFinisher.java diff --git a/core/kamon-core/src/main/java/kamon/util/UnifiedMap.java b/core/core/src/main/java/kamon/util/UnifiedMap.java similarity index 100% rename from core/kamon-core/src/main/java/kamon/util/UnifiedMap.java rename to core/core/src/main/java/kamon/util/UnifiedMap.java diff --git a/core/kamon-core/src/main/java/org/HdrHistogram/BaseAtomicHdrHistogram.java b/core/core/src/main/java/org/HdrHistogram/BaseAtomicHdrHistogram.java similarity index 100% rename from core/kamon-core/src/main/java/org/HdrHistogram/BaseAtomicHdrHistogram.java rename to core/core/src/main/java/org/HdrHistogram/BaseAtomicHdrHistogram.java diff --git a/core/kamon-core/src/main/java/org/HdrHistogram/BaseLocalHdrHistogram.java b/core/core/src/main/java/org/HdrHistogram/BaseLocalHdrHistogram.java similarity index 100% rename from core/kamon-core/src/main/java/org/HdrHistogram/BaseLocalHdrHistogram.java rename to core/core/src/main/java/org/HdrHistogram/BaseLocalHdrHistogram.java diff --git a/core/kamon-core/src/main/java/org/HdrHistogram/HdrHistogramInternalState.java b/core/core/src/main/java/org/HdrHistogram/HdrHistogramInternalState.java similarity index 100% rename from core/kamon-core/src/main/java/org/HdrHistogram/HdrHistogramInternalState.java rename to core/core/src/main/java/org/HdrHistogram/HdrHistogramInternalState.java diff --git a/core/kamon-core/src/main/java/org/HdrHistogram/ZigZag.java b/core/core/src/main/java/org/HdrHistogram/ZigZag.java similarity index 100% rename from core/kamon-core/src/main/java/org/HdrHistogram/ZigZag.java rename to core/core/src/main/java/org/HdrHistogram/ZigZag.java diff --git a/core/kamon-core/src/main/resources/META-INF/native-image/io.kamon/kamon-core/native-image.properties b/core/core/src/main/resources/META-INF/native-image/io.kamon/kamon-core/native-image.properties similarity index 100% rename from core/kamon-core/src/main/resources/META-INF/native-image/io.kamon/kamon-core/native-image.properties rename to core/core/src/main/resources/META-INF/native-image/io.kamon/kamon-core/native-image.properties diff --git a/core/kamon-core/src/main/resources/META-INF/native-image/io.kamon/kamon-core/reflect-config.json b/core/core/src/main/resources/META-INF/native-image/io.kamon/kamon-core/reflect-config.json similarity index 100% rename from core/kamon-core/src/main/resources/META-INF/native-image/io.kamon/kamon-core/reflect-config.json rename to core/core/src/main/resources/META-INF/native-image/io.kamon/kamon-core/reflect-config.json diff --git a/core/kamon-core/src/main/resources/reference.conf b/core/core/src/main/resources/reference.conf similarity index 100% rename from core/kamon-core/src/main/resources/reference.conf rename to core/core/src/main/resources/reference.conf diff --git a/core/kamon-core/src/main/scala/kamon/ClassLoading.scala b/core/core/src/main/scala/kamon/ClassLoading.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/ClassLoading.scala rename to core/core/src/main/scala/kamon/ClassLoading.scala diff --git a/core/kamon-core/src/main/scala/kamon/Configuration.scala b/core/core/src/main/scala/kamon/Configuration.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/Configuration.scala rename to core/core/src/main/scala/kamon/Configuration.scala diff --git a/core/kamon-core/src/main/scala/kamon/ContextPropagation.scala b/core/core/src/main/scala/kamon/ContextPropagation.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/ContextPropagation.scala rename to core/core/src/main/scala/kamon/ContextPropagation.scala diff --git a/core/kamon-core/src/main/scala/kamon/ContextStorage.scala b/core/core/src/main/scala/kamon/ContextStorage.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/ContextStorage.scala rename to core/core/src/main/scala/kamon/ContextStorage.scala diff --git a/core/kamon-core/src/main/scala/kamon/CurrentStatus.scala b/core/core/src/main/scala/kamon/CurrentStatus.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/CurrentStatus.scala rename to core/core/src/main/scala/kamon/CurrentStatus.scala diff --git a/core/kamon-core/src/main/scala/kamon/Init.scala b/core/core/src/main/scala/kamon/Init.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/Init.scala rename to core/core/src/main/scala/kamon/Init.scala diff --git a/core/kamon-core/src/main/scala/kamon/Kamon.scala b/core/core/src/main/scala/kamon/Kamon.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/Kamon.scala rename to core/core/src/main/scala/kamon/Kamon.scala diff --git a/core/kamon-core/src/main/scala/kamon/Metrics.scala b/core/core/src/main/scala/kamon/Metrics.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/Metrics.scala rename to core/core/src/main/scala/kamon/Metrics.scala diff --git a/core/kamon-core/src/main/scala/kamon/ModuleManagement.scala b/core/core/src/main/scala/kamon/ModuleManagement.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/ModuleManagement.scala rename to core/core/src/main/scala/kamon/ModuleManagement.scala diff --git a/core/kamon-core/src/main/scala/kamon/Tracing.scala b/core/core/src/main/scala/kamon/Tracing.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/Tracing.scala rename to core/core/src/main/scala/kamon/Tracing.scala diff --git a/core/kamon-core/src/main/scala/kamon/Utilities.scala b/core/core/src/main/scala/kamon/Utilities.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/Utilities.scala rename to core/core/src/main/scala/kamon/Utilities.scala diff --git a/core/kamon-core/src/main/scala/kamon/context/BinaryPropagation.scala b/core/core/src/main/scala/kamon/context/BinaryPropagation.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/context/BinaryPropagation.scala rename to core/core/src/main/scala/kamon/context/BinaryPropagation.scala diff --git a/core/kamon-core/src/main/scala/kamon/context/Context.scala b/core/core/src/main/scala/kamon/context/Context.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/context/Context.scala rename to core/core/src/main/scala/kamon/context/Context.scala diff --git a/core/kamon-core/src/main/scala/kamon/context/HttpPropagation.scala b/core/core/src/main/scala/kamon/context/HttpPropagation.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/context/HttpPropagation.scala rename to core/core/src/main/scala/kamon/context/HttpPropagation.scala diff --git a/core/kamon-core/src/main/scala/kamon/context/Propagation.scala b/core/core/src/main/scala/kamon/context/Propagation.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/context/Propagation.scala rename to core/core/src/main/scala/kamon/context/Propagation.scala diff --git a/core/kamon-core/src/main/scala/kamon/context/Storage.scala b/core/core/src/main/scala/kamon/context/Storage.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/context/Storage.scala rename to core/core/src/main/scala/kamon/context/Storage.scala diff --git a/core/kamon-core/src/main/scala/kamon/metric/Counter.scala b/core/core/src/main/scala/kamon/metric/Counter.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/metric/Counter.scala rename to core/core/src/main/scala/kamon/metric/Counter.scala diff --git a/core/kamon-core/src/main/scala/kamon/metric/Distribution.scala b/core/core/src/main/scala/kamon/metric/Distribution.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/metric/Distribution.scala rename to core/core/src/main/scala/kamon/metric/Distribution.scala diff --git a/core/kamon-core/src/main/scala/kamon/metric/DynamicRange.scala b/core/core/src/main/scala/kamon/metric/DynamicRange.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/metric/DynamicRange.scala rename to core/core/src/main/scala/kamon/metric/DynamicRange.scala diff --git a/core/kamon-core/src/main/scala/kamon/metric/Gauge.scala b/core/core/src/main/scala/kamon/metric/Gauge.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/metric/Gauge.scala rename to core/core/src/main/scala/kamon/metric/Gauge.scala diff --git a/core/kamon-core/src/main/scala/kamon/metric/Histogram.scala b/core/core/src/main/scala/kamon/metric/Histogram.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/metric/Histogram.scala rename to core/core/src/main/scala/kamon/metric/Histogram.scala diff --git a/core/kamon-core/src/main/scala/kamon/metric/Instrument.scala b/core/core/src/main/scala/kamon/metric/Instrument.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/metric/Instrument.scala rename to core/core/src/main/scala/kamon/metric/Instrument.scala diff --git a/core/kamon-core/src/main/scala/kamon/metric/InstrumentGroup.scala b/core/core/src/main/scala/kamon/metric/InstrumentGroup.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/metric/InstrumentGroup.scala rename to core/core/src/main/scala/kamon/metric/InstrumentGroup.scala diff --git a/core/kamon-core/src/main/scala/kamon/metric/MeasurementUnit.scala b/core/core/src/main/scala/kamon/metric/MeasurementUnit.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/metric/MeasurementUnit.scala rename to core/core/src/main/scala/kamon/metric/MeasurementUnit.scala diff --git a/core/kamon-core/src/main/scala/kamon/metric/Metric.scala b/core/core/src/main/scala/kamon/metric/Metric.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/metric/Metric.scala rename to core/core/src/main/scala/kamon/metric/Metric.scala diff --git a/core/kamon-core/src/main/scala/kamon/metric/MetricBuilding.scala b/core/core/src/main/scala/kamon/metric/MetricBuilding.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/metric/MetricBuilding.scala rename to core/core/src/main/scala/kamon/metric/MetricBuilding.scala diff --git a/core/kamon-core/src/main/scala/kamon/metric/MetricFactory.scala b/core/core/src/main/scala/kamon/metric/MetricFactory.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/metric/MetricFactory.scala rename to core/core/src/main/scala/kamon/metric/MetricFactory.scala diff --git a/core/kamon-core/src/main/scala/kamon/metric/MetricRegistry.scala b/core/core/src/main/scala/kamon/metric/MetricRegistry.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/metric/MetricRegistry.scala rename to core/core/src/main/scala/kamon/metric/MetricRegistry.scala diff --git a/core/kamon-core/src/main/scala/kamon/metric/MetricSnapshot.scala b/core/core/src/main/scala/kamon/metric/MetricSnapshot.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/metric/MetricSnapshot.scala rename to core/core/src/main/scala/kamon/metric/MetricSnapshot.scala diff --git a/core/kamon-core/src/main/scala/kamon/metric/PeriodSnapshot.scala b/core/core/src/main/scala/kamon/metric/PeriodSnapshot.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/metric/PeriodSnapshot.scala rename to core/core/src/main/scala/kamon/metric/PeriodSnapshot.scala diff --git a/core/kamon-core/src/main/scala/kamon/metric/RangeSampler.scala b/core/core/src/main/scala/kamon/metric/RangeSampler.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/metric/RangeSampler.scala rename to core/core/src/main/scala/kamon/metric/RangeSampler.scala diff --git a/core/kamon-core/src/main/scala/kamon/metric/Tagging.scala b/core/core/src/main/scala/kamon/metric/Tagging.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/metric/Tagging.scala rename to core/core/src/main/scala/kamon/metric/Tagging.scala diff --git a/core/kamon-core/src/main/scala/kamon/metric/Timer.scala b/core/core/src/main/scala/kamon/metric/Timer.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/metric/Timer.scala rename to core/core/src/main/scala/kamon/metric/Timer.scala diff --git a/core/kamon-core/src/main/scala/kamon/module/MetricReporter.scala b/core/core/src/main/scala/kamon/module/MetricReporter.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/module/MetricReporter.scala rename to core/core/src/main/scala/kamon/module/MetricReporter.scala diff --git a/core/kamon-core/src/main/scala/kamon/module/Module.scala b/core/core/src/main/scala/kamon/module/Module.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/module/Module.scala rename to core/core/src/main/scala/kamon/module/Module.scala diff --git a/core/kamon-core/src/main/scala/kamon/module/ModuleRegistry.scala b/core/core/src/main/scala/kamon/module/ModuleRegistry.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/module/ModuleRegistry.scala rename to core/core/src/main/scala/kamon/module/ModuleRegistry.scala diff --git a/core/kamon-core/src/main/scala/kamon/module/ScheduledAction.scala b/core/core/src/main/scala/kamon/module/ScheduledAction.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/module/ScheduledAction.scala rename to core/core/src/main/scala/kamon/module/ScheduledAction.scala diff --git a/core/kamon-core/src/main/scala/kamon/module/SpanReporter.scala b/core/core/src/main/scala/kamon/module/SpanReporter.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/module/SpanReporter.scala rename to core/core/src/main/scala/kamon/module/SpanReporter.scala diff --git a/core/kamon-core/src/main/scala/kamon/package.scala b/core/core/src/main/scala/kamon/package.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/package.scala rename to core/core/src/main/scala/kamon/package.scala diff --git a/core/kamon-core/src/main/scala/kamon/status/Environment.scala b/core/core/src/main/scala/kamon/status/Environment.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/status/Environment.scala rename to core/core/src/main/scala/kamon/status/Environment.scala diff --git a/core/kamon-core/src/main/scala/kamon/status/InstrumentationStatus.scala b/core/core/src/main/scala/kamon/status/InstrumentationStatus.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/status/InstrumentationStatus.scala rename to core/core/src/main/scala/kamon/status/InstrumentationStatus.scala diff --git a/core/kamon-core/src/main/scala/kamon/status/Status.scala b/core/core/src/main/scala/kamon/status/Status.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/status/Status.scala rename to core/core/src/main/scala/kamon/status/Status.scala diff --git a/core/kamon-core/src/main/scala/kamon/tag/Lookups.scala b/core/core/src/main/scala/kamon/tag/Lookups.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/tag/Lookups.scala rename to core/core/src/main/scala/kamon/tag/Lookups.scala diff --git a/core/kamon-core/src/main/scala/kamon/tag/Tag.scala b/core/core/src/main/scala/kamon/tag/Tag.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/tag/Tag.scala rename to core/core/src/main/scala/kamon/tag/Tag.scala diff --git a/core/kamon-core/src/main/scala/kamon/tag/TagSet.scala b/core/core/src/main/scala/kamon/tag/TagSet.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/tag/TagSet.scala rename to core/core/src/main/scala/kamon/tag/TagSet.scala diff --git a/core/kamon-core/src/main/scala/kamon/trace/AdaptiveSampler.scala b/core/core/src/main/scala/kamon/trace/AdaptiveSampler.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/trace/AdaptiveSampler.scala rename to core/core/src/main/scala/kamon/trace/AdaptiveSampler.scala diff --git a/core/kamon-core/src/main/scala/kamon/trace/ConstantSampler.scala b/core/core/src/main/scala/kamon/trace/ConstantSampler.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/trace/ConstantSampler.scala rename to core/core/src/main/scala/kamon/trace/ConstantSampler.scala diff --git a/core/kamon-core/src/main/scala/kamon/trace/Hooks.scala b/core/core/src/main/scala/kamon/trace/Hooks.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/trace/Hooks.scala rename to core/core/src/main/scala/kamon/trace/Hooks.scala diff --git a/core/kamon-core/src/main/scala/kamon/trace/Identifier.scala b/core/core/src/main/scala/kamon/trace/Identifier.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/trace/Identifier.scala rename to core/core/src/main/scala/kamon/trace/Identifier.scala diff --git a/core/kamon-core/src/main/scala/kamon/trace/RandomSampler.scala b/core/core/src/main/scala/kamon/trace/RandomSampler.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/trace/RandomSampler.scala rename to core/core/src/main/scala/kamon/trace/RandomSampler.scala diff --git a/core/kamon-core/src/main/scala/kamon/trace/Sampler.scala b/core/core/src/main/scala/kamon/trace/Sampler.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/trace/Sampler.scala rename to core/core/src/main/scala/kamon/trace/Sampler.scala diff --git a/core/kamon-core/src/main/scala/kamon/trace/Span.scala b/core/core/src/main/scala/kamon/trace/Span.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/trace/Span.scala rename to core/core/src/main/scala/kamon/trace/Span.scala diff --git a/core/kamon-core/src/main/scala/kamon/trace/SpanBuilder.scala b/core/core/src/main/scala/kamon/trace/SpanBuilder.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/trace/SpanBuilder.scala rename to core/core/src/main/scala/kamon/trace/SpanBuilder.scala diff --git a/core/kamon-core/src/main/scala/kamon/trace/SpanPropagation.scala b/core/core/src/main/scala/kamon/trace/SpanPropagation.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/trace/SpanPropagation.scala rename to core/core/src/main/scala/kamon/trace/SpanPropagation.scala diff --git a/core/kamon-core/src/main/scala/kamon/trace/Trace.scala b/core/core/src/main/scala/kamon/trace/Trace.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/trace/Trace.scala rename to core/core/src/main/scala/kamon/trace/Trace.scala diff --git a/core/kamon-core/src/main/scala/kamon/trace/Tracer.scala b/core/core/src/main/scala/kamon/trace/Tracer.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/trace/Tracer.scala rename to core/core/src/main/scala/kamon/trace/Tracer.scala diff --git a/core/kamon-core/src/main/scala/kamon/util/CallingThreadExecutionContext.scala b/core/core/src/main/scala/kamon/util/CallingThreadExecutionContext.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/util/CallingThreadExecutionContext.scala rename to core/core/src/main/scala/kamon/util/CallingThreadExecutionContext.scala diff --git a/core/kamon-core/src/main/scala/kamon/util/Clock.scala b/core/core/src/main/scala/kamon/util/Clock.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/util/Clock.scala rename to core/core/src/main/scala/kamon/util/Clock.scala diff --git a/core/kamon-core/src/main/scala/kamon/util/DynamicAccess.scala b/core/core/src/main/scala/kamon/util/DynamicAccess.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/util/DynamicAccess.scala rename to core/core/src/main/scala/kamon/util/DynamicAccess.scala diff --git a/core/kamon-core/src/main/scala/kamon/util/EWMA.scala b/core/core/src/main/scala/kamon/util/EWMA.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/util/EWMA.scala rename to core/core/src/main/scala/kamon/util/EWMA.scala diff --git a/core/kamon-core/src/main/scala/kamon/util/EnvironmentTags.scala b/core/core/src/main/scala/kamon/util/EnvironmentTags.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/util/EnvironmentTags.scala rename to core/core/src/main/scala/kamon/util/EnvironmentTags.scala diff --git a/core/kamon-core/src/main/scala/kamon/util/Filter.scala b/core/core/src/main/scala/kamon/util/Filter.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/util/Filter.scala rename to core/core/src/main/scala/kamon/util/Filter.scala diff --git a/core/kamon-core/src/main/scala/kamon/util/HexCodec.scala b/core/core/src/main/scala/kamon/util/HexCodec.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/util/HexCodec.scala rename to core/core/src/main/scala/kamon/util/HexCodec.scala diff --git a/core/kamon-core/src/main/scala/kamon/util/UnitConverter.scala b/core/core/src/main/scala/kamon/util/UnitConverter.scala similarity index 100% rename from core/kamon-core/src/main/scala/kamon/util/UnitConverter.scala rename to core/core/src/main/scala/kamon/util/UnitConverter.scala diff --git a/core/kamon-core-tests/src/test/resources/logback.xml b/core/core/src/test/resources/logback.xml similarity index 100% rename from core/kamon-core-tests/src/test/resources/logback.xml rename to core/core/src/test/resources/logback.xml diff --git a/core/kamon-core-tests/src/test/resources/reference.conf b/core/core/src/test/resources/reference.conf similarity index 100% rename from core/kamon-core-tests/src/test/resources/reference.conf rename to core/core/src/test/resources/reference.conf diff --git a/core/kamon-core-tests/src/test/scala/kamon/InitialConfigLoadingSpec.scala b/core/core/src/test/scala/kamon/InitialConfigLoadingSpec.scala similarity index 100% rename from core/kamon-core-tests/src/test/scala/kamon/InitialConfigLoadingSpec.scala rename to core/core/src/test/scala/kamon/InitialConfigLoadingSpec.scala diff --git a/core/kamon-core-tests/src/test/scala/kamon/KamonLifecycleSpec.scala b/core/core/src/test/scala/kamon/KamonLifecycleSpec.scala similarity index 100% rename from core/kamon-core-tests/src/test/scala/kamon/KamonLifecycleSpec.scala rename to core/core/src/test/scala/kamon/KamonLifecycleSpec.scala diff --git a/core/kamon-core-tests/src/test/scala/kamon/UtilsOnConfigSpec.scala b/core/core/src/test/scala/kamon/UtilsOnConfigSpec.scala similarity index 100% rename from core/kamon-core-tests/src/test/scala/kamon/UtilsOnConfigSpec.scala rename to core/core/src/test/scala/kamon/UtilsOnConfigSpec.scala diff --git a/core/kamon-core-tests/src/test/scala/kamon/context/BinaryPropagationSpec.scala b/core/core/src/test/scala/kamon/context/BinaryPropagationSpec.scala similarity index 100% rename from core/kamon-core-tests/src/test/scala/kamon/context/BinaryPropagationSpec.scala rename to core/core/src/test/scala/kamon/context/BinaryPropagationSpec.scala diff --git a/core/kamon-core-tests/src/test/scala/kamon/context/HttpPropagationSpec.scala b/core/core/src/test/scala/kamon/context/HttpPropagationSpec.scala similarity index 100% rename from core/kamon-core-tests/src/test/scala/kamon/context/HttpPropagationSpec.scala rename to core/core/src/test/scala/kamon/context/HttpPropagationSpec.scala diff --git a/core/kamon-core-tests/src/test/scala/kamon/context/ThreadLocalStorageSpec.scala b/core/core/src/test/scala/kamon/context/ThreadLocalStorageSpec.scala similarity index 100% rename from core/kamon-core-tests/src/test/scala/kamon/context/ThreadLocalStorageSpec.scala rename to core/core/src/test/scala/kamon/context/ThreadLocalStorageSpec.scala diff --git a/core/kamon-core-tests/src/test/scala/kamon/metric/CounterSpec.scala b/core/core/src/test/scala/kamon/metric/CounterSpec.scala similarity index 100% rename from core/kamon-core-tests/src/test/scala/kamon/metric/CounterSpec.scala rename to core/core/src/test/scala/kamon/metric/CounterSpec.scala diff --git a/core/kamon-core-tests/src/test/scala/kamon/metric/GaugeSpec.scala b/core/core/src/test/scala/kamon/metric/GaugeSpec.scala similarity index 100% rename from core/kamon-core-tests/src/test/scala/kamon/metric/GaugeSpec.scala rename to core/core/src/test/scala/kamon/metric/GaugeSpec.scala diff --git a/core/kamon-core-tests/src/test/scala/kamon/metric/HistogramSpec.scala b/core/core/src/test/scala/kamon/metric/HistogramSpec.scala similarity index 100% rename from core/kamon-core-tests/src/test/scala/kamon/metric/HistogramSpec.scala rename to core/core/src/test/scala/kamon/metric/HistogramSpec.scala diff --git a/core/kamon-core-tests/src/test/scala/kamon/metric/InstrumentGroupSpec.scala b/core/core/src/test/scala/kamon/metric/InstrumentGroupSpec.scala similarity index 100% rename from core/kamon-core-tests/src/test/scala/kamon/metric/InstrumentGroupSpec.scala rename to core/core/src/test/scala/kamon/metric/InstrumentGroupSpec.scala diff --git a/core/kamon-core-tests/src/test/scala/kamon/metric/MetricLookupSpec.scala b/core/core/src/test/scala/kamon/metric/MetricLookupSpec.scala similarity index 100% rename from core/kamon-core-tests/src/test/scala/kamon/metric/MetricLookupSpec.scala rename to core/core/src/test/scala/kamon/metric/MetricLookupSpec.scala diff --git a/core/kamon-core-tests/src/test/scala/kamon/metric/PeriodSnapshotAccumulatorSpec.scala b/core/core/src/test/scala/kamon/metric/PeriodSnapshotAccumulatorSpec.scala similarity index 100% rename from core/kamon-core-tests/src/test/scala/kamon/metric/PeriodSnapshotAccumulatorSpec.scala rename to core/core/src/test/scala/kamon/metric/PeriodSnapshotAccumulatorSpec.scala diff --git a/core/kamon-core-tests/src/test/scala/kamon/metric/RangeSamplerSpec.scala b/core/core/src/test/scala/kamon/metric/RangeSamplerSpec.scala similarity index 100% rename from core/kamon-core-tests/src/test/scala/kamon/metric/RangeSamplerSpec.scala rename to core/core/src/test/scala/kamon/metric/RangeSamplerSpec.scala diff --git a/core/kamon-core-tests/src/test/scala/kamon/metric/TimerSpec.scala b/core/core/src/test/scala/kamon/metric/TimerSpec.scala similarity index 100% rename from core/kamon-core-tests/src/test/scala/kamon/metric/TimerSpec.scala rename to core/core/src/test/scala/kamon/metric/TimerSpec.scala diff --git a/core/kamon-core-tests/src/test/scala/kamon/module/ModuleRegistrySpec.scala b/core/core/src/test/scala/kamon/module/ModuleRegistrySpec.scala similarity index 100% rename from core/kamon-core-tests/src/test/scala/kamon/module/ModuleRegistrySpec.scala rename to core/core/src/test/scala/kamon/module/ModuleRegistrySpec.scala diff --git a/core/kamon-core-tests/src/test/scala/kamon/status/EnvironmentSpec.scala b/core/core/src/test/scala/kamon/status/EnvironmentSpec.scala similarity index 100% rename from core/kamon-core-tests/src/test/scala/kamon/status/EnvironmentSpec.scala rename to core/core/src/test/scala/kamon/status/EnvironmentSpec.scala diff --git a/core/kamon-core-tests/src/test/scala/kamon/tag/TagSetSpec.scala b/core/core/src/test/scala/kamon/tag/TagSetSpec.scala similarity index 100% rename from core/kamon-core-tests/src/test/scala/kamon/tag/TagSetSpec.scala rename to core/core/src/test/scala/kamon/tag/TagSetSpec.scala diff --git a/core/kamon-core-tests/src/test/scala/kamon/trace/B3SingleSpanPropagationSpec.scala b/core/core/src/test/scala/kamon/trace/B3SingleSpanPropagationSpec.scala similarity index 100% rename from core/kamon-core-tests/src/test/scala/kamon/trace/B3SingleSpanPropagationSpec.scala rename to core/core/src/test/scala/kamon/trace/B3SingleSpanPropagationSpec.scala diff --git a/core/kamon-core-tests/src/test/scala/kamon/trace/B3SpanPropagationSpec.scala b/core/core/src/test/scala/kamon/trace/B3SpanPropagationSpec.scala similarity index 100% rename from core/kamon-core-tests/src/test/scala/kamon/trace/B3SpanPropagationSpec.scala rename to core/core/src/test/scala/kamon/trace/B3SpanPropagationSpec.scala diff --git a/core/kamon-core-tests/src/test/scala/kamon/trace/DataDogSpanPropagationSpec.scala b/core/core/src/test/scala/kamon/trace/DataDogSpanPropagationSpec.scala similarity index 100% rename from core/kamon-core-tests/src/test/scala/kamon/trace/DataDogSpanPropagationSpec.scala rename to core/core/src/test/scala/kamon/trace/DataDogSpanPropagationSpec.scala diff --git a/core/kamon-core-tests/src/test/scala/kamon/trace/DoubleLengthIdentifierSchemeSpec.scala b/core/core/src/test/scala/kamon/trace/DoubleLengthIdentifierSchemeSpec.scala similarity index 100% rename from core/kamon-core-tests/src/test/scala/kamon/trace/DoubleLengthIdentifierSchemeSpec.scala rename to core/core/src/test/scala/kamon/trace/DoubleLengthIdentifierSchemeSpec.scala diff --git a/core/kamon-core-tests/src/test/scala/kamon/trace/LocalSpanSpec.scala b/core/core/src/test/scala/kamon/trace/LocalSpanSpec.scala similarity index 100% rename from core/kamon-core-tests/src/test/scala/kamon/trace/LocalSpanSpec.scala rename to core/core/src/test/scala/kamon/trace/LocalSpanSpec.scala diff --git a/core/kamon-core-tests/src/test/scala/kamon/trace/LocalTailSamplerSpec.scala b/core/core/src/test/scala/kamon/trace/LocalTailSamplerSpec.scala similarity index 100% rename from core/kamon-core-tests/src/test/scala/kamon/trace/LocalTailSamplerSpec.scala rename to core/core/src/test/scala/kamon/trace/LocalTailSamplerSpec.scala diff --git a/core/kamon-core-tests/src/test/scala/kamon/trace/QuickSpanCreationSpec.scala b/core/core/src/test/scala/kamon/trace/QuickSpanCreationSpec.scala similarity index 100% rename from core/kamon-core-tests/src/test/scala/kamon/trace/QuickSpanCreationSpec.scala rename to core/core/src/test/scala/kamon/trace/QuickSpanCreationSpec.scala diff --git a/core/kamon-core-tests/src/test/scala/kamon/trace/SamplerSpec.scala b/core/core/src/test/scala/kamon/trace/SamplerSpec.scala similarity index 100% rename from core/kamon-core-tests/src/test/scala/kamon/trace/SamplerSpec.scala rename to core/core/src/test/scala/kamon/trace/SamplerSpec.scala diff --git a/core/kamon-core-tests/src/test/scala/kamon/trace/SingleLengthIdentifierSchemeSpec.scala b/core/core/src/test/scala/kamon/trace/SingleLengthIdentifierSchemeSpec.scala similarity index 100% rename from core/kamon-core-tests/src/test/scala/kamon/trace/SingleLengthIdentifierSchemeSpec.scala rename to core/core/src/test/scala/kamon/trace/SingleLengthIdentifierSchemeSpec.scala diff --git a/core/kamon-core-tests/src/test/scala/kamon/trace/SpanMetricsSpec.scala b/core/core/src/test/scala/kamon/trace/SpanMetricsSpec.scala similarity index 100% rename from core/kamon-core-tests/src/test/scala/kamon/trace/SpanMetricsSpec.scala rename to core/core/src/test/scala/kamon/trace/SpanMetricsSpec.scala diff --git a/core/kamon-core-tests/src/test/scala/kamon/trace/SpanReportingDelaySpec.scala b/core/core/src/test/scala/kamon/trace/SpanReportingDelaySpec.scala similarity index 100% rename from core/kamon-core-tests/src/test/scala/kamon/trace/SpanReportingDelaySpec.scala rename to core/core/src/test/scala/kamon/trace/SpanReportingDelaySpec.scala diff --git a/core/kamon-core-tests/src/test/scala/kamon/trace/TracerSpec.scala b/core/core/src/test/scala/kamon/trace/TracerSpec.scala similarity index 100% rename from core/kamon-core-tests/src/test/scala/kamon/trace/TracerSpec.scala rename to core/core/src/test/scala/kamon/trace/TracerSpec.scala diff --git a/core/kamon-core-tests/src/test/scala/kamon/trace/UberSpanPropagationSpec.scala b/core/core/src/test/scala/kamon/trace/UberSpanPropagationSpec.scala similarity index 100% rename from core/kamon-core-tests/src/test/scala/kamon/trace/UberSpanPropagationSpec.scala rename to core/core/src/test/scala/kamon/trace/UberSpanPropagationSpec.scala diff --git a/core/kamon-core-tests/src/test/scala/kamon/trace/W3CTraceContextSpanPropagationSpec.scala b/core/core/src/test/scala/kamon/trace/W3CTraceContextSpanPropagationSpec.scala similarity index 100% rename from core/kamon-core-tests/src/test/scala/kamon/trace/W3CTraceContextSpanPropagationSpec.scala rename to core/core/src/test/scala/kamon/trace/W3CTraceContextSpanPropagationSpec.scala diff --git a/core/kamon-core-tests/src/test/scala/kamon/util/ClockSpec.scala b/core/core/src/test/scala/kamon/util/ClockSpec.scala similarity index 100% rename from core/kamon-core-tests/src/test/scala/kamon/util/ClockSpec.scala rename to core/core/src/test/scala/kamon/util/ClockSpec.scala diff --git a/core/kamon-core-tests/src/test/scala/kamon/util/EnvironmentTagsSpec.scala b/core/core/src/test/scala/kamon/util/EnvironmentTagsSpec.scala similarity index 100% rename from core/kamon-core-tests/src/test/scala/kamon/util/EnvironmentTagsSpec.scala rename to core/core/src/test/scala/kamon/util/EnvironmentTagsSpec.scala diff --git a/core/kamon-core-tests/src/test/scala/kamon/util/ExponentiallyWeightedAverageSpec.scala b/core/core/src/test/scala/kamon/util/ExponentiallyWeightedAverageSpec.scala similarity index 100% rename from core/kamon-core-tests/src/test/scala/kamon/util/ExponentiallyWeightedAverageSpec.scala rename to core/core/src/test/scala/kamon/util/ExponentiallyWeightedAverageSpec.scala diff --git a/core/kamon-core-tests/src/test/scala/kamon/util/FilterSpec.scala b/core/core/src/test/scala/kamon/util/FilterSpec.scala similarity index 100% rename from core/kamon-core-tests/src/test/scala/kamon/util/FilterSpec.scala rename to core/core/src/test/scala/kamon/util/FilterSpec.scala diff --git a/core/kamon-core-tests/src/test/scala/kamon/util/GlobPathFilterSpec.scala b/core/core/src/test/scala/kamon/util/GlobPathFilterSpec.scala similarity index 100% rename from core/kamon-core-tests/src/test/scala/kamon/util/GlobPathFilterSpec.scala rename to core/core/src/test/scala/kamon/util/GlobPathFilterSpec.scala diff --git a/core/kamon-core-tests/src/test/scala/kamon/util/RegexPathFilterSpec.scala b/core/core/src/test/scala/kamon/util/RegexPathFilterSpec.scala similarity index 100% rename from core/kamon-core-tests/src/test/scala/kamon/util/RegexPathFilterSpec.scala rename to core/core/src/test/scala/kamon/util/RegexPathFilterSpec.scala diff --git a/core/kamon-core-bench/src/main/scala/kamon/bench/TagSetCreationBenchmark.scala b/core/kamon-core-bench/src/main/scala/kamon/bench/TagSetCreationBenchmark.scala deleted file mode 100644 index 209ea4bd6..000000000 --- a/core/kamon-core-bench/src/main/scala/kamon/bench/TagSetCreationBenchmark.scala +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright 2013-2020 The Kamon Project - * - * Licensed 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 kamon.bench - -import java.util.concurrent.TimeUnit - -import kamon.tag.TagSet -import org.openjdk.jmh.annotations._ - -@BenchmarkMode(Array(Mode.AverageTime)) -@OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(1) -@State(Scope.Benchmark) -class TagSetCreationBenchmark { - - @Param(Array("1", "2", "3", "4", "5", "6")) - var tagCount: Int = 1 - - @Benchmark - def createTagSetFromIndividualKeys(): TagSet = { - var tags = TagSet.Empty - tags = tags.withTag("http.method", "POST") - if (tagCount > 1) tags = tags.withTag("http.url", "http://localhost:8080/test") - if (tagCount > 2) tags = tags.withTag("http.status_code", 200L) - if (tagCount > 3) tags = tags.withTag("error", false) - if (tagCount > 4) tags = tags.withTag("userID", "abcdef") - if (tagCount > 5) tags = tags.withTag("correlationID", "0123456") - - tags - } - - @Benchmark - def createTagSetFromBuilder(): TagSet = { - val tags = TagSet.builder() - tags.add("http.method", "POST") - if (tagCount > 1) tags.add("http.url", "http://localhost:8080/test") - if (tagCount > 2) tags.add("http.status_code", 200L) - if (tagCount > 3) tags.add("error", false) - if (tagCount > 4) tags.add("userID", "abcdef") - if (tagCount > 5) tags.add("correlationID", "0123456") - - tags.build() - } -} diff --git a/core/kamon-core-bench/src/main/scala/kamon/bench/TagSetLookupBenchmark.scala b/core/kamon-core-bench/src/main/scala/kamon/bench/TagSetLookupBenchmark.scala deleted file mode 100644 index c5c04b6c1..000000000 --- a/core/kamon-core-bench/src/main/scala/kamon/bench/TagSetLookupBenchmark.scala +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright 2013-2020 The Kamon Project - * - * Licensed 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 kamon.bench - -import java.util.concurrent.TimeUnit - -import kamon.tag.TagSet -import org.openjdk.jmh.annotations._ -import kamon.tag.Lookups.any - -@BenchmarkMode(Array(Mode.AverageTime)) -@OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(1) -@State(Scope.Benchmark) -class TagSetLookupBenchmark { - - def builderTags() = TagSet.builder() - .add("http.url", "http://localhost:8080/test") - .add("http.status_code", 200L) - .add("error", false) - .add("userID", "abcdef") - .add("correlationID", "0123456") - .build() - - def keyByKeyTags() = TagSet.Empty - .withTag("http.url", "http://localhost:8080/test") - .withTag("http.status_code", 200L) - .withTag("error", false) - .withTag("userID", "abcdef") - .withTag("correlationID", "0123456") - - val builderLeft = builderTags() - val builderRight = builderTags() - val keyByKeyLeft = keyByKeyTags() - val keyByKeyRight = keyByKeyTags() - - @Benchmark - def equalityOnBuilderTagSets(): Boolean = { - builderLeft == builderRight - } - - @Benchmark - def equalityOnKeyByKeyTagSets(): Boolean = { - keyByKeyLeft == keyByKeyRight - } - - @Benchmark - def anyLookupOnBuilderTagSet(): Any = { - builderLeft.get(any("userID")) - } - - @Benchmark - def anyLookupOnKeyByKeyTagSet(): Any = { - keyByKeyLeft.get(any("userID")) - } -} diff --git a/core/kamon-core-bench/src/main/scala/kamon/bench/ThreadLocalStorageBenchmark.scala b/core/kamon-core-bench/src/main/scala/kamon/bench/ThreadLocalStorageBenchmark.scala deleted file mode 100644 index 01b7a02f8..000000000 --- a/core/kamon-core-bench/src/main/scala/kamon/bench/ThreadLocalStorageBenchmark.scala +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright 2013-2020 The Kamon Project - * - * Licensed 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 kamon.bench - -import kamon.context.Storage.CrossThreadLocal - -import java.util.concurrent.TimeUnit -import kamon.context.{Context, Storage} -import org.openjdk.jmh.annotations._ - -@State(Scope.Benchmark) -class ThreadLocalStorageBenchmark { - - val TestKey: Context.Key[Int] = Context.key("test-key", 0) - val ContextWithKey: Context = Context.of(TestKey, 43) - - val CrossTLS: Storage = new CrossThreadLocal - val FTLS: Storage = new Storage.ThreadLocal - - @Benchmark - @BenchmarkMode(Array(Mode.AverageTime)) - @OutputTimeUnit(TimeUnit.NANOSECONDS) - @Fork - def crossThreadLocal: Context = { - val scope = CrossTLS.store(ContextWithKey) - CrossTLS.current() - scope.close() - CrossTLS.current() - } - - @Benchmark - @BenchmarkMode(Array(Mode.AverageTime)) - @OutputTimeUnit(TimeUnit.NANOSECONDS) - @Fork - def fastThreadLocal: Context = { - val scope = FTLS.store(ContextWithKey) - FTLS.current() - scope.close() - FTLS.current() - } -} diff --git a/core/package.mill b/core/package.mill new file mode 100644 index 000000000..ffffa7307 --- /dev/null +++ b/core/package.mill @@ -0,0 +1,72 @@ +package build.core + +import mill.*, scalalib.*, build.* +import mill.javalib.Assembly.Rule + +object core extends Cross[core](AllScalaVersions) +trait core extends KamonModule with BuildInfoSettings { + + override def artifactName = "kamon-core" + + def mvnDeps = Seq( + Deps.typesafeConfig, + Deps.slf4jApi + ) + + def compileMvnDeps = Seq( + mvn"com.oracle.substratevm:svm:19.2.1" + ) ++ shadedMvnDeps + + def shadedMvnDeps = Seq( + Deps.hdrHistogram, + Deps.jctools + ) + + override def shadingRules = super.shadingRules ++ Seq( + Rule.Relocate("org.HdrHistogram.**", "kamon.lib.org.HdrHistogram.@1"), + Rule.Relocate("org.jctools.**", "kamon.lib.org.jctools.@1"), + Rule.ExcludePattern("META-INF/maven.*") + ) + + override def jar: T[PathRef] = jarWithShadedDependencies + + object test extends SbtTests with TestModule.ScalaTest { + def moduleDeps = super.moduleDeps ++ Seq(testkit(crossValue)) + } +} + +object testkit extends Cross[testkit](AllScalaVersions) +trait testkit extends KamonModule { + + override def artifactName = "kamon-testkit" + + def moduleDeps = Seq(core(crossValue)) + + def mvnDeps = Seq( + Deps.hdrHistogram, + Deps.jctools, + Deps.scalatest + ) +} + +object statusPage extends Cross[statusPage](AllScalaVersions) +trait statusPage extends KamonModule { + + override def artifactName = "kamon-status-page" + + def moduleDeps = Seq(core(crossValue)) + + def compileMvnDeps = shadedMvnDeps + + def shadedMvnDeps = Seq( + mvn"com.grack:nanojson:1.6", + mvn"org.nanohttpd:nanohttpd:2.3.1" + ) + + override def shadingRules = super.shadingRules ++ Seq( + Rule.Relocate("com.grack.nanojson.**", "kamon.lib.@1"), + Rule.Relocate("fi.iki.elonen.**" , "kamon.lib.@1") + ) + + override def jar: T[PathRef] = jarWithShadedDependencies +} diff --git a/core/kamon-status-page/.gitignore b/core/statusPage/.gitignore similarity index 100% rename from core/kamon-status-page/.gitignore rename to core/statusPage/.gitignore diff --git a/core/kamon-status-page/README.md b/core/statusPage/README.md similarity index 100% rename from core/kamon-status-page/README.md rename to core/statusPage/README.md diff --git a/core/kamon-status-page/src/main/resources/META-INF/native-image/io.kamon/kamon-status-page/native-image.properties b/core/statusPage/src/main/resources/META-INF/native-image/io.kamon/kamon-status-page/native-image.properties similarity index 100% rename from core/kamon-status-page/src/main/resources/META-INF/native-image/io.kamon/kamon-status-page/native-image.properties rename to core/statusPage/src/main/resources/META-INF/native-image/io.kamon/kamon-status-page/native-image.properties diff --git a/core/kamon-status-page/src/main/resources/META-INF/native-image/io.kamon/kamon-status-page/reflect-config.json b/core/statusPage/src/main/resources/META-INF/native-image/io.kamon/kamon-status-page/reflect-config.json similarity index 100% rename from core/kamon-status-page/src/main/resources/META-INF/native-image/io.kamon/kamon-status-page/reflect-config.json rename to core/statusPage/src/main/resources/META-INF/native-image/io.kamon/kamon-status-page/reflect-config.json diff --git a/core/kamon-status-page/src/main/resources/reference.conf b/core/statusPage/src/main/resources/reference.conf similarity index 100% rename from core/kamon-status-page/src/main/resources/reference.conf rename to core/statusPage/src/main/resources/reference.conf diff --git a/core/kamon-status-page/src/main/resources/status-page/favicon.ico b/core/statusPage/src/main/resources/status-page/favicon.ico similarity index 100% rename from core/kamon-status-page/src/main/resources/status-page/favicon.ico rename to core/statusPage/src/main/resources/status-page/favicon.ico diff --git a/core/kamon-status-page/src/main/resources/status-page/index.html b/core/statusPage/src/main/resources/status-page/index.html similarity index 100% rename from core/kamon-status-page/src/main/resources/status-page/index.html rename to core/statusPage/src/main/resources/status-page/index.html diff --git a/core/kamon-status-page/src/main/scala/kamon/status/page/JsonMarshalling.scala b/core/statusPage/src/main/scala/kamon/status/page/JsonMarshalling.scala similarity index 100% rename from core/kamon-status-page/src/main/scala/kamon/status/page/JsonMarshalling.scala rename to core/statusPage/src/main/scala/kamon/status/page/JsonMarshalling.scala diff --git a/core/kamon-status-page/src/main/scala/kamon/status/page/StatusPage.scala b/core/statusPage/src/main/scala/kamon/status/page/StatusPage.scala similarity index 100% rename from core/kamon-status-page/src/main/scala/kamon/status/page/StatusPage.scala rename to core/statusPage/src/main/scala/kamon/status/page/StatusPage.scala diff --git a/core/kamon-status-page/src/main/scala/kamon/status/page/StatusPageServer.scala b/core/statusPage/src/main/scala/kamon/status/page/StatusPageServer.scala similarity index 100% rename from core/kamon-status-page/src/main/scala/kamon/status/page/StatusPageServer.scala rename to core/statusPage/src/main/scala/kamon/status/page/StatusPageServer.scala diff --git a/core/kamon-status-page/src/main/vue/.editorconfig b/core/statusPage/src/main/vue/.editorconfig similarity index 100% rename from core/kamon-status-page/src/main/vue/.editorconfig rename to core/statusPage/src/main/vue/.editorconfig diff --git a/core/kamon-status-page/src/main/vue/.gitattributes b/core/statusPage/src/main/vue/.gitattributes similarity index 100% rename from core/kamon-status-page/src/main/vue/.gitattributes rename to core/statusPage/src/main/vue/.gitattributes diff --git a/core/kamon-status-page/src/main/vue/.gitignore b/core/statusPage/src/main/vue/.gitignore similarity index 100% rename from core/kamon-status-page/src/main/vue/.gitignore rename to core/statusPage/src/main/vue/.gitignore diff --git a/core/kamon-status-page/src/main/vue/.prettierrc.json b/core/statusPage/src/main/vue/.prettierrc.json similarity index 100% rename from core/kamon-status-page/src/main/vue/.prettierrc.json rename to core/statusPage/src/main/vue/.prettierrc.json diff --git a/core/kamon-status-page/src/main/vue/README.md b/core/statusPage/src/main/vue/README.md similarity index 100% rename from core/kamon-status-page/src/main/vue/README.md rename to core/statusPage/src/main/vue/README.md diff --git a/core/kamon-status-page/src/main/vue/bun.lock b/core/statusPage/src/main/vue/bun.lock similarity index 100% rename from core/kamon-status-page/src/main/vue/bun.lock rename to core/statusPage/src/main/vue/bun.lock diff --git a/core/kamon-status-page/src/main/vue/env.d.ts b/core/statusPage/src/main/vue/env.d.ts similarity index 100% rename from core/kamon-status-page/src/main/vue/env.d.ts rename to core/statusPage/src/main/vue/env.d.ts diff --git a/core/kamon-status-page/src/main/vue/eslint.config.ts b/core/statusPage/src/main/vue/eslint.config.ts similarity index 100% rename from core/kamon-status-page/src/main/vue/eslint.config.ts rename to core/statusPage/src/main/vue/eslint.config.ts diff --git a/core/kamon-status-page/src/main/vue/index.html b/core/statusPage/src/main/vue/index.html similarity index 100% rename from core/kamon-status-page/src/main/vue/index.html rename to core/statusPage/src/main/vue/index.html diff --git a/core/kamon-status-page/src/main/vue/package.json b/core/statusPage/src/main/vue/package.json similarity index 100% rename from core/kamon-status-page/src/main/vue/package.json rename to core/statusPage/src/main/vue/package.json diff --git a/core/kamon-status-page/src/main/vue/public/favicon.ico b/core/statusPage/src/main/vue/public/favicon.ico similarity index 100% rename from core/kamon-status-page/src/main/vue/public/favicon.ico rename to core/statusPage/src/main/vue/public/favicon.ico diff --git a/core/kamon-status-page/src/main/vue/src/App.vue b/core/statusPage/src/main/vue/src/App.vue similarity index 100% rename from core/kamon-status-page/src/main/vue/src/App.vue rename to core/statusPage/src/main/vue/src/App.vue diff --git a/core/kamon-status-page/src/main/vue/src/assets/main.css b/core/statusPage/src/main/vue/src/assets/main.css similarity index 100% rename from core/kamon-status-page/src/main/vue/src/assets/main.css rename to core/statusPage/src/main/vue/src/assets/main.css diff --git a/core/kamon-status-page/src/main/vue/src/components/TelemetryLogo.vue b/core/statusPage/src/main/vue/src/components/TelemetryLogo.vue similarity index 100% rename from core/kamon-status-page/src/main/vue/src/components/TelemetryLogo.vue rename to core/statusPage/src/main/vue/src/components/TelemetryLogo.vue diff --git a/core/kamon-status-page/src/main/vue/src/main.ts b/core/statusPage/src/main/vue/src/main.ts similarity index 100% rename from core/kamon-status-page/src/main/vue/src/main.ts rename to core/statusPage/src/main/vue/src/main.ts diff --git a/core/kamon-status-page/src/main/vue/tsconfig.app.json b/core/statusPage/src/main/vue/tsconfig.app.json similarity index 100% rename from core/kamon-status-page/src/main/vue/tsconfig.app.json rename to core/statusPage/src/main/vue/tsconfig.app.json diff --git a/core/kamon-status-page/src/main/vue/tsconfig.json b/core/statusPage/src/main/vue/tsconfig.json similarity index 100% rename from core/kamon-status-page/src/main/vue/tsconfig.json rename to core/statusPage/src/main/vue/tsconfig.json diff --git a/core/kamon-status-page/src/main/vue/tsconfig.node.json b/core/statusPage/src/main/vue/tsconfig.node.json similarity index 100% rename from core/kamon-status-page/src/main/vue/tsconfig.node.json rename to core/statusPage/src/main/vue/tsconfig.node.json diff --git a/core/kamon-status-page/src/main/vue/vite.config.ts b/core/statusPage/src/main/vue/vite.config.ts similarity index 100% rename from core/kamon-status-page/src/main/vue/vite.config.ts rename to core/statusPage/src/main/vue/vite.config.ts diff --git a/core/kamon-testkit/src/main/resources/reference.conf b/core/testkit/src/main/resources/reference.conf similarity index 100% rename from core/kamon-testkit/src/main/resources/reference.conf rename to core/testkit/src/main/resources/reference.conf diff --git a/core/kamon-testkit/src/main/scala/kamon/testkit/InitAndStopKamonAfterAll.scala b/core/testkit/src/main/scala/kamon/testkit/InitAndStopKamonAfterAll.scala similarity index 100% rename from core/kamon-testkit/src/main/scala/kamon/testkit/InitAndStopKamonAfterAll.scala rename to core/testkit/src/main/scala/kamon/testkit/InitAndStopKamonAfterAll.scala diff --git a/core/kamon-testkit/src/main/scala/kamon/testkit/InstrumentInspection.scala b/core/testkit/src/main/scala/kamon/testkit/InstrumentInspection.scala similarity index 100% rename from core/kamon-testkit/src/main/scala/kamon/testkit/InstrumentInspection.scala rename to core/testkit/src/main/scala/kamon/testkit/InstrumentInspection.scala diff --git a/core/kamon-testkit/src/main/scala/kamon/testkit/MetricInspection.scala b/core/testkit/src/main/scala/kamon/testkit/MetricInspection.scala similarity index 100% rename from core/kamon-testkit/src/main/scala/kamon/testkit/MetricInspection.scala rename to core/testkit/src/main/scala/kamon/testkit/MetricInspection.scala diff --git a/core/kamon-testkit/src/main/scala/kamon/testkit/MetricSnapshotBuilder.scala b/core/testkit/src/main/scala/kamon/testkit/MetricSnapshotBuilder.scala similarity index 100% rename from core/kamon-testkit/src/main/scala/kamon/testkit/MetricSnapshotBuilder.scala rename to core/testkit/src/main/scala/kamon/testkit/MetricSnapshotBuilder.scala diff --git a/core/kamon-testkit/src/main/scala/kamon/testkit/Reconfigure.scala b/core/testkit/src/main/scala/kamon/testkit/Reconfigure.scala similarity index 100% rename from core/kamon-testkit/src/main/scala/kamon/testkit/Reconfigure.scala rename to core/testkit/src/main/scala/kamon/testkit/Reconfigure.scala diff --git a/core/kamon-testkit/src/main/scala/kamon/testkit/Reflection.scala b/core/testkit/src/main/scala/kamon/testkit/Reflection.scala similarity index 100% rename from core/kamon-testkit/src/main/scala/kamon/testkit/Reflection.scala rename to core/testkit/src/main/scala/kamon/testkit/Reflection.scala diff --git a/core/kamon-testkit/src/main/scala/kamon/testkit/SpanInspection.scala b/core/testkit/src/main/scala/kamon/testkit/SpanInspection.scala similarity index 100% rename from core/kamon-testkit/src/main/scala/kamon/testkit/SpanInspection.scala rename to core/testkit/src/main/scala/kamon/testkit/SpanInspection.scala diff --git a/core/kamon-testkit/src/main/scala/kamon/testkit/TestSpanReporter.scala b/core/testkit/src/main/scala/kamon/testkit/TestSpanReporter.scala similarity index 100% rename from core/kamon-testkit/src/main/scala/kamon/testkit/TestSpanReporter.scala rename to core/testkit/src/main/scala/kamon/testkit/TestSpanReporter.scala diff --git a/core/kamon-testkit/src/test/scala/kamon/testkit/MetricInspectionSpec.scala b/core/testkit/src/test/scala/kamon/testkit/MetricInspectionSpec.scala similarity index 100% rename from core/kamon-testkit/src/test/scala/kamon/testkit/MetricInspectionSpec.scala rename to core/testkit/src/test/scala/kamon/testkit/MetricInspectionSpec.scala diff --git a/instrumentation/kamon-akka/src/common/java/akka/actor/instrumentation/ReplaceWithAdvice.java b/instrumentation/akka/src/main/java/akka/actor/instrumentation/ReplaceWithAdvice.java similarity index 100% rename from instrumentation/kamon-akka/src/common/java/akka/actor/instrumentation/ReplaceWithAdvice.java rename to instrumentation/akka/src/main/java/akka/actor/instrumentation/ReplaceWithAdvice.java diff --git a/instrumentation/kamon-akka/src/akka-2.6/java/akka/remote/ContextAwareWireFormats_Akka26.java b/instrumentation/akka/src/main/java/akka/remote/ContextAwareWireFormats_Akka26.java similarity index 100% rename from instrumentation/kamon-akka/src/akka-2.6/java/akka/remote/ContextAwareWireFormats_Akka26.java rename to instrumentation/akka/src/main/java/akka/remote/ContextAwareWireFormats_Akka26.java diff --git a/instrumentation/kamon-akka/src/common/java/kamon/instrumentation/akka/instrumentations/ActorCellInvokeAdvice.java b/instrumentation/akka/src/main/java/kamon/instrumentation/akka/instrumentations/ActorCellInvokeAdvice.java similarity index 100% rename from instrumentation/kamon-akka/src/common/java/kamon/instrumentation/akka/instrumentations/ActorCellInvokeAdvice.java rename to instrumentation/akka/src/main/java/kamon/instrumentation/akka/instrumentations/ActorCellInvokeAdvice.java diff --git a/instrumentation/kamon-akka/src/common/java/kamon/instrumentation/akka/instrumentations/AkkaPrivateAccess.java b/instrumentation/akka/src/main/java/kamon/instrumentation/akka/instrumentations/AkkaPrivateAccess.java similarity index 100% rename from instrumentation/kamon-akka/src/common/java/kamon/instrumentation/akka/instrumentations/AkkaPrivateAccess.java rename to instrumentation/akka/src/main/java/kamon/instrumentation/akka/instrumentations/AkkaPrivateAccess.java diff --git a/instrumentation/kamon-akka/src/common/java/kamon/instrumentation/akka/instrumentations/SchedulerRunnableAdvice.java b/instrumentation/akka/src/main/java/kamon/instrumentation/akka/instrumentations/SchedulerRunnableAdvice.java similarity index 100% rename from instrumentation/kamon-akka/src/common/java/kamon/instrumentation/akka/instrumentations/SchedulerRunnableAdvice.java rename to instrumentation/akka/src/main/java/kamon/instrumentation/akka/instrumentations/SchedulerRunnableAdvice.java diff --git a/instrumentation/kamon-akka/src/akka-2.6/protobuf/ContextAwareWireFormats.proto b/instrumentation/akka/src/main/protobuf/ContextAwareWireFormats.proto similarity index 100% rename from instrumentation/kamon-akka/src/akka-2.6/protobuf/ContextAwareWireFormats.proto rename to instrumentation/akka/src/main/protobuf/ContextAwareWireFormats.proto diff --git a/instrumentation/kamon-akka/src/akka-2.6/protobuf/WireFormats.proto b/instrumentation/akka/src/main/protobuf/WireFormats.proto similarity index 100% rename from instrumentation/kamon-akka/src/akka-2.6/protobuf/WireFormats.proto rename to instrumentation/akka/src/main/protobuf/WireFormats.proto diff --git a/instrumentation/kamon-akka/src/common/resources/reference.conf b/instrumentation/akka/src/main/resources/reference.conf similarity index 100% rename from instrumentation/kamon-akka/src/common/resources/reference.conf rename to instrumentation/akka/src/main/resources/reference.conf diff --git a/instrumentation/kamon-akka/src/common/scala-2/kamon/instrumentation/akka/instrumentations/ActorInstrumentation.scala b/instrumentation/akka/src/main/scala-2/kamon/instrumentation/akka/instrumentations/ActorInstrumentation.scala similarity index 100% rename from instrumentation/kamon-akka/src/common/scala-2/kamon/instrumentation/akka/instrumentations/ActorInstrumentation.scala rename to instrumentation/akka/src/main/scala-2/kamon/instrumentation/akka/instrumentations/ActorInstrumentation.scala diff --git a/instrumentation/kamon-akka/src/common/scala-2/kamon/instrumentation/akka/instrumentations/EventStreamInstrumentation.scala b/instrumentation/akka/src/main/scala-2/kamon/instrumentation/akka/instrumentations/EventStreamInstrumentation.scala similarity index 100% rename from instrumentation/kamon-akka/src/common/scala-2/kamon/instrumentation/akka/instrumentations/EventStreamInstrumentation.scala rename to instrumentation/akka/src/main/scala-2/kamon/instrumentation/akka/instrumentations/EventStreamInstrumentation.scala diff --git a/instrumentation/kamon-akka/src/common/scala-3/kamon/instrumentation/akka/instrumentations/ActorInstrumentation.scala b/instrumentation/akka/src/main/scala-3/kamon/instrumentation/akka/instrumentations/ActorInstrumentation.scala similarity index 100% rename from instrumentation/kamon-akka/src/common/scala-3/kamon/instrumentation/akka/instrumentations/ActorInstrumentation.scala rename to instrumentation/akka/src/main/scala-3/kamon/instrumentation/akka/instrumentations/ActorInstrumentation.scala diff --git a/instrumentation/kamon-akka/src/common/scala-3/kamon/instrumentation/akka/instrumentations/EventStreamInstrumentation.scala b/instrumentation/akka/src/main/scala-3/kamon/instrumentation/akka/instrumentations/EventStreamInstrumentation.scala similarity index 100% rename from instrumentation/kamon-akka/src/common/scala-3/kamon/instrumentation/akka/instrumentations/EventStreamInstrumentation.scala rename to instrumentation/akka/src/main/scala-3/kamon/instrumentation/akka/instrumentations/EventStreamInstrumentation.scala diff --git a/instrumentation/kamon-akka/src/akka-2.6/scala/akka/remote/artery/KamonRemoteInstrument.scala b/instrumentation/akka/src/main/scala/akka/remote/artery/KamonRemoteInstrument.scala similarity index 100% rename from instrumentation/kamon-akka/src/akka-2.6/scala/akka/remote/artery/KamonRemoteInstrument.scala rename to instrumentation/akka/src/main/scala/akka/remote/artery/KamonRemoteInstrument.scala diff --git a/instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/AkkaClusterShardingMetrics.scala b/instrumentation/akka/src/main/scala/kamon/instrumentation/akka/AkkaClusterShardingMetrics.scala similarity index 100% rename from instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/AkkaClusterShardingMetrics.scala rename to instrumentation/akka/src/main/scala/kamon/instrumentation/akka/AkkaClusterShardingMetrics.scala diff --git a/instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/AkkaInstrumentation.scala b/instrumentation/akka/src/main/scala/kamon/instrumentation/akka/AkkaInstrumentation.scala similarity index 100% rename from instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/AkkaInstrumentation.scala rename to instrumentation/akka/src/main/scala/kamon/instrumentation/akka/AkkaInstrumentation.scala diff --git a/instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/AkkaMetrics.scala b/instrumentation/akka/src/main/scala/kamon/instrumentation/akka/AkkaMetrics.scala similarity index 100% rename from instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/AkkaMetrics.scala rename to instrumentation/akka/src/main/scala/kamon/instrumentation/akka/AkkaMetrics.scala diff --git a/instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/AkkaRemoteInstrumentation.scala b/instrumentation/akka/src/main/scala/kamon/instrumentation/akka/AkkaRemoteInstrumentation.scala similarity index 100% rename from instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/AkkaRemoteInstrumentation.scala rename to instrumentation/akka/src/main/scala/kamon/instrumentation/akka/AkkaRemoteInstrumentation.scala diff --git a/instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/AkkaRemoteMetrics.scala b/instrumentation/akka/src/main/scala/kamon/instrumentation/akka/AkkaRemoteMetrics.scala similarity index 100% rename from instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/AkkaRemoteMetrics.scala rename to instrumentation/akka/src/main/scala/kamon/instrumentation/akka/AkkaRemoteMetrics.scala diff --git a/instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/instrumentations/ActorCellInfo.scala b/instrumentation/akka/src/main/scala/kamon/instrumentation/akka/instrumentations/ActorCellInfo.scala similarity index 100% rename from instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/instrumentations/ActorCellInfo.scala rename to instrumentation/akka/src/main/scala/kamon/instrumentation/akka/instrumentations/ActorCellInfo.scala diff --git a/instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/instrumentations/ActorInstrumentationCommon.scala b/instrumentation/akka/src/main/scala/kamon/instrumentation/akka/instrumentations/ActorInstrumentationCommon.scala similarity index 100% rename from instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/instrumentations/ActorInstrumentationCommon.scala rename to instrumentation/akka/src/main/scala/kamon/instrumentation/akka/instrumentations/ActorInstrumentationCommon.scala diff --git a/instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/instrumentations/ActorLoggingInstrumentation.scala b/instrumentation/akka/src/main/scala/kamon/instrumentation/akka/instrumentations/ActorLoggingInstrumentation.scala similarity index 100% rename from instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/instrumentations/ActorLoggingInstrumentation.scala rename to instrumentation/akka/src/main/scala/kamon/instrumentation/akka/instrumentations/ActorLoggingInstrumentation.scala diff --git a/instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/instrumentations/ActorMonitor.scala b/instrumentation/akka/src/main/scala/kamon/instrumentation/akka/instrumentations/ActorMonitor.scala similarity index 100% rename from instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/instrumentations/ActorMonitor.scala rename to instrumentation/akka/src/main/scala/kamon/instrumentation/akka/instrumentations/ActorMonitor.scala diff --git a/instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/instrumentations/ActorRefInstrumentation.scala b/instrumentation/akka/src/main/scala/kamon/instrumentation/akka/instrumentations/ActorRefInstrumentation.scala similarity index 100% rename from instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/instrumentations/ActorRefInstrumentation.scala rename to instrumentation/akka/src/main/scala/kamon/instrumentation/akka/instrumentations/ActorRefInstrumentation.scala diff --git a/instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/instrumentations/AskPatternInstrumentation.scala b/instrumentation/akka/src/main/scala/kamon/instrumentation/akka/instrumentations/AskPatternInstrumentation.scala similarity index 100% rename from instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/instrumentations/AskPatternInstrumentation.scala rename to instrumentation/akka/src/main/scala/kamon/instrumentation/akka/instrumentations/AskPatternInstrumentation.scala diff --git a/instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/instrumentations/ClusterInstrumentation.scala b/instrumentation/akka/src/main/scala/kamon/instrumentation/akka/instrumentations/ClusterInstrumentation.scala similarity index 100% rename from instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/instrumentations/ClusterInstrumentation.scala rename to instrumentation/akka/src/main/scala/kamon/instrumentation/akka/instrumentations/ClusterInstrumentation.scala diff --git a/instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/instrumentations/DispatcherInfo.scala b/instrumentation/akka/src/main/scala/kamon/instrumentation/akka/instrumentations/DispatcherInfo.scala similarity index 100% rename from instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/instrumentations/DispatcherInfo.scala rename to instrumentation/akka/src/main/scala/kamon/instrumentation/akka/instrumentations/DispatcherInfo.scala diff --git a/instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/instrumentations/EnvelopeInstrumentation.scala b/instrumentation/akka/src/main/scala/kamon/instrumentation/akka/instrumentations/EnvelopeInstrumentation.scala similarity index 100% rename from instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/instrumentations/EnvelopeInstrumentation.scala rename to instrumentation/akka/src/main/scala/kamon/instrumentation/akka/instrumentations/EnvelopeInstrumentation.scala diff --git a/instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/instrumentations/EventStreamInstrumentationCommon.scala b/instrumentation/akka/src/main/scala/kamon/instrumentation/akka/instrumentations/EventStreamInstrumentationCommon.scala similarity index 100% rename from instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/instrumentations/EventStreamInstrumentationCommon.scala rename to instrumentation/akka/src/main/scala/kamon/instrumentation/akka/instrumentations/EventStreamInstrumentationCommon.scala diff --git a/instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/instrumentations/RouterInstrumentation.scala b/instrumentation/akka/src/main/scala/kamon/instrumentation/akka/instrumentations/RouterInstrumentation.scala similarity index 100% rename from instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/instrumentations/RouterInstrumentation.scala rename to instrumentation/akka/src/main/scala/kamon/instrumentation/akka/instrumentations/RouterInstrumentation.scala diff --git a/instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/instrumentations/RouterMonitor.scala b/instrumentation/akka/src/main/scala/kamon/instrumentation/akka/instrumentations/RouterMonitor.scala similarity index 100% rename from instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/instrumentations/RouterMonitor.scala rename to instrumentation/akka/src/main/scala/kamon/instrumentation/akka/instrumentations/RouterMonitor.scala diff --git a/instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/instrumentations/SchedulerInstrumentation.scala b/instrumentation/akka/src/main/scala/kamon/instrumentation/akka/instrumentations/SchedulerInstrumentation.scala similarity index 100% rename from instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/instrumentations/SchedulerInstrumentation.scala rename to instrumentation/akka/src/main/scala/kamon/instrumentation/akka/instrumentations/SchedulerInstrumentation.scala diff --git a/instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/instrumentations/SystemMessageInstrumentation.scala b/instrumentation/akka/src/main/scala/kamon/instrumentation/akka/instrumentations/SystemMessageInstrumentation.scala similarity index 100% rename from instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/instrumentations/SystemMessageInstrumentation.scala rename to instrumentation/akka/src/main/scala/kamon/instrumentation/akka/instrumentations/SystemMessageInstrumentation.scala diff --git a/instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/instrumentations/VersionFiltering.scala b/instrumentation/akka/src/main/scala/kamon/instrumentation/akka/instrumentations/VersionFiltering.scala similarity index 100% rename from instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/instrumentations/VersionFiltering.scala rename to instrumentation/akka/src/main/scala/kamon/instrumentation/akka/instrumentations/VersionFiltering.scala diff --git a/instrumentation/kamon-akka/src/akka-2.6/scala/kamon/instrumentation/akka/instrumentations/akka_26/ActorMonitorInstrumentation.scala b/instrumentation/akka/src/main/scala/kamon/instrumentation/akka/instrumentations/akka_26/ActorMonitorInstrumentation.scala similarity index 100% rename from instrumentation/kamon-akka/src/akka-2.6/scala/kamon/instrumentation/akka/instrumentations/akka_26/ActorMonitorInstrumentation.scala rename to instrumentation/akka/src/main/scala/kamon/instrumentation/akka/instrumentations/akka_26/ActorMonitorInstrumentation.scala diff --git a/instrumentation/kamon-akka/src/akka-2.6/scala/kamon/instrumentation/akka/instrumentations/akka_26/DispatcherInstrumentation.scala b/instrumentation/akka/src/main/scala/kamon/instrumentation/akka/instrumentations/akka_26/DispatcherInstrumentation.scala similarity index 100% rename from instrumentation/kamon-akka/src/akka-2.6/scala/kamon/instrumentation/akka/instrumentations/akka_26/DispatcherInstrumentation.scala rename to instrumentation/akka/src/main/scala/kamon/instrumentation/akka/instrumentations/akka_26/DispatcherInstrumentation.scala diff --git a/instrumentation/kamon-akka/src/akka-2.6/scala/kamon/instrumentation/akka/instrumentations/akka_26/remote/RemotingInstrumentation.scala b/instrumentation/akka/src/main/scala/kamon/instrumentation/akka/instrumentations/akka_26/remote/RemotingInstrumentation.scala similarity index 100% rename from instrumentation/kamon-akka/src/akka-2.6/scala/kamon/instrumentation/akka/instrumentations/akka_26/remote/RemotingInstrumentation.scala rename to instrumentation/akka/src/main/scala/kamon/instrumentation/akka/instrumentations/akka_26/remote/RemotingInstrumentation.scala diff --git a/instrumentation/kamon-akka/src/akka-2.6/scala/kamon/instrumentation/akka/instrumentations/akka_26/remote/internal/AkkaPduProtobufCodecConstructMessageMethodInterceptor.scala b/instrumentation/akka/src/main/scala/kamon/instrumentation/akka/instrumentations/akka_26/remote/internal/AkkaPduProtobufCodecConstructMessageMethodInterceptor.scala similarity index 100% rename from instrumentation/kamon-akka/src/akka-2.6/scala/kamon/instrumentation/akka/instrumentations/akka_26/remote/internal/AkkaPduProtobufCodecConstructMessageMethodInterceptor.scala rename to instrumentation/akka/src/main/scala/kamon/instrumentation/akka/instrumentations/akka_26/remote/internal/AkkaPduProtobufCodecConstructMessageMethodInterceptor.scala diff --git a/instrumentation/kamon-akka/src/akka-2.6/scala/kamon/instrumentation/akka/instrumentations/akka_26/remote/internal/AkkaPduProtobufCodecDecodeMessageMethodAdvisor.scala b/instrumentation/akka/src/main/scala/kamon/instrumentation/akka/instrumentations/akka_26/remote/internal/AkkaPduProtobufCodecDecodeMessageMethodAdvisor.scala similarity index 100% rename from instrumentation/kamon-akka/src/akka-2.6/scala/kamon/instrumentation/akka/instrumentations/akka_26/remote/internal/AkkaPduProtobufCodecDecodeMessageMethodAdvisor.scala rename to instrumentation/akka/src/main/scala/kamon/instrumentation/akka/instrumentations/akka_26/remote/internal/AkkaPduProtobufCodecDecodeMessageMethodAdvisor.scala diff --git a/instrumentation/kamon-akka/src/akka-2.6/scala/kamon/instrumentation/akka/instrumentations/akka_26/remote/internal/ArterySerializationAdvice.scala b/instrumentation/akka/src/main/scala/kamon/instrumentation/akka/instrumentations/akka_26/remote/internal/ArterySerializationAdvice.scala similarity index 100% rename from instrumentation/kamon-akka/src/akka-2.6/scala/kamon/instrumentation/akka/instrumentations/akka_26/remote/internal/ArterySerializationAdvice.scala rename to instrumentation/akka/src/main/scala/kamon/instrumentation/akka/instrumentations/akka_26/remote/internal/ArterySerializationAdvice.scala diff --git a/instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/instrumentations/internal/CellWrapper.scala b/instrumentation/akka/src/main/scala/kamon/instrumentation/akka/instrumentations/internal/CellWrapper.scala similarity index 100% rename from instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/instrumentations/internal/CellWrapper.scala rename to instrumentation/akka/src/main/scala/kamon/instrumentation/akka/instrumentations/internal/CellWrapper.scala diff --git a/instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/remote/MessageBufferInstrumentation.scala b/instrumentation/akka/src/main/scala/kamon/instrumentation/akka/remote/MessageBufferInstrumentation.scala similarity index 100% rename from instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/remote/MessageBufferInstrumentation.scala rename to instrumentation/akka/src/main/scala/kamon/instrumentation/akka/remote/MessageBufferInstrumentation.scala diff --git a/instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/remote/ShardingInstrumentation.scala b/instrumentation/akka/src/main/scala/kamon/instrumentation/akka/remote/ShardingInstrumentation.scala similarity index 100% rename from instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/remote/ShardingInstrumentation.scala rename to instrumentation/akka/src/main/scala/kamon/instrumentation/akka/remote/ShardingInstrumentation.scala diff --git a/instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/remote/internal/KamonOptionVal.scala b/instrumentation/akka/src/main/scala/kamon/instrumentation/akka/remote/internal/KamonOptionVal.scala similarity index 100% rename from instrumentation/kamon-akka/src/common/scala/kamon/instrumentation/akka/remote/internal/KamonOptionVal.scala rename to instrumentation/akka/src/main/scala/kamon/instrumentation/akka/remote/internal/KamonOptionVal.scala diff --git a/instrumentation/kamon-akka/src/test-common/resources/application.conf b/instrumentation/akka/src/test/resources/application.conf similarity index 100% rename from instrumentation/kamon-akka/src/test-common/resources/application.conf rename to instrumentation/akka/src/test/resources/application.conf diff --git a/instrumentation/kamon-akka/src/test-common/resources/logback.xml b/instrumentation/akka/src/test/resources/logback.xml similarity index 100% rename from instrumentation/kamon-akka/src/test-common/resources/logback.xml rename to instrumentation/akka/src/test/resources/logback.xml diff --git a/instrumentation/kamon-akka/src/test-common/scala/kamon/instrumentation/akka/ActorCellInstrumentationSpec.scala b/instrumentation/akka/src/test/scala/kamon/instrumentation/akka/ActorCellInstrumentationSpec.scala similarity index 100% rename from instrumentation/kamon-akka/src/test-common/scala/kamon/instrumentation/akka/ActorCellInstrumentationSpec.scala rename to instrumentation/akka/src/test/scala/kamon/instrumentation/akka/ActorCellInstrumentationSpec.scala diff --git a/instrumentation/kamon-akka/src/test-common/scala/kamon/instrumentation/akka/ActorGroupMetricsSpec.scala b/instrumentation/akka/src/test/scala/kamon/instrumentation/akka/ActorGroupMetricsSpec.scala similarity index 100% rename from instrumentation/kamon-akka/src/test-common/scala/kamon/instrumentation/akka/ActorGroupMetricsSpec.scala rename to instrumentation/akka/src/test/scala/kamon/instrumentation/akka/ActorGroupMetricsSpec.scala diff --git a/instrumentation/kamon-akka/src/test-common/scala/kamon/instrumentation/akka/ActorLoggingInstrumentationSpec.scala b/instrumentation/akka/src/test/scala/kamon/instrumentation/akka/ActorLoggingInstrumentationSpec.scala similarity index 100% rename from instrumentation/kamon-akka/src/test-common/scala/kamon/instrumentation/akka/ActorLoggingInstrumentationSpec.scala rename to instrumentation/akka/src/test/scala/kamon/instrumentation/akka/ActorLoggingInstrumentationSpec.scala diff --git a/instrumentation/kamon-akka/src/test-common/scala/kamon/instrumentation/akka/ActorMetricsSpec.scala b/instrumentation/akka/src/test/scala/kamon/instrumentation/akka/ActorMetricsSpec.scala similarity index 100% rename from instrumentation/kamon-akka/src/test-common/scala/kamon/instrumentation/akka/ActorMetricsSpec.scala rename to instrumentation/akka/src/test/scala/kamon/instrumentation/akka/ActorMetricsSpec.scala diff --git a/instrumentation/kamon-akka/src/test-common/scala/kamon/instrumentation/akka/ActorMetricsTestActor.scala b/instrumentation/akka/src/test/scala/kamon/instrumentation/akka/ActorMetricsTestActor.scala similarity index 100% rename from instrumentation/kamon-akka/src/test-common/scala/kamon/instrumentation/akka/ActorMetricsTestActor.scala rename to instrumentation/akka/src/test/scala/kamon/instrumentation/akka/ActorMetricsTestActor.scala diff --git a/instrumentation/kamon-akka/src/test-common/scala/kamon/instrumentation/akka/ActorSystemMetricsSpec.scala b/instrumentation/akka/src/test/scala/kamon/instrumentation/akka/ActorSystemMetricsSpec.scala similarity index 100% rename from instrumentation/kamon-akka/src/test-common/scala/kamon/instrumentation/akka/ActorSystemMetricsSpec.scala rename to instrumentation/akka/src/test/scala/kamon/instrumentation/akka/ActorSystemMetricsSpec.scala diff --git a/instrumentation/kamon-akka/src/test-common/scala/kamon/instrumentation/akka/AkkaTestKitInstrumentation.scala b/instrumentation/akka/src/test/scala/kamon/instrumentation/akka/AkkaTestKitInstrumentation.scala similarity index 100% rename from instrumentation/kamon-akka/src/test-common/scala/kamon/instrumentation/akka/AkkaTestKitInstrumentation.scala rename to instrumentation/akka/src/test/scala/kamon/instrumentation/akka/AkkaTestKitInstrumentation.scala diff --git a/instrumentation/kamon-akka/src/test-common/scala/kamon/instrumentation/akka/AskPatternInstrumentationSpec.scala b/instrumentation/akka/src/test/scala/kamon/instrumentation/akka/AskPatternInstrumentationSpec.scala similarity index 100% rename from instrumentation/kamon-akka/src/test-common/scala/kamon/instrumentation/akka/AskPatternInstrumentationSpec.scala rename to instrumentation/akka/src/test/scala/kamon/instrumentation/akka/AskPatternInstrumentationSpec.scala diff --git a/instrumentation/kamon-akka/src/test-common/scala/kamon/instrumentation/akka/AutoGroupingSpec.scala b/instrumentation/akka/src/test/scala/kamon/instrumentation/akka/AutoGroupingSpec.scala similarity index 100% rename from instrumentation/kamon-akka/src/test-common/scala/kamon/instrumentation/akka/AutoGroupingSpec.scala rename to instrumentation/akka/src/test/scala/kamon/instrumentation/akka/AutoGroupingSpec.scala diff --git a/instrumentation/kamon-akka/src/test-common/scala/kamon/instrumentation/akka/ContextEchoActor.scala b/instrumentation/akka/src/test/scala/kamon/instrumentation/akka/ContextEchoActor.scala similarity index 100% rename from instrumentation/kamon-akka/src/test-common/scala/kamon/instrumentation/akka/ContextEchoActor.scala rename to instrumentation/akka/src/test/scala/kamon/instrumentation/akka/ContextEchoActor.scala diff --git a/instrumentation/kamon-akka/src/test-common/scala/kamon/instrumentation/akka/ContextTesting.scala b/instrumentation/akka/src/test/scala/kamon/instrumentation/akka/ContextTesting.scala similarity index 100% rename from instrumentation/kamon-akka/src/test-common/scala/kamon/instrumentation/akka/ContextTesting.scala rename to instrumentation/akka/src/test/scala/kamon/instrumentation/akka/ContextTesting.scala diff --git a/instrumentation/kamon-akka/src/test-common/scala/kamon/instrumentation/akka/DispatcherMetricsSpec.scala b/instrumentation/akka/src/test/scala/kamon/instrumentation/akka/DispatcherMetricsSpec.scala similarity index 100% rename from instrumentation/kamon-akka/src/test-common/scala/kamon/instrumentation/akka/DispatcherMetricsSpec.scala rename to instrumentation/akka/src/test/scala/kamon/instrumentation/akka/DispatcherMetricsSpec.scala diff --git a/instrumentation/kamon-akka/src/test-common/scala/kamon/instrumentation/akka/EnvelopeSpec.scala b/instrumentation/akka/src/test/scala/kamon/instrumentation/akka/EnvelopeSpec.scala similarity index 100% rename from instrumentation/kamon-akka/src/test-common/scala/kamon/instrumentation/akka/EnvelopeSpec.scala rename to instrumentation/akka/src/test/scala/kamon/instrumentation/akka/EnvelopeSpec.scala diff --git a/instrumentation/kamon-akka/src/test-common/scala/kamon/instrumentation/akka/MessageTracingSpec.scala b/instrumentation/akka/src/test/scala/kamon/instrumentation/akka/MessageTracingSpec.scala similarity index 100% rename from instrumentation/kamon-akka/src/test-common/scala/kamon/instrumentation/akka/MessageTracingSpec.scala rename to instrumentation/akka/src/test/scala/kamon/instrumentation/akka/MessageTracingSpec.scala diff --git a/instrumentation/kamon-akka/src/test-common/scala/kamon/instrumentation/akka/RouterMetricsSpec.scala b/instrumentation/akka/src/test/scala/kamon/instrumentation/akka/RouterMetricsSpec.scala similarity index 100% rename from instrumentation/kamon-akka/src/test-common/scala/kamon/instrumentation/akka/RouterMetricsSpec.scala rename to instrumentation/akka/src/test/scala/kamon/instrumentation/akka/RouterMetricsSpec.scala diff --git a/instrumentation/kamon-akka/src/test-common/scala/kamon/instrumentation/akka/RouterMetricsTestActor.scala b/instrumentation/akka/src/test/scala/kamon/instrumentation/akka/RouterMetricsTestActor.scala similarity index 100% rename from instrumentation/kamon-akka/src/test-common/scala/kamon/instrumentation/akka/RouterMetricsTestActor.scala rename to instrumentation/akka/src/test/scala/kamon/instrumentation/akka/RouterMetricsTestActor.scala diff --git a/instrumentation/kamon-akka/src/test-common/scala/kamon/instrumentation/akka/SchedulerInstrumentationSpec.scala b/instrumentation/akka/src/test/scala/kamon/instrumentation/akka/SchedulerInstrumentationSpec.scala similarity index 100% rename from instrumentation/kamon-akka/src/test-common/scala/kamon/instrumentation/akka/SchedulerInstrumentationSpec.scala rename to instrumentation/akka/src/test/scala/kamon/instrumentation/akka/SchedulerInstrumentationSpec.scala diff --git a/instrumentation/kamon-akka/src/test-common/scala/kamon/instrumentation/akka/SystemMessageInstrumentationSpec.scala b/instrumentation/akka/src/test/scala/kamon/instrumentation/akka/SystemMessageInstrumentationSpec.scala similarity index 100% rename from instrumentation/kamon-akka/src/test-common/scala/kamon/instrumentation/akka/SystemMessageInstrumentationSpec.scala rename to instrumentation/akka/src/test/scala/kamon/instrumentation/akka/SystemMessageInstrumentationSpec.scala diff --git a/instrumentation/kamon-akka/src/test-common/scala/kamon/instrumentation/akka/TestLogger.scala b/instrumentation/akka/src/test/scala/kamon/instrumentation/akka/TestLogger.scala similarity index 100% rename from instrumentation/kamon-akka/src/test-common/scala/kamon/instrumentation/akka/TestLogger.scala rename to instrumentation/akka/src/test/scala/kamon/instrumentation/akka/TestLogger.scala diff --git a/instrumentation/kamon-akka/src/test-common/scala/kamon/instrumentation/akka/remote/MessageBufferTest.scala b/instrumentation/akka/src/test/scala/kamon/instrumentation/akka/remote/MessageBufferTest.scala similarity index 100% rename from instrumentation/kamon-akka/src/test-common/scala/kamon/instrumentation/akka/remote/MessageBufferTest.scala rename to instrumentation/akka/src/test/scala/kamon/instrumentation/akka/remote/MessageBufferTest.scala diff --git a/instrumentation/kamon-akka/src/test-common/scala/kamon/instrumentation/akka/sharding/ShardingInstrumentationSpec.scala b/instrumentation/akka/src/test/scala/kamon/instrumentation/akka/sharding/ShardingInstrumentationSpec.scala similarity index 100% rename from instrumentation/kamon-akka/src/test-common/scala/kamon/instrumentation/akka/sharding/ShardingInstrumentationSpec.scala rename to instrumentation/akka/src/test/scala/kamon/instrumentation/akka/sharding/ShardingInstrumentationSpec.scala diff --git a/instrumentation/kamon-akka/src/test-common/scala/kamon/instrumentation/akka/sharding/ShardingMessageBufferingSpec.scala b/instrumentation/akka/src/test/scala/kamon/instrumentation/akka/sharding/ShardingMessageBufferingSpec.scala similarity index 100% rename from instrumentation/kamon-akka/src/test-common/scala/kamon/instrumentation/akka/sharding/ShardingMessageBufferingSpec.scala rename to instrumentation/akka/src/test/scala/kamon/instrumentation/akka/sharding/ShardingMessageBufferingSpec.scala diff --git a/instrumentation/kamon-akka-grpc/src/main/java/kamon/instrumentation/akka/grpc/AkkaGRPCUnmarshallingContextPropagation.java b/instrumentation/akkaGrpc/src/main/java/kamon/instrumentation/akka/grpc/AkkaGRPCUnmarshallingContextPropagation.java similarity index 100% rename from instrumentation/kamon-akka-grpc/src/main/java/kamon/instrumentation/akka/grpc/AkkaGRPCUnmarshallingContextPropagation.java rename to instrumentation/akkaGrpc/src/main/java/kamon/instrumentation/akka/grpc/AkkaGRPCUnmarshallingContextPropagation.java diff --git a/instrumentation/kamon-akka-grpc/src/main/resources/logback.xml b/instrumentation/akkaGrpc/src/main/resources/logback.xml similarity index 100% rename from instrumentation/kamon-akka-grpc/src/main/resources/logback.xml rename to instrumentation/akkaGrpc/src/main/resources/logback.xml diff --git a/instrumentation/kamon-akka-grpc/src/main/resources/reference.conf b/instrumentation/akkaGrpc/src/main/resources/reference.conf similarity index 100% rename from instrumentation/kamon-akka-grpc/src/main/resources/reference.conf rename to instrumentation/akkaGrpc/src/main/resources/reference.conf diff --git a/instrumentation/kamon-akka-grpc/src/main/scala/kamon/instrumentation/akka/grpc/AkkaGrpcServerInstrumentation.scala b/instrumentation/akkaGrpc/src/main/scala/kamon/instrumentation/akka/grpc/AkkaGrpcServerInstrumentation.scala similarity index 100% rename from instrumentation/kamon-akka-grpc/src/main/scala/kamon/instrumentation/akka/grpc/AkkaGrpcServerInstrumentation.scala rename to instrumentation/akkaGrpc/src/main/scala/kamon/instrumentation/akka/grpc/AkkaGrpcServerInstrumentation.scala diff --git a/instrumentation/kamon-akka-grpc/src/test/protobuf/helloworld.proto b/instrumentation/akkaGrpc/src/test/protobuf/helloworld.proto similarity index 100% rename from instrumentation/kamon-akka-grpc/src/test/protobuf/helloworld.proto rename to instrumentation/akkaGrpc/src/test/protobuf/helloworld.proto diff --git a/instrumentation/kamon-akka-grpc/src/test/resources/application.conf b/instrumentation/akkaGrpc/src/test/resources/application.conf similarity index 100% rename from instrumentation/kamon-akka-grpc/src/test/resources/application.conf rename to instrumentation/akkaGrpc/src/test/resources/application.conf diff --git a/instrumentation/kamon-akka-grpc/src/test/resources/logback.xml b/instrumentation/akkaGrpc/src/test/resources/logback.xml similarity index 100% rename from instrumentation/kamon-akka-grpc/src/test/resources/logback.xml rename to instrumentation/akkaGrpc/src/test/resources/logback.xml diff --git a/instrumentation/kamon-akka-grpc/src/test/scala/kamon/instrumentation/akka/grpc/AkkaGrpcTracingSpec.scala b/instrumentation/akkaGrpc/src/test/scala/kamon/instrumentation/akka/grpc/AkkaGrpcTracingSpec.scala similarity index 100% rename from instrumentation/kamon-akka-grpc/src/test/scala/kamon/instrumentation/akka/grpc/AkkaGrpcTracingSpec.scala rename to instrumentation/akkaGrpc/src/test/scala/kamon/instrumentation/akka/grpc/AkkaGrpcTracingSpec.scala diff --git a/instrumentation/kamon-akka-grpc/src/test/scala/kamon/instrumentation/akka/grpc/GreeterServiceImpl.scala b/instrumentation/akkaGrpc/src/test/scala/kamon/instrumentation/akka/grpc/GreeterServiceImpl.scala similarity index 100% rename from instrumentation/kamon-akka-grpc/src/test/scala/kamon/instrumentation/akka/grpc/GreeterServiceImpl.scala rename to instrumentation/akkaGrpc/src/test/scala/kamon/instrumentation/akka/grpc/GreeterServiceImpl.scala diff --git a/instrumentation/kamon-akka-http/src/main/java/kamon/instrumentation/akka/http/FlowOpsMapAsyncAdvice.java b/instrumentation/akkaHttp/src/main/java/kamon/instrumentation/akka/http/FlowOpsMapAsyncAdvice.java similarity index 100% rename from instrumentation/kamon-akka-http/src/main/java/kamon/instrumentation/akka/http/FlowOpsMapAsyncAdvice.java rename to instrumentation/akkaHttp/src/main/java/kamon/instrumentation/akka/http/FlowOpsMapAsyncAdvice.java diff --git a/instrumentation/kamon-akka-http/src/main/java/kamon/instrumentation/akka/http/Http2BlueprintAsyncAdvice.java b/instrumentation/akkaHttp/src/main/java/kamon/instrumentation/akka/http/Http2BlueprintAsyncAdvice.java similarity index 100% rename from instrumentation/kamon-akka-http/src/main/java/kamon/instrumentation/akka/http/Http2BlueprintAsyncAdvice.java rename to instrumentation/akkaHttp/src/main/java/kamon/instrumentation/akka/http/Http2BlueprintAsyncAdvice.java diff --git a/instrumentation/kamon-akka-http/src/main/java/kamon/instrumentation/akka/http/Http2ExtBindAndHandleAdvice.java b/instrumentation/akkaHttp/src/main/java/kamon/instrumentation/akka/http/Http2ExtBindAndHandleAdvice.java similarity index 100% rename from instrumentation/kamon-akka-http/src/main/java/kamon/instrumentation/akka/http/Http2ExtBindAndHandleAdvice.java rename to instrumentation/akkaHttp/src/main/java/kamon/instrumentation/akka/http/Http2ExtBindAndHandleAdvice.java diff --git a/instrumentation/kamon-akka-http/src/main/java/kamon/instrumentation/akka/http/HttpExtBindAndHandleAdvice.java b/instrumentation/akkaHttp/src/main/java/kamon/instrumentation/akka/http/HttpExtBindAndHandleAdvice.java similarity index 100% rename from instrumentation/kamon-akka-http/src/main/java/kamon/instrumentation/akka/http/HttpExtBindAndHandleAdvice.java rename to instrumentation/akkaHttp/src/main/java/kamon/instrumentation/akka/http/HttpExtBindAndHandleAdvice.java diff --git a/instrumentation/kamon-akka-http/src/main/java/kamon/instrumentation/akka/http/HttpExtSingleRequestAdvice.java b/instrumentation/akkaHttp/src/main/java/kamon/instrumentation/akka/http/HttpExtSingleRequestAdvice.java similarity index 100% rename from instrumentation/kamon-akka-http/src/main/java/kamon/instrumentation/akka/http/HttpExtSingleRequestAdvice.java rename to instrumentation/akkaHttp/src/main/java/kamon/instrumentation/akka/http/HttpExtSingleRequestAdvice.java diff --git a/instrumentation/kamon-akka-http/src/main/java/kamon/instrumentation/akka/http/PoolMasterDispatchRequestAdvice.java b/instrumentation/akkaHttp/src/main/java/kamon/instrumentation/akka/http/PoolMasterDispatchRequestAdvice.java similarity index 100% rename from instrumentation/kamon-akka-http/src/main/java/kamon/instrumentation/akka/http/PoolMasterDispatchRequestAdvice.java rename to instrumentation/akkaHttp/src/main/java/kamon/instrumentation/akka/http/PoolMasterDispatchRequestAdvice.java diff --git a/instrumentation/kamon-akka-http/src/main/resources/reference.conf b/instrumentation/akkaHttp/src/main/resources/reference.conf similarity index 100% rename from instrumentation/kamon-akka-http/src/main/resources/reference.conf rename to instrumentation/akkaHttp/src/main/resources/reference.conf diff --git a/instrumentation/kamon-akka-http/src/main/scala/kamon/instrumentation/akka/http/AkkaHttpClientInstrumentation.scala b/instrumentation/akkaHttp/src/main/scala/kamon/instrumentation/akka/http/AkkaHttpClientInstrumentation.scala similarity index 100% rename from instrumentation/kamon-akka-http/src/main/scala/kamon/instrumentation/akka/http/AkkaHttpClientInstrumentation.scala rename to instrumentation/akkaHttp/src/main/scala/kamon/instrumentation/akka/http/AkkaHttpClientInstrumentation.scala diff --git a/instrumentation/kamon-akka-http/src/main/scala/kamon/instrumentation/akka/http/AkkaHttpInstrumentation.scala b/instrumentation/akkaHttp/src/main/scala/kamon/instrumentation/akka/http/AkkaHttpInstrumentation.scala similarity index 100% rename from instrumentation/kamon-akka-http/src/main/scala/kamon/instrumentation/akka/http/AkkaHttpInstrumentation.scala rename to instrumentation/akkaHttp/src/main/scala/kamon/instrumentation/akka/http/AkkaHttpInstrumentation.scala diff --git a/instrumentation/kamon-akka-http/src/main/scala/kamon/instrumentation/akka/http/AkkaHttpServerInstrumentation.scala b/instrumentation/akkaHttp/src/main/scala/kamon/instrumentation/akka/http/AkkaHttpServerInstrumentation.scala similarity index 100% rename from instrumentation/kamon-akka-http/src/main/scala/kamon/instrumentation/akka/http/AkkaHttpServerInstrumentation.scala rename to instrumentation/akkaHttp/src/main/scala/kamon/instrumentation/akka/http/AkkaHttpServerInstrumentation.scala diff --git a/instrumentation/kamon-akka-http/src/main/scala/kamon/instrumentation/akka/http/ServerFlowWrapper.scala b/instrumentation/akkaHttp/src/main/scala/kamon/instrumentation/akka/http/ServerFlowWrapper.scala similarity index 100% rename from instrumentation/kamon-akka-http/src/main/scala/kamon/instrumentation/akka/http/ServerFlowWrapper.scala rename to instrumentation/akkaHttp/src/main/scala/kamon/instrumentation/akka/http/ServerFlowWrapper.scala diff --git a/instrumentation/kamon-akka-http/src/main/scala/kamon/instrumentation/akka/http/TracingDirectives.scala b/instrumentation/akkaHttp/src/main/scala/kamon/instrumentation/akka/http/TracingDirectives.scala similarity index 100% rename from instrumentation/kamon-akka-http/src/main/scala/kamon/instrumentation/akka/http/TracingDirectives.scala rename to instrumentation/akkaHttp/src/main/scala/kamon/instrumentation/akka/http/TracingDirectives.scala diff --git a/instrumentation/kamon-akka-http/src/main/scala/kamon/instrumentation/akka/http/VersionFiltering.scala b/instrumentation/akkaHttp/src/main/scala/kamon/instrumentation/akka/http/VersionFiltering.scala similarity index 100% rename from instrumentation/kamon-akka-http/src/main/scala/kamon/instrumentation/akka/http/VersionFiltering.scala rename to instrumentation/akkaHttp/src/main/scala/kamon/instrumentation/akka/http/VersionFiltering.scala diff --git a/instrumentation/kamon-akka-http/src/test/resources/application.conf b/instrumentation/akkaHttp/src/test/resources/application.conf similarity index 100% rename from instrumentation/kamon-akka-http/src/test/resources/application.conf rename to instrumentation/akkaHttp/src/test/resources/application.conf diff --git a/instrumentation/kamon-akka-http/src/test/resources/https/chain.pem b/instrumentation/akkaHttp/src/test/resources/https/chain.pem similarity index 100% rename from instrumentation/kamon-akka-http/src/test/resources/https/chain.pem rename to instrumentation/akkaHttp/src/test/resources/https/chain.pem diff --git a/instrumentation/kamon-akka-http/src/test/resources/https/rootCA.crt b/instrumentation/akkaHttp/src/test/resources/https/rootCA.crt similarity index 100% rename from instrumentation/kamon-akka-http/src/test/resources/https/rootCA.crt rename to instrumentation/akkaHttp/src/test/resources/https/rootCA.crt diff --git a/instrumentation/kamon-akka-http/src/test/resources/https/rootCA.key b/instrumentation/akkaHttp/src/test/resources/https/rootCA.key similarity index 100% rename from instrumentation/kamon-akka-http/src/test/resources/https/rootCA.key rename to instrumentation/akkaHttp/src/test/resources/https/rootCA.key diff --git a/instrumentation/kamon-akka-http/src/test/resources/https/rootCA.srl b/instrumentation/akkaHttp/src/test/resources/https/rootCA.srl similarity index 100% rename from instrumentation/kamon-akka-http/src/test/resources/https/rootCA.srl rename to instrumentation/akkaHttp/src/test/resources/https/rootCA.srl diff --git a/instrumentation/kamon-akka-http/src/test/resources/https/server.crt b/instrumentation/akkaHttp/src/test/resources/https/server.crt similarity index 100% rename from instrumentation/kamon-akka-http/src/test/resources/https/server.crt rename to instrumentation/akkaHttp/src/test/resources/https/server.crt diff --git a/instrumentation/kamon-akka-http/src/test/resources/https/server.csr b/instrumentation/akkaHttp/src/test/resources/https/server.csr similarity index 100% rename from instrumentation/kamon-akka-http/src/test/resources/https/server.csr rename to instrumentation/akkaHttp/src/test/resources/https/server.csr diff --git a/instrumentation/kamon-akka-http/src/test/resources/https/server.key b/instrumentation/akkaHttp/src/test/resources/https/server.key similarity index 100% rename from instrumentation/kamon-akka-http/src/test/resources/https/server.key rename to instrumentation/akkaHttp/src/test/resources/https/server.key diff --git a/instrumentation/kamon-akka-http/src/test/resources/https/server.p12 b/instrumentation/akkaHttp/src/test/resources/https/server.p12 similarity index 100% rename from instrumentation/kamon-akka-http/src/test/resources/https/server.p12 rename to instrumentation/akkaHttp/src/test/resources/https/server.p12 diff --git a/instrumentation/kamon-akka-http/src/test/resources/logback.xml b/instrumentation/akkaHttp/src/test/resources/logback.xml similarity index 100% rename from instrumentation/kamon-akka-http/src/test/resources/logback.xml rename to instrumentation/akkaHttp/src/test/resources/logback.xml diff --git a/instrumentation/kamon-akka-http/src/test/scala/kamon/akka/http/AkkaHttpClientTracingSpec.scala b/instrumentation/akkaHttp/src/test/scala/kamon/akka/http/AkkaHttpClientTracingSpec.scala similarity index 100% rename from instrumentation/kamon-akka-http/src/test/scala/kamon/akka/http/AkkaHttpClientTracingSpec.scala rename to instrumentation/akkaHttp/src/test/scala/kamon/akka/http/AkkaHttpClientTracingSpec.scala diff --git a/instrumentation/kamon-akka-http/src/test/scala/kamon/akka/http/AkkaHttpServerMetricsSpec.scala b/instrumentation/akkaHttp/src/test/scala/kamon/akka/http/AkkaHttpServerMetricsSpec.scala similarity index 100% rename from instrumentation/kamon-akka-http/src/test/scala/kamon/akka/http/AkkaHttpServerMetricsSpec.scala rename to instrumentation/akkaHttp/src/test/scala/kamon/akka/http/AkkaHttpServerMetricsSpec.scala diff --git a/instrumentation/kamon-akka-http/src/test/scala/kamon/akka/http/AkkaHttpServerTracingSpec.scala b/instrumentation/akkaHttp/src/test/scala/kamon/akka/http/AkkaHttpServerTracingSpec.scala similarity index 100% rename from instrumentation/kamon-akka-http/src/test/scala/kamon/akka/http/AkkaHttpServerTracingSpec.scala rename to instrumentation/akkaHttp/src/test/scala/kamon/akka/http/AkkaHttpServerTracingSpec.scala diff --git a/instrumentation/kamon-akka-http/src/test/scala/kamon/akka/http/ServerFlowWrapperSpec.scala b/instrumentation/akkaHttp/src/test/scala/kamon/akka/http/ServerFlowWrapperSpec.scala similarity index 100% rename from instrumentation/kamon-akka-http/src/test/scala/kamon/akka/http/ServerFlowWrapperSpec.scala rename to instrumentation/akkaHttp/src/test/scala/kamon/akka/http/ServerFlowWrapperSpec.scala diff --git a/instrumentation/kamon-akka-http/src/test/scala/kamon/testkit/TestNameGenerator.scala b/instrumentation/akkaHttp/src/test/scala/kamon/testkit/TestNameGenerator.scala similarity index 100% rename from instrumentation/kamon-akka-http/src/test/scala/kamon/testkit/TestNameGenerator.scala rename to instrumentation/akkaHttp/src/test/scala/kamon/testkit/TestNameGenerator.scala diff --git a/instrumentation/kamon-akka-http/src/test/scala/kamon/testkit/TestWebServer.scala b/instrumentation/akkaHttp/src/test/scala/kamon/testkit/TestWebServer.scala similarity index 100% rename from instrumentation/kamon-akka-http/src/test/scala/kamon/testkit/TestWebServer.scala rename to instrumentation/akkaHttp/src/test/scala/kamon/testkit/TestWebServer.scala diff --git a/instrumentation/kamon-alpakka-kafka/src/main/resources/reference.conf b/instrumentation/alpakkaKafka/src/main/resources/reference.conf similarity index 100% rename from instrumentation/kamon-alpakka-kafka/src/main/resources/reference.conf rename to instrumentation/alpakkaKafka/src/main/resources/reference.conf diff --git a/instrumentation/kamon-alpakka-kafka/src/main/scala/kamon/instrumentation/alpakka/kafka/ProducerMessageInstrumentation.scala b/instrumentation/alpakkaKafka/src/main/scala/kamon/instrumentation/alpakka/kafka/ProducerMessageInstrumentation.scala similarity index 100% rename from instrumentation/kamon-alpakka-kafka/src/main/scala/kamon/instrumentation/alpakka/kafka/ProducerMessageInstrumentation.scala rename to instrumentation/alpakkaKafka/src/main/scala/kamon/instrumentation/alpakka/kafka/ProducerMessageInstrumentation.scala diff --git a/instrumentation/kamon-annotation/src/main/java/kamon/annotation/el/resolver/PrivateFieldELResolver.java b/instrumentation/annotation/src/main/java/kamon/annotation/el/resolver/PrivateFieldELResolver.java similarity index 100% rename from instrumentation/kamon-annotation/src/main/java/kamon/annotation/el/resolver/PrivateFieldELResolver.java rename to instrumentation/annotation/src/main/java/kamon/annotation/el/resolver/PrivateFieldELResolver.java diff --git a/instrumentation/kamon-annotation/src/main/java/kamon/annotation/instrumentation/AnnotationInstrumentation.java b/instrumentation/annotation/src/main/java/kamon/annotation/instrumentation/AnnotationInstrumentation.java similarity index 100% rename from instrumentation/kamon-annotation/src/main/java/kamon/annotation/instrumentation/AnnotationInstrumentation.java rename to instrumentation/annotation/src/main/java/kamon/annotation/instrumentation/AnnotationInstrumentation.java diff --git a/instrumentation/kamon-annotation/src/main/java/kamon/annotation/instrumentation/advisor/CountAnnotationAdvisor.java b/instrumentation/annotation/src/main/java/kamon/annotation/instrumentation/advisor/CountAnnotationAdvisor.java similarity index 100% rename from instrumentation/kamon-annotation/src/main/java/kamon/annotation/instrumentation/advisor/CountAnnotationAdvisor.java rename to instrumentation/annotation/src/main/java/kamon/annotation/instrumentation/advisor/CountAnnotationAdvisor.java diff --git a/instrumentation/kamon-annotation/src/main/java/kamon/annotation/instrumentation/advisor/CustomizeInnerSpanAnnotationAdvisor.java b/instrumentation/annotation/src/main/java/kamon/annotation/instrumentation/advisor/CustomizeInnerSpanAnnotationAdvisor.java similarity index 100% rename from instrumentation/kamon-annotation/src/main/java/kamon/annotation/instrumentation/advisor/CustomizeInnerSpanAnnotationAdvisor.java rename to instrumentation/annotation/src/main/java/kamon/annotation/instrumentation/advisor/CustomizeInnerSpanAnnotationAdvisor.java diff --git a/instrumentation/kamon-annotation/src/main/java/kamon/annotation/instrumentation/advisor/GaugeAnnotationAdvisor.java b/instrumentation/annotation/src/main/java/kamon/annotation/instrumentation/advisor/GaugeAnnotationAdvisor.java similarity index 100% rename from instrumentation/kamon-annotation/src/main/java/kamon/annotation/instrumentation/advisor/GaugeAnnotationAdvisor.java rename to instrumentation/annotation/src/main/java/kamon/annotation/instrumentation/advisor/GaugeAnnotationAdvisor.java diff --git a/instrumentation/kamon-annotation/src/main/java/kamon/annotation/instrumentation/advisor/HistogramAnnotationAdvisor.java b/instrumentation/annotation/src/main/java/kamon/annotation/instrumentation/advisor/HistogramAnnotationAdvisor.java similarity index 100% rename from instrumentation/kamon-annotation/src/main/java/kamon/annotation/instrumentation/advisor/HistogramAnnotationAdvisor.java rename to instrumentation/annotation/src/main/java/kamon/annotation/instrumentation/advisor/HistogramAnnotationAdvisor.java diff --git a/instrumentation/kamon-annotation/src/main/java/kamon/annotation/instrumentation/advisor/TimeAnnotationAdvisor.java b/instrumentation/annotation/src/main/java/kamon/annotation/instrumentation/advisor/TimeAnnotationAdvisor.java similarity index 100% rename from instrumentation/kamon-annotation/src/main/java/kamon/annotation/instrumentation/advisor/TimeAnnotationAdvisor.java rename to instrumentation/annotation/src/main/java/kamon/annotation/instrumentation/advisor/TimeAnnotationAdvisor.java diff --git a/instrumentation/kamon-annotation/src/main/java/kamon/annotation/instrumentation/advisor/TraceAnnotationAdvisor.java b/instrumentation/annotation/src/main/java/kamon/annotation/instrumentation/advisor/TraceAnnotationAdvisor.java similarity index 100% rename from instrumentation/kamon-annotation/src/main/java/kamon/annotation/instrumentation/advisor/TraceAnnotationAdvisor.java rename to instrumentation/annotation/src/main/java/kamon/annotation/instrumentation/advisor/TraceAnnotationAdvisor.java diff --git a/instrumentation/kamon-annotation/src/main/java/kamon/annotation/instrumentation/advisor/TrackConcurrencyAnnotationAdvisor.java b/instrumentation/annotation/src/main/java/kamon/annotation/instrumentation/advisor/TrackConcurrencyAnnotationAdvisor.java similarity index 100% rename from instrumentation/kamon-annotation/src/main/java/kamon/annotation/instrumentation/advisor/TrackConcurrencyAnnotationAdvisor.java rename to instrumentation/annotation/src/main/java/kamon/annotation/instrumentation/advisor/TrackConcurrencyAnnotationAdvisor.java diff --git a/instrumentation/kamon-annotation/src/main/java/kamon/annotation/instrumentation/cache/AnnotationCache.java b/instrumentation/annotation/src/main/java/kamon/annotation/instrumentation/cache/AnnotationCache.java similarity index 100% rename from instrumentation/kamon-annotation/src/main/java/kamon/annotation/instrumentation/cache/AnnotationCache.java rename to instrumentation/annotation/src/main/java/kamon/annotation/instrumentation/cache/AnnotationCache.java diff --git a/instrumentation/kamon-annotation/src/main/resources/reference.conf b/instrumentation/annotation/src/main/resources/reference.conf similarity index 100% rename from instrumentation/kamon-annotation/src/main/resources/reference.conf rename to instrumentation/annotation/src/main/resources/reference.conf diff --git a/instrumentation/kamon-annotation/src/main/scala/kamon/annotation/el/ELEvaluator.scala b/instrumentation/annotation/src/main/scala/kamon/annotation/el/ELEvaluator.scala similarity index 100% rename from instrumentation/kamon-annotation/src/main/scala/kamon/annotation/el/ELEvaluator.scala rename to instrumentation/annotation/src/main/scala/kamon/annotation/el/ELEvaluator.scala diff --git a/instrumentation/kamon-annotation/src/main/scala/kamon/annotation/el/ELProcessorFactory.scala b/instrumentation/annotation/src/main/scala/kamon/annotation/el/ELProcessorFactory.scala similarity index 100% rename from instrumentation/kamon-annotation/src/main/scala/kamon/annotation/el/ELProcessorFactory.scala rename to instrumentation/annotation/src/main/scala/kamon/annotation/el/ELProcessorFactory.scala diff --git a/instrumentation/kamon-annotation/src/main/scala/kamon/annotation/el/EnhancedELProcessor.scala b/instrumentation/annotation/src/main/scala/kamon/annotation/el/EnhancedELProcessor.scala similarity index 100% rename from instrumentation/kamon-annotation/src/main/scala/kamon/annotation/el/EnhancedELProcessor.scala rename to instrumentation/annotation/src/main/scala/kamon/annotation/el/EnhancedELProcessor.scala diff --git a/instrumentation/kamon-annotation/src/main/scala/kamon/annotation/util/Hooks.scala b/instrumentation/annotation/src/main/scala/kamon/annotation/util/Hooks.scala similarity index 100% rename from instrumentation/kamon-annotation/src/main/scala/kamon/annotation/util/Hooks.scala rename to instrumentation/annotation/src/main/scala/kamon/annotation/util/Hooks.scala diff --git a/instrumentation/kamon-annotation/src/test/java/kamon/annotation/AnnotatedJavaClass.java b/instrumentation/annotation/src/test/java/kamon/annotation/AnnotatedJavaClass.java similarity index 100% rename from instrumentation/kamon-annotation/src/test/java/kamon/annotation/AnnotatedJavaClass.java rename to instrumentation/annotation/src/test/java/kamon/annotation/AnnotatedJavaClass.java diff --git a/instrumentation/kamon-annotation/src/test/resources/application.conf b/instrumentation/annotation/src/test/resources/application.conf similarity index 100% rename from instrumentation/kamon-annotation/src/test/resources/application.conf rename to instrumentation/annotation/src/test/resources/application.conf diff --git a/instrumentation/kamon-annotation/src/test/resources/logback.xml b/instrumentation/annotation/src/test/resources/logback.xml similarity index 100% rename from instrumentation/kamon-annotation/src/test/resources/logback.xml rename to instrumentation/annotation/src/test/resources/logback.xml diff --git a/instrumentation/kamon-annotation/src/test/scala/kamon/annotation/AnnotationInstrumentationSpec.scala b/instrumentation/annotation/src/test/scala/kamon/annotation/AnnotationInstrumentationSpec.scala similarity index 100% rename from instrumentation/kamon-annotation/src/test/scala/kamon/annotation/AnnotationInstrumentationSpec.scala rename to instrumentation/annotation/src/test/scala/kamon/annotation/AnnotationInstrumentationSpec.scala diff --git a/instrumentation/kamon-annotation/src/test/scala/kamon/annotation/StaticAnnotationInstrumentationJavaSpec.scala b/instrumentation/annotation/src/test/scala/kamon/annotation/StaticAnnotationInstrumentationJavaSpec.scala similarity index 100% rename from instrumentation/kamon-annotation/src/test/scala/kamon/annotation/StaticAnnotationInstrumentationJavaSpec.scala rename to instrumentation/annotation/src/test/scala/kamon/annotation/StaticAnnotationInstrumentationJavaSpec.scala diff --git a/instrumentation/kamon-annotation/src/test/scala/kamon/annotation/StaticAnnotationInstrumentationSpec.scala b/instrumentation/annotation/src/test/scala/kamon/annotation/StaticAnnotationInstrumentationSpec.scala similarity index 100% rename from instrumentation/kamon-annotation/src/test/scala/kamon/annotation/StaticAnnotationInstrumentationSpec.scala rename to instrumentation/annotation/src/test/scala/kamon/annotation/StaticAnnotationInstrumentationSpec.scala diff --git a/instrumentation/kamon-annotation-api/src/main/java/kamon/annotation/api/Count.java b/instrumentation/annotationApi/src/main/java/kamon/annotation/api/Count.java similarity index 100% rename from instrumentation/kamon-annotation-api/src/main/java/kamon/annotation/api/Count.java rename to instrumentation/annotationApi/src/main/java/kamon/annotation/api/Count.java diff --git a/instrumentation/kamon-annotation-api/src/main/java/kamon/annotation/api/CustomizeInnerSpan.java b/instrumentation/annotationApi/src/main/java/kamon/annotation/api/CustomizeInnerSpan.java similarity index 100% rename from instrumentation/kamon-annotation-api/src/main/java/kamon/annotation/api/CustomizeInnerSpan.java rename to instrumentation/annotationApi/src/main/java/kamon/annotation/api/CustomizeInnerSpan.java diff --git a/instrumentation/kamon-annotation-api/src/main/java/kamon/annotation/api/Gauge.java b/instrumentation/annotationApi/src/main/java/kamon/annotation/api/Gauge.java similarity index 100% rename from instrumentation/kamon-annotation-api/src/main/java/kamon/annotation/api/Gauge.java rename to instrumentation/annotationApi/src/main/java/kamon/annotation/api/Gauge.java diff --git a/instrumentation/kamon-annotation-api/src/main/java/kamon/annotation/api/Histogram.java b/instrumentation/annotationApi/src/main/java/kamon/annotation/api/Histogram.java similarity index 100% rename from instrumentation/kamon-annotation-api/src/main/java/kamon/annotation/api/Histogram.java rename to instrumentation/annotationApi/src/main/java/kamon/annotation/api/Histogram.java diff --git a/instrumentation/kamon-annotation-api/src/main/java/kamon/annotation/api/Time.java b/instrumentation/annotationApi/src/main/java/kamon/annotation/api/Time.java similarity index 100% rename from instrumentation/kamon-annotation-api/src/main/java/kamon/annotation/api/Time.java rename to instrumentation/annotationApi/src/main/java/kamon/annotation/api/Time.java diff --git a/instrumentation/kamon-annotation-api/src/main/java/kamon/annotation/api/Trace.java b/instrumentation/annotationApi/src/main/java/kamon/annotation/api/Trace.java similarity index 100% rename from instrumentation/kamon-annotation-api/src/main/java/kamon/annotation/api/Trace.java rename to instrumentation/annotationApi/src/main/java/kamon/annotation/api/Trace.java diff --git a/instrumentation/kamon-annotation-api/src/main/java/kamon/annotation/api/TrackConcurrency.java b/instrumentation/annotationApi/src/main/java/kamon/annotation/api/TrackConcurrency.java similarity index 100% rename from instrumentation/kamon-annotation-api/src/main/java/kamon/annotation/api/TrackConcurrency.java rename to instrumentation/annotationApi/src/main/java/kamon/annotation/api/TrackConcurrency.java diff --git a/instrumentation/kamon-apache-cxf/src/main/resources/reference.conf b/instrumentation/apacheCxf/src/main/resources/reference.conf similarity index 100% rename from instrumentation/kamon-apache-cxf/src/main/resources/reference.conf rename to instrumentation/apacheCxf/src/main/resources/reference.conf diff --git a/instrumentation/kamon-apache-cxf/src/main/scala/kamon/instrumentation/apache/cxf/client/ApacheCxfClientHelper.scala b/instrumentation/apacheCxf/src/main/scala/kamon/instrumentation/apache/cxf/client/ApacheCxfClientHelper.scala similarity index 100% rename from instrumentation/kamon-apache-cxf/src/main/scala/kamon/instrumentation/apache/cxf/client/ApacheCxfClientHelper.scala rename to instrumentation/apacheCxf/src/main/scala/kamon/instrumentation/apache/cxf/client/ApacheCxfClientHelper.scala diff --git a/instrumentation/kamon-apache-cxf/src/main/scala/kamon/instrumentation/apache/cxf/client/ClientProxyFactoryBeanInstrumentation.scala b/instrumentation/apacheCxf/src/main/scala/kamon/instrumentation/apache/cxf/client/ClientProxyFactoryBeanInstrumentation.scala similarity index 100% rename from instrumentation/kamon-apache-cxf/src/main/scala/kamon/instrumentation/apache/cxf/client/ClientProxyFactoryBeanInstrumentation.scala rename to instrumentation/apacheCxf/src/main/scala/kamon/instrumentation/apache/cxf/client/ClientProxyFactoryBeanInstrumentation.scala diff --git a/instrumentation/kamon-apache-cxf/src/main/scala/kamon/instrumentation/apache/cxf/client/TraceScopeHolder.scala b/instrumentation/apacheCxf/src/main/scala/kamon/instrumentation/apache/cxf/client/TraceScopeHolder.scala similarity index 100% rename from instrumentation/kamon-apache-cxf/src/main/scala/kamon/instrumentation/apache/cxf/client/TraceScopeHolder.scala rename to instrumentation/apacheCxf/src/main/scala/kamon/instrumentation/apache/cxf/client/TraceScopeHolder.scala diff --git a/instrumentation/kamon-apache-cxf/src/main/scala/kamon/instrumentation/apache/cxf/client/TracingClientFeature.scala b/instrumentation/apacheCxf/src/main/scala/kamon/instrumentation/apache/cxf/client/TracingClientFeature.scala similarity index 100% rename from instrumentation/kamon-apache-cxf/src/main/scala/kamon/instrumentation/apache/cxf/client/TracingClientFeature.scala rename to instrumentation/apacheCxf/src/main/scala/kamon/instrumentation/apache/cxf/client/TracingClientFeature.scala diff --git a/instrumentation/kamon-apache-cxf/src/main/scala/kamon/instrumentation/apache/cxf/client/TracingClientFeatureInitializer.scala b/instrumentation/apacheCxf/src/main/scala/kamon/instrumentation/apache/cxf/client/TracingClientFeatureInitializer.scala similarity index 100% rename from instrumentation/kamon-apache-cxf/src/main/scala/kamon/instrumentation/apache/cxf/client/TracingClientFeatureInitializer.scala rename to instrumentation/apacheCxf/src/main/scala/kamon/instrumentation/apache/cxf/client/TracingClientFeatureInitializer.scala diff --git a/instrumentation/kamon-apache-cxf/src/main/scala/kamon/instrumentation/apache/cxf/client/TracingClientInterceptor.scala b/instrumentation/apacheCxf/src/main/scala/kamon/instrumentation/apache/cxf/client/TracingClientInterceptor.scala similarity index 100% rename from instrumentation/kamon-apache-cxf/src/main/scala/kamon/instrumentation/apache/cxf/client/TracingClientInterceptor.scala rename to instrumentation/apacheCxf/src/main/scala/kamon/instrumentation/apache/cxf/client/TracingClientInterceptor.scala diff --git a/instrumentation/kamon-apache-cxf/src/test/resources/application.conf b/instrumentation/apacheCxf/src/test/resources/application.conf similarity index 100% rename from instrumentation/kamon-apache-cxf/src/test/resources/application.conf rename to instrumentation/apacheCxf/src/test/resources/application.conf diff --git a/instrumentation/kamon-apache-cxf/src/test/resources/logback.xml b/instrumentation/apacheCxf/src/test/resources/logback.xml similarity index 100% rename from instrumentation/kamon-apache-cxf/src/test/resources/logback.xml rename to instrumentation/apacheCxf/src/test/resources/logback.xml diff --git a/instrumentation/kamon-apache-cxf/src/test/scala/kamon/instrumentation/apache/cxf/client/MessageSpec.scala b/instrumentation/apacheCxf/src/test/scala/kamon/instrumentation/apache/cxf/client/MessageSpec.scala similarity index 91% rename from instrumentation/kamon-apache-cxf/src/test/scala/kamon/instrumentation/apache/cxf/client/MessageSpec.scala rename to instrumentation/apacheCxf/src/test/scala/kamon/instrumentation/apache/cxf/client/MessageSpec.scala index 613a64ef8..da99a0d27 100644 --- a/instrumentation/kamon-apache-cxf/src/test/scala/kamon/instrumentation/apache/cxf/client/MessageSpec.scala +++ b/instrumentation/apacheCxf/src/test/scala/kamon/instrumentation/apache/cxf/client/MessageSpec.scala @@ -1,15 +1,16 @@ package kamon.instrumentation.apache.cxf.client -import com.dimafeng.testcontainers.{ForAllTestContainer, MockServerContainer} import kamon.instrumentation.apache.cxf.client.util.MockServerExpectations import kamon.tag.Lookups.{plain, plainBoolean, plainLong} import kamon.testkit.{InitAndStopKamonAfterAll, Reconfigure, TestSpanReporter} -import org.scalatest.OptionValues +import org.scalatest.{BeforeAndAfterAll, OptionValues} import org.scalatest.concurrent.Eventually import org.scalatest.matchers.should.Matchers import org.scalatest.time.SpanSugar import org.scalatest.wordspec.AnyWordSpec import org.slf4j.LoggerFactory +import org.testcontainers.containers.MockServerContainer +import org.testcontainers.utility.DockerImageName class MessageSpec extends AnyWordSpec @@ -20,7 +21,7 @@ class MessageSpec with OptionValues with TestSpanReporter with InitAndStopKamonAfterAll - with ForAllTestContainer { + with BeforeAndAfterAll { private val _logger = LoggerFactory.getLogger(classOf[MessageSpec]) @@ -90,9 +91,9 @@ class MessageSpec } } - override val container: MockServerContainer = MockServerContainer() + val container = new MockServerContainer(DockerImageName.parse("mockserver/mockserver:5.13.2")) lazy val clientExpectation: MockServerExpectations = - new MockServerExpectations(container.container.getHost, container.serverPort) + new MockServerExpectations(container.getHost, container.getServerPort) override protected def beforeAll(): Unit = { super.beforeAll() diff --git a/instrumentation/kamon-apache-cxf/src/test/scala/kamon/instrumentation/apache/cxf/client/util/FailingInterceptor.scala b/instrumentation/apacheCxf/src/test/scala/kamon/instrumentation/apache/cxf/client/util/FailingInterceptor.scala similarity index 100% rename from instrumentation/kamon-apache-cxf/src/test/scala/kamon/instrumentation/apache/cxf/client/util/FailingInterceptor.scala rename to instrumentation/apacheCxf/src/test/scala/kamon/instrumentation/apache/cxf/client/util/FailingInterceptor.scala diff --git a/instrumentation/kamon-apache-cxf/src/test/scala/kamon/instrumentation/apache/cxf/client/util/HelloWorldService.scala b/instrumentation/apacheCxf/src/test/scala/kamon/instrumentation/apache/cxf/client/util/HelloWorldService.scala similarity index 100% rename from instrumentation/kamon-apache-cxf/src/test/scala/kamon/instrumentation/apache/cxf/client/util/HelloWorldService.scala rename to instrumentation/apacheCxf/src/test/scala/kamon/instrumentation/apache/cxf/client/util/HelloWorldService.scala diff --git a/instrumentation/kamon-apache-cxf/src/test/scala/kamon/instrumentation/apache/cxf/client/util/MockServerExpectations.scala b/instrumentation/apacheCxf/src/test/scala/kamon/instrumentation/apache/cxf/client/util/MockServerExpectations.scala similarity index 100% rename from instrumentation/kamon-apache-cxf/src/test/scala/kamon/instrumentation/apache/cxf/client/util/MockServerExpectations.scala rename to instrumentation/apacheCxf/src/test/scala/kamon/instrumentation/apache/cxf/client/util/MockServerExpectations.scala diff --git a/instrumentation/kamon-apache-httpclient/src/main/java/kamon/instrumentation/apache/httpclient/RequestAdvisor.java b/instrumentation/apacheHttpClient/src/main/java/kamon/instrumentation/apache/httpclient/RequestAdvisor.java similarity index 100% rename from instrumentation/kamon-apache-httpclient/src/main/java/kamon/instrumentation/apache/httpclient/RequestAdvisor.java rename to instrumentation/apacheHttpClient/src/main/java/kamon/instrumentation/apache/httpclient/RequestAdvisor.java diff --git a/instrumentation/kamon-apache-httpclient/src/main/java/kamon/instrumentation/apache/httpclient/RequestWithHandlerAdvisor.java b/instrumentation/apacheHttpClient/src/main/java/kamon/instrumentation/apache/httpclient/RequestWithHandlerAdvisor.java similarity index 100% rename from instrumentation/kamon-apache-httpclient/src/main/java/kamon/instrumentation/apache/httpclient/RequestWithHandlerAdvisor.java rename to instrumentation/apacheHttpClient/src/main/java/kamon/instrumentation/apache/httpclient/RequestWithHandlerAdvisor.java diff --git a/instrumentation/kamon-apache-httpclient/src/main/java/kamon/instrumentation/apache/httpclient/ResponseHandlerProxy.java b/instrumentation/apacheHttpClient/src/main/java/kamon/instrumentation/apache/httpclient/ResponseHandlerProxy.java similarity index 100% rename from instrumentation/kamon-apache-httpclient/src/main/java/kamon/instrumentation/apache/httpclient/ResponseHandlerProxy.java rename to instrumentation/apacheHttpClient/src/main/java/kamon/instrumentation/apache/httpclient/ResponseHandlerProxy.java diff --git a/instrumentation/kamon-apache-httpclient/src/main/java/kamon/instrumentation/apache/httpclient/UriRequestAdvisor.java b/instrumentation/apacheHttpClient/src/main/java/kamon/instrumentation/apache/httpclient/UriRequestAdvisor.java similarity index 100% rename from instrumentation/kamon-apache-httpclient/src/main/java/kamon/instrumentation/apache/httpclient/UriRequestAdvisor.java rename to instrumentation/apacheHttpClient/src/main/java/kamon/instrumentation/apache/httpclient/UriRequestAdvisor.java diff --git a/instrumentation/kamon-apache-httpclient/src/main/java/kamon/instrumentation/apache/httpclient/UriRequestWithHandlerAdvisor.java b/instrumentation/apacheHttpClient/src/main/java/kamon/instrumentation/apache/httpclient/UriRequestWithHandlerAdvisor.java similarity index 100% rename from instrumentation/kamon-apache-httpclient/src/main/java/kamon/instrumentation/apache/httpclient/UriRequestWithHandlerAdvisor.java rename to instrumentation/apacheHttpClient/src/main/java/kamon/instrumentation/apache/httpclient/UriRequestWithHandlerAdvisor.java diff --git a/instrumentation/kamon-apache-httpclient/src/main/resources/reference.conf b/instrumentation/apacheHttpClient/src/main/resources/reference.conf similarity index 100% rename from instrumentation/kamon-apache-httpclient/src/main/resources/reference.conf rename to instrumentation/apacheHttpClient/src/main/resources/reference.conf diff --git a/instrumentation/kamon-apache-httpclient/src/main/scala/kamon/instrumentation/apache/httpclient/ApacheHttpClientHelper.scala b/instrumentation/apacheHttpClient/src/main/scala/kamon/instrumentation/apache/httpclient/ApacheHttpClientHelper.scala similarity index 100% rename from instrumentation/kamon-apache-httpclient/src/main/scala/kamon/instrumentation/apache/httpclient/ApacheHttpClientHelper.scala rename to instrumentation/apacheHttpClient/src/main/scala/kamon/instrumentation/apache/httpclient/ApacheHttpClientHelper.scala diff --git a/instrumentation/kamon-apache-httpclient/src/main/scala/kamon/instrumentation/apache/httpclient/ApacheHttpClientInstrumentation.scala b/instrumentation/apacheHttpClient/src/main/scala/kamon/instrumentation/apache/httpclient/ApacheHttpClientInstrumentation.scala similarity index 100% rename from instrumentation/kamon-apache-httpclient/src/main/scala/kamon/instrumentation/apache/httpclient/ApacheHttpClientInstrumentation.scala rename to instrumentation/apacheHttpClient/src/main/scala/kamon/instrumentation/apache/httpclient/ApacheHttpClientInstrumentation.scala diff --git a/instrumentation/kamon-apache-httpclient/src/test/resources/application.conf b/instrumentation/apacheHttpClient/src/test/resources/application.conf similarity index 100% rename from instrumentation/kamon-apache-httpclient/src/test/resources/application.conf rename to instrumentation/apacheHttpClient/src/test/resources/application.conf diff --git a/instrumentation/kamon-apache-httpclient/src/test/resources/logback.xml b/instrumentation/apacheHttpClient/src/test/resources/logback.xml similarity index 100% rename from instrumentation/kamon-apache-httpclient/src/test/resources/logback.xml rename to instrumentation/apacheHttpClient/src/test/resources/logback.xml diff --git a/instrumentation/kamon-apache-httpclient/src/test/scala/kamon/instrumentation/apache/httpclient/HttpRequestSpec.scala b/instrumentation/apacheHttpClient/src/test/scala/kamon/instrumentation/apache/httpclient/HttpRequestSpec.scala similarity index 90% rename from instrumentation/kamon-apache-httpclient/src/test/scala/kamon/instrumentation/apache/httpclient/HttpRequestSpec.scala rename to instrumentation/apacheHttpClient/src/test/scala/kamon/instrumentation/apache/httpclient/HttpRequestSpec.scala index 3a221deb6..7f2546cea 100644 --- a/instrumentation/kamon-apache-httpclient/src/test/scala/kamon/instrumentation/apache/httpclient/HttpRequestSpec.scala +++ b/instrumentation/apacheHttpClient/src/test/scala/kamon/instrumentation/apache/httpclient/HttpRequestSpec.scala @@ -1,7 +1,5 @@ package kamon.instrumentation.apache.httpclient -import com.dimafeng.testcontainers.{MockServerContainer, ForAllTestContainer} - import kamon.Kamon import kamon.tag.Lookups._ import kamon.testkit._ @@ -12,7 +10,7 @@ import org.scalatest.concurrent.Eventually import org.scalatest.matchers.should.Matchers import org.scalatest.time.SpanSugar import org.scalatest.wordspec.AnyWordSpec -import org.scalatest.OptionValues +import org.scalatest.{BeforeAndAfterAll, OptionValues} import java.net.URI import org.mockserver.client.MockServerClient import org.mockserver.model.HttpRequest.{request => mockRequest} @@ -27,6 +25,8 @@ import org.apache.http.client.protocol.ClientContext import org.apache.http.client.protocol.HttpClientContext import org.apache.http.impl.client.BasicCookieStore import org.mockserver.model.HttpResponse +import org.testcontainers.containers.MockServerContainer +import org.testcontainers.utility.DockerImageName class HttpRequestSpec extends AnyWordSpec @@ -37,19 +37,19 @@ class HttpRequestSpec with OptionValues with TestSpanReporter with InitAndStopKamonAfterAll - with ForAllTestContainer { + with BeforeAndAfterAll { private val _logger = LoggerFactory.getLogger(classOf[HttpRequestSpec]) - private lazy val host = HttpHost.create(container.endpoint) + private lazy val host = HttpHost.create(container.getEndpoint) "The apache httpclient taking HttpRequest" should { "create client span when using execute(...)" in { clientExpectation.simpleGetExpectation val client = HttpClients.createMinimal() val path = clientExpectation.simpleGetPath - val target = s"${container.endpoint}$path" + val target = s"${container.getEndpoint}$path" val request = new BasicHttpRequest("GET", path) val response = client.execute(host, request) @@ -67,7 +67,7 @@ class HttpRequestSpec clientExpectation.customOptNameExpectation val client = HttpClients.createMinimal() val path = clientExpectation.customOptNamePath - val target = s"${container.endpoint}$path" + val target = s"${container.getEndpoint}$path" val request = new BasicHttpRequest("POST", path) val response = client.execute(host, request) @@ -85,7 +85,7 @@ class HttpRequestSpec clientExpectation.checkHeadersExpectation val client = HttpClients.createMinimal() val path = clientExpectation.checkHeadersPath - val target = s"${container.endpoint}$path" + val target = s"${container.getEndpoint}$path" val testTag = "custom.tag" val testTagVal = "haha! gotcha" val request = new BasicHttpRequest("GET", path) @@ -118,7 +118,7 @@ class HttpRequestSpec clientExpectation.test500Expectation val client = HttpClients.createMinimal() val path = clientExpectation.test500Path - val target = s"${container.endpoint}$path" + val target = s"${container.getEndpoint}$path" val ctx = new BasicHttpContext() ctx.setAttribute(HttpClientContext.COOKIE_STORE, new BasicCookieStore()) val request = new BasicHttpRequest("GET", path) @@ -141,7 +141,7 @@ class HttpRequestSpec clientExpectation.failingResponseHandlerExpectation val client = HttpClients.createMinimal() val path = clientExpectation.failingResponseHandlerPath - val target = s"${container.endpoint}$path" + val target = s"${container.getEndpoint}$path" val request = new BasicHttpRequest("GET", path) assertThrows[RuntimeException] { client.execute(host, request, new ErrorThrowingHandler()) @@ -160,9 +160,9 @@ class HttpRequestSpec } - override val container: MockServerContainer = MockServerContainer() + val container = new MockServerContainer(DockerImageName.parse("mockserver/mockserver:5.13.2")) lazy val clientExpectation: MockServerExpectations = - new MockServerExpectations(container.container.getHost, container.serverPort) + new MockServerExpectations(container.getHost, container.getServerPort) override protected def beforeAll(): Unit = { super.beforeAll() diff --git a/instrumentation/kamon-apache-httpclient/src/test/scala/kamon/instrumentation/apache/httpclient/HttpUriRequestSpec.scala b/instrumentation/apacheHttpClient/src/test/scala/kamon/instrumentation/apache/httpclient/HttpUriRequestSpec.scala similarity index 88% rename from instrumentation/kamon-apache-httpclient/src/test/scala/kamon/instrumentation/apache/httpclient/HttpUriRequestSpec.scala rename to instrumentation/apacheHttpClient/src/test/scala/kamon/instrumentation/apache/httpclient/HttpUriRequestSpec.scala index a0daa250d..ba1e35502 100644 --- a/instrumentation/kamon-apache-httpclient/src/test/scala/kamon/instrumentation/apache/httpclient/HttpUriRequestSpec.scala +++ b/instrumentation/apacheHttpClient/src/test/scala/kamon/instrumentation/apache/httpclient/HttpUriRequestSpec.scala @@ -1,7 +1,5 @@ package kamon.instrumentation.apache.httpclient -import com.dimafeng.testcontainers.{MockServerContainer, ForAllTestContainer} - import kamon.Kamon import kamon.tag.Lookups._ import kamon.testkit._ @@ -12,7 +10,7 @@ import org.scalatest.concurrent.Eventually import org.scalatest.matchers.should.Matchers import org.scalatest.time.SpanSugar import org.scalatest.wordspec.AnyWordSpec -import org.scalatest.OptionValues +import org.scalatest.{BeforeAndAfterAll, OptionValues} import java.net.URI import org.mockserver.client.MockServerClient import org.mockserver.model.HttpRequest.{request => mockRequest} @@ -29,6 +27,8 @@ import org.apache.http.client.protocol.HttpClientContext import org.apache.http.impl.client.BasicCookieStore import org.mockserver.model.HttpResponse import org.apache.http.client.methods.HttpPost +import org.testcontainers.containers.MockServerContainer +import org.testcontainers.utility.DockerImageName class HttpUriRequestSpec extends AnyWordSpec @@ -39,7 +39,7 @@ class HttpUriRequestSpec with OptionValues with TestSpanReporter with InitAndStopKamonAfterAll - with ForAllTestContainer { + with BeforeAndAfterAll { private val _logger = LoggerFactory.getLogger(classOf[HttpUriRequestSpec]) @@ -48,7 +48,7 @@ class HttpUriRequestSpec "create client span when using execute(...)" in { clientExpectation.simpleGetExpectation val client = HttpClients.createMinimal() - val target = s"${container.endpoint}${clientExpectation.simpleGetPath}" + val target = s"${container.getEndpoint}${clientExpectation.simpleGetPath}" val request = new HttpGet(target) val response = client.execute(request) @@ -65,7 +65,7 @@ class HttpUriRequestSpec "replace operation name from config" in { clientExpectation.customOptNameExpectation val client = HttpClients.createMinimal() - val target = s"${container.endpoint}${clientExpectation.customOptNamePath}" + val target = s"${container.getEndpoint}${clientExpectation.customOptNamePath}" val request = new HttpPost(target) val response = client.execute(request) @@ -82,7 +82,7 @@ class HttpUriRequestSpec "append current context into HTTP headers" in { clientExpectation.checkHeadersExpectation val client = HttpClients.createMinimal() - val target = s"${container.endpoint}${clientExpectation.checkHeadersPath}" + val target = s"${container.getEndpoint}${clientExpectation.checkHeadersPath}" val testTag = "custom.tag" val testTagVal = "haha! gotcha" val request = new HttpGet(target) @@ -114,7 +114,7 @@ class HttpUriRequestSpec "mark spans as errors when request fails" in { clientExpectation.test500Expectation val client = HttpClients.createMinimal() - val target = s"${container.endpoint}${clientExpectation.test500Path}" + val target = s"${container.getEndpoint}${clientExpectation.test500Path}" val ctx = new BasicHttpContext() ctx.setAttribute(HttpClientContext.COOKIE_STORE, new BasicCookieStore()) val request = new HttpGet(target) @@ -136,7 +136,7 @@ class HttpUriRequestSpec "not mark spans as error when response handler throws" in { clientExpectation.failingResponseHandlerExpectation val client = HttpClients.createMinimal() - val target = s"${container.endpoint}${clientExpectation.failingResponseHandlerPath}" + val target = s"${container.getEndpoint}${clientExpectation.failingResponseHandlerPath}" val request = new HttpGet(target) assertThrows[RuntimeException] { client.execute(request, new ErrorThrowingHandler()) @@ -155,9 +155,9 @@ class HttpUriRequestSpec } - override val container: MockServerContainer = MockServerContainer() + val container = new MockServerContainer(DockerImageName.parse("mockserver/mockserver:5.13.2")) lazy val clientExpectation: MockServerExpectations = - new MockServerExpectations(container.container.getHost, container.serverPort) + new MockServerExpectations(container.getHost, container.getServerPort) override protected def beforeAll(): Unit = { super.beforeAll() diff --git a/instrumentation/kamon-apache-httpclient/src/test/scala/kamon/instrumentation/apache/httpclient/util/MockServerExpectations.scala b/instrumentation/apacheHttpClient/src/test/scala/kamon/instrumentation/apache/httpclient/util/MockServerExpectations.scala similarity index 100% rename from instrumentation/kamon-apache-httpclient/src/test/scala/kamon/instrumentation/apache/httpclient/util/MockServerExpectations.scala rename to instrumentation/apacheHttpClient/src/test/scala/kamon/instrumentation/apache/httpclient/util/MockServerExpectations.scala diff --git a/instrumentation/kamon-apache-httpclient/src/test/scala/kamon/instrumentation/apache/httpclient/util/ResponseHandlers.scala b/instrumentation/apacheHttpClient/src/test/scala/kamon/instrumentation/apache/httpclient/util/ResponseHandlers.scala similarity index 100% rename from instrumentation/kamon-apache-httpclient/src/test/scala/kamon/instrumentation/apache/httpclient/util/ResponseHandlers.scala rename to instrumentation/apacheHttpClient/src/test/scala/kamon/instrumentation/apache/httpclient/util/ResponseHandlers.scala diff --git a/instrumentation/kamon-caffeine/src/main/resources/reference.conf b/instrumentation/caffeine/src/main/resources/reference.conf similarity index 100% rename from instrumentation/kamon-caffeine/src/main/resources/reference.conf rename to instrumentation/caffeine/src/main/resources/reference.conf diff --git a/instrumentation/kamon-caffeine/src/main/scala/kamon/instrumentation/caffeine/CaffeineCacheInstrumentation.scala b/instrumentation/caffeine/src/main/scala/kamon/instrumentation/caffeine/CaffeineCacheInstrumentation.scala similarity index 100% rename from instrumentation/kamon-caffeine/src/main/scala/kamon/instrumentation/caffeine/CaffeineCacheInstrumentation.scala rename to instrumentation/caffeine/src/main/scala/kamon/instrumentation/caffeine/CaffeineCacheInstrumentation.scala diff --git a/instrumentation/kamon-caffeine/src/main/scala/kamon/instrumentation/caffeine/KamonStatsCounter.scala b/instrumentation/caffeine/src/main/scala/kamon/instrumentation/caffeine/KamonStatsCounter.scala similarity index 100% rename from instrumentation/kamon-caffeine/src/main/scala/kamon/instrumentation/caffeine/KamonStatsCounter.scala rename to instrumentation/caffeine/src/main/scala/kamon/instrumentation/caffeine/KamonStatsCounter.scala diff --git a/instrumentation/kamon-caffeine/src/test/scala/kamon/instrumentation/caffeine/CaffeineAsyncCacheSpec.scala b/instrumentation/caffeine/src/test/scala/kamon/instrumentation/caffeine/CaffeineAsyncCacheSpec.scala similarity index 100% rename from instrumentation/kamon-caffeine/src/test/scala/kamon/instrumentation/caffeine/CaffeineAsyncCacheSpec.scala rename to instrumentation/caffeine/src/test/scala/kamon/instrumentation/caffeine/CaffeineAsyncCacheSpec.scala diff --git a/instrumentation/kamon-caffeine/src/test/scala/kamon/instrumentation/caffeine/CaffeineSyncCacheSpec.scala b/instrumentation/caffeine/src/test/scala/kamon/instrumentation/caffeine/CaffeineSyncCacheSpec.scala similarity index 100% rename from instrumentation/kamon-caffeine/src/test/scala/kamon/instrumentation/caffeine/CaffeineSyncCacheSpec.scala rename to instrumentation/caffeine/src/test/scala/kamon/instrumentation/caffeine/CaffeineSyncCacheSpec.scala diff --git a/instrumentation/kamon-cats-io/src/main/resources/reference.conf b/instrumentation/catsIo/src/main/resources/reference.conf similarity index 100% rename from instrumentation/kamon-cats-io/src/main/resources/reference.conf rename to instrumentation/catsIo/src/main/resources/reference.conf diff --git a/instrumentation/kamon-cats-io/src/test/scala/kamon/instrumentation/futures/cats/CatsIOInstrumentationSpec.scala b/instrumentation/catsIo/src/test/scala/kamon/instrumentation/futures/cats/CatsIOInstrumentationSpec.scala similarity index 100% rename from instrumentation/kamon-cats-io/src/test/scala/kamon/instrumentation/futures/cats/CatsIOInstrumentationSpec.scala rename to instrumentation/catsIo/src/test/scala/kamon/instrumentation/futures/cats/CatsIOInstrumentationSpec.scala diff --git a/instrumentation/kamon-cats-io-3/src/main/java/kamon/instrumentation/cats3/CleanSchedulerContextAdvice.java b/instrumentation/catsIo3/src/main/java/kamon/instrumentation/cats3/CleanSchedulerContextAdvice.java similarity index 100% rename from instrumentation/kamon-cats-io-3/src/main/java/kamon/instrumentation/cats3/CleanSchedulerContextAdvice.java rename to instrumentation/catsIo3/src/main/java/kamon/instrumentation/cats3/CleanSchedulerContextAdvice.java diff --git a/instrumentation/kamon-cats-io-3/src/main/resources/reference.conf b/instrumentation/catsIo3/src/main/resources/reference.conf similarity index 100% rename from instrumentation/kamon-cats-io-3/src/main/resources/reference.conf rename to instrumentation/catsIo3/src/main/resources/reference.conf diff --git a/instrumentation/kamon-cats-io-3/src/main/scala/kamon/instrumentation/cats3/IOFiberInstrumentation.scala b/instrumentation/catsIo3/src/main/scala/kamon/instrumentation/cats3/IOFiberInstrumentation.scala similarity index 100% rename from instrumentation/kamon-cats-io-3/src/main/scala/kamon/instrumentation/cats3/IOFiberInstrumentation.scala rename to instrumentation/catsIo3/src/main/scala/kamon/instrumentation/cats3/IOFiberInstrumentation.scala diff --git a/instrumentation/kamon-cats-io-3/src/test/scala/kamon/instrumentation/futures/cats3/CatsIoInstrumentationSpec.scala b/instrumentation/catsIo3/src/test/scala/kamon/instrumentation/futures/cats3/CatsIoInstrumentationSpec.scala similarity index 100% rename from instrumentation/kamon-cats-io-3/src/test/scala/kamon/instrumentation/futures/cats3/CatsIoInstrumentationSpec.scala rename to instrumentation/catsIo3/src/test/scala/kamon/instrumentation/futures/cats3/CatsIoInstrumentationSpec.scala diff --git a/instrumentation/kamon-instrumentation-common/src/main/resources/reference.conf b/instrumentation/common/src/main/resources/reference.conf similarity index 100% rename from instrumentation/kamon-instrumentation-common/src/main/resources/reference.conf rename to instrumentation/common/src/main/resources/reference.conf diff --git a/instrumentation/kamon-instrumentation-common/src/main/scala-2.13/scala/annotation/static.scala b/instrumentation/common/src/main/scala-2.13/scala/annotation/static.scala similarity index 100% rename from instrumentation/kamon-instrumentation-common/src/main/scala-2.13/scala/annotation/static.scala rename to instrumentation/common/src/main/scala-2.13/scala/annotation/static.scala diff --git a/instrumentation/kamon-instrumentation-common/src/main/scala/kamon/instrumentation/context/CaptureCurrentContext.scala b/instrumentation/common/src/main/scala/kamon/instrumentation/context/CaptureCurrentContext.scala similarity index 100% rename from instrumentation/kamon-instrumentation-common/src/main/scala/kamon/instrumentation/context/CaptureCurrentContext.scala rename to instrumentation/common/src/main/scala/kamon/instrumentation/context/CaptureCurrentContext.scala diff --git a/instrumentation/kamon-instrumentation-common/src/main/scala/kamon/instrumentation/context/CaptureCurrentTimestamp.scala b/instrumentation/common/src/main/scala/kamon/instrumentation/context/CaptureCurrentTimestamp.scala similarity index 100% rename from instrumentation/kamon-instrumentation-common/src/main/scala/kamon/instrumentation/context/CaptureCurrentTimestamp.scala rename to instrumentation/common/src/main/scala/kamon/instrumentation/context/CaptureCurrentTimestamp.scala diff --git a/instrumentation/kamon-instrumentation-common/src/main/scala/kamon/instrumentation/context/HasContext.scala b/instrumentation/common/src/main/scala/kamon/instrumentation/context/HasContext.scala similarity index 100% rename from instrumentation/kamon-instrumentation-common/src/main/scala/kamon/instrumentation/context/HasContext.scala rename to instrumentation/common/src/main/scala/kamon/instrumentation/context/HasContext.scala diff --git a/instrumentation/kamon-instrumentation-common/src/main/scala/kamon/instrumentation/context/HasTimestamp.scala b/instrumentation/common/src/main/scala/kamon/instrumentation/context/HasTimestamp.scala similarity index 100% rename from instrumentation/kamon-instrumentation-common/src/main/scala/kamon/instrumentation/context/HasTimestamp.scala rename to instrumentation/common/src/main/scala/kamon/instrumentation/context/HasTimestamp.scala diff --git a/instrumentation/kamon-instrumentation-common/src/main/scala/kamon/instrumentation/context/InvokeWithCapturedContext.scala b/instrumentation/common/src/main/scala/kamon/instrumentation/context/InvokeWithCapturedContext.scala similarity index 100% rename from instrumentation/kamon-instrumentation-common/src/main/scala/kamon/instrumentation/context/InvokeWithCapturedContext.scala rename to instrumentation/common/src/main/scala/kamon/instrumentation/context/InvokeWithCapturedContext.scala diff --git a/instrumentation/kamon-instrumentation-common/src/main/scala/kamon/instrumentation/http/HttpClientInstrumentation.scala b/instrumentation/common/src/main/scala/kamon/instrumentation/http/HttpClientInstrumentation.scala similarity index 100% rename from instrumentation/kamon-instrumentation-common/src/main/scala/kamon/instrumentation/http/HttpClientInstrumentation.scala rename to instrumentation/common/src/main/scala/kamon/instrumentation/http/HttpClientInstrumentation.scala diff --git a/instrumentation/kamon-instrumentation-common/src/main/scala/kamon/instrumentation/http/HttpMessage.scala b/instrumentation/common/src/main/scala/kamon/instrumentation/http/HttpMessage.scala similarity index 100% rename from instrumentation/kamon-instrumentation-common/src/main/scala/kamon/instrumentation/http/HttpMessage.scala rename to instrumentation/common/src/main/scala/kamon/instrumentation/http/HttpMessage.scala diff --git a/instrumentation/kamon-instrumentation-common/src/main/scala/kamon/instrumentation/http/HttpOperationNameGenerator.scala b/instrumentation/common/src/main/scala/kamon/instrumentation/http/HttpOperationNameGenerator.scala similarity index 100% rename from instrumentation/kamon-instrumentation-common/src/main/scala/kamon/instrumentation/http/HttpOperationNameGenerator.scala rename to instrumentation/common/src/main/scala/kamon/instrumentation/http/HttpOperationNameGenerator.scala diff --git a/instrumentation/kamon-instrumentation-common/src/main/scala/kamon/instrumentation/http/HttpServerInstrumentation.scala b/instrumentation/common/src/main/scala/kamon/instrumentation/http/HttpServerInstrumentation.scala similarity index 100% rename from instrumentation/kamon-instrumentation-common/src/main/scala/kamon/instrumentation/http/HttpServerInstrumentation.scala rename to instrumentation/common/src/main/scala/kamon/instrumentation/http/HttpServerInstrumentation.scala diff --git a/instrumentation/kamon-instrumentation-common/src/main/scala/kamon/instrumentation/http/HttpServerMetrics.scala b/instrumentation/common/src/main/scala/kamon/instrumentation/http/HttpServerMetrics.scala similarity index 100% rename from instrumentation/kamon-instrumentation-common/src/main/scala/kamon/instrumentation/http/HttpServerMetrics.scala rename to instrumentation/common/src/main/scala/kamon/instrumentation/http/HttpServerMetrics.scala diff --git a/instrumentation/kamon-instrumentation-common/src/main/scala/kamon/instrumentation/http/HttpServerResponseHeaderGenerator.scala b/instrumentation/common/src/main/scala/kamon/instrumentation/http/HttpServerResponseHeaderGenerator.scala similarity index 100% rename from instrumentation/kamon-instrumentation-common/src/main/scala/kamon/instrumentation/http/HttpServerResponseHeaderGenerator.scala rename to instrumentation/common/src/main/scala/kamon/instrumentation/http/HttpServerResponseHeaderGenerator.scala diff --git a/instrumentation/kamon-instrumentation-common/src/main/scala/kamon/instrumentation/http/OperationNameSettings.scala b/instrumentation/common/src/main/scala/kamon/instrumentation/http/OperationNameSettings.scala similarity index 100% rename from instrumentation/kamon-instrumentation-common/src/main/scala/kamon/instrumentation/http/OperationNameSettings.scala rename to instrumentation/common/src/main/scala/kamon/instrumentation/http/OperationNameSettings.scala diff --git a/instrumentation/kamon-instrumentation-common/src/main/scala/kamon/instrumentation/package.scala b/instrumentation/common/src/main/scala/kamon/instrumentation/package.scala similarity index 100% rename from instrumentation/kamon-instrumentation-common/src/main/scala/kamon/instrumentation/package.scala rename to instrumentation/common/src/main/scala/kamon/instrumentation/package.scala diff --git a/instrumentation/kamon-instrumentation-common/src/main/scala/kamon/instrumentation/tag/TagKeys.scala b/instrumentation/common/src/main/scala/kamon/instrumentation/tag/TagKeys.scala similarity index 100% rename from instrumentation/kamon-instrumentation-common/src/main/scala/kamon/instrumentation/tag/TagKeys.scala rename to instrumentation/common/src/main/scala/kamon/instrumentation/tag/TagKeys.scala diff --git a/instrumentation/kamon-instrumentation-common/src/main/scala/kamon/instrumentation/trace/Tagger.scala b/instrumentation/common/src/main/scala/kamon/instrumentation/trace/Tagger.scala similarity index 100% rename from instrumentation/kamon-instrumentation-common/src/main/scala/kamon/instrumentation/trace/Tagger.scala rename to instrumentation/common/src/main/scala/kamon/instrumentation/trace/Tagger.scala diff --git a/instrumentation/kamon-instrumentation-common/src/test/resources/application.conf b/instrumentation/common/src/test/resources/application.conf similarity index 100% rename from instrumentation/kamon-instrumentation-common/src/test/resources/application.conf rename to instrumentation/common/src/test/resources/application.conf diff --git a/instrumentation/kamon-instrumentation-common/src/test/scala/kamon/instrumentation/context/ContextInstrumentationSpec.scala b/instrumentation/common/src/test/scala/kamon/instrumentation/context/ContextInstrumentationSpec.scala similarity index 100% rename from instrumentation/kamon-instrumentation-common/src/test/scala/kamon/instrumentation/context/ContextInstrumentationSpec.scala rename to instrumentation/common/src/test/scala/kamon/instrumentation/context/ContextInstrumentationSpec.scala diff --git a/instrumentation/kamon-instrumentation-common/src/test/scala/kamon/instrumentation/http/HttpClientInstrumentationSpec.scala b/instrumentation/common/src/test/scala/kamon/instrumentation/http/HttpClientInstrumentationSpec.scala similarity index 100% rename from instrumentation/kamon-instrumentation-common/src/test/scala/kamon/instrumentation/http/HttpClientInstrumentationSpec.scala rename to instrumentation/common/src/test/scala/kamon/instrumentation/http/HttpClientInstrumentationSpec.scala diff --git a/instrumentation/kamon-instrumentation-common/src/test/scala/kamon/instrumentation/http/HttpServerInstrumentationSpec.scala b/instrumentation/common/src/test/scala/kamon/instrumentation/http/HttpServerInstrumentationSpec.scala similarity index 100% rename from instrumentation/kamon-instrumentation-common/src/test/scala/kamon/instrumentation/http/HttpServerInstrumentationSpec.scala rename to instrumentation/common/src/test/scala/kamon/instrumentation/http/HttpServerInstrumentationSpec.scala diff --git a/instrumentation/kamon-elasticsearch/src/main/java/kamon/instrumentation/elasticsearch/AsyncElasticsearchRestClientInstrumentation.java b/instrumentation/elasticsearch/src/main/java/kamon/instrumentation/elasticsearch/AsyncElasticsearchRestClientInstrumentation.java similarity index 100% rename from instrumentation/kamon-elasticsearch/src/main/java/kamon/instrumentation/elasticsearch/AsyncElasticsearchRestClientInstrumentation.java rename to instrumentation/elasticsearch/src/main/java/kamon/instrumentation/elasticsearch/AsyncElasticsearchRestClientInstrumentation.java diff --git a/instrumentation/kamon-elasticsearch/src/main/java/kamon/instrumentation/elasticsearch/HighLevelElasticsearchClientInstrumentation.java b/instrumentation/elasticsearch/src/main/java/kamon/instrumentation/elasticsearch/HighLevelElasticsearchClientInstrumentation.java similarity index 100% rename from instrumentation/kamon-elasticsearch/src/main/java/kamon/instrumentation/elasticsearch/HighLevelElasticsearchClientInstrumentation.java rename to instrumentation/elasticsearch/src/main/java/kamon/instrumentation/elasticsearch/HighLevelElasticsearchClientInstrumentation.java diff --git a/instrumentation/kamon-elasticsearch/src/main/java/kamon/instrumentation/elasticsearch/SyncElasticsearchRestClientInstrumentation.java b/instrumentation/elasticsearch/src/main/java/kamon/instrumentation/elasticsearch/SyncElasticsearchRestClientInstrumentation.java similarity index 100% rename from instrumentation/kamon-elasticsearch/src/main/java/kamon/instrumentation/elasticsearch/SyncElasticsearchRestClientInstrumentation.java rename to instrumentation/elasticsearch/src/main/java/kamon/instrumentation/elasticsearch/SyncElasticsearchRestClientInstrumentation.java diff --git a/instrumentation/kamon-elasticsearch/src/main/resources/reference.conf b/instrumentation/elasticsearch/src/main/resources/reference.conf similarity index 100% rename from instrumentation/kamon-elasticsearch/src/main/resources/reference.conf rename to instrumentation/elasticsearch/src/main/resources/reference.conf diff --git a/instrumentation/kamon-elasticsearch/src/main/scala/kamon/instrumentation/elasticsearch/ESInstrumentation.scala b/instrumentation/elasticsearch/src/main/scala/kamon/instrumentation/elasticsearch/ESInstrumentation.scala similarity index 100% rename from instrumentation/kamon-elasticsearch/src/main/scala/kamon/instrumentation/elasticsearch/ESInstrumentation.scala rename to instrumentation/elasticsearch/src/main/scala/kamon/instrumentation/elasticsearch/ESInstrumentation.scala diff --git a/instrumentation/kamon-elasticsearch/src/main/scala/kamon/instrumentation/elasticsearch/RequestNameConverter.scala b/instrumentation/elasticsearch/src/main/scala/kamon/instrumentation/elasticsearch/RequestNameConverter.scala similarity index 100% rename from instrumentation/kamon-elasticsearch/src/main/scala/kamon/instrumentation/elasticsearch/RequestNameConverter.scala rename to instrumentation/elasticsearch/src/main/scala/kamon/instrumentation/elasticsearch/RequestNameConverter.scala diff --git a/instrumentation/kamon-elasticsearch/src/test/resources/application.conf b/instrumentation/elasticsearch/src/test/resources/application.conf similarity index 100% rename from instrumentation/kamon-elasticsearch/src/test/resources/application.conf rename to instrumentation/elasticsearch/src/test/resources/application.conf diff --git a/instrumentation/kamon-elasticsearch/src/test/resources/logback.xml b/instrumentation/elasticsearch/src/test/resources/logback.xml similarity index 100% rename from instrumentation/kamon-elasticsearch/src/test/resources/logback.xml rename to instrumentation/elasticsearch/src/test/resources/logback.xml diff --git a/instrumentation/kamon-elasticsearch/src/test/scala/kamon/instrumentation/ElasticSearchInstrumentationTest.scala b/instrumentation/elasticsearch/src/test/scala/kamon/instrumentation/ElasticSearchInstrumentationTest.scala similarity index 89% rename from instrumentation/kamon-elasticsearch/src/test/scala/kamon/instrumentation/ElasticSearchInstrumentationTest.scala rename to instrumentation/elasticsearch/src/test/scala/kamon/instrumentation/ElasticSearchInstrumentationTest.scala index 233132967..969e1cd69 100644 --- a/instrumentation/kamon-elasticsearch/src/test/scala/kamon/instrumentation/ElasticSearchInstrumentationTest.scala +++ b/instrumentation/elasticsearch/src/test/scala/kamon/instrumentation/ElasticSearchInstrumentationTest.scala @@ -1,6 +1,5 @@ package kamon.instrumentation -import com.dimafeng.testcontainers.{ElasticsearchContainer, ForAllTestContainer} import kamon.tag.Lookups.plain import kamon.testkit.{InitAndStopKamonAfterAll, Reconfigure, TestSpanReporter} import org.apache.http.HttpHost @@ -11,7 +10,8 @@ import org.scalatest.concurrent.Eventually import org.scalatest.matchers.should.Matchers import org.scalatest.time.SpanSugar import org.scalatest.wordspec.AnyWordSpec -import org.scalatest.OptionValues +import org.scalatest.{BeforeAndAfterAll, OptionValues} +import org.testcontainers.elasticsearch.ElasticsearchContainer class ElasticSearchInstrumentationTest extends AnyWordSpec @@ -22,7 +22,7 @@ class ElasticSearchInstrumentationTest with OptionValues with TestSpanReporter with InitAndStopKamonAfterAll - with ForAllTestContainer { + with BeforeAndAfterAll { val endpointTag = "elasticsearch.http.endpoint" val methodTag = "elasticsearch.http.method" @@ -85,7 +85,7 @@ class ElasticSearchInstrumentationTest } } - override val container: ElasticsearchContainer = ElasticsearchContainer() + val container = new ElasticsearchContainer("docker.elastic.co/elasticsearch/elasticsearch:7.9.1") var client: RestClient = _ var highLevelClient: RestHighLevelClient = _ @@ -94,11 +94,11 @@ class ElasticSearchInstrumentationTest container.start() client = RestClient - .builder(HttpHost.create(container.httpHostAddress)) + .builder(HttpHost.create(container.getHttpHostAddress)) .build() highLevelClient = new RestHighLevelClient( - RestClient.builder(HttpHost.create(container.httpHostAddress)) + RestClient.builder(HttpHost.create(container.getHttpHostAddress)) ) } diff --git a/instrumentation/kamon-executors/build.sbt b/instrumentation/executors/build.sbt similarity index 100% rename from instrumentation/kamon-executors/build.sbt rename to instrumentation/executors/build.sbt diff --git a/instrumentation/kamon-executors/src/main/java/kamon/instrumentation/executor/CaptureContextOnSubmitAdvices.java b/instrumentation/executors/src/main/java/kamon/instrumentation/executor/CaptureContextOnSubmitAdvices.java similarity index 100% rename from instrumentation/kamon-executors/src/main/java/kamon/instrumentation/executor/CaptureContextOnSubmitAdvices.java rename to instrumentation/executors/src/main/java/kamon/instrumentation/executor/CaptureContextOnSubmitAdvices.java diff --git a/instrumentation/kamon-executors/src/main/java/kamon/instrumentation/executor/CaptureContextOnSubmitInstrumentation.java b/instrumentation/executors/src/main/java/kamon/instrumentation/executor/CaptureContextOnSubmitInstrumentation.java similarity index 100% rename from instrumentation/kamon-executors/src/main/java/kamon/instrumentation/executor/CaptureContextOnSubmitInstrumentation.java rename to instrumentation/executors/src/main/java/kamon/instrumentation/executor/CaptureContextOnSubmitInstrumentation.java diff --git a/instrumentation/kamon-executors/src/main/java/kamon/instrumentation/executor/ContextAware.java b/instrumentation/executors/src/main/java/kamon/instrumentation/executor/ContextAware.java similarity index 100% rename from instrumentation/kamon-executors/src/main/java/kamon/instrumentation/executor/ContextAware.java rename to instrumentation/executors/src/main/java/kamon/instrumentation/executor/ContextAware.java diff --git a/instrumentation/kamon-executors/src/main/resources/reference.conf b/instrumentation/executors/src/main/resources/reference.conf similarity index 100% rename from instrumentation/kamon-executors/src/main/resources/reference.conf rename to instrumentation/executors/src/main/resources/reference.conf diff --git a/instrumentation/kamon-executors/src/main/scala-2.13/kamon/instrumentation/executor/ScalaGlobalExecutionContextAdvice.java b/instrumentation/executors/src/main/scala-2.13/kamon/instrumentation/executor/ScalaGlobalExecutionContextAdvice.java similarity index 100% rename from instrumentation/kamon-executors/src/main/scala-2.13/kamon/instrumentation/executor/ScalaGlobalExecutionContextAdvice.java rename to instrumentation/executors/src/main/scala-2.13/kamon/instrumentation/executor/ScalaGlobalExecutionContextAdvice.java diff --git a/instrumentation/kamon-executors/src/main/scala-2.13/kamon/instrumentation/package.scala b/instrumentation/executors/src/main/scala-2.13/kamon/instrumentation/package.scala similarity index 100% rename from instrumentation/kamon-executors/src/main/scala-2.13/kamon/instrumentation/package.scala rename to instrumentation/executors/src/main/scala-2.13/kamon/instrumentation/package.scala diff --git a/instrumentation/kamon-executors/src/main/scala-3/kamon/instrumentation/executor/ScalaGlobalExecutionContextAdvice.java b/instrumentation/executors/src/main/scala-3/kamon/instrumentation/executor/ScalaGlobalExecutionContextAdvice.java similarity index 100% rename from instrumentation/kamon-executors/src/main/scala-3/kamon/instrumentation/executor/ScalaGlobalExecutionContextAdvice.java rename to instrumentation/executors/src/main/scala-3/kamon/instrumentation/executor/ScalaGlobalExecutionContextAdvice.java diff --git a/instrumentation/kamon-executors/src/main/scala-3/kamon/instrumentation/package.scala b/instrumentation/executors/src/main/scala-3/kamon/instrumentation/package.scala similarity index 100% rename from instrumentation/kamon-executors/src/main/scala-3/kamon/instrumentation/package.scala rename to instrumentation/executors/src/main/scala-3/kamon/instrumentation/package.scala diff --git a/instrumentation/kamon-executors/src/main/scala/kamon/instrumentation/executor/ExecutorInstrumentation.scala b/instrumentation/executors/src/main/scala/kamon/instrumentation/executor/ExecutorInstrumentation.scala similarity index 100% rename from instrumentation/kamon-executors/src/main/scala/kamon/instrumentation/executor/ExecutorInstrumentation.scala rename to instrumentation/executors/src/main/scala/kamon/instrumentation/executor/ExecutorInstrumentation.scala diff --git a/instrumentation/kamon-executors/src/main/scala/kamon/instrumentation/executor/ExecutorMetrics.scala b/instrumentation/executors/src/main/scala/kamon/instrumentation/executor/ExecutorMetrics.scala similarity index 100% rename from instrumentation/kamon-executors/src/main/scala/kamon/instrumentation/executor/ExecutorMetrics.scala rename to instrumentation/executors/src/main/scala/kamon/instrumentation/executor/ExecutorMetrics.scala diff --git a/instrumentation/kamon-executors/src/main/scala/kamon/instrumentation/executor/ExecutorTaskInstrumentation.scala b/instrumentation/executors/src/main/scala/kamon/instrumentation/executor/ExecutorTaskInstrumentation.scala similarity index 100% rename from instrumentation/kamon-executors/src/main/scala/kamon/instrumentation/executor/ExecutorTaskInstrumentation.scala rename to instrumentation/executors/src/main/scala/kamon/instrumentation/executor/ExecutorTaskInstrumentation.scala diff --git a/instrumentation/kamon-executors/src/main/scala/kamon/instrumentation/executor/ScalaGlobalExecutionContextInstrumentation.scala b/instrumentation/executors/src/main/scala/kamon/instrumentation/executor/ScalaGlobalExecutionContextInstrumentation.scala similarity index 100% rename from instrumentation/kamon-executors/src/main/scala/kamon/instrumentation/executor/ScalaGlobalExecutionContextInstrumentation.scala rename to instrumentation/executors/src/main/scala/kamon/instrumentation/executor/ScalaGlobalExecutionContextInstrumentation.scala diff --git a/instrumentation/kamon-executors/src/test/resources/application.conf b/instrumentation/executors/src/test/resources/application.conf similarity index 100% rename from instrumentation/kamon-executors/src/test/resources/application.conf rename to instrumentation/executors/src/test/resources/application.conf diff --git a/instrumentation/kamon-executors/src/test/scala/kamon/instrumentation/executor/CaptureContextOnSubmitInstrumentationSpec.scala b/instrumentation/executors/src/test/scala/kamon/instrumentation/executor/CaptureContextOnSubmitInstrumentationSpec.scala similarity index 100% rename from instrumentation/kamon-executors/src/test/scala/kamon/instrumentation/executor/CaptureContextOnSubmitInstrumentationSpec.scala rename to instrumentation/executors/src/test/scala/kamon/instrumentation/executor/CaptureContextOnSubmitInstrumentationSpec.scala diff --git a/instrumentation/kamon-executors/src/test/scala/kamon/instrumentation/executor/ContextTesting.scala b/instrumentation/executors/src/test/scala/kamon/instrumentation/executor/ContextTesting.scala similarity index 100% rename from instrumentation/kamon-executors/src/test/scala/kamon/instrumentation/executor/ContextTesting.scala rename to instrumentation/executors/src/test/scala/kamon/instrumentation/executor/ContextTesting.scala diff --git a/instrumentation/kamon-executors/src/test/scala/kamon/instrumentation/executor/ExecutorMetricsSpec.scala b/instrumentation/executors/src/test/scala/kamon/instrumentation/executor/ExecutorMetricsSpec.scala similarity index 100% rename from instrumentation/kamon-executors/src/test/scala/kamon/instrumentation/executor/ExecutorMetricsSpec.scala rename to instrumentation/executors/src/test/scala/kamon/instrumentation/executor/ExecutorMetricsSpec.scala diff --git a/instrumentation/kamon-executors/src/test/scala/kamon/instrumentation/executor/ExecutorsRegistrationSpec.scala b/instrumentation/executors/src/test/scala/kamon/instrumentation/executor/ExecutorsRegistrationSpec.scala similarity index 100% rename from instrumentation/kamon-executors/src/test/scala/kamon/instrumentation/executor/ExecutorsRegistrationSpec.scala rename to instrumentation/executors/src/test/scala/kamon/instrumentation/executor/ExecutorsRegistrationSpec.scala diff --git a/instrumentation/kamon-executors/src/test/scala/kamon/instrumentation/executor/OnSubmitContextPropagationSpec.scala b/instrumentation/executors/src/test/scala/kamon/instrumentation/executor/OnSubmitContextPropagationSpec.scala similarity index 100% rename from instrumentation/kamon-executors/src/test/scala/kamon/instrumentation/executor/OnSubmitContextPropagationSpec.scala rename to instrumentation/executors/src/test/scala/kamon/instrumentation/executor/OnSubmitContextPropagationSpec.scala diff --git a/instrumentation/kamon-executors/src/test/scala/kamon/instrumentation/executor/TestContextAware.scala b/instrumentation/executors/src/test/scala/kamon/instrumentation/executor/TestContextAware.scala similarity index 100% rename from instrumentation/kamon-executors/src/test/scala/kamon/instrumentation/executor/TestContextAware.scala rename to instrumentation/executors/src/test/scala/kamon/instrumentation/executor/TestContextAware.scala diff --git a/instrumentation/kamon-finagle/src/main/resources/reference.conf b/instrumentation/finagle/src/main/resources/reference.conf similarity index 100% rename from instrumentation/kamon-finagle/src/main/resources/reference.conf rename to instrumentation/finagle/src/main/resources/reference.conf diff --git a/instrumentation/kamon-finagle/src/main/scala/com/twitter/finagle/http/filter/Export.scala b/instrumentation/finagle/src/main/scala/com/twitter/finagle/http/filter/Export.scala similarity index 100% rename from instrumentation/kamon-finagle/src/main/scala/com/twitter/finagle/http/filter/Export.scala rename to instrumentation/finagle/src/main/scala/com/twitter/finagle/http/filter/Export.scala diff --git a/instrumentation/kamon-finagle/src/main/scala/kamon/instrumentation/finagle/client/BroadcastRequestHandler.scala b/instrumentation/finagle/src/main/scala/kamon/instrumentation/finagle/client/BroadcastRequestHandler.scala similarity index 100% rename from instrumentation/kamon-finagle/src/main/scala/kamon/instrumentation/finagle/client/BroadcastRequestHandler.scala rename to instrumentation/finagle/src/main/scala/kamon/instrumentation/finagle/client/BroadcastRequestHandler.scala diff --git a/instrumentation/kamon-finagle/src/main/scala/kamon/instrumentation/finagle/client/ClientStatusTraceFilter.scala b/instrumentation/finagle/src/main/scala/kamon/instrumentation/finagle/client/ClientStatusTraceFilter.scala similarity index 100% rename from instrumentation/kamon-finagle/src/main/scala/kamon/instrumentation/finagle/client/ClientStatusTraceFilter.scala rename to instrumentation/finagle/src/main/scala/kamon/instrumentation/finagle/client/ClientStatusTraceFilter.scala diff --git a/instrumentation/kamon-finagle/src/main/scala/kamon/instrumentation/finagle/client/FinagleHttpInstrumentation.scala b/instrumentation/finagle/src/main/scala/kamon/instrumentation/finagle/client/FinagleHttpInstrumentation.scala similarity index 100% rename from instrumentation/kamon-finagle/src/main/scala/kamon/instrumentation/finagle/client/FinagleHttpInstrumentation.scala rename to instrumentation/finagle/src/main/scala/kamon/instrumentation/finagle/client/FinagleHttpInstrumentation.scala diff --git a/instrumentation/kamon-finagle/src/main/scala/kamon/instrumentation/finagle/client/IdConversionOps.scala b/instrumentation/finagle/src/main/scala/kamon/instrumentation/finagle/client/IdConversionOps.scala similarity index 100% rename from instrumentation/kamon-finagle/src/main/scala/kamon/instrumentation/finagle/client/IdConversionOps.scala rename to instrumentation/finagle/src/main/scala/kamon/instrumentation/finagle/client/IdConversionOps.scala diff --git a/instrumentation/kamon-finagle/src/main/scala/kamon/instrumentation/finagle/client/KamonFinagleTracer.scala b/instrumentation/finagle/src/main/scala/kamon/instrumentation/finagle/client/KamonFinagleTracer.scala similarity index 100% rename from instrumentation/kamon-finagle/src/main/scala/kamon/instrumentation/finagle/client/KamonFinagleTracer.scala rename to instrumentation/finagle/src/main/scala/kamon/instrumentation/finagle/client/KamonFinagleTracer.scala diff --git a/instrumentation/kamon-finagle/src/main/scala/kamon/instrumentation/finagle/client/SpanInitializer.scala b/instrumentation/finagle/src/main/scala/kamon/instrumentation/finagle/client/SpanInitializer.scala similarity index 100% rename from instrumentation/kamon-finagle/src/main/scala/kamon/instrumentation/finagle/client/SpanInitializer.scala rename to instrumentation/finagle/src/main/scala/kamon/instrumentation/finagle/client/SpanInitializer.scala diff --git a/instrumentation/kamon-finagle/src/main/scala/kamon/instrumentation/finagle/client/Tags.scala b/instrumentation/finagle/src/main/scala/kamon/instrumentation/finagle/client/Tags.scala similarity index 100% rename from instrumentation/kamon-finagle/src/main/scala/kamon/instrumentation/finagle/client/Tags.scala rename to instrumentation/finagle/src/main/scala/kamon/instrumentation/finagle/client/Tags.scala diff --git a/instrumentation/kamon-finagle/src/main/scala/kamon/instrumentation/finagle/client/package.scala b/instrumentation/finagle/src/main/scala/kamon/instrumentation/finagle/client/package.scala similarity index 100% rename from instrumentation/kamon-finagle/src/main/scala/kamon/instrumentation/finagle/client/package.scala rename to instrumentation/finagle/src/main/scala/kamon/instrumentation/finagle/client/package.scala diff --git a/instrumentation/kamon-finagle/src/test/scala/kamon/instrumentation/finagle/client/HttpClientOpsSpec.scala b/instrumentation/finagle/src/test/scala/kamon/instrumentation/finagle/client/HttpClientOpsSpec.scala similarity index 100% rename from instrumentation/kamon-finagle/src/test/scala/kamon/instrumentation/finagle/client/HttpClientOpsSpec.scala rename to instrumentation/finagle/src/test/scala/kamon/instrumentation/finagle/client/HttpClientOpsSpec.scala diff --git a/instrumentation/kamon-finagle/src/test/scala/kamon/instrumentation/finagle/client/IdConversionOpsSpec.scala b/instrumentation/finagle/src/test/scala/kamon/instrumentation/finagle/client/IdConversionOpsSpec.scala similarity index 100% rename from instrumentation/kamon-finagle/src/test/scala/kamon/instrumentation/finagle/client/IdConversionOpsSpec.scala rename to instrumentation/finagle/src/test/scala/kamon/instrumentation/finagle/client/IdConversionOpsSpec.scala diff --git a/instrumentation/kamon-jdbc/src/main/resources/reference.conf b/instrumentation/jdbc/src/main/resources/reference.conf similarity index 100% rename from instrumentation/kamon-jdbc/src/main/resources/reference.conf rename to instrumentation/jdbc/src/main/resources/reference.conf diff --git a/instrumentation/kamon-jdbc/src/main/scala/kamon/instrumentation/jdbc/HikariInstrumentation.scala b/instrumentation/jdbc/src/main/scala/kamon/instrumentation/jdbc/HikariInstrumentation.scala similarity index 100% rename from instrumentation/kamon-jdbc/src/main/scala/kamon/instrumentation/jdbc/HikariInstrumentation.scala rename to instrumentation/jdbc/src/main/scala/kamon/instrumentation/jdbc/HikariInstrumentation.scala diff --git a/instrumentation/kamon-jdbc/src/main/scala/kamon/instrumentation/jdbc/JdbcInstrumentation.scala b/instrumentation/jdbc/src/main/scala/kamon/instrumentation/jdbc/JdbcInstrumentation.scala similarity index 100% rename from instrumentation/kamon-jdbc/src/main/scala/kamon/instrumentation/jdbc/JdbcInstrumentation.scala rename to instrumentation/jdbc/src/main/scala/kamon/instrumentation/jdbc/JdbcInstrumentation.scala diff --git a/instrumentation/kamon-jdbc/src/main/scala/kamon/instrumentation/jdbc/JdbcMetrics.scala b/instrumentation/jdbc/src/main/scala/kamon/instrumentation/jdbc/JdbcMetrics.scala similarity index 100% rename from instrumentation/kamon-jdbc/src/main/scala/kamon/instrumentation/jdbc/JdbcMetrics.scala rename to instrumentation/jdbc/src/main/scala/kamon/instrumentation/jdbc/JdbcMetrics.scala diff --git a/instrumentation/kamon-jdbc/src/main/scala/kamon/instrumentation/jdbc/StatementInstrumentation.scala b/instrumentation/jdbc/src/main/scala/kamon/instrumentation/jdbc/StatementInstrumentation.scala similarity index 100% rename from instrumentation/kamon-jdbc/src/main/scala/kamon/instrumentation/jdbc/StatementInstrumentation.scala rename to instrumentation/jdbc/src/main/scala/kamon/instrumentation/jdbc/StatementInstrumentation.scala diff --git a/instrumentation/kamon-jdbc/src/main/scala/kamon/instrumentation/jdbc/StatementMonitor.scala b/instrumentation/jdbc/src/main/scala/kamon/instrumentation/jdbc/StatementMonitor.scala similarity index 100% rename from instrumentation/kamon-jdbc/src/main/scala/kamon/instrumentation/jdbc/StatementMonitor.scala rename to instrumentation/jdbc/src/main/scala/kamon/instrumentation/jdbc/StatementMonitor.scala diff --git a/instrumentation/kamon-jdbc/src/main/scala/kamon/instrumentation/jdbc/advisor/StatementInstrumentationAdvisors.scala b/instrumentation/jdbc/src/main/scala/kamon/instrumentation/jdbc/advisor/StatementInstrumentationAdvisors.scala similarity index 100% rename from instrumentation/kamon-jdbc/src/main/scala/kamon/instrumentation/jdbc/advisor/StatementInstrumentationAdvisors.scala rename to instrumentation/jdbc/src/main/scala/kamon/instrumentation/jdbc/advisor/StatementInstrumentationAdvisors.scala diff --git a/instrumentation/kamon-jdbc/src/main/scala/kamon/instrumentation/jdbc/internal/PoolEntryProtectedAccess.scala b/instrumentation/jdbc/src/main/scala/kamon/instrumentation/jdbc/internal/PoolEntryProtectedAccess.scala similarity index 100% rename from instrumentation/kamon-jdbc/src/main/scala/kamon/instrumentation/jdbc/internal/PoolEntryProtectedAccess.scala rename to instrumentation/jdbc/src/main/scala/kamon/instrumentation/jdbc/internal/PoolEntryProtectedAccess.scala diff --git a/instrumentation/kamon-jdbc/src/main/scala/kamon/instrumentation/jdbc/utils/LoggingSupport.scala b/instrumentation/jdbc/src/main/scala/kamon/instrumentation/jdbc/utils/LoggingSupport.scala similarity index 100% rename from instrumentation/kamon-jdbc/src/main/scala/kamon/instrumentation/jdbc/utils/LoggingSupport.scala rename to instrumentation/jdbc/src/main/scala/kamon/instrumentation/jdbc/utils/LoggingSupport.scala diff --git a/instrumentation/kamon-jdbc/src/main/scala/kamon/instrumentation/jdbc/utils/SqlVisitor.scala b/instrumentation/jdbc/src/main/scala/kamon/instrumentation/jdbc/utils/SqlVisitor.scala similarity index 100% rename from instrumentation/kamon-jdbc/src/main/scala/kamon/instrumentation/jdbc/utils/SqlVisitor.scala rename to instrumentation/jdbc/src/main/scala/kamon/instrumentation/jdbc/utils/SqlVisitor.scala diff --git a/instrumentation/kamon-jdbc/src/test/resources/application.conf b/instrumentation/jdbc/src/test/resources/application.conf similarity index 100% rename from instrumentation/kamon-jdbc/src/test/resources/application.conf rename to instrumentation/jdbc/src/test/resources/application.conf diff --git a/instrumentation/kamon-kafka/src/test/resources/logback.xml b/instrumentation/jdbc/src/test/resources/logback.xml similarity index 95% rename from instrumentation/kamon-kafka/src/test/resources/logback.xml rename to instrumentation/jdbc/src/test/resources/logback.xml index c336bbfe4..0f6936605 100644 --- a/instrumentation/kamon-kafka/src/test/resources/logback.xml +++ b/instrumentation/jdbc/src/test/resources/logback.xml @@ -9,4 +9,4 @@ - \ No newline at end of file + diff --git a/instrumentation/kamon-jdbc/src/test/scala/kamon/instrumentation/jdbc/HikariInstrumentationSpec.scala b/instrumentation/jdbc/src/test/scala/kamon/instrumentation/jdbc/HikariInstrumentationSpec.scala similarity index 99% rename from instrumentation/kamon-jdbc/src/test/scala/kamon/instrumentation/jdbc/HikariInstrumentationSpec.scala rename to instrumentation/jdbc/src/test/scala/kamon/instrumentation/jdbc/HikariInstrumentationSpec.scala index 64b248ff5..637e15186 100644 --- a/instrumentation/kamon-jdbc/src/test/scala/kamon/instrumentation/jdbc/HikariInstrumentationSpec.scala +++ b/instrumentation/jdbc/src/test/scala/kamon/instrumentation/jdbc/HikariInstrumentationSpec.scala @@ -28,7 +28,7 @@ import org.scalatest.matchers.should.Matchers import org.scalatest.time.SpanSugar import org.scalatest.wordspec.AnyWordSpec import org.scalatest.{BeforeAndAfterEach, OptionValues} -import org.testcontainers.containers.PostgreSQLContainer +import org.testcontainers.postgresql.PostgreSQLContainer import scala.concurrent.{ExecutionContext, ExecutionContextExecutor} diff --git a/instrumentation/kamon-jdbc/src/test/scala/kamon/instrumentation/jdbc/SlickInstrumentationSpec.scala b/instrumentation/jdbc/src/test/scala/kamon/instrumentation/jdbc/SlickInstrumentationSpec.scala similarity index 100% rename from instrumentation/kamon-jdbc/src/test/scala/kamon/instrumentation/jdbc/SlickInstrumentationSpec.scala rename to instrumentation/jdbc/src/test/scala/kamon/instrumentation/jdbc/SlickInstrumentationSpec.scala diff --git a/instrumentation/kamon-jdbc/src/test/scala/kamon/instrumentation/jdbc/StatementInstrumentationSpec.scala b/instrumentation/jdbc/src/test/scala/kamon/instrumentation/jdbc/StatementInstrumentationSpec.scala similarity index 99% rename from instrumentation/kamon-jdbc/src/test/scala/kamon/instrumentation/jdbc/StatementInstrumentationSpec.scala rename to instrumentation/jdbc/src/test/scala/kamon/instrumentation/jdbc/StatementInstrumentationSpec.scala index 5de42252f..f548491fe 100644 --- a/instrumentation/kamon-jdbc/src/test/scala/kamon/instrumentation/jdbc/StatementInstrumentationSpec.scala +++ b/instrumentation/jdbc/src/test/scala/kamon/instrumentation/jdbc/StatementInstrumentationSpec.scala @@ -27,8 +27,8 @@ import org.scalatest.matchers.should.Matchers import org.scalatest.time.SpanSugar import org.scalatest.wordspec.AnyWordSpec import org.scalatest.{BeforeAndAfterEach, OptionValues} -import org.testcontainers.containers.PostgreSQLContainer -import org.testcontainers.containers.MySQLContainer +import org.testcontainers.postgresql.PostgreSQLContainer +import org.testcontainers.mysql.MySQLContainer import java.sql.{Connection, DriverManager, ResultSet} import java.time.Duration diff --git a/instrumentation/kamon-kafka/src/main/java/kamon/instrumentation/kafka/client/advisor/PollMethodAdvisor.java b/instrumentation/kafka/src/main/java/kamon/instrumentation/kafka/client/advisor/PollMethodAdvisor.java similarity index 100% rename from instrumentation/kamon-kafka/src/main/java/kamon/instrumentation/kafka/client/advisor/PollMethodAdvisor.java rename to instrumentation/kafka/src/main/java/kamon/instrumentation/kafka/client/advisor/PollMethodAdvisor.java diff --git a/instrumentation/kamon-kafka/src/main/java/kamon/instrumentation/kafka/client/advisor/PollMethodAdvisor_3_7_0_and_up_Async.java b/instrumentation/kafka/src/main/java/kamon/instrumentation/kafka/client/advisor/PollMethodAdvisor_3_7_0_and_up_Async.java similarity index 100% rename from instrumentation/kamon-kafka/src/main/java/kamon/instrumentation/kafka/client/advisor/PollMethodAdvisor_3_7_0_and_up_Async.java rename to instrumentation/kafka/src/main/java/kamon/instrumentation/kafka/client/advisor/PollMethodAdvisor_3_7_0_and_up_Async.java diff --git a/instrumentation/kamon-kafka/src/main/java/kamon/instrumentation/kafka/client/advisor/PollMethodAdvisor_3_7_0_and_up_Legacy.java b/instrumentation/kafka/src/main/java/kamon/instrumentation/kafka/client/advisor/PollMethodAdvisor_3_7_0_and_up_Legacy.java similarity index 100% rename from instrumentation/kamon-kafka/src/main/java/kamon/instrumentation/kafka/client/advisor/PollMethodAdvisor_3_7_0_and_up_Legacy.java rename to instrumentation/kafka/src/main/java/kamon/instrumentation/kafka/client/advisor/PollMethodAdvisor_3_7_0_and_up_Legacy.java diff --git a/instrumentation/kamon-kafka/src/main/java/kamon/instrumentation/kafka/client/advisor/SendMethodAdvisor.java b/instrumentation/kafka/src/main/java/kamon/instrumentation/kafka/client/advisor/SendMethodAdvisor.java similarity index 100% rename from instrumentation/kamon-kafka/src/main/java/kamon/instrumentation/kafka/client/advisor/SendMethodAdvisor.java rename to instrumentation/kafka/src/main/java/kamon/instrumentation/kafka/client/advisor/SendMethodAdvisor.java diff --git a/instrumentation/kamon-kafka/src/main/resources/reference.conf b/instrumentation/kafka/src/main/resources/reference.conf similarity index 100% rename from instrumentation/kamon-kafka/src/main/resources/reference.conf rename to instrumentation/kafka/src/main/resources/reference.conf diff --git a/instrumentation/kamon-kafka/src/main/scala/kamon/instrumentation/kafka/client/ConsumerInstrumentation.scala b/instrumentation/kafka/src/main/scala/kamon/instrumentation/kafka/client/ConsumerInstrumentation.scala similarity index 100% rename from instrumentation/kamon-kafka/src/main/scala/kamon/instrumentation/kafka/client/ConsumerInstrumentation.scala rename to instrumentation/kafka/src/main/scala/kamon/instrumentation/kafka/client/ConsumerInstrumentation.scala diff --git a/instrumentation/kamon-kafka/src/main/scala/kamon/instrumentation/kafka/client/ContextSerializationHelper.scala b/instrumentation/kafka/src/main/scala/kamon/instrumentation/kafka/client/ContextSerializationHelper.scala similarity index 100% rename from instrumentation/kamon-kafka/src/main/scala/kamon/instrumentation/kafka/client/ContextSerializationHelper.scala rename to instrumentation/kafka/src/main/scala/kamon/instrumentation/kafka/client/ContextSerializationHelper.scala diff --git a/instrumentation/kamon-kafka/src/main/scala/kamon/instrumentation/kafka/client/KafkaInstrumentation.scala b/instrumentation/kafka/src/main/scala/kamon/instrumentation/kafka/client/KafkaInstrumentation.scala similarity index 100% rename from instrumentation/kamon-kafka/src/main/scala/kamon/instrumentation/kafka/client/KafkaInstrumentation.scala rename to instrumentation/kafka/src/main/scala/kamon/instrumentation/kafka/client/KafkaInstrumentation.scala diff --git a/instrumentation/kamon-kafka/src/main/scala/kamon/instrumentation/kafka/client/ProducerInstrumentation.scala b/instrumentation/kafka/src/main/scala/kamon/instrumentation/kafka/client/ProducerInstrumentation.scala similarity index 100% rename from instrumentation/kamon-kafka/src/main/scala/kamon/instrumentation/kafka/client/ProducerInstrumentation.scala rename to instrumentation/kafka/src/main/scala/kamon/instrumentation/kafka/client/ProducerInstrumentation.scala diff --git a/instrumentation/kamon-kafka/src/main/scala/kamon/instrumentation/kafka/client/RecordProcessor.scala b/instrumentation/kafka/src/main/scala/kamon/instrumentation/kafka/client/RecordProcessor.scala similarity index 100% rename from instrumentation/kamon-kafka/src/main/scala/kamon/instrumentation/kafka/client/RecordProcessor.scala rename to instrumentation/kafka/src/main/scala/kamon/instrumentation/kafka/client/RecordProcessor.scala diff --git a/instrumentation/kamon-kafka/src/main/scala/kamon/instrumentation/kafka/client/SpanPropagation.scala b/instrumentation/kafka/src/main/scala/kamon/instrumentation/kafka/client/SpanPropagation.scala similarity index 100% rename from instrumentation/kamon-kafka/src/main/scala/kamon/instrumentation/kafka/client/SpanPropagation.scala rename to instrumentation/kafka/src/main/scala/kamon/instrumentation/kafka/client/SpanPropagation.scala diff --git a/instrumentation/kamon-kafka/src/test/resources/application.conf b/instrumentation/kafka/src/test/resources/application.conf similarity index 100% rename from instrumentation/kamon-kafka/src/test/resources/application.conf rename to instrumentation/kafka/src/test/resources/application.conf diff --git a/instrumentation/kamon-jdbc/src/test/resources/logback.xml b/instrumentation/kafka/src/test/resources/logback.xml similarity index 100% rename from instrumentation/kamon-jdbc/src/test/resources/logback.xml rename to instrumentation/kafka/src/test/resources/logback.xml diff --git a/instrumentation/kamon-kafka/src/test/scala/kamon/instrumentation/kafka/client/KafkaClientsTracingInstrumentationSpec.scala b/instrumentation/kafka/src/test/scala/kamon/instrumentation/kafka/client/KafkaClientsTracingInstrumentationSpec.scala similarity index 100% rename from instrumentation/kamon-kafka/src/test/scala/kamon/instrumentation/kafka/client/KafkaClientsTracingInstrumentationSpec.scala rename to instrumentation/kafka/src/test/scala/kamon/instrumentation/kafka/client/KafkaClientsTracingInstrumentationSpec.scala diff --git a/instrumentation/kamon-kafka/src/test/scala/kamon/instrumentation/kafka/testutil/CustomPropagationImplementation.scala b/instrumentation/kafka/src/test/scala/kamon/instrumentation/kafka/testutil/CustomPropagationImplementation.scala similarity index 100% rename from instrumentation/kamon-kafka/src/test/scala/kamon/instrumentation/kafka/testutil/CustomPropagationImplementation.scala rename to instrumentation/kafka/src/test/scala/kamon/instrumentation/kafka/testutil/CustomPropagationImplementation.scala diff --git a/instrumentation/kamon-kafka/src/test/scala/kamon/instrumentation/kafka/testutil/DotFileGenerator.scala b/instrumentation/kafka/src/test/scala/kamon/instrumentation/kafka/testutil/DotFileGenerator.scala similarity index 100% rename from instrumentation/kamon-kafka/src/test/scala/kamon/instrumentation/kafka/testutil/DotFileGenerator.scala rename to instrumentation/kafka/src/test/scala/kamon/instrumentation/kafka/testutil/DotFileGenerator.scala diff --git a/instrumentation/kamon-kafka/src/test/scala/kamon/instrumentation/kafka/testutil/SpanReportingTestScope.scala b/instrumentation/kafka/src/test/scala/kamon/instrumentation/kafka/testutil/SpanReportingTestScope.scala similarity index 100% rename from instrumentation/kamon-kafka/src/test/scala/kamon/instrumentation/kafka/testutil/SpanReportingTestScope.scala rename to instrumentation/kafka/src/test/scala/kamon/instrumentation/kafka/testutil/SpanReportingTestScope.scala diff --git a/instrumentation/kamon-kafka/src/test/scala/kamon/instrumentation/kafka/testutil/TestSpanReporting.scala b/instrumentation/kafka/src/test/scala/kamon/instrumentation/kafka/testutil/TestSpanReporting.scala similarity index 100% rename from instrumentation/kamon-kafka/src/test/scala/kamon/instrumentation/kafka/testutil/TestSpanReporting.scala rename to instrumentation/kafka/src/test/scala/kamon/instrumentation/kafka/testutil/TestSpanReporting.scala diff --git a/instrumentation/kamon-akka-http/src/main/scala-2.11/kamon/instrumentation/akka/http/AkkaHttpServerInstrumentation.scala b/instrumentation/kamon-akka-http/src/main/scala-2.11/kamon/instrumentation/akka/http/AkkaHttpServerInstrumentation.scala deleted file mode 100644 index 288604c29..000000000 --- a/instrumentation/kamon-akka-http/src/main/scala-2.11/kamon/instrumentation/akka/http/AkkaHttpServerInstrumentation.scala +++ /dev/null @@ -1,331 +0,0 @@ -package kamon.instrumentation.akka.http - -import java.util.concurrent.Callable -import akka.http.scaladsl.marshalling.{ToEntityMarshaller, ToResponseMarshallable, ToResponseMarshaller} -import akka.http.scaladsl.model.StatusCodes.Redirection -import akka.http.scaladsl.model.{HttpHeader, HttpRequest, HttpResponse, StatusCode, Uri} -import akka.http.scaladsl.server.PathMatcher.{Matched, Unmatched} -import akka.http.scaladsl.server.directives.{BasicDirectives, CompleteOrRecoverWithMagnet, OnSuccessMagnet} -import akka.http.scaladsl.server.directives.RouteDirectives.reject -import akka.http.scaladsl.server._ -import akka.http.scaladsl.server.util.Tupler -import akka.http.scaladsl.util.FastFuture -import kamon.Kamon -import kamon.instrumentation.akka.http.HasMatchingContext.PathMatchingContext -import kamon.instrumentation.context.{HasContext, InvokeWithCapturedContext} -import kanela.agent.api.instrumentation.InstrumentationBuilder -import kanela.agent.api.instrumentation.mixin.Initializer -import kanela.agent.libs.net.bytebuddy.implementation.bind.annotation._ - -import scala.concurrent.{ExecutionContext, Future, Promise} -import scala.util.control.NonFatal -import scala.util.{Failure, Success, Try} -import java.util.regex.Pattern -import akka.NotUsed -import akka.http.scaladsl.server.RouteResult.Rejected -import akka.stream.scaladsl.Flow -import kamon.context.Context -import kanela.agent.libs.net.bytebuddy.matcher.ElementMatchers.isPublic - -import scala.collection.immutable - -class AkkaHttpServerInstrumentation extends InstrumentationBuilder { - - /** - * When instrumenting bindAndHandle what we do is wrap the Flow[HttpRequest, HttpResponse, NotUsed] provided by - * the user and add all the processing there. This is the part of the instrumentation that performs Context - * propagation, tracing and gather metrics using the HttpServerInstrumentation packed in common. - * - * One important point about the HTTP Server instrumentation is that because it is almost impossible to have a proper - * operation name before the request processing hits the routing tree, we are delaying the sampling decision to the - * point at which we have some operation name. - */ - onType("akka.http.scaladsl.HttpExt") - .advise(method("bindAndHandle"), classOf[HttpExtBindAndHandleAdvice]) - - /** - * For the HTTP/2 instrumentation, since the parts where we can capture the interface/port and the actual flow - * creation happen at different times we are advising the handleWithStreamIdHeader method with the interface/port - * data and reading that information on method exit to wrap it the same way we would for HTTP/1. - */ - onType("akka.http.scaladsl.Http2Ext") - .advise(method("bindAndHandleAsync") and isPublic(), classOf[Http2ExtBindAndHandleAdvice]) - - onType("akka.http.impl.engine.http2.Http2Blueprint$") - .advise(method("handleWithStreamIdHeader"), classOf[Http2BlueprintAsyncAdvice]) - - /** - * The rest of these sections are just about making sure that we can generate an appropriate operation name (i.e. free - * of variables) and take a Sampling Decision in case none has been taken so far. - */ - onType("akka.http.scaladsl.server.RequestContextImpl") - .mixin(classOf[HasMatchingContext.Mixin]) - .intercept(method("copy"), RequestContextCopyInterceptor) - - onType("akka.http.scaladsl.server.directives.PathDirectives$class") - .intercept(method("rawPathPrefix"), classOf[PathDirectivesRawPathPrefixInterceptor]) - - onType("akka.http.scaladsl.server.directives.FutureDirectives$class") - .intercept(method("onComplete"), classOf[ResolveOperationNameOnRouteInterceptor]) - - onTypes( - "akka.http.scaladsl.server.directives.OnSuccessMagnet$", - "akka.http.scaladsl.server.directives.CompleteOrRecoverWithMagnet$" - ) - .intercept(method("apply"), classOf[ResolveOperationNameOnRouteInterceptor]) - - onType("akka.http.scaladsl.server.directives.RouteDirectives$class") - .intercept(method("complete"), classOf[ResolveOperationNameOnRouteInterceptor]) - .intercept(method("redirect"), classOf[ResolveOperationNameOnRouteInterceptor]) - .intercept(method("failWith"), classOf[ResolveOperationNameOnRouteInterceptor]) - - /** - * Support for HTTP/1 and HTTP/2 at the same time. - */ - - onType("akka.stream.scaladsl.Flow") - .advise(method("mapAsync"), classOf[FlowOpsMapAsyncAdvice]) - -} - -trait HasMatchingContext { - def defaultOperationName: String - def matchingContext: Seq[PathMatchingContext] - def setMatchingContext(ctx: Seq[PathMatchingContext]): Unit - def setDefaultOperationName(defaultOperationName: String): Unit - def prependMatchingContext(matched: PathMatchingContext): Unit - def popOneMatchingContext(): Unit -} - -object HasMatchingContext { - - case class PathMatchingContext( - fullPath: String, - matched: Matched[_] - ) - - class Mixin(var matchingContext: Seq[PathMatchingContext], var defaultOperationName: String) - extends HasMatchingContext { - - override def setMatchingContext(matchingContext: Seq[PathMatchingContext]): Unit = - this.matchingContext = matchingContext - - override def setDefaultOperationName(defaultOperationName: String): Unit = - this.defaultOperationName = defaultOperationName - - override def prependMatchingContext(matched: PathMatchingContext): Unit = - matchingContext = matched +: matchingContext - - override def popOneMatchingContext(): Unit = - matchingContext = matchingContext.tail - - @Initializer - def initialize(): Unit = - matchingContext = Seq.empty - } -} - -class ResolveOperationNameOnRouteInterceptor -object ResolveOperationNameOnRouteInterceptor { - import akka.http.scaladsl.util.FastFuture._ - - // We are replacing some of the basic directives here to ensure that we will resolve both the Sampling Decision and - // the operation name before the request gets to the actual handling code (presumably inside of a "complete" - // directive. - - def complete(@Argument(1) m: => ToResponseMarshallable): StandardRoute = - StandardRoute(resolveOperationName(_).complete(m)) - - def complete[T](status: StatusCode, v: => T)(implicit m: ToEntityMarshaller[T]): StandardRoute = - StandardRoute(resolveOperationName(_).complete((status, v))) - - def complete[T](status: StatusCode, headers: immutable.Seq[HttpHeader], v: => T)(implicit - m: ToEntityMarshaller[T] - ): StandardRoute = - complete((status, headers, v)) - - def redirect(@Argument(1) uri: Uri, @Argument(2) redirectionType: Redirection): StandardRoute = - StandardRoute(resolveOperationName(_).redirect(uri, redirectionType)) - - def failWith(@Argument(1) error: Throwable): StandardRoute = { - Kamon.currentSpan().fail(error) - StandardRoute(resolveOperationName(_).fail(error)) - } - - def onComplete[T](@Argument(1) future: => Future[T]): Directive1[Try[T]] = - Directive { inner => ctx => - import ctx.executionContext - resolveOperationName(ctx) - future.fast.transformWith(t => inner(Tuple1(t))(ctx)) - } - - def apply[T](future: => Future[T])(implicit tupler: Tupler[T]): OnSuccessMagnet { type Out = tupler.Out } = - new OnSuccessMagnet { - type Out = tupler.Out - val directive = Directive[tupler.Out] { inner => ctx => - import ctx.executionContext - resolveOperationName(ctx) - future.fast.flatMap(t => inner(tupler(t))(ctx)) - }(tupler.OutIsTuple) - } - - def apply[T](future: => Future[T])(implicit m: ToResponseMarshaller[T]): CompleteOrRecoverWithMagnet = - new CompleteOrRecoverWithMagnet { - val directive = Directive[Tuple1[Throwable]] { inner => ctx => - import ctx.executionContext - resolveOperationName(ctx) - future.fast.transformWith { - case Success(res) => ctx.complete(res) - case Failure(error) => inner(Tuple1(error))(ctx) - } - } - } - - private def resolveOperationName(requestContext: RequestContext): RequestContext = { - - // We will only change the operation name if the last edit made to it was an automatic one. At this point, the only - // way in which the operation name might have changed is if the user changed it with the operationName directive or - // by accessing the Span and changing it directly there, so we wouldn't want to overwrite that. - - Kamon.currentContext().get(LastAutomaticOperationNameEdit.Key).foreach(lastEdit => { - val currentSpan = Kamon.currentSpan() - - if (lastEdit.allowAutomaticChanges) { - if (currentSpan.operationName() == lastEdit.operationName) { - val allMatches = requestContext.asInstanceOf[HasMatchingContext].matchingContext.reverse.map(singleMatch) - val operationName = allMatches.mkString("") - - if (operationName.nonEmpty) { - currentSpan - .name(operationName) - .takeSamplingDecision() - - lastEdit.operationName = operationName - } - } else { - lastEdit.allowAutomaticChanges = false - } - } else { - currentSpan.takeSamplingDecision() - } - }) - - requestContext - } - - private def singleMatch(matching: PathMatchingContext): String = { - val rest = matching.matched.pathRest.toString() - val consumedCount = matching.fullPath.length - rest.length - val consumedSegment = matching.fullPath.substring(0, consumedCount) - - matching.matched.extractions match { - case () => // string segment matched - consumedSegment - case tuple: Product => - val values = tuple.productIterator.toList map { - case Some(x) => List(x.toString) - case None => Nil - case long: Long => List(long.toString, long.toHexString) - case int: Int => List(int.toString, int.toHexString) - case a: Any => List(a.toString) - } - values.flatten.fold(consumedSegment) { (full, value) => - val r = "(?i)(^|/)" + Pattern.quote(value) + "($|/)" - full.replaceFirst(r, "$1{}$2") - } - } - } -} - -/** - * Tracks the last operation name that was automatically assigned to an operation via instrumentation. The - * instrumentation might assign a name to the operations via settings on the HTTP Server instrumentation instance or - * via the Path directives instrumentation, but might never reassign a name if the user somehow assigned their own name - * to the operation. Users chan change operation names by: - * - Using operation mappings via configuration of the HTTP Server. - * - Providing a custom HTTP Operation Name Generator for the server. - * - Using the "operationName" directive. - * - Directly accessing the Span for the current operation and changing the name on it. - * - */ -class LastAutomaticOperationNameEdit( - @volatile var operationName: String, - @volatile var allowAutomaticChanges: Boolean -) - -object LastAutomaticOperationNameEdit { - val Key = Context.key[Option[LastAutomaticOperationNameEdit]]("laone", None) - - def apply(operationName: String, allowAutomaticChanges: Boolean): LastAutomaticOperationNameEdit = - new LastAutomaticOperationNameEdit(operationName, allowAutomaticChanges) -} - -object RequestContextCopyInterceptor { - - @RuntimeType - def copy(@This context: RequestContext, @SuperCall copyCall: Callable[RequestContext]): RequestContext = { - val copiedRequestContext = copyCall.call() - copiedRequestContext.asInstanceOf[HasMatchingContext].setMatchingContext( - context.asInstanceOf[HasMatchingContext].matchingContext - ) - copiedRequestContext - } -} - -class PathDirectivesRawPathPrefixInterceptor -object PathDirectivesRawPathPrefixInterceptor { - import BasicDirectives._ - - @RuntimeType - def rawPathPrefix[T](@Argument(1) matcher: PathMatcher[T]): Directive[T] = { - implicit val LIsTuple = matcher.ev - - extract { ctx => - val fullPath = ctx.unmatchedPath.toString() - val matching = matcher(ctx.unmatchedPath) - - matching match { - case m: Matched[_] => - ctx.asInstanceOf[HasMatchingContext] - .prependMatchingContext(PathMatchingContext(fullPath, m)) - case _ => - } - - (ctx, matching) - } flatMap { - case (ctx, Matched(rest, values)) => - tprovide(values) & mapRequestContext(_ withUnmatchedPath rest) & mapRouteResult { routeResult => - if (routeResult.isInstanceOf[Rejected]) - ctx.asInstanceOf[HasMatchingContext].popOneMatchingContext() - - routeResult - } - - case (_, Unmatched) => reject - } - } -} - -object Http2BlueprintInterceptor { - - case class HandlerWithEndpoint(interface: String, port: Int, handler: HttpRequest => Future[HttpResponse]) - extends (HttpRequest => Future[HttpResponse]) { - - override def apply(request: HttpRequest): Future[HttpResponse] = handler(request) - } - - @RuntimeType - def handleWithStreamIdHeader( - @Argument(1) handler: HttpRequest => Future[HttpResponse], - @SuperCall zuper: Callable[Flow[HttpRequest, HttpResponse, NotUsed]] - ): Flow[HttpRequest, HttpResponse, NotUsed] = { - - handler match { - case HandlerWithEndpoint(interface, port, _) => - ServerFlowWrapper(zuper.call(), interface, port) - - case _ => - zuper.call() - } - } -} diff --git a/instrumentation/kamon-akka-http/src/main/scala-2.12/kamon/instrumentation/akka/http/AkkaHttpServerInstrumentation.scala b/instrumentation/kamon-akka-http/src/main/scala-2.12/kamon/instrumentation/akka/http/AkkaHttpServerInstrumentation.scala deleted file mode 100644 index 0c5e95200..000000000 --- a/instrumentation/kamon-akka-http/src/main/scala-2.12/kamon/instrumentation/akka/http/AkkaHttpServerInstrumentation.scala +++ /dev/null @@ -1,331 +0,0 @@ -/* - * Copyright 2013-2021 The Kamon Project - * - * Licensed 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 kamon.instrumentation.akka.http - -import java.util.concurrent.Callable -import akka.http.scaladsl.marshalling.{ToEntityMarshaller, ToResponseMarshallable, ToResponseMarshaller} -import akka.http.scaladsl.model.StatusCodes.Redirection -import akka.http.scaladsl.model.{HttpHeader, HttpRequest, HttpResponse, StatusCode, Uri} -import akka.http.scaladsl.server.PathMatcher.{Matched, Unmatched} -import akka.http.scaladsl.server.directives.{BasicDirectives, CompleteOrRecoverWithMagnet, OnSuccessMagnet} -import akka.http.scaladsl.server.directives.RouteDirectives.reject -import akka.http.scaladsl.server._ -import akka.http.scaladsl.server.util.Tupler -import akka.http.scaladsl.util.FastFuture -import kamon.Kamon -import kamon.instrumentation.akka.http.HasMatchingContext.PathMatchingContext -import kamon.instrumentation.context.{HasContext, InvokeWithCapturedContext} -import kanela.agent.api.instrumentation.InstrumentationBuilder -import kanela.agent.api.instrumentation.mixin.Initializer -import kanela.agent.libs.net.bytebuddy.implementation.bind.annotation._ - -import scala.concurrent.{ExecutionContext, Future, Promise} -import scala.util.control.NonFatal -import scala.util.{Failure, Success, Try} -import java.util.regex.Pattern -import akka.NotUsed -import akka.http.scaladsl.server.RouteResult.Rejected -import akka.stream.scaladsl.Flow -import kamon.context.Context -import kanela.agent.libs.net.bytebuddy.matcher.ElementMatchers.isPublic - -import scala.collection.immutable - -class AkkaHttpServerInstrumentation extends InstrumentationBuilder { - - /** - * When instrumenting bindAndHandle what we do is wrap the Flow[HttpRequest, HttpResponse, NotUsed] provided by - * the user and add all the processing there. This is the part of the instrumentation that performs Context - * propagation, tracing and gather metrics using the HttpServerInstrumentation packed in common. - * - * One important point about the HTTP Server instrumentation is that because it is almost impossible to have a proper - * operation name before the request processing hits the routing tree, we are delaying the sampling decision to the - * point at which we have some operation name. - */ - - onType("akka.http.scaladsl.HttpExt") - .advise(method("bindAndHandle"), classOf[HttpExtBindAndHandleAdvice]) - - /** - * For the HTTP/2 instrumentation, since the parts where we can capture the interface/port and the actual flow - * creation happen at different times we are advising the handleWithStreamIdHeader method with the interface/port - * data and reading that information on method exit to wrap it the same way we would for HTTP/1. - */ - - onType("akka.http.impl.engine.http2.Http2Ext") - .advise(method("bindAndHandleAsync") and isPublic(), classOf[Http2ExtBindAndHandleAdvice]) - - onType("akka.http.impl.engine.http2.Http2Blueprint$") - .advise(method("handleWithStreamIdHeader"), classOf[Http2BlueprintAsyncAdvice]) - - /** - * The rest of these sections are just about making sure that we can generate an appropriate operation name (i.e. free - * of variables) and take a Sampling Decision in case none has been taken so far. - */ - onType("akka.http.scaladsl.server.RequestContextImpl") - .mixin(classOf[HasMatchingContext.Mixin]) - .intercept(method("copy"), RequestContextCopyInterceptor) - - onType("akka.http.scaladsl.server.directives.PathDirectives") - .intercept(method("rawPathPrefix"), classOf[PathDirectivesRawPathPrefixInterceptor]) - - onType("akka.http.scaladsl.server.directives.FutureDirectives") - .intercept(method("onComplete"), classOf[ResolveOperationNameOnRouteInterceptor]) - - onTypes( - "akka.http.scaladsl.server.directives.OnSuccessMagnet$", - "akka.http.scaladsl.server.directives.CompleteOrRecoverWithMagnet$" - ) - .intercept(method("apply"), classOf[ResolveOperationNameOnRouteInterceptor]) - - onType("akka.http.scaladsl.server.directives.RouteDirectives") - .intercept(method("complete"), classOf[ResolveOperationNameOnRouteInterceptor]) - .intercept(method("redirect"), classOf[ResolveOperationNameOnRouteInterceptor]) - .intercept(method("failWith"), classOf[ResolveOperationNameOnRouteInterceptor]) - - /** - * Akka-http 10.1.x compatibility. - */ - - onType("akka.http.scaladsl.Http2Ext") - .advise(method("bindAndHandleAsync") and isPublic(), classOf[Http2ExtBindAndHandleAdvice]) - - /** - * Support for HTTP/1 and HTTP/2 at the same time. - * - */ - - onType("akka.stream.scaladsl.FlowOps") - .advise(method("mapAsync"), classOf[FlowOpsMapAsyncAdvice]) -} - -trait HasMatchingContext { - def defaultOperationName: String - def matchingContext: Seq[PathMatchingContext] - def setMatchingContext(ctx: Seq[PathMatchingContext]): Unit - def setDefaultOperationName(defaultOperationName: String): Unit - def prependMatchingContext(matched: PathMatchingContext): Unit - def popOneMatchingContext(): Unit -} - -object HasMatchingContext { - - case class PathMatchingContext( - fullPath: String, - matched: Matched[_] - ) - - class Mixin(var matchingContext: Seq[PathMatchingContext], var defaultOperationName: String) - extends HasMatchingContext { - - override def setMatchingContext(matchingContext: Seq[PathMatchingContext]): Unit = - this.matchingContext = matchingContext - - override def setDefaultOperationName(defaultOperationName: String): Unit = - this.defaultOperationName = defaultOperationName - - override def prependMatchingContext(matched: PathMatchingContext): Unit = - matchingContext = matched +: matchingContext - - override def popOneMatchingContext(): Unit = - matchingContext = matchingContext.tail - - @Initializer - def initialize(): Unit = - matchingContext = Seq.empty - } -} - -class ResolveOperationNameOnRouteInterceptor -object ResolveOperationNameOnRouteInterceptor { - import akka.http.scaladsl.util.FastFuture._ - - // We are replacing some of the basic directives here to ensure that we will resolve both the Sampling Decision and - // the operation name before the request gets to the actual handling code (presumably inside of a "complete" - // directive. - - def complete(m: => ToResponseMarshallable): StandardRoute = - StandardRoute(resolveOperationName(_).complete(m)) - - def complete[T](status: StatusCode, v: => T)(implicit m: ToEntityMarshaller[T]): StandardRoute = - StandardRoute(resolveOperationName(_).complete((status, v))) - - def complete[T](status: StatusCode, headers: immutable.Seq[HttpHeader], v: => T)(implicit - m: ToEntityMarshaller[T] - ): StandardRoute = - complete((status, headers, v)) - - def redirect(uri: Uri, redirectionType: Redirection): StandardRoute = - StandardRoute(resolveOperationName(_).redirect(uri, redirectionType)) - - def failWith(error: Throwable): StandardRoute = { - Kamon.currentSpan().fail(error) - StandardRoute(resolveOperationName(_).fail(error)) - } - - def onComplete[T](future: => Future[T]): Directive1[Try[T]] = - Directive { inner => ctx => - import ctx.executionContext - resolveOperationName(ctx) - future.fast.transformWith(t => inner(Tuple1(t))(ctx)) - } - - def apply[T](future: => Future[T])(implicit tupler: Tupler[T]): OnSuccessMagnet { type Out = tupler.Out } = - new OnSuccessMagnet { - type Out = tupler.Out - val directive = Directive[tupler.Out] { inner => ctx => - import ctx.executionContext - resolveOperationName(ctx) - future.fast.flatMap(t => inner(tupler(t))(ctx)) - }(tupler.OutIsTuple) - } - - def apply[T](future: => Future[T])(implicit m: ToResponseMarshaller[T]): CompleteOrRecoverWithMagnet = - new CompleteOrRecoverWithMagnet { - val directive = Directive[Tuple1[Throwable]] { inner => ctx => - import ctx.executionContext - resolveOperationName(ctx) - future.fast.transformWith { - case Success(res) => ctx.complete(res) - case Failure(error) => inner(Tuple1(error))(ctx) - } - } - } - - private def resolveOperationName(requestContext: RequestContext): RequestContext = { - - // We will only change the operation name if the last edit made to it was an automatic one. At this point, the only - // way in which the operation name might have changed is if the user changed it with the operationName directive or - // by accessing the Span and changing it directly there, so we wouldn't want to overwrite that. - - Kamon.currentContext().get(LastAutomaticOperationNameEdit.Key).foreach(lastEdit => { - val currentSpan = Kamon.currentSpan() - - if (lastEdit.allowAutomaticChanges) { - if (currentSpan.operationName() == lastEdit.operationName) { - val allMatches = requestContext.asInstanceOf[HasMatchingContext].matchingContext.reverse.map(singleMatch) - val operationName = allMatches.mkString("") - - if (operationName.nonEmpty) { - currentSpan - .name(operationName) - .takeSamplingDecision() - - lastEdit.operationName = operationName - } - } else { - lastEdit.allowAutomaticChanges = false - } - } else { - currentSpan.takeSamplingDecision() - } - }) - - requestContext - } - - private def singleMatch(matching: PathMatchingContext): String = { - val rest = matching.matched.pathRest.toString() - val consumedCount = matching.fullPath.length - rest.length - val consumedSegment = matching.fullPath.substring(0, consumedCount) - - matching.matched.extractions match { - case () => // string segment matched - consumedSegment - case tuple: Product => - val values = tuple.productIterator.toList map { - case Some(x) => List(x.toString) - case None => Nil - case long: Long => List(long.toString, long.toHexString) - case int: Int => List(int.toString, int.toHexString) - case a: Any => List(a.toString) - } - values.flatten.fold(consumedSegment) { (full, value) => - val r = "(?i)(^|/)" + Pattern.quote(value) + "($|/)" - full.replaceFirst(r, "$1{}$2") - } - } - } -} - -/** - * Tracks the last operation name that was automatically assigned to an operation via instrumentation. The - * instrumentation might assign a name to the operations via settings on the HTTP Server instrumentation instance or - * via the Path directives instrumentation, but might never reassign a name if the user somehow assigned their own name - * to the operation. Users chan change operation names by: - * - Using operation mappings via configuration of the HTTP Server. - * - Providing a custom HTTP Operation Name Generator for the server. - * - Using the "operationName" directive. - * - Directly accessing the Span for the current operation and changing the name on it. - * - */ -class LastAutomaticOperationNameEdit( - @volatile var operationName: String, - @volatile var allowAutomaticChanges: Boolean -) - -object LastAutomaticOperationNameEdit { - val Key = Context.key[Option[LastAutomaticOperationNameEdit]]("laone", None) - - def apply(operationName: String, allowAutomaticChanges: Boolean): LastAutomaticOperationNameEdit = - new LastAutomaticOperationNameEdit(operationName, allowAutomaticChanges) -} - -object RequestContextCopyInterceptor { - - @RuntimeType - def copy(@This context: RequestContext, @SuperCall copyCall: Callable[RequestContext]): RequestContext = { - val copiedRequestContext = copyCall.call() - copiedRequestContext.asInstanceOf[HasMatchingContext].setMatchingContext( - context.asInstanceOf[HasMatchingContext].matchingContext - ) - copiedRequestContext - } -} - -class PathDirectivesRawPathPrefixInterceptor -object PathDirectivesRawPathPrefixInterceptor { - import BasicDirectives._ - - def rawPathPrefix[T](@Argument(0) matcher: PathMatcher[T]): Directive[T] = { - implicit val LIsTuple = matcher.ev - - extract { ctx => - val fullPath = ctx.unmatchedPath.toString() - val matching = matcher(ctx.unmatchedPath) - - matching match { - case m: Matched[_] => - ctx.asInstanceOf[HasMatchingContext] - .prependMatchingContext(PathMatchingContext(fullPath, m)) - case _ => - } - - (ctx, matching) - } flatMap { - case (ctx, Matched(rest, values)) => - tprovide(values) & mapRequestContext(_ withUnmatchedPath rest) & mapRouteResult { routeResult => - if (routeResult.isInstanceOf[Rejected]) - ctx.asInstanceOf[HasMatchingContext].popOneMatchingContext() - - routeResult - } - - case (_, Unmatched) => reject - } - } -} diff --git a/instrumentation/kamon-akka/build.sbt b/instrumentation/kamon-akka/build.sbt deleted file mode 100644 index f6cffe9db..000000000 --- a/instrumentation/kamon-akka/build.sbt +++ /dev/null @@ -1,142 +0,0 @@ -import sbt.Tests.{Group, SubProcess} -import Def.Initialize - -val `Akka-2.6-version` = "2.6.21" - -/** - * Compile Configurations - */ -lazy val Common = config("common") -lazy val `Compile-Akka-2.6` = config("akka-2.6") - -/** - * Test Configurations - */ -lazy val TestCommon = config("test-common") extend (Common) -lazy val `Test-Akka-2.6` = config("test-akka-2.6") extend (`Compile-Akka-2.6`) - -configs( - Common, - `Compile-Akka-2.6`, - TestCommon, - `Test-Akka-2.6` -) - -// The Common configuration should always depend on the latest version of Akka. All code in the Common configuration -// should be source compatible with all Akka versions. -inConfig(Common)(Defaults.compileSettings ++ Seq( - crossScalaVersions := Seq(`scala_2.13_version`, scala_3_version) -)) - -libraryDependencies ++= Seq( - kanelaAgent % Common, - scalatest % TestCommon, - logbackClassic % TestCommon, - "com.typesafe.akka" %% "akka-actor" % `Akka-2.6-version` % Common, - "com.typesafe.akka" %% "akka-testkit" % `Akka-2.6-version` % Common, - "com.typesafe.akka" %% "akka-slf4j" % `Akka-2.6-version` % Common, - "com.typesafe.akka" %% "akka-remote" % `Akka-2.6-version` % Common, - "com.typesafe.akka" %% "akka-cluster" % `Akka-2.6-version` % Common, - "com.typesafe.akka" %% "akka-cluster-sharding" % `Akka-2.6-version` % Common, - "com.typesafe.akka" %% "akka-protobuf" % `Akka-2.6-version` % Common, - "com.typesafe.akka" %% "akka-testkit" % `Akka-2.6-version` % TestCommon -) - -inConfig(`Compile-Akka-2.6`)(Defaults.compileSettings ++ Seq( - crossScalaVersions := Seq(`scala_2.13_version`, scala_3_version), - sources := joinSources(Common, `Compile-Akka-2.6`).value -)) - -libraryDependencies ++= Seq( - kanelaAgent % `Compile-Akka-2.6`, - scalatest % `Test-Akka-2.6`, - logbackClassic % `Test-Akka-2.6`, - "com.typesafe.akka" %% "akka-actor" % `Akka-2.6-version` % `Compile-Akka-2.6`, - "com.typesafe.akka" %% "akka-testkit" % `Akka-2.6-version` % `Compile-Akka-2.6`, - "com.typesafe.akka" %% "akka-slf4j" % `Akka-2.6-version` % `Compile-Akka-2.6`, - "com.typesafe.akka" %% "akka-remote" % `Akka-2.6-version` % `Compile-Akka-2.6`, - "com.typesafe.akka" %% "akka-cluster" % `Akka-2.6-version` % `Compile-Akka-2.6`, - "com.typesafe.akka" %% "akka-cluster-sharding" % `Akka-2.6-version` % `Compile-Akka-2.6`, - "com.typesafe.akka" %% "akka-protobuf" % `Akka-2.6-version` % `Compile-Akka-2.6`, - "com.typesafe.akka" %% "akka-testkit" % `Akka-2.6-version` % `Test-Akka-2.6` -) - -// Ensure that the packaged artifact contains the instrumentation for all Akka versions. -Compile / packageBin / mappings := Def.taskDyn { - if (scalaVersion.value startsWith "3") { - Def.task { - joinProducts((`Compile-Akka-2.6` / products).value) ++ - joinProducts((Common / unmanagedResourceDirectories).value) - } - } else { - Def.task { - joinProducts( - (`Compile-Akka-2.6` / products).value - ) ++ joinProducts((Common / unmanagedResourceDirectories).value) - } - } -}.value - -// Ensure that the packaged sources contains the instrumentation for all Akka versions. -Compile / packageSrc / mappings := Def.taskDyn { - if (scalaVersion.value startsWith "3") { - Def.task { - (`Compile-Akka-2.6` / packageSrc / mappings).value ++ - (Common / packageSrc / mappings).value - } - } else { - Def.task { - (`Compile-Akka-2.6` / packageSrc / mappings).value ++ - (Common / packageSrc / mappings).value - } - } -}.value - -// Compile will return the compile analysis for the Common configuration but will run on all Akka configurations. -Compile / compile := Def.taskDyn { - if (scalaVersion.value startsWith "3") { - Def.task { - (`Compile-Akka-2.6` / compile).value - } - } else { - Def.task { - (`Compile-Akka-2.6` / compile).value - } - } -}.value - -exportJars := true - -/** - * Test-related settings - */ - -lazy val baseTestSettings = Seq( - fork := true, - parallelExecution := false, - javaOptions := (Test / javaOptions).value, - dependencyClasspath += (Compile / packageBin).value -) - -inConfig(TestCommon)(Defaults.testSettings ++ instrumentationSettings ++ baseTestSettings ++ Seq( - crossScalaVersions := Seq(`scala_2.13_version`, scala_3_version) -)) - -inConfig(`Test-Akka-2.6`)(Defaults.testSettings ++ instrumentationSettings ++ baseTestSettings ++ Seq( - crossScalaVersions := Seq(`scala_2.13_version`, scala_3_version), - sources := joinSources(TestCommon, `Test-Akka-2.6`).value, - unmanagedResourceDirectories ++= (Common / unmanagedResourceDirectories).value, - unmanagedResourceDirectories ++= (TestCommon / unmanagedResourceDirectories).value -)) - -Test / test := Def.taskDyn { - if (scalaVersion.value startsWith "3") { - Def.task { - (`Test-Akka-2.6` / test).value - } - } else { - Def.task { - (`Test-Akka-2.6` / test).value - } - } -}.value diff --git a/instrumentation/kamon-mongo-legacy/src/test/scala/kamon/instrumentation/mongo/EmbeddedMongoTest.scala b/instrumentation/kamon-mongo-legacy/src/test/scala/kamon/instrumentation/mongo/EmbeddedMongoTest.scala deleted file mode 100644 index 7eb4b2f09..000000000 --- a/instrumentation/kamon-mongo-legacy/src/test/scala/kamon/instrumentation/mongo/EmbeddedMongoTest.scala +++ /dev/null @@ -1,48 +0,0 @@ -package kamon.instrumentation.mongo - -import com.mongodb.client.{MongoClient => SyncMongoClient, MongoClients => SyncMongoClients} -import com.mongodb.reactivestreams.client.{MongoClient => ReactiveMongoClient} -import de.flapdoodle.embed.mongo.config.{MongodConfigBuilder, Net} -import de.flapdoodle.embed.mongo.distribution.Version -import de.flapdoodle.embed.mongo.{MongodExecutable, MongodProcess, MongodStarter} -import org.mongodb.scala.{MongoClient => ScalaMongoClient} -import org.scalatest.BeforeAndAfterAll -import org.scalatest.wordspec.AnyWordSpec - -abstract class EmbeddedMongoTest(port: Int) extends AnyWordSpec with BeforeAndAfterAll { - - private val starter = MongodStarter.getDefaultInstance() - private var mongodExecutable: MongodExecutable = _ - private var mongodProcess: MongodProcess = _ - - protected def reactiveClient(): ReactiveMongoClient = { - ??? - } - - protected def syncClient(): SyncMongoClient = { - SyncMongoClients.create(s"mongodb://localhost:${port}") - } - - protected def scalaClient(): ScalaMongoClient = { - ScalaMongoClient(s"mongodb://localhost:${port}") - } - - override protected def beforeAll(): Unit = { - super.beforeAll() - - mongodExecutable = starter.prepare(new MongodConfigBuilder() - .version(Version.Main.V4_0) - .net(new Net(port, false)) - .build()) - - mongodProcess = mongodExecutable.start() - } - - override protected def afterAll(): Unit = { - mongodProcess.stop() - mongodExecutable.stop() - - super.afterAll() - } - -} diff --git a/instrumentation/kamon-mongo/src/test/scala/kamon/instrumentation/mongo/EmbeddedMongoTest.scala b/instrumentation/kamon-mongo/src/test/scala/kamon/instrumentation/mongo/EmbeddedMongoTest.scala deleted file mode 100644 index 45f803824..000000000 --- a/instrumentation/kamon-mongo/src/test/scala/kamon/instrumentation/mongo/EmbeddedMongoTest.scala +++ /dev/null @@ -1,49 +0,0 @@ -package kamon.instrumentation.mongo - -import com.mongodb.client.{MongoClient => SyncMongoClient, MongoClients => SyncMongoClients} -import com.mongodb.reactivestreams.client.{MongoClient => ReactiveMongoClient} -import de.flapdoodle.embed.mongo.config.{MongodConfigBuilder, Net} -import de.flapdoodle.embed.mongo.distribution.Version -import de.flapdoodle.embed.mongo.{MongodExecutable, MongodProcess, MongodStarter} -import org.mongodb.scala.{MongoClient => ScalaMongoClient} -import org.scalatest.BeforeAndAfterAll -import org.scalatest.matchers.should.Matchers -import org.scalatest.wordspec.AnyWordSpec - -abstract class EmbeddedMongoTest(port: Int) extends AnyWordSpec with Matchers with BeforeAndAfterAll { - - private val starter = MongodStarter.getDefaultInstance() - private var mongodExecutable: MongodExecutable = _ - private var mongodProcess: MongodProcess = _ - - protected def reactiveClient(): ReactiveMongoClient = { - ??? - } - - protected def syncClient(): SyncMongoClient = { - SyncMongoClients.create(s"mongodb://localhost:${port}") - } - - protected def scalaClient(): ScalaMongoClient = { - ScalaMongoClient(s"mongodb://localhost:${port}") - } - - override protected def beforeAll(): Unit = { - super.beforeAll() - - mongodExecutable = starter.prepare(new MongodConfigBuilder() - .version(Version.Main.V4_0) - .net(new Net(port, false)) - .build()) - - mongodProcess = mongodExecutable.start() - } - - override protected def afterAll(): Unit = { - mongodProcess.stop() - mongodExecutable.stop() - - super.afterAll() - } - -} diff --git a/instrumentation/kamon-lagom/src/main/resources/play/reference-overrides.conf b/instrumentation/lagom/src/main/resources/play/reference-overrides.conf similarity index 100% rename from instrumentation/kamon-lagom/src/main/resources/play/reference-overrides.conf rename to instrumentation/lagom/src/main/resources/play/reference-overrides.conf diff --git a/instrumentation/kamon-lagom/src/main/scala/kamon/instrumentation/lagom/CircuitBreakerMetricsProviderImpl.scala b/instrumentation/lagom/src/main/scala/kamon/instrumentation/lagom/CircuitBreakerMetricsProviderImpl.scala similarity index 100% rename from instrumentation/kamon-lagom/src/main/scala/kamon/instrumentation/lagom/CircuitBreakerMetricsProviderImpl.scala rename to instrumentation/lagom/src/main/scala/kamon/instrumentation/lagom/CircuitBreakerMetricsProviderImpl.scala diff --git a/instrumentation/kamon-lagom/src/main/scala/kamon/instrumentation/lagom/LagomMetrics.scala b/instrumentation/lagom/src/main/scala/kamon/instrumentation/lagom/LagomMetrics.scala similarity index 100% rename from instrumentation/kamon-lagom/src/main/scala/kamon/instrumentation/lagom/LagomMetrics.scala rename to instrumentation/lagom/src/main/scala/kamon/instrumentation/lagom/LagomMetrics.scala diff --git a/instrumentation/kamon-logback/src/main/resources/reference.conf b/instrumentation/logback/src/main/resources/reference.conf similarity index 100% rename from instrumentation/kamon-logback/src/main/resources/reference.conf rename to instrumentation/logback/src/main/resources/reference.conf diff --git a/instrumentation/kamon-logback/src/main/scala/kamon/instrumentation/logback/LogbackInstrumentation.scala b/instrumentation/logback/src/main/scala/kamon/instrumentation/logback/LogbackInstrumentation.scala similarity index 100% rename from instrumentation/kamon-logback/src/main/scala/kamon/instrumentation/logback/LogbackInstrumentation.scala rename to instrumentation/logback/src/main/scala/kamon/instrumentation/logback/LogbackInstrumentation.scala diff --git a/instrumentation/kamon-logback/src/main/scala/kamon/instrumentation/logback/LogbackMetrics.scala b/instrumentation/logback/src/main/scala/kamon/instrumentation/logback/LogbackMetrics.scala similarity index 100% rename from instrumentation/kamon-logback/src/main/scala/kamon/instrumentation/logback/LogbackMetrics.scala rename to instrumentation/logback/src/main/scala/kamon/instrumentation/logback/LogbackMetrics.scala diff --git a/instrumentation/kamon-logback/src/main/scala/kamon/instrumentation/logback/tools/ContextEntryConverter.scala b/instrumentation/logback/src/main/scala/kamon/instrumentation/logback/tools/ContextEntryConverter.scala similarity index 100% rename from instrumentation/kamon-logback/src/main/scala/kamon/instrumentation/logback/tools/ContextEntryConverter.scala rename to instrumentation/logback/src/main/scala/kamon/instrumentation/logback/tools/ContextEntryConverter.scala diff --git a/instrumentation/kamon-logback/src/main/scala/kamon/instrumentation/logback/tools/ContextTagConverter.scala b/instrumentation/logback/src/main/scala/kamon/instrumentation/logback/tools/ContextTagConverter.scala similarity index 100% rename from instrumentation/kamon-logback/src/main/scala/kamon/instrumentation/logback/tools/ContextTagConverter.scala rename to instrumentation/logback/src/main/scala/kamon/instrumentation/logback/tools/ContextTagConverter.scala diff --git a/instrumentation/kamon-logback/src/main/scala/kamon/instrumentation/logback/tools/EntriesCounterAppender.scala b/instrumentation/logback/src/main/scala/kamon/instrumentation/logback/tools/EntriesCounterAppender.scala similarity index 100% rename from instrumentation/kamon-logback/src/main/scala/kamon/instrumentation/logback/tools/EntriesCounterAppender.scala rename to instrumentation/logback/src/main/scala/kamon/instrumentation/logback/tools/EntriesCounterAppender.scala diff --git a/instrumentation/kamon-logback/src/main/scala/kamon/instrumentation/logback/tools/SpanIDConverter.scala b/instrumentation/logback/src/main/scala/kamon/instrumentation/logback/tools/SpanIDConverter.scala similarity index 100% rename from instrumentation/kamon-logback/src/main/scala/kamon/instrumentation/logback/tools/SpanIDConverter.scala rename to instrumentation/logback/src/main/scala/kamon/instrumentation/logback/tools/SpanIDConverter.scala diff --git a/instrumentation/kamon-logback/src/main/scala/kamon/instrumentation/logback/tools/SpanOperationNameConverter.scala b/instrumentation/logback/src/main/scala/kamon/instrumentation/logback/tools/SpanOperationNameConverter.scala similarity index 100% rename from instrumentation/kamon-logback/src/main/scala/kamon/instrumentation/logback/tools/SpanOperationNameConverter.scala rename to instrumentation/logback/src/main/scala/kamon/instrumentation/logback/tools/SpanOperationNameConverter.scala diff --git a/instrumentation/kamon-logback/src/main/scala/kamon/instrumentation/logback/tools/TraceIDConverter.scala b/instrumentation/logback/src/main/scala/kamon/instrumentation/logback/tools/TraceIDConverter.scala similarity index 100% rename from instrumentation/kamon-logback/src/main/scala/kamon/instrumentation/logback/tools/TraceIDConverter.scala rename to instrumentation/logback/src/main/scala/kamon/instrumentation/logback/tools/TraceIDConverter.scala diff --git a/instrumentation/kamon-logback/src/test/java/kamon/logback/util/LogbackConfigurator.java b/instrumentation/logback/src/test/java/kamon/logback/util/LogbackConfigurator.java similarity index 100% rename from instrumentation/kamon-logback/src/test/java/kamon/logback/util/LogbackConfigurator.java rename to instrumentation/logback/src/test/java/kamon/logback/util/LogbackConfigurator.java diff --git a/instrumentation/kamon-logback/src/test/resources/reference.conf b/instrumentation/logback/src/test/resources/reference.conf similarity index 100% rename from instrumentation/kamon-logback/src/test/resources/reference.conf rename to instrumentation/logback/src/test/resources/reference.conf diff --git a/instrumentation/kamon-logback/src/test/scala/kamon/instrumentation/logback/LogbackEntriesCounterAppenderSpec.scala b/instrumentation/logback/src/test/scala/kamon/instrumentation/logback/LogbackEntriesCounterAppenderSpec.scala similarity index 100% rename from instrumentation/kamon-logback/src/test/scala/kamon/instrumentation/logback/LogbackEntriesCounterAppenderSpec.scala rename to instrumentation/logback/src/test/scala/kamon/instrumentation/logback/LogbackEntriesCounterAppenderSpec.scala diff --git a/instrumentation/kamon-logback/src/test/scala/kamon/instrumentation/logback/LogbackMdcCopyingSpec.scala b/instrumentation/logback/src/test/scala/kamon/instrumentation/logback/LogbackMdcCopyingSpec.scala similarity index 100% rename from instrumentation/kamon-logback/src/test/scala/kamon/instrumentation/logback/LogbackMdcCopyingSpec.scala rename to instrumentation/logback/src/test/scala/kamon/instrumentation/logback/LogbackMdcCopyingSpec.scala diff --git a/instrumentation/kamon-logback/src/test/scala/kamon/instrumentation/logback/LogbackMemoryAppender.scala b/instrumentation/logback/src/test/scala/kamon/instrumentation/logback/LogbackMemoryAppender.scala similarity index 100% rename from instrumentation/kamon-logback/src/test/scala/kamon/instrumentation/logback/LogbackMemoryAppender.scala rename to instrumentation/logback/src/test/scala/kamon/instrumentation/logback/LogbackMemoryAppender.scala diff --git a/instrumentation/kamon-logback/src/test/scala/kamon/instrumentation/logback/package.scala b/instrumentation/logback/src/test/scala/kamon/instrumentation/logback/package.scala similarity index 100% rename from instrumentation/kamon-logback/src/test/scala/kamon/instrumentation/logback/package.scala rename to instrumentation/logback/src/test/scala/kamon/instrumentation/logback/package.scala diff --git a/instrumentation/kamon-mongo/src/main/java/kamon/instrumentation/mongo/AsyncBatchCursorGetMoreAdvice.java b/instrumentation/mongo/src/main/java/kamon/instrumentation/mongo/AsyncBatchCursorGetMoreAdvice.java similarity index 100% rename from instrumentation/kamon-mongo/src/main/java/kamon/instrumentation/mongo/AsyncBatchCursorGetMoreAdvice.java rename to instrumentation/mongo/src/main/java/kamon/instrumentation/mongo/AsyncBatchCursorGetMoreAdvice.java diff --git a/instrumentation/kamon-mongo/src/main/java/kamon/instrumentation/mongo/BatchCursorGetMoreAdvice.java b/instrumentation/mongo/src/main/java/kamon/instrumentation/mongo/BatchCursorGetMoreAdvice.java similarity index 100% rename from instrumentation/kamon-mongo/src/main/java/kamon/instrumentation/mongo/BatchCursorGetMoreAdvice.java rename to instrumentation/mongo/src/main/java/kamon/instrumentation/mongo/BatchCursorGetMoreAdvice.java diff --git a/instrumentation/kamon-mongo/src/main/java/kamon/instrumentation/mongo/ExecuteAsyncOperationAdvice.java b/instrumentation/mongo/src/main/java/kamon/instrumentation/mongo/ExecuteAsyncOperationAdvice.java similarity index 100% rename from instrumentation/kamon-mongo/src/main/java/kamon/instrumentation/mongo/ExecuteAsyncOperationAdvice.java rename to instrumentation/mongo/src/main/java/kamon/instrumentation/mongo/ExecuteAsyncOperationAdvice.java diff --git a/instrumentation/kamon-mongo/src/main/java/kamon/instrumentation/mongo/ExecuteOperationAdvice.java b/instrumentation/mongo/src/main/java/kamon/instrumentation/mongo/ExecuteOperationAdvice.java similarity index 100% rename from instrumentation/kamon-mongo/src/main/java/kamon/instrumentation/mongo/ExecuteOperationAdvice.java rename to instrumentation/mongo/src/main/java/kamon/instrumentation/mongo/ExecuteOperationAdvice.java diff --git a/instrumentation/kamon-mongo/src/main/resources/reference.conf b/instrumentation/mongo/src/main/resources/reference.conf similarity index 100% rename from instrumentation/kamon-mongo/src/main/resources/reference.conf rename to instrumentation/mongo/src/main/resources/reference.conf diff --git a/instrumentation/kamon-mongo/src/main/scala/kamon/instrumentation/mongo/MongoClientInstrumentation.scala b/instrumentation/mongo/src/main/scala/kamon/instrumentation/mongo/MongoClientInstrumentation.scala similarity index 100% rename from instrumentation/kamon-mongo/src/main/scala/kamon/instrumentation/mongo/MongoClientInstrumentation.scala rename to instrumentation/mongo/src/main/scala/kamon/instrumentation/mongo/MongoClientInstrumentation.scala diff --git a/instrumentation/kamon-mongo-legacy/src/test/resources/application.conf b/instrumentation/mongo/src/test/resources/application.conf similarity index 100% rename from instrumentation/kamon-mongo-legacy/src/test/resources/application.conf rename to instrumentation/mongo/src/test/resources/application.conf diff --git a/instrumentation/mongo/src/test/resources/logback.xml b/instrumentation/mongo/src/test/resources/logback.xml new file mode 100644 index 000000000..b455d386a --- /dev/null +++ b/instrumentation/mongo/src/test/resources/logback.xml @@ -0,0 +1,14 @@ + + + + + + + %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n + + + + + + + diff --git a/instrumentation/kamon-mongo-legacy/src/test/scala/kamon/instrumentation/mongo/MongoScalaDriverInstrumentationSpec.scala b/instrumentation/mongo/src/test/scala/kamon/instrumentation/mongo/MongoScalaDriverInstrumentationSpec.scala similarity index 95% rename from instrumentation/kamon-mongo-legacy/src/test/scala/kamon/instrumentation/mongo/MongoScalaDriverInstrumentationSpec.scala rename to instrumentation/mongo/src/test/scala/kamon/instrumentation/mongo/MongoScalaDriverInstrumentationSpec.scala index c09c3b153..e12613b4b 100644 --- a/instrumentation/kamon-mongo-legacy/src/test/scala/kamon/instrumentation/mongo/MongoScalaDriverInstrumentationSpec.scala +++ b/instrumentation/mongo/src/test/scala/kamon/instrumentation/mongo/MongoScalaDriverInstrumentationSpec.scala @@ -4,19 +4,34 @@ import kamon.tag.Lookups._ import kamon.testkit.{InitAndStopKamonAfterAll, TestSpanReporter} import org.mongodb.scala._ import org.mongodb.scala.model.{Accumulators, Aggregates, Filters, Updates} -import org.scalatest.OptionValues +import org.scalatest.{BeforeAndAfterAll, OptionValues} import org.scalatest.concurrent.Eventually import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpec +import org.testcontainers.mongodb.MongoDBContainer import scala.concurrent.Await import scala.concurrent.duration._ -class MongoScalaDriverInstrumentationSpec extends EmbeddedMongoTest(port = 4445) with Matchers with TestSpanReporter - with Eventually with OptionValues with InitAndStopKamonAfterAll { +class MongoScalaDriverInstrumentationSpec extends AnyWordSpec with Matchers with TestSpanReporter + with Eventually with OptionValues with InitAndStopKamonAfterAll with BeforeAndAfterAll { - val client = scalaClient() - val tools = client.getDatabase("test").getCollection("tools") + val mongoContainer = new MongoDBContainer("mongo:4.2") + var client: MongoClient = _ + var tools: MongoCollection[Document] = _ + + override protected def beforeAll(): Unit = { + super.beforeAll() + mongoContainer.start() + client = MongoClient(mongoContainer.getConnectionString()) + tools = client.getDatabase("test").getCollection("tools") + } + + override protected def afterAll(): Unit = { + if (client != null) client.close() + mongoContainer.stop() + super.afterAll() + } "the MongoDB Driver Instrumentation" should { diff --git a/instrumentation/kamon-mongo/src/test/scala/kamon/instrumentation/mongo/MongoSyncDriverInstrumentationSpec.scala b/instrumentation/mongo/src/test/scala/kamon/instrumentation/mongo/MongoSyncDriverInstrumentationSpec.scala similarity index 94% rename from instrumentation/kamon-mongo/src/test/scala/kamon/instrumentation/mongo/MongoSyncDriverInstrumentationSpec.scala rename to instrumentation/mongo/src/test/scala/kamon/instrumentation/mongo/MongoSyncDriverInstrumentationSpec.scala index 63cd36fbe..cf8b40780 100644 --- a/instrumentation/kamon-mongo/src/test/scala/kamon/instrumentation/mongo/MongoSyncDriverInstrumentationSpec.scala +++ b/instrumentation/mongo/src/test/scala/kamon/instrumentation/mongo/MongoSyncDriverInstrumentationSpec.scala @@ -1,21 +1,38 @@ package kamon.instrumentation.mongo +import com.mongodb.client.MongoClients import com.mongodb.client.model.{Accumulators, Aggregates, Filters} import kamon.tag.Lookups._ import kamon.testkit.{InitAndStopKamonAfterAll, TestSpanReporter} import org.bson.Document -import org.scalatest.OptionValues +import org.scalatest.{BeforeAndAfterAll, OptionValues} import org.scalatest.concurrent.Eventually import org.scalatest.matchers.should.Matchers +import org.scalatest.wordspec.AnyWordSpec +import org.testcontainers.mongodb.MongoDBContainer import scala.concurrent.duration._ import java.util -class MongoSyncDriverInstrumentationSpec extends EmbeddedMongoTest(port = 4445) with Matchers with TestSpanReporter - with Eventually with OptionValues with InitAndStopKamonAfterAll { +class MongoSyncDriverInstrumentationSpec extends AnyWordSpec with Matchers with TestSpanReporter + with Eventually with OptionValues with InitAndStopKamonAfterAll with BeforeAndAfterAll { - val client = syncClient() - val tools = client.getDatabase("test").getCollection("tools") + val mongoContainer = new MongoDBContainer("mongo:4.2") + var client: com.mongodb.client.MongoClient = _ + var tools: com.mongodb.client.MongoCollection[Document] = _ + + override protected def beforeAll(): Unit = { + super.beforeAll() + mongoContainer.start() + client = MongoClients.create(mongoContainer.getConnectionString()) + tools = client.getDatabase("test").getCollection("tools") + } + + override protected def afterAll(): Unit = { + if (client != null) client.close() + mongoContainer.stop() + super.afterAll() + } "the MongoDB Driver Instrumentation" should { diff --git a/instrumentation/kamon-mongo-legacy/Readme.MD b/instrumentation/mongoLegacy/Readme.MD similarity index 100% rename from instrumentation/kamon-mongo-legacy/Readme.MD rename to instrumentation/mongoLegacy/Readme.MD diff --git a/instrumentation/kamon-mongo-legacy/src/main/java/kamon/instrumentation/legacy/mongo/AsyncBatchCursorGetMoreAdvice.java b/instrumentation/mongoLegacy/src/main/java/kamon/instrumentation/legacy/mongo/AsyncBatchCursorGetMoreAdvice.java similarity index 100% rename from instrumentation/kamon-mongo-legacy/src/main/java/kamon/instrumentation/legacy/mongo/AsyncBatchCursorGetMoreAdvice.java rename to instrumentation/mongoLegacy/src/main/java/kamon/instrumentation/legacy/mongo/AsyncBatchCursorGetMoreAdvice.java diff --git a/instrumentation/kamon-mongo-legacy/src/main/java/kamon/instrumentation/legacy/mongo/BatchCursorGetMoreAdvice.java b/instrumentation/mongoLegacy/src/main/java/kamon/instrumentation/legacy/mongo/BatchCursorGetMoreAdvice.java similarity index 100% rename from instrumentation/kamon-mongo-legacy/src/main/java/kamon/instrumentation/legacy/mongo/BatchCursorGetMoreAdvice.java rename to instrumentation/mongoLegacy/src/main/java/kamon/instrumentation/legacy/mongo/BatchCursorGetMoreAdvice.java diff --git a/instrumentation/kamon-mongo-legacy/src/main/java/kamon/instrumentation/legacy/mongo/ExecuteAsyncOperationAdvice.java b/instrumentation/mongoLegacy/src/main/java/kamon/instrumentation/legacy/mongo/ExecuteAsyncOperationAdvice.java similarity index 100% rename from instrumentation/kamon-mongo-legacy/src/main/java/kamon/instrumentation/legacy/mongo/ExecuteAsyncOperationAdvice.java rename to instrumentation/mongoLegacy/src/main/java/kamon/instrumentation/legacy/mongo/ExecuteAsyncOperationAdvice.java diff --git a/instrumentation/kamon-mongo-legacy/src/main/java/kamon/instrumentation/legacy/mongo/ExecuteOperationAdvice.java b/instrumentation/mongoLegacy/src/main/java/kamon/instrumentation/legacy/mongo/ExecuteOperationAdvice.java similarity index 100% rename from instrumentation/kamon-mongo-legacy/src/main/java/kamon/instrumentation/legacy/mongo/ExecuteOperationAdvice.java rename to instrumentation/mongoLegacy/src/main/java/kamon/instrumentation/legacy/mongo/ExecuteOperationAdvice.java diff --git a/instrumentation/kamon-mongo-legacy/src/main/resources/reference.conf b/instrumentation/mongoLegacy/src/main/resources/reference.conf similarity index 100% rename from instrumentation/kamon-mongo-legacy/src/main/resources/reference.conf rename to instrumentation/mongoLegacy/src/main/resources/reference.conf diff --git a/instrumentation/kamon-mongo-legacy/src/main/scala/kamon/instrumentation/legacy/mongo/MongoClientInstrumentation.scala b/instrumentation/mongoLegacy/src/main/scala/kamon/instrumentation/legacy/mongo/MongoClientInstrumentation.scala similarity index 100% rename from instrumentation/kamon-mongo-legacy/src/main/scala/kamon/instrumentation/legacy/mongo/MongoClientInstrumentation.scala rename to instrumentation/mongoLegacy/src/main/scala/kamon/instrumentation/legacy/mongo/MongoClientInstrumentation.scala diff --git a/instrumentation/kamon-mongo/src/test/resources/application.conf b/instrumentation/mongoLegacy/src/test/resources/application.conf similarity index 100% rename from instrumentation/kamon-mongo/src/test/resources/application.conf rename to instrumentation/mongoLegacy/src/test/resources/application.conf diff --git a/instrumentation/mongoLegacy/src/test/resources/logback.xml b/instrumentation/mongoLegacy/src/test/resources/logback.xml new file mode 100644 index 000000000..787a6a607 --- /dev/null +++ b/instrumentation/mongoLegacy/src/test/resources/logback.xml @@ -0,0 +1,15 @@ + + + + + + + %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n + + + + + + + + diff --git a/instrumentation/kamon-mongo/src/test/scala/kamon/instrumentation/mongo/MongoScalaDriverInstrumentationSpec.scala b/instrumentation/mongoLegacy/src/test/scala/kamon/instrumentation/mongo/MongoScalaDriverInstrumentationSpec.scala similarity index 95% rename from instrumentation/kamon-mongo/src/test/scala/kamon/instrumentation/mongo/MongoScalaDriverInstrumentationSpec.scala rename to instrumentation/mongoLegacy/src/test/scala/kamon/instrumentation/mongo/MongoScalaDriverInstrumentationSpec.scala index c09c3b153..2b4231e57 100644 --- a/instrumentation/kamon-mongo/src/test/scala/kamon/instrumentation/mongo/MongoScalaDriverInstrumentationSpec.scala +++ b/instrumentation/mongoLegacy/src/test/scala/kamon/instrumentation/mongo/MongoScalaDriverInstrumentationSpec.scala @@ -8,15 +8,31 @@ import org.scalatest.OptionValues import org.scalatest.concurrent.Eventually import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpec +import org.scalatest.BeforeAndAfterAll +import org.testcontainers.mongodb.MongoDBContainer import scala.concurrent.Await import scala.concurrent.duration._ -class MongoScalaDriverInstrumentationSpec extends EmbeddedMongoTest(port = 4445) with Matchers with TestSpanReporter - with Eventually with OptionValues with InitAndStopKamonAfterAll { +class MongoScalaDriverInstrumentationSpec extends AnyWordSpec with Matchers with TestSpanReporter + with Eventually with OptionValues with InitAndStopKamonAfterAll with BeforeAndAfterAll { - val client = scalaClient() - val tools = client.getDatabase("test").getCollection("tools") + val mongoContainer = new MongoDBContainer("mongo:4.0") + var client: MongoClient = _ + var tools: MongoCollection[Document] = _ + + override protected def beforeAll(): Unit = { + super.beforeAll() + mongoContainer.start() + client = MongoClient(mongoContainer.getConnectionString()) + tools = client.getDatabase("test").getCollection("tools") + } + + override protected def afterAll(): Unit = { + if (client != null) client.close() + mongoContainer.stop() + super.afterAll() + } "the MongoDB Driver Instrumentation" should { diff --git a/instrumentation/kamon-mongo-legacy/src/test/scala/kamon/instrumentation/mongo/MongoSyncDriverInstrumentationSpec.scala b/instrumentation/mongoLegacy/src/test/scala/kamon/instrumentation/mongo/MongoSyncDriverInstrumentationSpec.scala similarity index 94% rename from instrumentation/kamon-mongo-legacy/src/test/scala/kamon/instrumentation/mongo/MongoSyncDriverInstrumentationSpec.scala rename to instrumentation/mongoLegacy/src/test/scala/kamon/instrumentation/mongo/MongoSyncDriverInstrumentationSpec.scala index 524207fe7..d060b441b 100644 --- a/instrumentation/kamon-mongo-legacy/src/test/scala/kamon/instrumentation/mongo/MongoSyncDriverInstrumentationSpec.scala +++ b/instrumentation/mongoLegacy/src/test/scala/kamon/instrumentation/mongo/MongoSyncDriverInstrumentationSpec.scala @@ -7,15 +7,32 @@ import org.bson.Document import org.scalatest.OptionValues import org.scalatest.concurrent.Eventually import org.scalatest.matchers.should.Matchers +import org.scalatest.wordspec.AnyWordSpec +import org.scalatest.BeforeAndAfterAll +import org.testcontainers.mongodb.MongoDBContainer import java.util import scala.concurrent.duration._ -class MongoSyncDriverInstrumentationSpec extends EmbeddedMongoTest(port = 4445) with Matchers with TestSpanReporter - with Eventually with OptionValues with InitAndStopKamonAfterAll { +class MongoSyncDriverInstrumentationSpec extends AnyWordSpec with Matchers with TestSpanReporter + with Eventually with OptionValues with InitAndStopKamonAfterAll with BeforeAndAfterAll { - val client = syncClient() - val tools = client.getDatabase("test").getCollection("tools") + val mongoContainer = new MongoDBContainer("mongo:4.0") + var client: com.mongodb.client.MongoClient = _ + var tools: com.mongodb.client.MongoCollection[Document] = _ + + override protected def beforeAll(): Unit = { + super.beforeAll() + mongoContainer.start() + client = com.mongodb.client.MongoClients.create(mongoContainer.getConnectionString()) + tools = client.getDatabase("test").getCollection("tools") + } + + override protected def afterAll(): Unit = { + if (client != null) client.close() + mongoContainer.stop() + super.afterAll() + } "the MongoDB Driver Instrumentation" should { diff --git a/instrumentation/kamon-okhttp/src/main/resources/reference.conf b/instrumentation/okHttp/src/main/resources/reference.conf similarity index 100% rename from instrumentation/kamon-okhttp/src/main/resources/reference.conf rename to instrumentation/okHttp/src/main/resources/reference.conf diff --git a/instrumentation/kamon-okhttp/src/main/scala/kamon/okhttp3/instrumentation/KamonOkHttpTracing.scala b/instrumentation/okHttp/src/main/scala/kamon/okhttp3/instrumentation/KamonOkHttpTracing.scala similarity index 100% rename from instrumentation/kamon-okhttp/src/main/scala/kamon/okhttp3/instrumentation/KamonOkHttpTracing.scala rename to instrumentation/okHttp/src/main/scala/kamon/okhttp3/instrumentation/KamonOkHttpTracing.scala diff --git a/instrumentation/kamon-okhttp/src/main/scala/kamon/okhttp3/instrumentation/KamonTracingInterceptor.scala b/instrumentation/okHttp/src/main/scala/kamon/okhttp3/instrumentation/KamonTracingInterceptor.scala similarity index 100% rename from instrumentation/kamon-okhttp/src/main/scala/kamon/okhttp3/instrumentation/KamonTracingInterceptor.scala rename to instrumentation/okHttp/src/main/scala/kamon/okhttp3/instrumentation/KamonTracingInterceptor.scala diff --git a/instrumentation/kamon-okhttp/src/main/scala/kamon/okhttp3/instrumentation/OkHttpInstrumentation.scala b/instrumentation/okHttp/src/main/scala/kamon/okhttp3/instrumentation/OkHttpInstrumentation.scala similarity index 100% rename from instrumentation/kamon-okhttp/src/main/scala/kamon/okhttp3/instrumentation/OkHttpInstrumentation.scala rename to instrumentation/okHttp/src/main/scala/kamon/okhttp3/instrumentation/OkHttpInstrumentation.scala diff --git a/instrumentation/kamon-okhttp/src/main/scala/kamon/okhttp3/instrumentation/OkHttpOperationNameGenerator.scala b/instrumentation/okHttp/src/main/scala/kamon/okhttp3/instrumentation/OkHttpOperationNameGenerator.scala similarity index 100% rename from instrumentation/kamon-okhttp/src/main/scala/kamon/okhttp3/instrumentation/OkHttpOperationNameGenerator.scala rename to instrumentation/okHttp/src/main/scala/kamon/okhttp3/instrumentation/OkHttpOperationNameGenerator.scala diff --git a/instrumentation/kamon-okhttp/src/test/resources/logback.xml b/instrumentation/okHttp/src/test/resources/logback.xml similarity index 100% rename from instrumentation/kamon-okhttp/src/test/resources/logback.xml rename to instrumentation/okHttp/src/test/resources/logback.xml diff --git a/instrumentation/kamon-okhttp/src/test/scala/kamon/okhttp3/instrumentation/OkHttpTracingInstrumentationSpec.scala b/instrumentation/okHttp/src/test/scala/kamon/okhttp3/instrumentation/OkHttpTracingInstrumentationSpec.scala similarity index 100% rename from instrumentation/kamon-okhttp/src/test/scala/kamon/okhttp3/instrumentation/OkHttpTracingInstrumentationSpec.scala rename to instrumentation/okHttp/src/test/scala/kamon/okhttp3/instrumentation/OkHttpTracingInstrumentationSpec.scala diff --git a/instrumentation/kamon-okhttp/src/test/scala/kamon/okhttp3/utils/JettySupport.scala b/instrumentation/okHttp/src/test/scala/kamon/okhttp3/utils/JettySupport.scala similarity index 100% rename from instrumentation/kamon-okhttp/src/test/scala/kamon/okhttp3/utils/JettySupport.scala rename to instrumentation/okHttp/src/test/scala/kamon/okhttp3/utils/JettySupport.scala diff --git a/instrumentation/kamon-opensearch/src/main/java/kamon/instrumentation/opensearch/AsyncOpensearchRestClientInstrumentation.java b/instrumentation/opensearch/src/main/java/kamon/instrumentation/opensearch/AsyncOpensearchRestClientInstrumentation.java similarity index 100% rename from instrumentation/kamon-opensearch/src/main/java/kamon/instrumentation/opensearch/AsyncOpensearchRestClientInstrumentation.java rename to instrumentation/opensearch/src/main/java/kamon/instrumentation/opensearch/AsyncOpensearchRestClientInstrumentation.java diff --git a/instrumentation/kamon-opensearch/src/main/java/kamon/instrumentation/opensearch/HighLevelOpensearchClientInstrumentation.java b/instrumentation/opensearch/src/main/java/kamon/instrumentation/opensearch/HighLevelOpensearchClientInstrumentation.java similarity index 100% rename from instrumentation/kamon-opensearch/src/main/java/kamon/instrumentation/opensearch/HighLevelOpensearchClientInstrumentation.java rename to instrumentation/opensearch/src/main/java/kamon/instrumentation/opensearch/HighLevelOpensearchClientInstrumentation.java diff --git a/instrumentation/kamon-opensearch/src/main/java/kamon/instrumentation/opensearch/SyncOpensearchRestClientInstrumentation.java b/instrumentation/opensearch/src/main/java/kamon/instrumentation/opensearch/SyncOpensearchRestClientInstrumentation.java similarity index 100% rename from instrumentation/kamon-opensearch/src/main/java/kamon/instrumentation/opensearch/SyncOpensearchRestClientInstrumentation.java rename to instrumentation/opensearch/src/main/java/kamon/instrumentation/opensearch/SyncOpensearchRestClientInstrumentation.java diff --git a/instrumentation/kamon-opensearch/src/main/resources/reference.conf b/instrumentation/opensearch/src/main/resources/reference.conf similarity index 100% rename from instrumentation/kamon-opensearch/src/main/resources/reference.conf rename to instrumentation/opensearch/src/main/resources/reference.conf diff --git a/instrumentation/kamon-opensearch/src/main/scala/kamon/instrumentation/opensearch/OSInstrumentation.scala b/instrumentation/opensearch/src/main/scala/kamon/instrumentation/opensearch/OSInstrumentation.scala similarity index 100% rename from instrumentation/kamon-opensearch/src/main/scala/kamon/instrumentation/opensearch/OSInstrumentation.scala rename to instrumentation/opensearch/src/main/scala/kamon/instrumentation/opensearch/OSInstrumentation.scala diff --git a/instrumentation/kamon-opensearch/src/main/scala/kamon/instrumentation/opensearch/RequestNameConverter.scala b/instrumentation/opensearch/src/main/scala/kamon/instrumentation/opensearch/RequestNameConverter.scala similarity index 100% rename from instrumentation/kamon-opensearch/src/main/scala/kamon/instrumentation/opensearch/RequestNameConverter.scala rename to instrumentation/opensearch/src/main/scala/kamon/instrumentation/opensearch/RequestNameConverter.scala diff --git a/instrumentation/kamon-opensearch/src/test/resources/application.conf b/instrumentation/opensearch/src/test/resources/application.conf similarity index 100% rename from instrumentation/kamon-opensearch/src/test/resources/application.conf rename to instrumentation/opensearch/src/test/resources/application.conf diff --git a/instrumentation/kamon-opensearch/src/test/resources/logback.xml b/instrumentation/opensearch/src/test/resources/logback.xml similarity index 100% rename from instrumentation/kamon-opensearch/src/test/resources/logback.xml rename to instrumentation/opensearch/src/test/resources/logback.xml diff --git a/instrumentation/kamon-opensearch/src/test/scala/kamon/instrumentation/OpenSearchInstrumentationTest.scala b/instrumentation/opensearch/src/test/scala/kamon/instrumentation/OpenSearchInstrumentationTest.scala similarity index 84% rename from instrumentation/kamon-opensearch/src/test/scala/kamon/instrumentation/OpenSearchInstrumentationTest.scala rename to instrumentation/opensearch/src/test/scala/kamon/instrumentation/OpenSearchInstrumentationTest.scala index 36bb96f96..13607ec5b 100644 --- a/instrumentation/kamon-opensearch/src/test/scala/kamon/instrumentation/OpenSearchInstrumentationTest.scala +++ b/instrumentation/opensearch/src/test/scala/kamon/instrumentation/OpenSearchInstrumentationTest.scala @@ -1,6 +1,5 @@ package kamon.instrumentation -import com.dimafeng.testcontainers.{GenericContainer, ForAllTestContainer} import kamon.tag.Lookups.plain import kamon.testkit.{InitAndStopKamonAfterAll, Reconfigure, TestSpanReporter} import org.apache.http.HttpHost @@ -11,7 +10,8 @@ import org.scalatest.concurrent.Eventually import org.scalatest.matchers.should.Matchers import org.scalatest.time.SpanSugar import org.scalatest.wordspec.AnyWordSpec -import org.scalatest.OptionValues +import org.scalatest.{BeforeAndAfterAll, OptionValues} +import org.testcontainers.containers.GenericContainer import org.testcontainers.containers.wait.strategy.Wait class OpenSearchInstrumentationTest @@ -23,7 +23,7 @@ class OpenSearchInstrumentationTest with OptionValues with TestSpanReporter with InitAndStopKamonAfterAll - with ForAllTestContainer { + with BeforeAndAfterAll { val endpointTag = "opensearch.http.endpoint" val methodTag = "opensearch.http.method" @@ -86,25 +86,27 @@ class OpenSearchInstrumentationTest } } - override val container: GenericContainer = GenericContainer( - "opensearchproject/opensearch:1.3.14", - exposedPorts = Seq(9200), - env = Map("discovery.type" -> "single-node", "plugins.security.disabled" -> "true"), - waitStrategy = Wait.forHttp("/_cluster/health") - ) + val container = new GenericContainer("opensearchproject/opensearch:1.3.14") var client: RestClient = _ var highLevelClient: RestHighLevelClient = _ override protected def beforeAll(): Unit = { super.beforeAll() + + container.addExposedPort(9200) + container.addEnv("discovery.type", "single-node") + container.addEnv("plugins.security.disabled", "true") + container.setWaitStrategy(Wait.forHttp("/_cluster/health")) container.start() + val hostAddress = s"${container.getHost}:${container.getMappedPort(9200)}" + client = RestClient - .builder(HttpHost.create(s"${container.host}:${container.mappedPort(9200)}")) + .builder(HttpHost.create(hostAddress)) .build() highLevelClient = new RestHighLevelClient( - RestClient.builder(HttpHost.create(s"${container.host}:${container.mappedPort(9200)}")) + RestClient.builder(HttpHost.create(hostAddress)) ) } diff --git a/instrumentation/package.mill b/instrumentation/package.mill new file mode 100644 index 000000000..ffb87475c --- /dev/null +++ b/instrumentation/package.mill @@ -0,0 +1,839 @@ +package build.instrumentation + +import mill.*, scalalib.*, publish.*, build.* +import mill.javalib.JavaModule + +/** Java-only annotation API module - no Scala dependency */ +object annotationApi extends JavaModule with SonatypeCentralPublishModule { + + override def artifactName = "kamon-annotation-api" + + def publishVersion: T[String] = com.goyeau.mill.git.GitVersionModule.version()() + + def pomSettings = PomSettings( + description = "Kamon Annotation API", + organization = "io.kamon", + url = "https://github.com/kamon-io/kamon", + licenses = Seq(License.MIT), + versionControl = VersionControl.github("kamon-io", "kamon"), + developers = Seq( + Developer("Ivan", "Topolnjak", "https://github.com/ivantopo"), + Developer("Diego", "Parra", "https://github.com/dpsoft") + ) + ) + + def javacOptions = Seq("-Xdoclint:none") +} + +object annotation extends Cross[annotation](AllScalaVersions) +trait annotation extends KamonModule { + + override def artifactName = "kamon-annotation" + + def moduleDeps = Seq(core.core(crossValue), annotationApi) + + def compileMvnDeps = Seq( + Deps.kanelaAgent + ) + + // Dependencies to shade + def shadedMvnDeps = Seq( + Deps.caffeine, + Deps.glassfishEl + ) + + // Make shaded deps available at compile time + override def mandatoryMvnDeps = super.mandatoryMvnDeps() ++ shadedMvnDeps + + // Shading rules + override def shadingRules = super.shadingRules ++ Seq( + Assembly.Rule.Relocate("javax.el.**", "kamon.lib.@1"), + Assembly.Rule.Relocate("com.sun.el.**", "kamon.lib.@1"), + Assembly.Rule.Relocate("com.github.benmanes.**", "kamon.lib.@1"), + Assembly.Rule.Relocate("com.google.errorprone.**", "kamon.lib.@1"), + Assembly.Rule.Relocate("org.checkerframework.**", "kamon.lib.@1"), + Assembly.Rule.ExcludePattern("META-INF/maven.*") + ) + + // Use shaded JAR as the published artifact + override def jar: T[PathRef] = jarWithShadedDependencies + + object test extends TestWithKanelaAgent { + def moduleDeps = super.moduleDeps ++ Seq(core.testkit(crossValue)) + + def mvnDeps = Seq( + Deps.scalatest, + Deps.logbackClassic + ) + } +} + +object common extends Cross[common](AllScalaVersions) +trait common extends KamonModule { + + override def artifactName = "kamon-instrumentation-common" + + def moduleDeps = Seq(core.core(crossValue)) + + def compileMvnDeps = Seq( + Deps.kanelaAgent + ) + + object test extends TestWithKanelaAgent { + def moduleDeps = super.moduleDeps ++ Seq(core.testkit(crossValue)) + + def mvnDeps = Seq( + Deps.scalatest, + Deps.slf4jApi, + Deps.kanelaAgent + ) + } +} + +object executors extends Cross[executors](AllScalaVersions) +trait executors extends KamonModule { + + override def artifactName = "kamon-executors" + + def moduleDeps = Seq(core.core(crossValue), common(crossValue)) + + def compileMvnDeps = Seq( + Deps.kanelaAgent + ) + + object test extends TestWithKanelaAgent { + def moduleDeps = super.moduleDeps ++ Seq(core.testkit(crossValue)) + + def mvnDeps = Seq( + Deps.scalatest, + Deps.logbackClassic, + Deps.guava + ) + } +} + +object twitterFuture extends Cross[twitterFuture](Scala2Version) +trait twitterFuture extends KamonModule { + + override def artifactName = "kamon-twitter-future" + + def moduleDeps = Seq(core.core(crossValue), executors(crossValue)) + + def compileMvnDeps = Seq( + Deps.kanelaAgent, + Deps.twitterUtil + ) + + object test extends TestWithKanelaAgent { + def moduleDeps = super.moduleDeps ++ Seq(core.testkit(crossValue)) + + def mvnDeps = Seq( + Deps.scalatest, + Deps.logbackClassic, + Deps.twitterUtil + ) + } +} + +object scalazFuture extends Cross[scalazFuture](Scala2Version) +trait scalazFuture extends KamonModule { + + override def artifactName = "kamon-scalaz-future" + + def moduleDeps = Seq(core.core(crossValue), executors(crossValue)) + + def compileMvnDeps = Seq( + Deps.kanelaAgent, + Deps.scalazConcurrent + ) + + object test extends TestWithKanelaAgent { + def moduleDeps = super.moduleDeps ++ Seq(core.testkit(crossValue)) + + def mvnDeps = Seq( + Deps.scalatest, + Deps.logbackClassic, + Deps.scalazConcurrent + ) + } +} + +object catsIo extends Cross[catsIo](Scala2Version) +trait catsIo extends KamonModule { + + override def artifactName = "kamon-cats-io" + + def moduleDeps = Seq(core.core(crossValue), executors(crossValue)) + + def compileMvnDeps = Seq( + Deps.kanelaAgent, + Deps.catsEffect2 + ) + + object test extends TestWithKanelaAgent { + def moduleDeps = super.moduleDeps ++ Seq(core.testkit(crossValue)) + + def mvnDeps = Seq( + Deps.scalatest, + Deps.logbackClassic, + Deps.catsEffect2 + ) + } +} + +object catsIo3 extends Cross[catsIo3](AllScalaVersions) +trait catsIo3 extends KamonModule { + + override def artifactName = "kamon-cats-io-3" + + def moduleDeps = Seq(core.core(crossValue), executors(crossValue)) + + def compileMvnDeps = Seq( + Deps.kanelaAgent, + Deps.catsEffect3 + ) + + object test extends TestWithKanelaAgent { + def moduleDeps = super.moduleDeps ++ Seq(core.testkit(crossValue)) + + def mvnDeps = Seq( + Deps.scalatest, + Deps.logbackClassic, + Deps.catsEffect3 + ) + } +} + +object scalaFuture extends Cross[scalaFuture](AllScalaVersions) +trait scalaFuture extends KamonModule { + + override def artifactName = "kamon-scala-future" + + def moduleDeps = Seq(core.core(crossValue), executors(crossValue)) + + def compileMvnDeps = Seq( + Deps.kanelaAgent + ) + + object test extends TestWithKanelaAgent { + def moduleDeps = super.moduleDeps ++ Seq(core.testkit(crossValue)) + + def mvnDeps = Seq( + Deps.scalatest, + Deps.logbackClassic + ) + } +} + +object pekko extends Cross[pekko](AllScalaVersions) +trait pekko extends KamonModule { + + override def artifactName = "kamon-pekko" + + def moduleDeps = Seq(core.core(crossValue), common(crossValue), scalaFuture(crossValue)) + + def compileMvnDeps = Seq( + Deps.kanelaAgent, + Deps.pekkoActor, + Deps.pekkoRemote, + Deps.pekkoCluster, + Deps.pekkoClusterSharding, + Deps.pekkoProtobuf + ) + + object test extends TestWithKanelaAgent { + def moduleDeps = super.moduleDeps ++ Seq(core.testkit(crossValue)) + + def mvnDeps = Seq( + Deps.scalatest, + Deps.logbackClassic, + Deps.kanelaAgent, + Deps.pekkoActor, + Deps.pekkoTestkit, + Deps.pekkoSlf4j, + Deps.pekkoRemote, + Deps.pekkoCluster, + Deps.pekkoClusterSharding, + Deps.pekkoProtobuf + ) + } +} + +object pekkoHttp extends Cross[pekkoHttp](AllScalaVersions) +trait pekkoHttp extends KamonModule { + + override def artifactName = "kamon-pekko-http" + + def moduleDeps = Seq(core.core(crossValue), pekko(crossValue)) + + def compileMvnDeps = Seq( + Deps.kanelaAgent, + Deps.pekkoHttp, + Deps.pekkoStream + ) + + object test extends TestWithKanelaAgent { + def moduleDeps = super.moduleDeps ++ Seq(core.testkit(crossValue)) + + def mvnDeps = Seq( + Deps.scalatest, + Deps.logbackClassic, + Deps.slf4jApi, + Deps.slf4jNop, + Deps.okhttp, + Deps.pekkoActor, + Deps.pekkoStream, + Deps.pekkoHttpTestkit, + Deps.pekkoHttpJson4s, + Deps.json4sNative, + Deps.kanelaAgent + ) + } +} + +object pekkoGrpc extends Cross[pekkoGrpc](AllScalaVersions) +trait pekkoGrpc extends KamonModule { + + override def artifactName = "kamon-pekko-grpc" + + def moduleDeps = Seq(core.core(crossValue), pekkoHttp(crossValue)) + + def compileMvnDeps = Seq( + Deps.kanelaAgent, + Deps.pekkoHttp, + Deps.pekkoStream, + Deps.pekkoDiscovery, + Deps.scalaPbRuntime, + Deps.pekkoGrpcRuntime, + Deps.grpcStub + ) + + object test extends TestWithKanelaAgent { + def moduleDeps = super.moduleDeps ++ Seq(core.testkit(crossValue)) + + def mvnDeps = Seq( + Deps.scalatest, + Deps.slf4jApi, + Deps.logbackClassic, + Deps.kanelaAgent + ) + } +} + +object pekkoConnectorsKafka extends Cross[pekkoConnectorsKafka](AllScalaVersions) +trait pekkoConnectorsKafka extends KamonModule { + + override def artifactName = "kamon-pekko-connectors-kafka" + + def moduleDeps = Seq(core.core(crossValue), pekko(crossValue)) + + def compileMvnDeps = Seq( + Deps.kanelaAgent, + Deps.pekkoConnectorsKafka, + Deps.pekkoStream + ) + + object test extends TestWithKanelaAgent { + def moduleDeps = super.moduleDeps ++ Seq(core.testkit(crossValue)) + + def mvnDeps = Seq( + Deps.scalatest, + Deps.logbackClassic, + Deps.kanelaAgent + ) + } +} + +object akka extends Cross[akka](AllScalaVersions) +trait akka extends KamonModule { + + override def artifactName = "kamon-akka" + + def moduleDeps = Seq(core.core(crossValue), common(crossValue), scalaFuture(crossValue)) + + def compileMvnDeps = Seq( + Deps.kanelaAgent, + Deps.akkaActor, + Deps.akkaRemote, + Deps.akkaCluster, + Deps.akkaClusterSharding, + Deps.akkaProtobuf + ) + + object test extends TestWithKanelaAgent { + def moduleDeps = super.moduleDeps ++ Seq(core.testkit(crossValue)) + + def mvnDeps = Seq( + Deps.scalatest, + Deps.logbackClassic, + Deps.kanelaAgent, + Deps.akkaActor, + Deps.akkaTestkit, + Deps.akkaSlf4j, + Deps.akkaRemote, + Deps.akkaCluster, + Deps.akkaClusterSharding, + Deps.akkaProtobuf + ) + } +} + +object akkaHttp extends Cross[akkaHttp](AllScalaVersions) +trait akkaHttp extends KamonModule { + + override def artifactName = "kamon-akka-http" + + def moduleDeps = Seq(core.core(crossValue), akka(crossValue)) + + def compileMvnDeps = Seq( + Deps.kanelaAgent, + Deps.akkaHttp, + Deps.akkaHttp2Support, + Deps.akkaStream + ) + + object test extends TestWithKanelaAgent { + def moduleDeps = super.moduleDeps ++ Seq(core.testkit(crossValue)) + + def mvnDeps = Seq( + Deps.scalatest, + Deps.slf4jApi, + Deps.slf4jNop, + Deps.okhttp, + Deps.akkaHttp, + Deps.akkaStream, + Deps.akkaHttpTestkit, + Deps.akkaHttpJson4s, + Deps.json4sNative, + Deps.kanelaAgent + ) + } +} + +object akkaGrpc extends Cross[akkaGrpc](AllScalaVersions) +trait akkaGrpc extends KamonModule { + + override def artifactName = "kamon-akka-grpc" + + def moduleDeps = Seq(core.core(crossValue), akkaHttp(crossValue)) + + def compileMvnDeps = Seq( + Deps.kanelaAgent, + Deps.akkaHttp, + Deps.akkaHttp2Support, + Deps.akkaStream, + Deps.akkaDiscovery, + Deps.scalaPbRuntime, + Deps.akkaGrpcRuntime, + Deps.grpcStub + ) + + // Note: Tests require protobuf code generation from .proto files + // which is not currently set up in Mill. The main code compiles + // and the instrumentation works at runtime. +} + +object alpakkaKafka extends Cross[alpakkaKafka](Scala2Version) +trait alpakkaKafka extends KamonModule { + + override def artifactName = "kamon-alpakka-kafka" + + def moduleDeps = Seq(core.core(crossValue), akka(crossValue)) + + def compileMvnDeps = Seq( + Deps.kanelaAgent, + Deps.alpakkaKafka, + Deps.akkaStream + ) + + // No tests in this module +} + +object jdbc extends Cross[jdbc](AllScalaVersions) +trait jdbc extends KamonModule { + + override def artifactName = "kamon-jdbc" + + def moduleDeps = Seq(core.core(crossValue), executors(crossValue)) + + def compileMvnDeps = Seq( + Deps.jsqlparser, + Deps.kanelaAgent, + Deps.hikariCp, + Deps.mariadb, + Deps.slick(crossValue), + Deps.postgresql + ) + + object test extends TestWithKanelaAgent { + def moduleDeps = super.moduleDeps ++ Seq(core.testkit(crossValue)) + + def mvnDeps = Seq( + Deps.scalatest, + Deps.logbackClassic, + Deps.jsqlparser, // Needed by instrumentation at runtime + Deps.slickHikariCp(crossValue), + Deps.h2, + Deps.postgresql, + Deps.mysqlConnector, + Deps.sqliteJdbc, + Deps.awsJdbcWrapper, + Deps.testContainersPostgres, + Deps.testContainersMysql + ) + } +} + +object logback extends Cross[logback](AllScalaVersions) +trait logback extends KamonModule { + + override def artifactName = "kamon-logback" + + def moduleDeps = Seq(core.core(crossValue), common(crossValue)) + + def compileMvnDeps = Seq( + Deps.kanelaAgent, + Deps.logbackClassic + ) + + object test extends TestWithKanelaAgent { + def moduleDeps = super.moduleDeps ++ Seq(core.testkit(crossValue)) + + def mvnDeps = Seq( + Deps.scalatest, + Deps.logbackClassic, + Deps.kanelaAgent + ) + } +} + +object caffeine extends Cross[caffeine](AllScalaVersions) +trait caffeine extends KamonModule { + + override def artifactName = "kamon-caffeine" + + def moduleDeps = Seq(core.core(crossValue), common(crossValue)) + + def compileMvnDeps = Seq( + Deps.kanelaAgent, + Deps.caffeine + ) + + object test extends TestWithKanelaAgent { + def moduleDeps = super.moduleDeps ++ Seq(core.testkit(crossValue)) + + def mvnDeps = Seq( + Deps.scalatest, + Deps.logbackClassic, + Deps.caffeine, + Deps.kanelaAgent + ) + } +} + +object lagom extends Cross[lagom](Scala2Version) +trait lagom extends KamonModule { + + override def artifactName = "kamon-lagom" + + def moduleDeps = Seq(core.core(crossValue)) + + def compileMvnDeps = Seq( + Deps.lagomServer + ) +} + +object finagle extends Cross[finagle](Scala2Version) +trait finagle extends KamonModule { + + override def artifactName = "kamon-finagle" + + def moduleDeps = Seq(core.core(crossValue), common(crossValue)) + + def compileMvnDeps = Seq( + Deps.kanelaAgent, + Deps.finagleHttp + ) + + object test extends TestWithKanelaAgent { + def moduleDeps = super.moduleDeps ++ Seq(core.testkit(crossValue)) + + def mvnDeps = Seq( + Deps.scalatest, + Deps.logbackClassic, + Deps.finagleHttp, + Deps.bijectionUtil, + Deps.kanelaAgent + ) + } +} + +object redis extends Cross[redis](AllScalaVersions) +trait redis extends KamonModule { + + override def artifactName = "kamon-redis" + + def moduleDeps = Seq(core.core(crossValue), common(crossValue)) + + def compileMvnDeps = Seq( + Deps.kanelaAgent, + Deps.jedis, + Deps.lettuce, + Deps.rediscala + ) + + object test extends TestWithKanelaAgent { + def moduleDeps = super.moduleDeps ++ Seq(core.testkit(crossValue)) + + def mvnDeps = Seq( + Deps.scalatest, + Deps.logbackClassic, + Deps.jedis, + Deps.lettuce, + Deps.rediscala, + Deps.testContainers, + Deps.kanelaAgent + ) + } +} + +object mongo extends Cross[mongo](AllScalaVersions) +trait mongo extends KamonModule { + + override def artifactName = "kamon-mongo" + + def moduleDeps = Seq(core.core(crossValue), common(crossValue)) + + def compileMvnDeps = Seq( + Deps.kanelaAgent, + Deps.mongoDriverSync, + Deps.mongoScalaDriver(crossValue), + Deps.mongoDriverReactive + ) + + object test extends TestWithKanelaAgent { + def moduleDeps = super.moduleDeps ++ Seq(core.testkit(crossValue)) + + def mvnDeps = Seq( + Deps.scalatest, + Deps.logbackClassic, + Deps.mongoDriverSync, + Deps.mongoScalaDriver(crossValue), + Deps.mongoDriverReactive, + Deps.testContainersMongo, + Deps.kanelaAgent + ) + } +} + +object mongoLegacy extends Cross[mongoLegacy](Scala2Version) +trait mongoLegacy extends KamonModule { + + override def artifactName = "kamon-mongo-legacy" + + def moduleDeps = Seq(core.core(crossValue), common(crossValue)) + + def compileMvnDeps = Seq( + Deps.kanelaAgent, + Deps.mongoLegacyDriverSync, + Deps.mongoLegacyScalaDriver, + Deps.mongoLegacyDriverReactive + ) + + object test extends TestWithKanelaAgent { + def moduleDeps = super.moduleDeps ++ Seq(core.testkit(crossValue)) + + def mvnDeps = Seq( + Deps.scalatest, + Deps.logbackClassic, + Deps.mongoLegacyDriverSync, + Deps.mongoLegacyScalaDriver, + Deps.mongoLegacyDriverReactive, + Deps.testContainersMongo, + Deps.kanelaAgent + ) + } +} + +object okHttp extends Cross[okHttp](AllScalaVersions) +trait okHttp extends KamonModule { + + override def artifactName = "kamon-okhttp" + + def moduleDeps = Seq(core.core(crossValue), executors(crossValue)) + + def compileMvnDeps = Seq( + Deps.kanelaAgent, + Deps.okhttp + ) + + object test extends TestWithKanelaAgent { + def moduleDeps = super.moduleDeps ++ Seq(core.testkit(crossValue)) + + def mvnDeps = Seq( + Deps.scalatest, + Deps.logbackClassic, + Deps.okhttp, + Deps.jettyServer, + Deps.jettyServlet, + Deps.kanelaAgent + ) + } +} + +object elasticsearch extends Cross[elasticsearch](AllScalaVersions) +trait elasticsearch extends KamonModule { + + override def artifactName = "kamon-elasticsearch" + + def moduleDeps = Seq(core.core(crossValue), common(crossValue)) + + def compileMvnDeps = Seq( + Deps.kanelaAgent, + Deps.elasticsearchRestClient, + Deps.elasticsearchRestHighLevelClient + ) + + object test extends TestWithKanelaAgent { + def moduleDeps = super.moduleDeps ++ Seq(core.testkit(crossValue)) + + def mvnDeps = Seq( + Deps.scalatest, + Deps.logbackClassic, + Deps.elasticsearchRestClient, + Deps.elasticsearchRestHighLevelClient, + Deps.testContainersElasticsearch, + Deps.kanelaAgent + ) + } +} + +object opensearch extends Cross[opensearch](AllScalaVersions) +trait opensearch extends KamonModule { + + override def artifactName = "kamon-opensearch" + + def moduleDeps = Seq(core.core(crossValue), common(crossValue)) + + def compileMvnDeps = Seq( + Deps.kanelaAgent, + Deps.opensearchRestClient, + Deps.opensearchRestHighLevelClient + ) + + object test extends TestWithKanelaAgent { + def moduleDeps = super.moduleDeps ++ Seq(core.testkit(crossValue)) + + def mvnDeps = Seq( + Deps.scalatest, + Deps.logbackClassic, + Deps.opensearchRestClient, + Deps.opensearchRestHighLevelClient, + Deps.testContainers, + Deps.kanelaAgent + ) + } +} + +object kafka extends Cross[kafka](AllScalaVersions) +trait kafka extends KamonModule { + + override def artifactName = "kamon-kafka" + + def moduleDeps = Seq(core.core(crossValue), executors(crossValue)) + + def compileMvnDeps = Seq( + Deps.kanelaAgent, + Deps.kafkaClients + ) + + object test extends TestWithKanelaAgent { + def moduleDeps = super.moduleDeps ++ Seq(core.testkit(crossValue)) + + def mvnDeps = Seq( + Deps.scalatest, + Deps.logbackClassic, + Deps.kafkaClients, + Deps.testContainersKafka, + Deps.kanelaAgent + ) + } +} + +object apacheCxf extends Cross[apacheCxf](AllScalaVersions) +trait apacheCxf extends KamonModule { + + override def artifactName = "kamon-apache-cxf" + + def moduleDeps = Seq(core.core(crossValue), executors(crossValue)) + + def compileMvnDeps = Seq( + Deps.kanelaAgent, + Deps.apacheCxfFrontendSimple, + Deps.slf4jApi + ) + + object test extends TestWithKanelaAgent { + def moduleDeps = super.moduleDeps ++ Seq(core.testkit(crossValue)) + + def mvnDeps = Seq( + Deps.scalatest, + Deps.logbackClassic, + Deps.apacheCxfFrontendSimple, + Deps.apacheCxfFrontendJaxws, + Deps.apacheCxfTransportsHttp, + Deps.jaxbApi, + Deps.mockServerClient, + Deps.testContainersMockServer, + Deps.kanelaAgent + ) + } +} + +object apacheHttpClient extends Cross[apacheHttpClient](AllScalaVersions) +trait apacheHttpClient extends KamonModule { + + override def artifactName = "kamon-apache-httpclient" + + def moduleDeps = Seq(core.core(crossValue), executors(crossValue)) + + def compileMvnDeps = Seq( + Deps.kanelaAgent, + Deps.apacheHttpClient, + Deps.slf4jApi + ) + + object test extends TestWithKanelaAgent { + def moduleDeps = super.moduleDeps ++ Seq(core.testkit(crossValue)) + + def mvnDeps = Seq( + Deps.scalatest, + Deps.logbackClassic, + Deps.apacheHttpClient, + Deps.mockServerClient, + Deps.testContainersMockServer, + Deps.kanelaAgent + ) + } +} + +object systemMetrics extends Cross[systemMetrics](AllScalaVersions) +trait systemMetrics extends KamonModule { + + override def artifactName = "kamon-system-metrics" + + def moduleDeps = Seq(core.core(crossValue)) + + def mvnDeps = Seq( + Deps.oshiCore + ) + + object test extends SbtTests with TestModule.ScalaTest { + def moduleDeps = super.moduleDeps ++ Seq(core.testkit(crossValue)) + + def mvnDeps = Seq( + Deps.scalatest, + Deps.logbackClassic + ) + } +} diff --git a/instrumentation/kamon-pekko/build.sbt b/instrumentation/pekko/build.sbt similarity index 100% rename from instrumentation/kamon-pekko/build.sbt rename to instrumentation/pekko/build.sbt diff --git a/instrumentation/kamon-pekko/src/main/java/kamon/instrumentation/pekko/instrumentations/ActorCellInvokeAdvice.java b/instrumentation/pekko/src/main/java/kamon/instrumentation/pekko/instrumentations/ActorCellInvokeAdvice.java similarity index 100% rename from instrumentation/kamon-pekko/src/main/java/kamon/instrumentation/pekko/instrumentations/ActorCellInvokeAdvice.java rename to instrumentation/pekko/src/main/java/kamon/instrumentation/pekko/instrumentations/ActorCellInvokeAdvice.java diff --git a/instrumentation/kamon-pekko/src/main/java/kamon/instrumentation/pekko/instrumentations/PekkoPrivateAccess.java b/instrumentation/pekko/src/main/java/kamon/instrumentation/pekko/instrumentations/PekkoPrivateAccess.java similarity index 100% rename from instrumentation/kamon-pekko/src/main/java/kamon/instrumentation/pekko/instrumentations/PekkoPrivateAccess.java rename to instrumentation/pekko/src/main/java/kamon/instrumentation/pekko/instrumentations/PekkoPrivateAccess.java diff --git a/instrumentation/kamon-pekko/src/main/java/kamon/instrumentation/pekko/instrumentations/SchedulerRunnableAdvice.java b/instrumentation/pekko/src/main/java/kamon/instrumentation/pekko/instrumentations/SchedulerRunnableAdvice.java similarity index 100% rename from instrumentation/kamon-pekko/src/main/java/kamon/instrumentation/pekko/instrumentations/SchedulerRunnableAdvice.java rename to instrumentation/pekko/src/main/java/kamon/instrumentation/pekko/instrumentations/SchedulerRunnableAdvice.java diff --git a/instrumentation/kamon-pekko/src/main/java/org/apache/pekko/actor/instrumentation/ReplaceWithAdvice.java b/instrumentation/pekko/src/main/java/org/apache/pekko/actor/instrumentation/ReplaceWithAdvice.java similarity index 100% rename from instrumentation/kamon-pekko/src/main/java/org/apache/pekko/actor/instrumentation/ReplaceWithAdvice.java rename to instrumentation/pekko/src/main/java/org/apache/pekko/actor/instrumentation/ReplaceWithAdvice.java diff --git a/instrumentation/kamon-pekko/src/main/java/pekko/remote/ContextAwareWireFormats_Pekko.java b/instrumentation/pekko/src/main/java/pekko/remote/ContextAwareWireFormats_Pekko.java similarity index 100% rename from instrumentation/kamon-pekko/src/main/java/pekko/remote/ContextAwareWireFormats_Pekko.java rename to instrumentation/pekko/src/main/java/pekko/remote/ContextAwareWireFormats_Pekko.java diff --git a/instrumentation/kamon-pekko/src/main/protobuf/ContainerFormats.proto b/instrumentation/pekko/src/main/protobuf/ContainerFormats.proto similarity index 100% rename from instrumentation/kamon-pekko/src/main/protobuf/ContainerFormats.proto rename to instrumentation/pekko/src/main/protobuf/ContainerFormats.proto diff --git a/instrumentation/kamon-pekko/src/main/protobuf/ContextAwareWireFormats.proto b/instrumentation/pekko/src/main/protobuf/ContextAwareWireFormats.proto similarity index 100% rename from instrumentation/kamon-pekko/src/main/protobuf/ContextAwareWireFormats.proto rename to instrumentation/pekko/src/main/protobuf/ContextAwareWireFormats.proto diff --git a/instrumentation/kamon-pekko/src/main/protobuf/WireFormats.proto b/instrumentation/pekko/src/main/protobuf/WireFormats.proto similarity index 100% rename from instrumentation/kamon-pekko/src/main/protobuf/WireFormats.proto rename to instrumentation/pekko/src/main/protobuf/WireFormats.proto diff --git a/instrumentation/kamon-pekko/src/main/resources/reference.conf b/instrumentation/pekko/src/main/resources/reference.conf similarity index 100% rename from instrumentation/kamon-pekko/src/main/resources/reference.conf rename to instrumentation/pekko/src/main/resources/reference.conf diff --git a/instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/PekkoClusterShardingMetrics.scala b/instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/PekkoClusterShardingMetrics.scala similarity index 100% rename from instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/PekkoClusterShardingMetrics.scala rename to instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/PekkoClusterShardingMetrics.scala diff --git a/instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/PekkoInstrumentation.scala b/instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/PekkoInstrumentation.scala similarity index 100% rename from instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/PekkoInstrumentation.scala rename to instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/PekkoInstrumentation.scala diff --git a/instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/PekkoMetrics.scala b/instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/PekkoMetrics.scala similarity index 100% rename from instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/PekkoMetrics.scala rename to instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/PekkoMetrics.scala diff --git a/instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/PekkoRemoteInstrumentation.scala b/instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/PekkoRemoteInstrumentation.scala similarity index 100% rename from instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/PekkoRemoteInstrumentation.scala rename to instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/PekkoRemoteInstrumentation.scala diff --git a/instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/PekkoRemoteMetrics.scala b/instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/PekkoRemoteMetrics.scala similarity index 100% rename from instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/PekkoRemoteMetrics.scala rename to instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/PekkoRemoteMetrics.scala diff --git a/instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/ActorCellInfo.scala b/instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/ActorCellInfo.scala similarity index 100% rename from instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/ActorCellInfo.scala rename to instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/ActorCellInfo.scala diff --git a/instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/ActorInstrumentation.scala b/instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/ActorInstrumentation.scala similarity index 100% rename from instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/ActorInstrumentation.scala rename to instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/ActorInstrumentation.scala diff --git a/instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/ActorLoggingInstrumentation.scala b/instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/ActorLoggingInstrumentation.scala similarity index 100% rename from instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/ActorLoggingInstrumentation.scala rename to instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/ActorLoggingInstrumentation.scala diff --git a/instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/ActorMonitor.scala b/instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/ActorMonitor.scala similarity index 100% rename from instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/ActorMonitor.scala rename to instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/ActorMonitor.scala diff --git a/instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/ActorMonitorInstrumentation.scala b/instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/ActorMonitorInstrumentation.scala similarity index 100% rename from instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/ActorMonitorInstrumentation.scala rename to instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/ActorMonitorInstrumentation.scala diff --git a/instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/ActorRefInstrumentation.scala b/instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/ActorRefInstrumentation.scala similarity index 100% rename from instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/ActorRefInstrumentation.scala rename to instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/ActorRefInstrumentation.scala diff --git a/instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/AskPatternInstrumentation.scala b/instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/AskPatternInstrumentation.scala similarity index 100% rename from instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/AskPatternInstrumentation.scala rename to instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/AskPatternInstrumentation.scala diff --git a/instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/ClusterInstrumentation.scala b/instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/ClusterInstrumentation.scala similarity index 100% rename from instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/ClusterInstrumentation.scala rename to instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/ClusterInstrumentation.scala diff --git a/instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/DispatcherInfo.scala b/instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/DispatcherInfo.scala similarity index 100% rename from instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/DispatcherInfo.scala rename to instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/DispatcherInfo.scala diff --git a/instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/DispatcherInstrumentation.scala b/instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/DispatcherInstrumentation.scala similarity index 100% rename from instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/DispatcherInstrumentation.scala rename to instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/DispatcherInstrumentation.scala diff --git a/instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/EnvelopeInstrumentation.scala b/instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/EnvelopeInstrumentation.scala similarity index 100% rename from instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/EnvelopeInstrumentation.scala rename to instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/EnvelopeInstrumentation.scala diff --git a/instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/EventStreamInstrumentation.scala b/instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/EventStreamInstrumentation.scala similarity index 100% rename from instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/EventStreamInstrumentation.scala rename to instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/EventStreamInstrumentation.scala diff --git a/instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/RouterInstrumentation.scala b/instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/RouterInstrumentation.scala similarity index 100% rename from instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/RouterInstrumentation.scala rename to instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/RouterInstrumentation.scala diff --git a/instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/RouterMonitor.scala b/instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/RouterMonitor.scala similarity index 100% rename from instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/RouterMonitor.scala rename to instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/RouterMonitor.scala diff --git a/instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/SchedulerInstrumentation.scala b/instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/SchedulerInstrumentation.scala similarity index 100% rename from instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/SchedulerInstrumentation.scala rename to instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/SchedulerInstrumentation.scala diff --git a/instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/SystemMessageInstrumentation.scala b/instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/SystemMessageInstrumentation.scala similarity index 100% rename from instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/SystemMessageInstrumentation.scala rename to instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/SystemMessageInstrumentation.scala diff --git a/instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/internal/CellWrapper.scala b/instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/internal/CellWrapper.scala similarity index 100% rename from instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/internal/CellWrapper.scala rename to instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/instrumentations/internal/CellWrapper.scala diff --git a/instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/remote/MessageBufferInstrumentation.scala b/instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/remote/MessageBufferInstrumentation.scala similarity index 100% rename from instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/remote/MessageBufferInstrumentation.scala rename to instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/remote/MessageBufferInstrumentation.scala diff --git a/instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/remote/RemotingInstrumentation.scala b/instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/remote/RemotingInstrumentation.scala similarity index 100% rename from instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/remote/RemotingInstrumentation.scala rename to instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/remote/RemotingInstrumentation.scala diff --git a/instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/remote/ShardingInstrumentation.scala b/instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/remote/ShardingInstrumentation.scala similarity index 100% rename from instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/remote/ShardingInstrumentation.scala rename to instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/remote/ShardingInstrumentation.scala diff --git a/instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/remote/artery/KamonRemoteInstrument.scala b/instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/remote/artery/KamonRemoteInstrument.scala similarity index 100% rename from instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/remote/artery/KamonRemoteInstrument.scala rename to instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/remote/artery/KamonRemoteInstrument.scala diff --git a/instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/remote/internal/ArterySerializationAdvice.scala b/instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/remote/internal/ArterySerializationAdvice.scala similarity index 100% rename from instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/remote/internal/ArterySerializationAdvice.scala rename to instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/remote/internal/ArterySerializationAdvice.scala diff --git a/instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/remote/internal/KamonOptionVal.scala b/instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/remote/internal/KamonOptionVal.scala similarity index 100% rename from instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/remote/internal/KamonOptionVal.scala rename to instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/remote/internal/KamonOptionVal.scala diff --git a/instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/remote/internal/PekkoPduProtobufCodecConstructMessageMethodInterceptor.scala b/instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/remote/internal/PekkoPduProtobufCodecConstructMessageMethodInterceptor.scala similarity index 100% rename from instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/remote/internal/PekkoPduProtobufCodecConstructMessageMethodInterceptor.scala rename to instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/remote/internal/PekkoPduProtobufCodecConstructMessageMethodInterceptor.scala diff --git a/instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/remote/internal/PekkoPduProtobufCodecDecodeMessageMethodAdvisor.scala b/instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/remote/internal/PekkoPduProtobufCodecDecodeMessageMethodAdvisor.scala similarity index 100% rename from instrumentation/kamon-pekko/src/main/scala/kamon/instrumentation/pekko/remote/internal/PekkoPduProtobufCodecDecodeMessageMethodAdvisor.scala rename to instrumentation/pekko/src/main/scala/kamon/instrumentation/pekko/remote/internal/PekkoPduProtobufCodecDecodeMessageMethodAdvisor.scala diff --git a/instrumentation/kamon-pekko/src/test/resources/application.conf b/instrumentation/pekko/src/test/resources/application.conf similarity index 100% rename from instrumentation/kamon-pekko/src/test/resources/application.conf rename to instrumentation/pekko/src/test/resources/application.conf diff --git a/instrumentation/kamon-pekko/src/test/resources/logback.xml b/instrumentation/pekko/src/test/resources/logback.xml similarity index 100% rename from instrumentation/kamon-pekko/src/test/resources/logback.xml rename to instrumentation/pekko/src/test/resources/logback.xml diff --git a/instrumentation/kamon-pekko/src/test/scala/kamon/instrumentation/pekko/ActorCellInstrumentationSpec.scala b/instrumentation/pekko/src/test/scala/kamon/instrumentation/pekko/ActorCellInstrumentationSpec.scala similarity index 100% rename from instrumentation/kamon-pekko/src/test/scala/kamon/instrumentation/pekko/ActorCellInstrumentationSpec.scala rename to instrumentation/pekko/src/test/scala/kamon/instrumentation/pekko/ActorCellInstrumentationSpec.scala diff --git a/instrumentation/kamon-pekko/src/test/scala/kamon/instrumentation/pekko/ActorGroupMetricsSpec.scala b/instrumentation/pekko/src/test/scala/kamon/instrumentation/pekko/ActorGroupMetricsSpec.scala similarity index 100% rename from instrumentation/kamon-pekko/src/test/scala/kamon/instrumentation/pekko/ActorGroupMetricsSpec.scala rename to instrumentation/pekko/src/test/scala/kamon/instrumentation/pekko/ActorGroupMetricsSpec.scala diff --git a/instrumentation/kamon-pekko/src/test/scala/kamon/instrumentation/pekko/ActorLoggingInstrumentationSpec.scala b/instrumentation/pekko/src/test/scala/kamon/instrumentation/pekko/ActorLoggingInstrumentationSpec.scala similarity index 100% rename from instrumentation/kamon-pekko/src/test/scala/kamon/instrumentation/pekko/ActorLoggingInstrumentationSpec.scala rename to instrumentation/pekko/src/test/scala/kamon/instrumentation/pekko/ActorLoggingInstrumentationSpec.scala diff --git a/instrumentation/kamon-pekko/src/test/scala/kamon/instrumentation/pekko/ActorMetricsSpec.scala b/instrumentation/pekko/src/test/scala/kamon/instrumentation/pekko/ActorMetricsSpec.scala similarity index 100% rename from instrumentation/kamon-pekko/src/test/scala/kamon/instrumentation/pekko/ActorMetricsSpec.scala rename to instrumentation/pekko/src/test/scala/kamon/instrumentation/pekko/ActorMetricsSpec.scala diff --git a/instrumentation/kamon-pekko/src/test/scala/kamon/instrumentation/pekko/ActorMetricsTestActor.scala b/instrumentation/pekko/src/test/scala/kamon/instrumentation/pekko/ActorMetricsTestActor.scala similarity index 100% rename from instrumentation/kamon-pekko/src/test/scala/kamon/instrumentation/pekko/ActorMetricsTestActor.scala rename to instrumentation/pekko/src/test/scala/kamon/instrumentation/pekko/ActorMetricsTestActor.scala diff --git a/instrumentation/kamon-pekko/src/test/scala/kamon/instrumentation/pekko/ActorSystemMetricsSpec.scala b/instrumentation/pekko/src/test/scala/kamon/instrumentation/pekko/ActorSystemMetricsSpec.scala similarity index 100% rename from instrumentation/kamon-pekko/src/test/scala/kamon/instrumentation/pekko/ActorSystemMetricsSpec.scala rename to instrumentation/pekko/src/test/scala/kamon/instrumentation/pekko/ActorSystemMetricsSpec.scala diff --git a/instrumentation/kamon-pekko/src/test/scala/kamon/instrumentation/pekko/AskPatternInstrumentationSpec.scala b/instrumentation/pekko/src/test/scala/kamon/instrumentation/pekko/AskPatternInstrumentationSpec.scala similarity index 100% rename from instrumentation/kamon-pekko/src/test/scala/kamon/instrumentation/pekko/AskPatternInstrumentationSpec.scala rename to instrumentation/pekko/src/test/scala/kamon/instrumentation/pekko/AskPatternInstrumentationSpec.scala diff --git a/instrumentation/kamon-pekko/src/test/scala/kamon/instrumentation/pekko/AutoGroupingSpec.scala b/instrumentation/pekko/src/test/scala/kamon/instrumentation/pekko/AutoGroupingSpec.scala similarity index 100% rename from instrumentation/kamon-pekko/src/test/scala/kamon/instrumentation/pekko/AutoGroupingSpec.scala rename to instrumentation/pekko/src/test/scala/kamon/instrumentation/pekko/AutoGroupingSpec.scala diff --git a/instrumentation/kamon-pekko/src/test/scala/kamon/instrumentation/pekko/ContextEchoActor.scala b/instrumentation/pekko/src/test/scala/kamon/instrumentation/pekko/ContextEchoActor.scala similarity index 100% rename from instrumentation/kamon-pekko/src/test/scala/kamon/instrumentation/pekko/ContextEchoActor.scala rename to instrumentation/pekko/src/test/scala/kamon/instrumentation/pekko/ContextEchoActor.scala diff --git a/instrumentation/kamon-pekko/src/test/scala/kamon/instrumentation/pekko/ContextTesting.scala b/instrumentation/pekko/src/test/scala/kamon/instrumentation/pekko/ContextTesting.scala similarity index 100% rename from instrumentation/kamon-pekko/src/test/scala/kamon/instrumentation/pekko/ContextTesting.scala rename to instrumentation/pekko/src/test/scala/kamon/instrumentation/pekko/ContextTesting.scala diff --git a/instrumentation/kamon-pekko/src/test/scala/kamon/instrumentation/pekko/DispatcherMetricsSpec.scala b/instrumentation/pekko/src/test/scala/kamon/instrumentation/pekko/DispatcherMetricsSpec.scala similarity index 100% rename from instrumentation/kamon-pekko/src/test/scala/kamon/instrumentation/pekko/DispatcherMetricsSpec.scala rename to instrumentation/pekko/src/test/scala/kamon/instrumentation/pekko/DispatcherMetricsSpec.scala diff --git a/instrumentation/kamon-pekko/src/test/scala/kamon/instrumentation/pekko/EnvelopeSpec.scala b/instrumentation/pekko/src/test/scala/kamon/instrumentation/pekko/EnvelopeSpec.scala similarity index 100% rename from instrumentation/kamon-pekko/src/test/scala/kamon/instrumentation/pekko/EnvelopeSpec.scala rename to instrumentation/pekko/src/test/scala/kamon/instrumentation/pekko/EnvelopeSpec.scala diff --git a/instrumentation/kamon-pekko/src/test/scala/kamon/instrumentation/pekko/MessageTracingSpec.scala b/instrumentation/pekko/src/test/scala/kamon/instrumentation/pekko/MessageTracingSpec.scala similarity index 100% rename from instrumentation/kamon-pekko/src/test/scala/kamon/instrumentation/pekko/MessageTracingSpec.scala rename to instrumentation/pekko/src/test/scala/kamon/instrumentation/pekko/MessageTracingSpec.scala diff --git a/instrumentation/kamon-pekko/src/test/scala/kamon/instrumentation/pekko/PekkoTestKitInstrumentation.scala b/instrumentation/pekko/src/test/scala/kamon/instrumentation/pekko/PekkoTestKitInstrumentation.scala similarity index 100% rename from instrumentation/kamon-pekko/src/test/scala/kamon/instrumentation/pekko/PekkoTestKitInstrumentation.scala rename to instrumentation/pekko/src/test/scala/kamon/instrumentation/pekko/PekkoTestKitInstrumentation.scala diff --git a/instrumentation/kamon-pekko/src/test/scala/kamon/instrumentation/pekko/RouterMetricsSpec.scala b/instrumentation/pekko/src/test/scala/kamon/instrumentation/pekko/RouterMetricsSpec.scala similarity index 100% rename from instrumentation/kamon-pekko/src/test/scala/kamon/instrumentation/pekko/RouterMetricsSpec.scala rename to instrumentation/pekko/src/test/scala/kamon/instrumentation/pekko/RouterMetricsSpec.scala diff --git a/instrumentation/kamon-pekko/src/test/scala/kamon/instrumentation/pekko/RouterMetricsTestActor.scala b/instrumentation/pekko/src/test/scala/kamon/instrumentation/pekko/RouterMetricsTestActor.scala similarity index 100% rename from instrumentation/kamon-pekko/src/test/scala/kamon/instrumentation/pekko/RouterMetricsTestActor.scala rename to instrumentation/pekko/src/test/scala/kamon/instrumentation/pekko/RouterMetricsTestActor.scala diff --git a/instrumentation/kamon-pekko/src/test/scala/kamon/instrumentation/pekko/SchedulerInstrumentationSpec.scala b/instrumentation/pekko/src/test/scala/kamon/instrumentation/pekko/SchedulerInstrumentationSpec.scala similarity index 100% rename from instrumentation/kamon-pekko/src/test/scala/kamon/instrumentation/pekko/SchedulerInstrumentationSpec.scala rename to instrumentation/pekko/src/test/scala/kamon/instrumentation/pekko/SchedulerInstrumentationSpec.scala diff --git a/instrumentation/kamon-pekko/src/test/scala/kamon/instrumentation/pekko/SystemMessageInstrumentationSpec.scala b/instrumentation/pekko/src/test/scala/kamon/instrumentation/pekko/SystemMessageInstrumentationSpec.scala similarity index 100% rename from instrumentation/kamon-pekko/src/test/scala/kamon/instrumentation/pekko/SystemMessageInstrumentationSpec.scala rename to instrumentation/pekko/src/test/scala/kamon/instrumentation/pekko/SystemMessageInstrumentationSpec.scala diff --git a/instrumentation/kamon-pekko/src/test/scala/kamon/instrumentation/pekko/TestLogger.scala b/instrumentation/pekko/src/test/scala/kamon/instrumentation/pekko/TestLogger.scala similarity index 100% rename from instrumentation/kamon-pekko/src/test/scala/kamon/instrumentation/pekko/TestLogger.scala rename to instrumentation/pekko/src/test/scala/kamon/instrumentation/pekko/TestLogger.scala diff --git a/instrumentation/kamon-pekko/src/test/scala/kamon/instrumentation/pekko/remote/MessageBufferTest.scala b/instrumentation/pekko/src/test/scala/kamon/instrumentation/pekko/remote/MessageBufferTest.scala similarity index 100% rename from instrumentation/kamon-pekko/src/test/scala/kamon/instrumentation/pekko/remote/MessageBufferTest.scala rename to instrumentation/pekko/src/test/scala/kamon/instrumentation/pekko/remote/MessageBufferTest.scala diff --git a/instrumentation/kamon-pekko/src/test/scala/kamon/instrumentation/pekko/sharding/ShardingInstrumentationSpec.scala b/instrumentation/pekko/src/test/scala/kamon/instrumentation/pekko/sharding/ShardingInstrumentationSpec.scala similarity index 100% rename from instrumentation/kamon-pekko/src/test/scala/kamon/instrumentation/pekko/sharding/ShardingInstrumentationSpec.scala rename to instrumentation/pekko/src/test/scala/kamon/instrumentation/pekko/sharding/ShardingInstrumentationSpec.scala diff --git a/instrumentation/kamon-pekko/src/test/scala/kamon/instrumentation/pekko/sharding/ShardingMessageBufferingSpec.scala b/instrumentation/pekko/src/test/scala/kamon/instrumentation/pekko/sharding/ShardingMessageBufferingSpec.scala similarity index 100% rename from instrumentation/kamon-pekko/src/test/scala/kamon/instrumentation/pekko/sharding/ShardingMessageBufferingSpec.scala rename to instrumentation/pekko/src/test/scala/kamon/instrumentation/pekko/sharding/ShardingMessageBufferingSpec.scala diff --git a/instrumentation/kamon-pekko-connectors-kafka/src/main/resources/reference.conf b/instrumentation/pekkoConnectorsKafka/src/main/resources/reference.conf similarity index 100% rename from instrumentation/kamon-pekko-connectors-kafka/src/main/resources/reference.conf rename to instrumentation/pekkoConnectorsKafka/src/main/resources/reference.conf diff --git a/instrumentation/kamon-pekko-connectors-kafka/src/main/scala/kamon/instrumentation/pekko/connectors/kafka/ProducerMessageInstrumentation.scala b/instrumentation/pekkoConnectorsKafka/src/main/scala/kamon/instrumentation/pekko/connectors/kafka/ProducerMessageInstrumentation.scala similarity index 100% rename from instrumentation/kamon-pekko-connectors-kafka/src/main/scala/kamon/instrumentation/pekko/connectors/kafka/ProducerMessageInstrumentation.scala rename to instrumentation/pekkoConnectorsKafka/src/main/scala/kamon/instrumentation/pekko/connectors/kafka/ProducerMessageInstrumentation.scala diff --git a/instrumentation/kamon-pekko-grpc/src/main/java/kamon/instrumentation/pekko/grpc/PekkoGRPCUnmarshallingContextPropagation.java b/instrumentation/pekkoGrpc/src/main/java/kamon/instrumentation/pekko/grpc/PekkoGRPCUnmarshallingContextPropagation.java similarity index 100% rename from instrumentation/kamon-pekko-grpc/src/main/java/kamon/instrumentation/pekko/grpc/PekkoGRPCUnmarshallingContextPropagation.java rename to instrumentation/pekkoGrpc/src/main/java/kamon/instrumentation/pekko/grpc/PekkoGRPCUnmarshallingContextPropagation.java diff --git a/instrumentation/kamon-pekko-grpc/src/main/resources/reference.conf b/instrumentation/pekkoGrpc/src/main/resources/reference.conf similarity index 100% rename from instrumentation/kamon-pekko-grpc/src/main/resources/reference.conf rename to instrumentation/pekkoGrpc/src/main/resources/reference.conf diff --git a/instrumentation/kamon-pekko-grpc/src/main/scala/kamon/instrumentation/pekko/grpc/PekkoGrpcServerInstrumentation.scala b/instrumentation/pekkoGrpc/src/main/scala/kamon/instrumentation/pekko/grpc/PekkoGrpcServerInstrumentation.scala similarity index 100% rename from instrumentation/kamon-pekko-grpc/src/main/scala/kamon/instrumentation/pekko/grpc/PekkoGrpcServerInstrumentation.scala rename to instrumentation/pekkoGrpc/src/main/scala/kamon/instrumentation/pekko/grpc/PekkoGrpcServerInstrumentation.scala diff --git a/instrumentation/kamon-pekko-grpc/src/test/protobuf/helloworld.proto b/instrumentation/pekkoGrpc/src/test/protobuf/helloworld.proto similarity index 100% rename from instrumentation/kamon-pekko-grpc/src/test/protobuf/helloworld.proto rename to instrumentation/pekkoGrpc/src/test/protobuf/helloworld.proto diff --git a/instrumentation/kamon-pekko-grpc/src/test/resources/application.conf b/instrumentation/pekkoGrpc/src/test/resources/application.conf similarity index 100% rename from instrumentation/kamon-pekko-grpc/src/test/resources/application.conf rename to instrumentation/pekkoGrpc/src/test/resources/application.conf diff --git a/instrumentation/kamon-pekko-grpc/src/test/resources/logback.xml b/instrumentation/pekkoGrpc/src/test/resources/logback.xml similarity index 100% rename from instrumentation/kamon-pekko-grpc/src/test/resources/logback.xml rename to instrumentation/pekkoGrpc/src/test/resources/logback.xml diff --git a/instrumentation/kamon-pekko-grpc/src/test/scala/kamon/instrumentation/pekko/grpc/GreeterServiceImpl.scala b/instrumentation/pekkoGrpc/src/test/scala/kamon/instrumentation/pekko/grpc/GreeterServiceImpl.scala similarity index 100% rename from instrumentation/kamon-pekko-grpc/src/test/scala/kamon/instrumentation/pekko/grpc/GreeterServiceImpl.scala rename to instrumentation/pekkoGrpc/src/test/scala/kamon/instrumentation/pekko/grpc/GreeterServiceImpl.scala diff --git a/instrumentation/kamon-pekko-grpc/src/test/scala/kamon/instrumentation/pekko/grpc/PekkoGrpcTracingSpec.scala b/instrumentation/pekkoGrpc/src/test/scala/kamon/instrumentation/pekko/grpc/PekkoGrpcTracingSpec.scala similarity index 100% rename from instrumentation/kamon-pekko-grpc/src/test/scala/kamon/instrumentation/pekko/grpc/PekkoGrpcTracingSpec.scala rename to instrumentation/pekkoGrpc/src/test/scala/kamon/instrumentation/pekko/grpc/PekkoGrpcTracingSpec.scala diff --git a/instrumentation/kamon-pekko-http/src/main/java/kamon/instrumentation/pekko/http/FlowOpsMapAsyncAdvice.java b/instrumentation/pekkoHttp/src/main/java/kamon/instrumentation/pekko/http/FlowOpsMapAsyncAdvice.java similarity index 100% rename from instrumentation/kamon-pekko-http/src/main/java/kamon/instrumentation/pekko/http/FlowOpsMapAsyncAdvice.java rename to instrumentation/pekkoHttp/src/main/java/kamon/instrumentation/pekko/http/FlowOpsMapAsyncAdvice.java diff --git a/instrumentation/kamon-pekko-http/src/main/java/kamon/instrumentation/pekko/http/Http2ExtBindAndHandleAdvice.java b/instrumentation/pekkoHttp/src/main/java/kamon/instrumentation/pekko/http/Http2ExtBindAndHandleAdvice.java similarity index 100% rename from instrumentation/kamon-pekko-http/src/main/java/kamon/instrumentation/pekko/http/Http2ExtBindAndHandleAdvice.java rename to instrumentation/pekkoHttp/src/main/java/kamon/instrumentation/pekko/http/Http2ExtBindAndHandleAdvice.java diff --git a/instrumentation/kamon-pekko-http/src/main/java/kamon/instrumentation/pekko/http/HttpExtBindAndHandleAdvice.java b/instrumentation/pekkoHttp/src/main/java/kamon/instrumentation/pekko/http/HttpExtBindAndHandleAdvice.java similarity index 100% rename from instrumentation/kamon-pekko-http/src/main/java/kamon/instrumentation/pekko/http/HttpExtBindAndHandleAdvice.java rename to instrumentation/pekkoHttp/src/main/java/kamon/instrumentation/pekko/http/HttpExtBindAndHandleAdvice.java diff --git a/instrumentation/kamon-pekko-http/src/main/java/kamon/instrumentation/pekko/http/HttpExtSingleRequestAdvice.java b/instrumentation/pekkoHttp/src/main/java/kamon/instrumentation/pekko/http/HttpExtSingleRequestAdvice.java similarity index 100% rename from instrumentation/kamon-pekko-http/src/main/java/kamon/instrumentation/pekko/http/HttpExtSingleRequestAdvice.java rename to instrumentation/pekkoHttp/src/main/java/kamon/instrumentation/pekko/http/HttpExtSingleRequestAdvice.java diff --git a/instrumentation/kamon-pekko-http/src/main/java/kamon/instrumentation/pekko/http/PoolMasterDispatchRequestAdvice.java b/instrumentation/pekkoHttp/src/main/java/kamon/instrumentation/pekko/http/PoolMasterDispatchRequestAdvice.java similarity index 100% rename from instrumentation/kamon-pekko-http/src/main/java/kamon/instrumentation/pekko/http/PoolMasterDispatchRequestAdvice.java rename to instrumentation/pekkoHttp/src/main/java/kamon/instrumentation/pekko/http/PoolMasterDispatchRequestAdvice.java diff --git a/instrumentation/kamon-pekko-http/src/main/resources/reference.conf b/instrumentation/pekkoHttp/src/main/resources/reference.conf similarity index 100% rename from instrumentation/kamon-pekko-http/src/main/resources/reference.conf rename to instrumentation/pekkoHttp/src/main/resources/reference.conf diff --git a/instrumentation/kamon-pekko-http/src/main/scala/kamon/instrumentation/pekko/http/PekkoHttpClientInstrumentation.scala b/instrumentation/pekkoHttp/src/main/scala/kamon/instrumentation/pekko/http/PekkoHttpClientInstrumentation.scala similarity index 100% rename from instrumentation/kamon-pekko-http/src/main/scala/kamon/instrumentation/pekko/http/PekkoHttpClientInstrumentation.scala rename to instrumentation/pekkoHttp/src/main/scala/kamon/instrumentation/pekko/http/PekkoHttpClientInstrumentation.scala diff --git a/instrumentation/kamon-pekko-http/src/main/scala/kamon/instrumentation/pekko/http/PekkoHttpInstrumentation.scala b/instrumentation/pekkoHttp/src/main/scala/kamon/instrumentation/pekko/http/PekkoHttpInstrumentation.scala similarity index 100% rename from instrumentation/kamon-pekko-http/src/main/scala/kamon/instrumentation/pekko/http/PekkoHttpInstrumentation.scala rename to instrumentation/pekkoHttp/src/main/scala/kamon/instrumentation/pekko/http/PekkoHttpInstrumentation.scala diff --git a/instrumentation/kamon-pekko-http/src/main/scala/kamon/instrumentation/pekko/http/PekkoHttpServerInstrumentation.scala b/instrumentation/pekkoHttp/src/main/scala/kamon/instrumentation/pekko/http/PekkoHttpServerInstrumentation.scala similarity index 99% rename from instrumentation/kamon-pekko-http/src/main/scala/kamon/instrumentation/pekko/http/PekkoHttpServerInstrumentation.scala rename to instrumentation/pekkoHttp/src/main/scala/kamon/instrumentation/pekko/http/PekkoHttpServerInstrumentation.scala index 89606e73f..ae8fa04d3 100644 --- a/instrumentation/kamon-pekko-http/src/main/scala/kamon/instrumentation/pekko/http/PekkoHttpServerInstrumentation.scala +++ b/instrumentation/pekkoHttp/src/main/scala/kamon/instrumentation/pekko/http/PekkoHttpServerInstrumentation.scala @@ -316,7 +316,6 @@ object Http2BlueprintInterceptor { @Argument(1) handler: HttpRequest => Future[HttpResponse], @SuperCall zuper: Callable[Flow[HttpRequest, HttpResponse, NotUsed]] ): Flow[HttpRequest, HttpResponse, NotUsed] = { - handler match { case HandlerWithEndpoint(interface, port, _) => ServerFlowWrapper(zuper.call(), interface, port) diff --git a/instrumentation/kamon-pekko-http/src/main/scala/kamon/instrumentation/pekko/http/ServerFlowWrapper.scala b/instrumentation/pekkoHttp/src/main/scala/kamon/instrumentation/pekko/http/ServerFlowWrapper.scala similarity index 100% rename from instrumentation/kamon-pekko-http/src/main/scala/kamon/instrumentation/pekko/http/ServerFlowWrapper.scala rename to instrumentation/pekkoHttp/src/main/scala/kamon/instrumentation/pekko/http/ServerFlowWrapper.scala diff --git a/instrumentation/kamon-pekko-http/src/main/scala/kamon/instrumentation/pekko/http/TracingDirectives.scala b/instrumentation/pekkoHttp/src/main/scala/kamon/instrumentation/pekko/http/TracingDirectives.scala similarity index 100% rename from instrumentation/kamon-pekko-http/src/main/scala/kamon/instrumentation/pekko/http/TracingDirectives.scala rename to instrumentation/pekkoHttp/src/main/scala/kamon/instrumentation/pekko/http/TracingDirectives.scala diff --git a/instrumentation/kamon-pekko-http/src/test/resources/application.conf b/instrumentation/pekkoHttp/src/test/resources/application.conf similarity index 100% rename from instrumentation/kamon-pekko-http/src/test/resources/application.conf rename to instrumentation/pekkoHttp/src/test/resources/application.conf diff --git a/instrumentation/kamon-pekko-http/src/test/resources/https/chain.pem b/instrumentation/pekkoHttp/src/test/resources/https/chain.pem similarity index 100% rename from instrumentation/kamon-pekko-http/src/test/resources/https/chain.pem rename to instrumentation/pekkoHttp/src/test/resources/https/chain.pem diff --git a/instrumentation/kamon-pekko-http/src/test/resources/https/rootCA.crt b/instrumentation/pekkoHttp/src/test/resources/https/rootCA.crt similarity index 100% rename from instrumentation/kamon-pekko-http/src/test/resources/https/rootCA.crt rename to instrumentation/pekkoHttp/src/test/resources/https/rootCA.crt diff --git a/instrumentation/kamon-pekko-http/src/test/resources/https/rootCA.key b/instrumentation/pekkoHttp/src/test/resources/https/rootCA.key similarity index 100% rename from instrumentation/kamon-pekko-http/src/test/resources/https/rootCA.key rename to instrumentation/pekkoHttp/src/test/resources/https/rootCA.key diff --git a/instrumentation/kamon-pekko-http/src/test/resources/https/rootCA.srl b/instrumentation/pekkoHttp/src/test/resources/https/rootCA.srl similarity index 100% rename from instrumentation/kamon-pekko-http/src/test/resources/https/rootCA.srl rename to instrumentation/pekkoHttp/src/test/resources/https/rootCA.srl diff --git a/instrumentation/kamon-pekko-http/src/test/resources/https/server.crt b/instrumentation/pekkoHttp/src/test/resources/https/server.crt similarity index 100% rename from instrumentation/kamon-pekko-http/src/test/resources/https/server.crt rename to instrumentation/pekkoHttp/src/test/resources/https/server.crt diff --git a/instrumentation/kamon-pekko-http/src/test/resources/https/server.csr b/instrumentation/pekkoHttp/src/test/resources/https/server.csr similarity index 100% rename from instrumentation/kamon-pekko-http/src/test/resources/https/server.csr rename to instrumentation/pekkoHttp/src/test/resources/https/server.csr diff --git a/instrumentation/kamon-pekko-http/src/test/resources/https/server.key b/instrumentation/pekkoHttp/src/test/resources/https/server.key similarity index 100% rename from instrumentation/kamon-pekko-http/src/test/resources/https/server.key rename to instrumentation/pekkoHttp/src/test/resources/https/server.key diff --git a/instrumentation/kamon-pekko-http/src/test/resources/https/server.p12 b/instrumentation/pekkoHttp/src/test/resources/https/server.p12 similarity index 100% rename from instrumentation/kamon-pekko-http/src/test/resources/https/server.p12 rename to instrumentation/pekkoHttp/src/test/resources/https/server.p12 diff --git a/instrumentation/kamon-pekko-http/src/test/resources/logback.xml b/instrumentation/pekkoHttp/src/test/resources/logback.xml similarity index 89% rename from instrumentation/kamon-pekko-http/src/test/resources/logback.xml rename to instrumentation/pekkoHttp/src/test/resources/logback.xml index c336bbfe4..9705bf12f 100644 --- a/instrumentation/kamon-pekko-http/src/test/resources/logback.xml +++ b/instrumentation/pekkoHttp/src/test/resources/logback.xml @@ -6,7 +6,7 @@ - + - \ No newline at end of file + diff --git a/instrumentation/kamon-pekko-http/src/test/scala/kamon/pekko/http/PekkoHttpClientTracingSpec.scala b/instrumentation/pekkoHttp/src/test/scala/kamon/pekko/http/PekkoHttpClientTracingSpec.scala similarity index 98% rename from instrumentation/kamon-pekko-http/src/test/scala/kamon/pekko/http/PekkoHttpClientTracingSpec.scala rename to instrumentation/pekkoHttp/src/test/scala/kamon/pekko/http/PekkoHttpClientTracingSpec.scala index 5a2727729..da27d3a5c 100644 --- a/instrumentation/kamon-pekko-http/src/test/scala/kamon/pekko/http/PekkoHttpClientTracingSpec.scala +++ b/instrumentation/pekkoHttp/src/test/scala/kamon/pekko/http/PekkoHttpClientTracingSpec.scala @@ -46,8 +46,8 @@ class PekkoHttpClientTracingSpec extends AnyWordSpecLike with Matchers with Init val timeoutTest: FiniteDuration = 5 second val interface = "127.0.0.1" - val port = 8080 - val webServer: WebServer = startServer(interface, port) + val webServer: WebServer = startServer(interface) + val port: Int = webServer.port "the Pekko HTTP client instrumentation" should { "create a client Span when using the request level API - Http().singleRequest(...)" in { diff --git a/instrumentation/kamon-pekko-http/src/test/scala/kamon/pekko/http/PekkoHttpServerMetricsSpec.scala b/instrumentation/pekkoHttp/src/test/scala/kamon/pekko/http/PekkoHttpServerMetricsSpec.scala similarity index 93% rename from instrumentation/kamon-pekko-http/src/test/scala/kamon/pekko/http/PekkoHttpServerMetricsSpec.scala rename to instrumentation/pekkoHttp/src/test/scala/kamon/pekko/http/PekkoHttpServerMetricsSpec.scala index adf566891..18ca8977c 100644 --- a/instrumentation/kamon-pekko-http/src/test/scala/kamon/pekko/http/PekkoHttpServerMetricsSpec.scala +++ b/instrumentation/pekkoHttp/src/test/scala/kamon/pekko/http/PekkoHttpServerMetricsSpec.scala @@ -42,14 +42,15 @@ class PekkoHttpServerMetricsSpec extends AnyWordSpecLike with Matchers with Init implicit private val executor: ExecutionContextExecutor = system.dispatcher implicit private val materializer: Materializer = Materializer(system) - val port = 8083 val interface = "127.0.0.1" val timeoutTest: FiniteDuration = 5 second - val webServer: WebServer = startServer(interface, port) + val webServer: WebServer = startServer(interface) + val port: Int = webServer.port "the Pekko HTTP server instrumentation" should { "track the number of open connections and active requests on the Server side" in { - val httpServerMetrics = HttpServerMetrics.of("pekko.http.server", interface, port) + // The instrumentation registers metrics with port 0 (the requested port) before the actual port is assigned + val httpServerMetrics = HttpServerMetrics.of("pekko.http.server", interface, 0) for (_ <- 1 to 8) yield { sendRequest(HttpRequest(uri = s"http://$interface:$port/$waitTen")) diff --git a/instrumentation/kamon-pekko-http/src/test/scala/kamon/pekko/http/PekkoHttpServerTracingSpec.scala b/instrumentation/pekkoHttp/src/test/scala/kamon/pekko/http/PekkoHttpServerTracingSpec.scala similarity index 98% rename from instrumentation/kamon-pekko-http/src/test/scala/kamon/pekko/http/PekkoHttpServerTracingSpec.scala rename to instrumentation/pekkoHttp/src/test/scala/kamon/pekko/http/PekkoHttpServerTracingSpec.scala index 0c69aa6cf..3f3d78551 100644 --- a/instrumentation/kamon-pekko-http/src/test/scala/kamon/pekko/http/PekkoHttpServerTracingSpec.scala +++ b/instrumentation/pekkoHttp/src/test/scala/kamon/pekko/http/PekkoHttpServerTracingSpec.scala @@ -57,8 +57,8 @@ class PekkoHttpServerTracingSpec extends AnyWordSpecLike with Matchers with Scal val timeoutTest: FiniteDuration = 5 second val interface = "127.0.0.1" - val httpWebServer = startServer(interface, 8081, https = false) - val httpsWebServer = startServer(interface, 8082, https = true) + val httpWebServer = startServer(interface) + val httpsWebServer = startServer(interface, https = true) testSuite("HTTP", httpWebServer, okHttp) testSuite("HTTPS", httpsWebServer, okHttp) diff --git a/instrumentation/kamon-pekko-http/src/test/scala/kamon/pekko/http/ServerFlowWrapperSpec.scala b/instrumentation/pekkoHttp/src/test/scala/kamon/pekko/http/ServerFlowWrapperSpec.scala similarity index 89% rename from instrumentation/kamon-pekko-http/src/test/scala/kamon/pekko/http/ServerFlowWrapperSpec.scala rename to instrumentation/pekkoHttp/src/test/scala/kamon/pekko/http/ServerFlowWrapperSpec.scala index 4492ed14e..5fced29f1 100644 --- a/instrumentation/kamon-pekko-http/src/test/scala/kamon/pekko/http/ServerFlowWrapperSpec.scala +++ b/instrumentation/pekkoHttp/src/test/scala/kamon/pekko/http/ServerFlowWrapperSpec.scala @@ -9,15 +9,17 @@ import org.apache.pekko.stream.scaladsl.{Flow, Sink, Source} import org.apache.pekko.util.ByteString import org.scalatest.concurrent.ScalaFutures import org.scalatest.matchers.should.Matchers +import org.scalatest.time.{Seconds, Span} import org.scalatest.wordspec.AnyWordSpecLike import scala.concurrent.ExecutionContextExecutor class ServerFlowWrapperSpec extends AnyWordSpecLike with Matchers with ScalaFutures with InitAndStopKamonAfterAll { - implicit private val system: ActorSystem = ActorSystem("http-client-instrumentation-spec") + implicit private val system: ActorSystem = ActorSystem("server-flow-wrapper-spec") implicit private val executor: ExecutionContextExecutor = system.dispatcher implicit private val materializer: Materializer = Materializer(system) + implicit override val patienceConfig: PatienceConfig = PatienceConfig(timeout = Span(10, Seconds)) private val okReturningFlow = Flow[HttpRequest].map { _ => HttpResponse(status = StatusCodes.OK, entity = HttpEntity("OK")) diff --git a/instrumentation/kamon-pekko-http/src/test/scala/kamon/testkit/TestNameGenerator.scala b/instrumentation/pekkoHttp/src/test/scala/kamon/testkit/TestNameGenerator.scala similarity index 100% rename from instrumentation/kamon-pekko-http/src/test/scala/kamon/testkit/TestNameGenerator.scala rename to instrumentation/pekkoHttp/src/test/scala/kamon/testkit/TestNameGenerator.scala diff --git a/instrumentation/kamon-pekko-http/src/test/scala/kamon/testkit/TestWebServer.scala b/instrumentation/pekkoHttp/src/test/scala/kamon/testkit/TestWebServer.scala similarity index 91% rename from instrumentation/kamon-pekko-http/src/test/scala/kamon/testkit/TestWebServer.scala rename to instrumentation/pekkoHttp/src/test/scala/kamon/testkit/TestWebServer.scala index e5578b283..958c24c44 100644 --- a/instrumentation/kamon-pekko-http/src/test/scala/kamon/testkit/TestWebServer.scala +++ b/instrumentation/pekkoHttp/src/test/scala/kamon/testkit/TestWebServer.scala @@ -37,14 +37,18 @@ import org.json4s.{DefaultFormats, native, Serialization} import kamon.tag.Lookups.plain import kamon.trace.Trace -import scala.concurrent.{ExecutionContext, Future} +import scala.concurrent.{Await, ExecutionContext, Future} +import scala.concurrent.duration._ trait TestWebServer extends TracingDirectives { implicit val serialization: Serialization = native.Serialization implicit val formats: DefaultFormats = DefaultFormats import Json4sSupport._ - def startServer(interface: String, port: Int, https: Boolean = false)(implicit system: ActorSystem): WebServer = { + def startServer(interface: String, https: Boolean = false)(implicit system: ActorSystem): WebServer = + startServer(interface, 0, https) + + def startServer(interface: String, port: Int, https: Boolean)(implicit system: ActorSystem): WebServer = { import Endpoints._ implicit val ec: ExecutionContext = system.dispatcher @@ -179,15 +183,18 @@ trait TestWebServer extends TracingDirectives { } } - if (https) - new WebServer( - interface, - port, - "https", - Http().newServerAt(interface, port).enableHttps(httpContext()).bind(Route.toFunction(routes)) - ) + val bindingFuture = if (https) + Http().newServerAt(interface, port).enableHttps(httpContext()).bind(Route.toFunction(routes)) else - new WebServer(interface, port, "http", Http().newServerAt(interface, port).bindFlow(routes)) + Http().newServerAt(interface, port).bindFlow(routes) + + val binding = Await.result(bindingFuture, 10.seconds) + new WebServer( + binding.localAddress.getHostString, + binding.localAddress.getPort, + if (https) "https" else "http", + binding + ) } def httpContext(): HttpsConnectionContext = { @@ -249,10 +256,10 @@ trait TestWebServer extends TracingDirectives { val interface: String, val port: Int, val protocol: String, - bindingFuture: Future[Http.ServerBinding] - )(implicit ec: ExecutionContext) { + binding: Http.ServerBinding + ) { def shutdown(): Future[_] = { - bindingFuture.flatMap(binding => binding.unbind()) + binding.unbind() } } diff --git a/instrumentation/kamon-redis/src/main/java/kamon/instrumentation/lettuce/AsyncCommandCallback.java b/instrumentation/redis/src/main/java/kamon/instrumentation/lettuce/AsyncCommandCallback.java similarity index 100% rename from instrumentation/kamon-redis/src/main/java/kamon/instrumentation/lettuce/AsyncCommandCallback.java rename to instrumentation/redis/src/main/java/kamon/instrumentation/lettuce/AsyncCommandCallback.java diff --git a/instrumentation/kamon-redis/src/main/resources/reference.conf b/instrumentation/redis/src/main/resources/reference.conf similarity index 100% rename from instrumentation/kamon-redis/src/main/resources/reference.conf rename to instrumentation/redis/src/main/resources/reference.conf diff --git a/instrumentation/kamon-redis/src/main/scala/kamon/instrumentation/jedis/JedisInstrumentation.scala b/instrumentation/redis/src/main/scala/kamon/instrumentation/jedis/JedisInstrumentation.scala similarity index 100% rename from instrumentation/kamon-redis/src/main/scala/kamon/instrumentation/jedis/JedisInstrumentation.scala rename to instrumentation/redis/src/main/scala/kamon/instrumentation/jedis/JedisInstrumentation.scala diff --git a/instrumentation/kamon-redis/src/main/scala/kamon/instrumentation/lettuce/LettuceInstrumentation.scala b/instrumentation/redis/src/main/scala/kamon/instrumentation/lettuce/LettuceInstrumentation.scala similarity index 100% rename from instrumentation/kamon-redis/src/main/scala/kamon/instrumentation/lettuce/LettuceInstrumentation.scala rename to instrumentation/redis/src/main/scala/kamon/instrumentation/lettuce/LettuceInstrumentation.scala diff --git a/instrumentation/kamon-redis/src/main/scala/kamon/instrumentation/rediscala/RediscalaInstrumentation.scala b/instrumentation/redis/src/main/scala/kamon/instrumentation/rediscala/RediscalaInstrumentation.scala similarity index 100% rename from instrumentation/kamon-redis/src/main/scala/kamon/instrumentation/rediscala/RediscalaInstrumentation.scala rename to instrumentation/redis/src/main/scala/kamon/instrumentation/rediscala/RediscalaInstrumentation.scala diff --git a/instrumentation/kamon-redis/src/test/resources/logback.xml b/instrumentation/redis/src/test/resources/logback.xml similarity index 100% rename from instrumentation/kamon-redis/src/test/resources/logback.xml rename to instrumentation/redis/src/test/resources/logback.xml diff --git a/instrumentation/kamon-redis/src/test/scala/kamon/instrumentation/combined/RedisInstrumentationsSpec.scala b/instrumentation/redis/src/test/scala/kamon/instrumentation/combined/RedisInstrumentationsSpec.scala similarity index 100% rename from instrumentation/kamon-redis/src/test/scala/kamon/instrumentation/combined/RedisInstrumentationsSpec.scala rename to instrumentation/redis/src/test/scala/kamon/instrumentation/combined/RedisInstrumentationsSpec.scala diff --git a/instrumentation/kamon-scala-future/src/main/resources/reference.conf b/instrumentation/scalaFuture/src/main/resources/reference.conf similarity index 100% rename from instrumentation/kamon-scala-future/src/main/resources/reference.conf rename to instrumentation/scalaFuture/src/main/resources/reference.conf diff --git a/instrumentation/kamon-scala-future/src/main/scala-2.13/kamon/instrumentation/futures/scala/FutureChainingInstrumentation.scala b/instrumentation/scalaFuture/src/main/scala-2.13/kamon/instrumentation/futures/scala/FutureChainingInstrumentation.scala similarity index 100% rename from instrumentation/kamon-scala-future/src/main/scala-2.13/kamon/instrumentation/futures/scala/FutureChainingInstrumentation.scala rename to instrumentation/scalaFuture/src/main/scala-2.13/kamon/instrumentation/futures/scala/FutureChainingInstrumentation.scala diff --git a/instrumentation/kamon-scala-future/src/test/resources/application.conf b/instrumentation/scalaFuture/src/test/resources/application.conf similarity index 100% rename from instrumentation/kamon-scala-future/src/test/resources/application.conf rename to instrumentation/scalaFuture/src/test/resources/application.conf diff --git a/instrumentation/kamon-scala-future/src/test/scala/kamon/instrumentation/futures/scala/FutureInstrumentationSpec.scala b/instrumentation/scalaFuture/src/test/scala/kamon/instrumentation/futures/scala/FutureInstrumentationSpec.scala similarity index 100% rename from instrumentation/kamon-scala-future/src/test/scala/kamon/instrumentation/futures/scala/FutureInstrumentationSpec.scala rename to instrumentation/scalaFuture/src/test/scala/kamon/instrumentation/futures/scala/FutureInstrumentationSpec.scala diff --git a/instrumentation/kamon-scalaz-future/src/main/resources/reference.conf b/instrumentation/scalazFuture/src/main/resources/reference.conf similarity index 100% rename from instrumentation/kamon-scalaz-future/src/main/resources/reference.conf rename to instrumentation/scalazFuture/src/main/resources/reference.conf diff --git a/instrumentation/kamon-scalaz-future/src/test/scala/kamon/instrumentation/futures/scalaz/FutureInstrumentationSpec.scala b/instrumentation/scalazFuture/src/test/scala/kamon/instrumentation/futures/scalaz/FutureInstrumentationSpec.scala similarity index 100% rename from instrumentation/kamon-scalaz-future/src/test/scala/kamon/instrumentation/futures/scalaz/FutureInstrumentationSpec.scala rename to instrumentation/scalazFuture/src/test/scala/kamon/instrumentation/futures/scalaz/FutureInstrumentationSpec.scala diff --git a/instrumentation/kamon-system-metrics/src/main/resources/reference.conf b/instrumentation/systemMetrics/src/main/resources/reference.conf similarity index 100% rename from instrumentation/kamon-system-metrics/src/main/resources/reference.conf rename to instrumentation/systemMetrics/src/main/resources/reference.conf diff --git a/instrumentation/kamon-system-metrics/src/main/scala/kamon/instrumentation/system/host/HostMetrics.scala b/instrumentation/systemMetrics/src/main/scala/kamon/instrumentation/system/host/HostMetrics.scala similarity index 100% rename from instrumentation/kamon-system-metrics/src/main/scala/kamon/instrumentation/system/host/HostMetrics.scala rename to instrumentation/systemMetrics/src/main/scala/kamon/instrumentation/system/host/HostMetrics.scala diff --git a/instrumentation/kamon-system-metrics/src/main/scala/kamon/instrumentation/system/host/HostMetricsCollector.scala b/instrumentation/systemMetrics/src/main/scala/kamon/instrumentation/system/host/HostMetricsCollector.scala similarity index 100% rename from instrumentation/kamon-system-metrics/src/main/scala/kamon/instrumentation/system/host/HostMetricsCollector.scala rename to instrumentation/systemMetrics/src/main/scala/kamon/instrumentation/system/host/HostMetricsCollector.scala diff --git a/instrumentation/kamon-system-metrics/src/main/scala/kamon/instrumentation/system/jvm/JvmMetrics.scala b/instrumentation/systemMetrics/src/main/scala/kamon/instrumentation/system/jvm/JvmMetrics.scala similarity index 100% rename from instrumentation/kamon-system-metrics/src/main/scala/kamon/instrumentation/system/jvm/JvmMetrics.scala rename to instrumentation/systemMetrics/src/main/scala/kamon/instrumentation/system/jvm/JvmMetrics.scala diff --git a/instrumentation/kamon-system-metrics/src/main/scala/kamon/instrumentation/system/jvm/JvmMetricsCollector.scala b/instrumentation/systemMetrics/src/main/scala/kamon/instrumentation/system/jvm/JvmMetricsCollector.scala similarity index 100% rename from instrumentation/kamon-system-metrics/src/main/scala/kamon/instrumentation/system/jvm/JvmMetricsCollector.scala rename to instrumentation/systemMetrics/src/main/scala/kamon/instrumentation/system/jvm/JvmMetricsCollector.scala diff --git a/instrumentation/kamon-system-metrics/src/main/scala/kamon/instrumentation/system/process/ProcessMetrics.scala b/instrumentation/systemMetrics/src/main/scala/kamon/instrumentation/system/process/ProcessMetrics.scala similarity index 100% rename from instrumentation/kamon-system-metrics/src/main/scala/kamon/instrumentation/system/process/ProcessMetrics.scala rename to instrumentation/systemMetrics/src/main/scala/kamon/instrumentation/system/process/ProcessMetrics.scala diff --git a/instrumentation/kamon-system-metrics/src/main/scala/kamon/instrumentation/system/process/ProcessMetricsCollector.scala b/instrumentation/systemMetrics/src/main/scala/kamon/instrumentation/system/process/ProcessMetricsCollector.scala similarity index 100% rename from instrumentation/kamon-system-metrics/src/main/scala/kamon/instrumentation/system/process/ProcessMetricsCollector.scala rename to instrumentation/systemMetrics/src/main/scala/kamon/instrumentation/system/process/ProcessMetricsCollector.scala diff --git a/instrumentation/kamon-twitter-future/src/main/java/kamon/instrumentation/futures/twitter/InterruptiblePromiseConstructorAdvice.java b/instrumentation/twitterFuture/src/main/java/kamon/instrumentation/futures/twitter/InterruptiblePromiseConstructorAdvice.java similarity index 100% rename from instrumentation/kamon-twitter-future/src/main/java/kamon/instrumentation/futures/twitter/InterruptiblePromiseConstructorAdvice.java rename to instrumentation/twitterFuture/src/main/java/kamon/instrumentation/futures/twitter/InterruptiblePromiseConstructorAdvice.java diff --git a/instrumentation/kamon-twitter-future/src/main/resources/reference.conf b/instrumentation/twitterFuture/src/main/resources/reference.conf similarity index 100% rename from instrumentation/kamon-twitter-future/src/main/resources/reference.conf rename to instrumentation/twitterFuture/src/main/resources/reference.conf diff --git a/instrumentation/kamon-twitter-future/src/main/scala/kamon/instrumentation/futures/twitter/TwitterFutureInstrumentation.scala b/instrumentation/twitterFuture/src/main/scala/kamon/instrumentation/futures/twitter/TwitterFutureInstrumentation.scala similarity index 100% rename from instrumentation/kamon-twitter-future/src/main/scala/kamon/instrumentation/futures/twitter/TwitterFutureInstrumentation.scala rename to instrumentation/twitterFuture/src/main/scala/kamon/instrumentation/futures/twitter/TwitterFutureInstrumentation.scala diff --git a/instrumentation/kamon-twitter-future/src/test/scala/kamon/instrumentation/futures/twitter/FutureInstrumentationSpec.scala b/instrumentation/twitterFuture/src/test/scala/kamon/instrumentation/futures/twitter/FutureInstrumentationSpec.scala similarity index 100% rename from instrumentation/kamon-twitter-future/src/test/scala/kamon/instrumentation/futures/twitter/FutureInstrumentationSpec.scala rename to instrumentation/twitterFuture/src/test/scala/kamon/instrumentation/futures/twitter/FutureInstrumentationSpec.scala diff --git a/reporters/kamon-apm-reporter/src/main/java/kamon/apm/ingestion/v2/IngestionV2.java b/reporters/apm/src/main/java/kamon/apm/ingestion/v2/IngestionV2.java similarity index 100% rename from reporters/kamon-apm-reporter/src/main/java/kamon/apm/ingestion/v2/IngestionV2.java rename to reporters/apm/src/main/java/kamon/apm/ingestion/v2/IngestionV2.java diff --git a/reporters/kamon-apm-reporter/src/main/protobuf/ingestion.v2.proto b/reporters/apm/src/main/protobuf/ingestion.v2.proto similarity index 100% rename from reporters/kamon-apm-reporter/src/main/protobuf/ingestion.v2.proto rename to reporters/apm/src/main/protobuf/ingestion.v2.proto diff --git a/reporters/kamon-apm-reporter/src/main/resources/META-INF/native-image/io.kamon/kamon-apm-reporter/native-image.properties b/reporters/apm/src/main/resources/META-INF/native-image/io.kamon/kamon-apm-reporter/native-image.properties similarity index 100% rename from reporters/kamon-apm-reporter/src/main/resources/META-INF/native-image/io.kamon/kamon-apm-reporter/native-image.properties rename to reporters/apm/src/main/resources/META-INF/native-image/io.kamon/kamon-apm-reporter/native-image.properties diff --git a/reporters/kamon-apm-reporter/src/main/resources/META-INF/native-image/io.kamon/kamon-apm-reporter/reflect-config.json b/reporters/apm/src/main/resources/META-INF/native-image/io.kamon/kamon-apm-reporter/reflect-config.json similarity index 100% rename from reporters/kamon-apm-reporter/src/main/resources/META-INF/native-image/io.kamon/kamon-apm-reporter/reflect-config.json rename to reporters/apm/src/main/resources/META-INF/native-image/io.kamon/kamon-apm-reporter/reflect-config.json diff --git a/reporters/kamon-apm-reporter/src/main/resources/reference.conf b/reporters/apm/src/main/resources/reference.conf similarity index 100% rename from reporters/kamon-apm-reporter/src/main/resources/reference.conf rename to reporters/apm/src/main/resources/reference.conf diff --git a/reporters/kamon-apm-reporter/src/main/scala/kamon/apm/ApiClient.scala b/reporters/apm/src/main/scala/kamon/apm/ApiClient.scala similarity index 100% rename from reporters/kamon-apm-reporter/src/main/scala/kamon/apm/ApiClient.scala rename to reporters/apm/src/main/scala/kamon/apm/ApiClient.scala diff --git a/reporters/kamon-apm-reporter/src/main/scala/kamon/apm/KamonApm.scala b/reporters/apm/src/main/scala/kamon/apm/KamonApm.scala similarity index 100% rename from reporters/kamon-apm-reporter/src/main/scala/kamon/apm/KamonApm.scala rename to reporters/apm/src/main/scala/kamon/apm/KamonApm.scala diff --git a/reporters/kamon-apm-reporter/src/main/scala/kamon/apm/package.scala b/reporters/apm/src/main/scala/kamon/apm/package.scala similarity index 100% rename from reporters/kamon-apm-reporter/src/main/scala/kamon/apm/package.scala rename to reporters/apm/src/main/scala/kamon/apm/package.scala diff --git a/reporters/kamon-apm-reporter/src/test/resources/application.conf b/reporters/apm/src/test/resources/application.conf similarity index 100% rename from reporters/kamon-apm-reporter/src/test/resources/application.conf rename to reporters/apm/src/test/resources/application.conf diff --git a/reporters/kamon-apm-reporter/src/test/scala/kamon/apm/ReporterSpec.scala b/reporters/apm/src/test/scala/kamon/apm/ReporterSpec.scala similarity index 100% rename from reporters/kamon-apm-reporter/src/test/scala/kamon/apm/ReporterSpec.scala rename to reporters/apm/src/test/scala/kamon/apm/ReporterSpec.scala diff --git a/reporters/kamon-datadog/src/main/resources/META-INF/native-image/io.kamon/kamon-datadog/native-image.properties b/reporters/datadog/src/main/resources/META-INF/native-image/io.kamon/kamon-datadog/native-image.properties similarity index 100% rename from reporters/kamon-datadog/src/main/resources/META-INF/native-image/io.kamon/kamon-datadog/native-image.properties rename to reporters/datadog/src/main/resources/META-INF/native-image/io.kamon/kamon-datadog/native-image.properties diff --git a/reporters/kamon-datadog/src/main/resources/META-INF/native-image/io.kamon/kamon-datadog/reflect-config.json b/reporters/datadog/src/main/resources/META-INF/native-image/io.kamon/kamon-datadog/reflect-config.json similarity index 100% rename from reporters/kamon-datadog/src/main/resources/META-INF/native-image/io.kamon/kamon-datadog/reflect-config.json rename to reporters/datadog/src/main/resources/META-INF/native-image/io.kamon/kamon-datadog/reflect-config.json diff --git a/reporters/kamon-datadog/src/main/resources/reference.conf b/reporters/datadog/src/main/resources/reference.conf similarity index 100% rename from reporters/kamon-datadog/src/main/resources/reference.conf rename to reporters/datadog/src/main/resources/reference.conf diff --git a/reporters/kamon-datadog/src/main/scala/kamon/datadog/DatadogAPIReporter.scala b/reporters/datadog/src/main/scala/kamon/datadog/DatadogAPIReporter.scala similarity index 100% rename from reporters/kamon-datadog/src/main/scala/kamon/datadog/DatadogAPIReporter.scala rename to reporters/datadog/src/main/scala/kamon/datadog/DatadogAPIReporter.scala diff --git a/reporters/kamon-datadog/src/main/scala/kamon/datadog/DatadogAgentReporter.scala b/reporters/datadog/src/main/scala/kamon/datadog/DatadogAgentReporter.scala similarity index 100% rename from reporters/kamon-datadog/src/main/scala/kamon/datadog/DatadogAgentReporter.scala rename to reporters/datadog/src/main/scala/kamon/datadog/DatadogAgentReporter.scala diff --git a/reporters/kamon-datadog/src/main/scala/kamon/datadog/DatadogSpanReporter.scala b/reporters/datadog/src/main/scala/kamon/datadog/DatadogSpanReporter.scala similarity index 100% rename from reporters/kamon-datadog/src/main/scala/kamon/datadog/DatadogSpanReporter.scala rename to reporters/datadog/src/main/scala/kamon/datadog/DatadogSpanReporter.scala diff --git a/reporters/kamon-datadog/src/main/scala/kamon/datadog/DdSpan.scala b/reporters/datadog/src/main/scala/kamon/datadog/DdSpan.scala similarity index 100% rename from reporters/kamon-datadog/src/main/scala/kamon/datadog/DdSpan.scala rename to reporters/datadog/src/main/scala/kamon/datadog/DdSpan.scala diff --git a/reporters/kamon-datadog/src/main/scala/kamon/datadog/DeflateInterceptor.scala b/reporters/datadog/src/main/scala/kamon/datadog/DeflateInterceptor.scala similarity index 100% rename from reporters/kamon-datadog/src/main/scala/kamon/datadog/DeflateInterceptor.scala rename to reporters/datadog/src/main/scala/kamon/datadog/DeflateInterceptor.scala diff --git a/reporters/kamon-datadog/src/main/scala/kamon/datadog/package.scala b/reporters/datadog/src/main/scala/kamon/datadog/package.scala similarity index 100% rename from reporters/kamon-datadog/src/main/scala/kamon/datadog/package.scala rename to reporters/datadog/src/main/scala/kamon/datadog/package.scala diff --git a/reporters/kamon-datadog/src/test/resources/application.conf b/reporters/datadog/src/test/resources/application.conf similarity index 100% rename from reporters/kamon-datadog/src/test/resources/application.conf rename to reporters/datadog/src/test/resources/application.conf diff --git a/reporters/kamon-datadog/src/test/scala/kamon/datadog/AbstractHttpReporter.scala b/reporters/datadog/src/test/scala/kamon/datadog/AbstractHttpReporter.scala similarity index 100% rename from reporters/kamon-datadog/src/test/scala/kamon/datadog/AbstractHttpReporter.scala rename to reporters/datadog/src/test/scala/kamon/datadog/AbstractHttpReporter.scala diff --git a/reporters/kamon-datadog/src/test/scala/kamon/datadog/DatadogAPIReporterSpec.scala b/reporters/datadog/src/test/scala/kamon/datadog/DatadogAPIReporterSpec.scala similarity index 100% rename from reporters/kamon-datadog/src/test/scala/kamon/datadog/DatadogAPIReporterSpec.scala rename to reporters/datadog/src/test/scala/kamon/datadog/DatadogAPIReporterSpec.scala diff --git a/reporters/kamon-datadog/src/test/scala/kamon/datadog/DatadogMetricSenderSpec.scala b/reporters/datadog/src/test/scala/kamon/datadog/DatadogMetricSenderSpec.scala similarity index 100% rename from reporters/kamon-datadog/src/test/scala/kamon/datadog/DatadogMetricSenderSpec.scala rename to reporters/datadog/src/test/scala/kamon/datadog/DatadogMetricSenderSpec.scala diff --git a/reporters/kamon-datadog/src/test/scala/kamon/datadog/DatadogSpanReporterSpec.scala b/reporters/datadog/src/test/scala/kamon/datadog/DatadogSpanReporterSpec.scala similarity index 100% rename from reporters/kamon-datadog/src/test/scala/kamon/datadog/DatadogSpanReporterSpec.scala rename to reporters/datadog/src/test/scala/kamon/datadog/DatadogSpanReporterSpec.scala diff --git a/reporters/kamon-graphite/src/main/resources/META-INF/native-image/io.kamon/kamon-graphite/native-image.properties b/reporters/graphite/src/main/resources/META-INF/native-image/io.kamon/kamon-graphite/native-image.properties similarity index 100% rename from reporters/kamon-graphite/src/main/resources/META-INF/native-image/io.kamon/kamon-graphite/native-image.properties rename to reporters/graphite/src/main/resources/META-INF/native-image/io.kamon/kamon-graphite/native-image.properties diff --git a/reporters/kamon-graphite/src/main/resources/META-INF/native-image/io.kamon/kamon-graphite/reflect-config.json b/reporters/graphite/src/main/resources/META-INF/native-image/io.kamon/kamon-graphite/reflect-config.json similarity index 100% rename from reporters/kamon-graphite/src/main/resources/META-INF/native-image/io.kamon/kamon-graphite/reflect-config.json rename to reporters/graphite/src/main/resources/META-INF/native-image/io.kamon/kamon-graphite/reflect-config.json diff --git a/reporters/kamon-graphite/src/main/resources/reference.conf b/reporters/graphite/src/main/resources/reference.conf similarity index 100% rename from reporters/kamon-graphite/src/main/resources/reference.conf rename to reporters/graphite/src/main/resources/reference.conf diff --git a/reporters/kamon-graphite/src/main/scala/kamon/graphite/GraphiteReporter.scala b/reporters/graphite/src/main/scala/kamon/graphite/GraphiteReporter.scala similarity index 100% rename from reporters/kamon-graphite/src/main/scala/kamon/graphite/GraphiteReporter.scala rename to reporters/graphite/src/main/scala/kamon/graphite/GraphiteReporter.scala diff --git a/reporters/kamon-graphite/src/test/resources/application.conf b/reporters/graphite/src/test/resources/application.conf similarity index 100% rename from reporters/kamon-graphite/src/test/resources/application.conf rename to reporters/graphite/src/test/resources/application.conf diff --git a/reporters/kamon-graphite/src/test/scala/kamon/graphite/GraphiteReporterSpec.scala b/reporters/graphite/src/test/scala/kamon/graphite/GraphiteReporterSpec.scala similarity index 100% rename from reporters/kamon-graphite/src/test/scala/kamon/graphite/GraphiteReporterSpec.scala rename to reporters/graphite/src/test/scala/kamon/graphite/GraphiteReporterSpec.scala diff --git a/reporters/kamon-graphite/src/test/scala/kamon/graphite/GraphiteSenderSpec.scala b/reporters/graphite/src/test/scala/kamon/graphite/GraphiteSenderSpec.scala similarity index 100% rename from reporters/kamon-graphite/src/test/scala/kamon/graphite/GraphiteSenderSpec.scala rename to reporters/graphite/src/test/scala/kamon/graphite/GraphiteSenderSpec.scala diff --git a/reporters/kamon-influxdb/src/main/resources/META-INF/native-image/io.kamon/kamon-influxdb/native-image.properties b/reporters/influxdb/src/main/resources/META-INF/native-image/io.kamon/kamon-influxdb/native-image.properties similarity index 100% rename from reporters/kamon-influxdb/src/main/resources/META-INF/native-image/io.kamon/kamon-influxdb/native-image.properties rename to reporters/influxdb/src/main/resources/META-INF/native-image/io.kamon/kamon-influxdb/native-image.properties diff --git a/reporters/kamon-influxdb/src/main/resources/META-INF/native-image/io.kamon/kamon-influxdb/reflect-config.json b/reporters/influxdb/src/main/resources/META-INF/native-image/io.kamon/kamon-influxdb/reflect-config.json similarity index 100% rename from reporters/kamon-influxdb/src/main/resources/META-INF/native-image/io.kamon/kamon-influxdb/reflect-config.json rename to reporters/influxdb/src/main/resources/META-INF/native-image/io.kamon/kamon-influxdb/reflect-config.json diff --git a/reporters/kamon-influxdb/src/main/resources/reference.conf b/reporters/influxdb/src/main/resources/reference.conf similarity index 100% rename from reporters/kamon-influxdb/src/main/resources/reference.conf rename to reporters/influxdb/src/main/resources/reference.conf diff --git a/reporters/kamon-influxdb/src/main/scala/kamon/influxdb/InfluxDBReporter.scala b/reporters/influxdb/src/main/scala/kamon/influxdb/InfluxDBReporter.scala similarity index 100% rename from reporters/kamon-influxdb/src/main/scala/kamon/influxdb/InfluxDBReporter.scala rename to reporters/influxdb/src/main/scala/kamon/influxdb/InfluxDBReporter.scala diff --git a/reporters/kamon-influxdb/src/test/resources/application.conf b/reporters/influxdb/src/test/resources/application.conf similarity index 100% rename from reporters/kamon-influxdb/src/test/resources/application.conf rename to reporters/influxdb/src/test/resources/application.conf diff --git a/reporters/kamon-influxdb/src/test/scala/kamon/influxdb/InfluxDBCustomMatchers.scala b/reporters/influxdb/src/test/scala/kamon/influxdb/InfluxDBCustomMatchers.scala similarity index 100% rename from reporters/kamon-influxdb/src/test/scala/kamon/influxdb/InfluxDBCustomMatchers.scala rename to reporters/influxdb/src/test/scala/kamon/influxdb/InfluxDBCustomMatchers.scala diff --git a/reporters/kamon-influxdb/src/test/scala/kamon/influxdb/InfluxDBReporterSpec.scala b/reporters/influxdb/src/test/scala/kamon/influxdb/InfluxDBReporterSpec.scala similarity index 100% rename from reporters/kamon-influxdb/src/test/scala/kamon/influxdb/InfluxDBReporterSpec.scala rename to reporters/influxdb/src/test/scala/kamon/influxdb/InfluxDBReporterSpec.scala diff --git a/reporters/kamon-jaeger/src/main/resources/META-INF/native-image/io.kamon/kamon-jaeger/native-image.properties b/reporters/jaeger/src/main/resources/META-INF/native-image/io.kamon/kamon-jaeger/native-image.properties similarity index 100% rename from reporters/kamon-jaeger/src/main/resources/META-INF/native-image/io.kamon/kamon-jaeger/native-image.properties rename to reporters/jaeger/src/main/resources/META-INF/native-image/io.kamon/kamon-jaeger/native-image.properties diff --git a/reporters/kamon-jaeger/src/main/resources/META-INF/native-image/io.kamon/kamon-jaeger/reflect-config.json b/reporters/jaeger/src/main/resources/META-INF/native-image/io.kamon/kamon-jaeger/reflect-config.json similarity index 100% rename from reporters/kamon-jaeger/src/main/resources/META-INF/native-image/io.kamon/kamon-jaeger/reflect-config.json rename to reporters/jaeger/src/main/resources/META-INF/native-image/io.kamon/kamon-jaeger/reflect-config.json diff --git a/reporters/kamon-jaeger/src/main/resources/reference.conf b/reporters/jaeger/src/main/resources/reference.conf similarity index 100% rename from reporters/kamon-jaeger/src/main/resources/reference.conf rename to reporters/jaeger/src/main/resources/reference.conf diff --git a/reporters/kamon-jaeger/src/main/scala/kamon/jaeger/JaegerClient.scala b/reporters/jaeger/src/main/scala/kamon/jaeger/JaegerClient.scala similarity index 100% rename from reporters/kamon-jaeger/src/main/scala/kamon/jaeger/JaegerClient.scala rename to reporters/jaeger/src/main/scala/kamon/jaeger/JaegerClient.scala diff --git a/reporters/kamon-jaeger/src/main/scala/kamon/jaeger/JaegerReporter.scala b/reporters/jaeger/src/main/scala/kamon/jaeger/JaegerReporter.scala similarity index 100% rename from reporters/kamon-jaeger/src/main/scala/kamon/jaeger/JaegerReporter.scala rename to reporters/jaeger/src/main/scala/kamon/jaeger/JaegerReporter.scala diff --git a/reporters/kamon-jaeger/src/main/scala/kamon/jaeger/JaegerSpanConverter.scala b/reporters/jaeger/src/main/scala/kamon/jaeger/JaegerSpanConverter.scala similarity index 100% rename from reporters/kamon-jaeger/src/main/scala/kamon/jaeger/JaegerSpanConverter.scala rename to reporters/jaeger/src/main/scala/kamon/jaeger/JaegerSpanConverter.scala diff --git a/reporters/kamon-newrelic/src/main/resources/META-INF/native-image/io.kamon/kamon-newrelic/native-image.properties b/reporters/newrelic/src/main/resources/META-INF/native-image/io.kamon/kamon-newrelic/native-image.properties similarity index 100% rename from reporters/kamon-newrelic/src/main/resources/META-INF/native-image/io.kamon/kamon-newrelic/native-image.properties rename to reporters/newrelic/src/main/resources/META-INF/native-image/io.kamon/kamon-newrelic/native-image.properties diff --git a/reporters/kamon-newrelic/src/main/resources/META-INF/native-image/io.kamon/kamon-newrelic/reflect-config.json b/reporters/newrelic/src/main/resources/META-INF/native-image/io.kamon/kamon-newrelic/reflect-config.json similarity index 100% rename from reporters/kamon-newrelic/src/main/resources/META-INF/native-image/io.kamon/kamon-newrelic/reflect-config.json rename to reporters/newrelic/src/main/resources/META-INF/native-image/io.kamon/kamon-newrelic/reflect-config.json diff --git a/reporters/kamon-newrelic/src/main/resources/reference.conf b/reporters/newrelic/src/main/resources/reference.conf similarity index 100% rename from reporters/kamon-newrelic/src/main/resources/reference.conf rename to reporters/newrelic/src/main/resources/reference.conf diff --git a/reporters/kamon-newrelic/src/main/scala/kamon/newrelic/AttributeBuddy.scala b/reporters/newrelic/src/main/scala/kamon/newrelic/AttributeBuddy.scala similarity index 100% rename from reporters/kamon-newrelic/src/main/scala/kamon/newrelic/AttributeBuddy.scala rename to reporters/newrelic/src/main/scala/kamon/newrelic/AttributeBuddy.scala diff --git a/reporters/kamon-newrelic/src/main/scala/kamon/newrelic/LibraryVersion.scala b/reporters/newrelic/src/main/scala/kamon/newrelic/LibraryVersion.scala similarity index 100% rename from reporters/kamon-newrelic/src/main/scala/kamon/newrelic/LibraryVersion.scala rename to reporters/newrelic/src/main/scala/kamon/newrelic/LibraryVersion.scala diff --git a/reporters/kamon-newrelic/src/main/scala/kamon/newrelic/NewRelicConfig.scala b/reporters/newrelic/src/main/scala/kamon/newrelic/NewRelicConfig.scala similarity index 100% rename from reporters/kamon-newrelic/src/main/scala/kamon/newrelic/NewRelicConfig.scala rename to reporters/newrelic/src/main/scala/kamon/newrelic/NewRelicConfig.scala diff --git a/reporters/kamon-newrelic/src/main/scala/kamon/newrelic/metrics/ConversionSupport.scala b/reporters/newrelic/src/main/scala/kamon/newrelic/metrics/ConversionSupport.scala similarity index 100% rename from reporters/kamon-newrelic/src/main/scala/kamon/newrelic/metrics/ConversionSupport.scala rename to reporters/newrelic/src/main/scala/kamon/newrelic/metrics/ConversionSupport.scala diff --git a/reporters/kamon-newrelic/src/main/scala/kamon/newrelic/metrics/NewRelicCounters.scala b/reporters/newrelic/src/main/scala/kamon/newrelic/metrics/NewRelicCounters.scala similarity index 100% rename from reporters/kamon-newrelic/src/main/scala/kamon/newrelic/metrics/NewRelicCounters.scala rename to reporters/newrelic/src/main/scala/kamon/newrelic/metrics/NewRelicCounters.scala diff --git a/reporters/kamon-newrelic/src/main/scala/kamon/newrelic/metrics/NewRelicDistributionMetrics.scala b/reporters/newrelic/src/main/scala/kamon/newrelic/metrics/NewRelicDistributionMetrics.scala similarity index 100% rename from reporters/kamon-newrelic/src/main/scala/kamon/newrelic/metrics/NewRelicDistributionMetrics.scala rename to reporters/newrelic/src/main/scala/kamon/newrelic/metrics/NewRelicDistributionMetrics.scala diff --git a/reporters/kamon-newrelic/src/main/scala/kamon/newrelic/metrics/NewRelicGauges.scala b/reporters/newrelic/src/main/scala/kamon/newrelic/metrics/NewRelicGauges.scala similarity index 100% rename from reporters/kamon-newrelic/src/main/scala/kamon/newrelic/metrics/NewRelicGauges.scala rename to reporters/newrelic/src/main/scala/kamon/newrelic/metrics/NewRelicGauges.scala diff --git a/reporters/kamon-newrelic/src/main/scala/kamon/newrelic/metrics/NewRelicMetricsReporter.scala b/reporters/newrelic/src/main/scala/kamon/newrelic/metrics/NewRelicMetricsReporter.scala similarity index 100% rename from reporters/kamon-newrelic/src/main/scala/kamon/newrelic/metrics/NewRelicMetricsReporter.scala rename to reporters/newrelic/src/main/scala/kamon/newrelic/metrics/NewRelicMetricsReporter.scala diff --git a/reporters/kamon-newrelic/src/main/scala/kamon/newrelic/spans/NewRelicSpanConverter.scala b/reporters/newrelic/src/main/scala/kamon/newrelic/spans/NewRelicSpanConverter.scala similarity index 100% rename from reporters/kamon-newrelic/src/main/scala/kamon/newrelic/spans/NewRelicSpanConverter.scala rename to reporters/newrelic/src/main/scala/kamon/newrelic/spans/NewRelicSpanConverter.scala diff --git a/reporters/kamon-newrelic/src/main/scala/kamon/newrelic/spans/NewRelicSpanReporter.scala b/reporters/newrelic/src/main/scala/kamon/newrelic/spans/NewRelicSpanReporter.scala similarity index 100% rename from reporters/kamon-newrelic/src/main/scala/kamon/newrelic/spans/NewRelicSpanReporter.scala rename to reporters/newrelic/src/main/scala/kamon/newrelic/spans/NewRelicSpanReporter.scala diff --git a/reporters/kamon-newrelic/src/main/scala/kamon/newrelic/spans/SpanBatchSenderBuilder.scala b/reporters/newrelic/src/main/scala/kamon/newrelic/spans/SpanBatchSenderBuilder.scala similarity index 100% rename from reporters/kamon-newrelic/src/main/scala/kamon/newrelic/spans/SpanBatchSenderBuilder.scala rename to reporters/newrelic/src/main/scala/kamon/newrelic/spans/SpanBatchSenderBuilder.scala diff --git a/reporters/kamon-newrelic/src/test/resources/reference.conf b/reporters/newrelic/src/test/resources/reference.conf similarity index 100% rename from reporters/kamon-newrelic/src/test/resources/reference.conf rename to reporters/newrelic/src/test/resources/reference.conf diff --git a/reporters/kamon-newrelic/src/test/scala/kamon/newrelic/AttributeBuddySpec.scala b/reporters/newrelic/src/test/scala/kamon/newrelic/AttributeBuddySpec.scala similarity index 100% rename from reporters/kamon-newrelic/src/test/scala/kamon/newrelic/AttributeBuddySpec.scala rename to reporters/newrelic/src/test/scala/kamon/newrelic/AttributeBuddySpec.scala diff --git a/reporters/kamon-newrelic/src/test/scala/kamon/newrelic/metrics/ConversionSupportSpec.scala b/reporters/newrelic/src/test/scala/kamon/newrelic/metrics/ConversionSupportSpec.scala similarity index 100% rename from reporters/kamon-newrelic/src/test/scala/kamon/newrelic/metrics/ConversionSupportSpec.scala rename to reporters/newrelic/src/test/scala/kamon/newrelic/metrics/ConversionSupportSpec.scala diff --git a/reporters/kamon-newrelic/src/test/scala/kamon/newrelic/metrics/NewRelicCountersSpec.scala b/reporters/newrelic/src/test/scala/kamon/newrelic/metrics/NewRelicCountersSpec.scala similarity index 100% rename from reporters/kamon-newrelic/src/test/scala/kamon/newrelic/metrics/NewRelicCountersSpec.scala rename to reporters/newrelic/src/test/scala/kamon/newrelic/metrics/NewRelicCountersSpec.scala diff --git a/reporters/kamon-newrelic/src/test/scala/kamon/newrelic/metrics/NewRelicDistributionMetricsSpec.scala b/reporters/newrelic/src/test/scala/kamon/newrelic/metrics/NewRelicDistributionMetricsSpec.scala similarity index 100% rename from reporters/kamon-newrelic/src/test/scala/kamon/newrelic/metrics/NewRelicDistributionMetricsSpec.scala rename to reporters/newrelic/src/test/scala/kamon/newrelic/metrics/NewRelicDistributionMetricsSpec.scala diff --git a/reporters/kamon-newrelic/src/test/scala/kamon/newrelic/metrics/NewRelicGaugesSpec.scala b/reporters/newrelic/src/test/scala/kamon/newrelic/metrics/NewRelicGaugesSpec.scala similarity index 100% rename from reporters/kamon-newrelic/src/test/scala/kamon/newrelic/metrics/NewRelicGaugesSpec.scala rename to reporters/newrelic/src/test/scala/kamon/newrelic/metrics/NewRelicGaugesSpec.scala diff --git a/reporters/kamon-newrelic/src/test/scala/kamon/newrelic/metrics/NewRelicMetricsReporterSpec.scala b/reporters/newrelic/src/test/scala/kamon/newrelic/metrics/NewRelicMetricsReporterSpec.scala similarity index 100% rename from reporters/kamon-newrelic/src/test/scala/kamon/newrelic/metrics/NewRelicMetricsReporterSpec.scala rename to reporters/newrelic/src/test/scala/kamon/newrelic/metrics/NewRelicMetricsReporterSpec.scala diff --git a/reporters/kamon-newrelic/src/test/scala/kamon/newrelic/metrics/TestMetricHelper.scala b/reporters/newrelic/src/test/scala/kamon/newrelic/metrics/TestMetricHelper.scala similarity index 100% rename from reporters/kamon-newrelic/src/test/scala/kamon/newrelic/metrics/TestMetricHelper.scala rename to reporters/newrelic/src/test/scala/kamon/newrelic/metrics/TestMetricHelper.scala diff --git a/reporters/kamon-newrelic/src/test/scala/kamon/newrelic/spans/NewRelicSpanConverterSpec.scala b/reporters/newrelic/src/test/scala/kamon/newrelic/spans/NewRelicSpanConverterSpec.scala similarity index 100% rename from reporters/kamon-newrelic/src/test/scala/kamon/newrelic/spans/NewRelicSpanConverterSpec.scala rename to reporters/newrelic/src/test/scala/kamon/newrelic/spans/NewRelicSpanConverterSpec.scala diff --git a/reporters/kamon-newrelic/src/test/scala/kamon/newrelic/spans/NewRelicSpanReporterSpec.scala b/reporters/newrelic/src/test/scala/kamon/newrelic/spans/NewRelicSpanReporterSpec.scala similarity index 100% rename from reporters/kamon-newrelic/src/test/scala/kamon/newrelic/spans/NewRelicSpanReporterSpec.scala rename to reporters/newrelic/src/test/scala/kamon/newrelic/spans/NewRelicSpanReporterSpec.scala diff --git a/reporters/kamon-newrelic/src/test/scala/kamon/newrelic/spans/SpanBatchSenderBuilderSpec.scala b/reporters/newrelic/src/test/scala/kamon/newrelic/spans/SpanBatchSenderBuilderSpec.scala similarity index 100% rename from reporters/kamon-newrelic/src/test/scala/kamon/newrelic/spans/SpanBatchSenderBuilderSpec.scala rename to reporters/newrelic/src/test/scala/kamon/newrelic/spans/SpanBatchSenderBuilderSpec.scala diff --git a/reporters/kamon-newrelic/src/test/scala/kamon/newrelic/spans/TestSpanHelper.scala b/reporters/newrelic/src/test/scala/kamon/newrelic/spans/TestSpanHelper.scala similarity index 100% rename from reporters/kamon-newrelic/src/test/scala/kamon/newrelic/spans/TestSpanHelper.scala rename to reporters/newrelic/src/test/scala/kamon/newrelic/spans/TestSpanHelper.scala diff --git a/reporters/kamon-opentelemetry/README.md b/reporters/opentelemetry/README.md similarity index 100% rename from reporters/kamon-opentelemetry/README.md rename to reporters/opentelemetry/README.md diff --git a/reporters/kamon-opentelemetry/src/main/resources/META-INF/native-image/io.kamon/kamon-opentelemetry/native-image.properties b/reporters/opentelemetry/src/main/resources/META-INF/native-image/io.kamon/kamon-opentelemetry/native-image.properties similarity index 100% rename from reporters/kamon-opentelemetry/src/main/resources/META-INF/native-image/io.kamon/kamon-opentelemetry/native-image.properties rename to reporters/opentelemetry/src/main/resources/META-INF/native-image/io.kamon/kamon-opentelemetry/native-image.properties diff --git a/reporters/kamon-opentelemetry/src/main/resources/META-INF/native-image/io.kamon/kamon-opentelemetry/reflect-config.json b/reporters/opentelemetry/src/main/resources/META-INF/native-image/io.kamon/kamon-opentelemetry/reflect-config.json similarity index 100% rename from reporters/kamon-opentelemetry/src/main/resources/META-INF/native-image/io.kamon/kamon-opentelemetry/reflect-config.json rename to reporters/opentelemetry/src/main/resources/META-INF/native-image/io.kamon/kamon-opentelemetry/reflect-config.json diff --git a/reporters/kamon-opentelemetry/src/main/resources/reference.conf b/reporters/opentelemetry/src/main/resources/reference.conf similarity index 100% rename from reporters/kamon-opentelemetry/src/main/resources/reference.conf rename to reporters/opentelemetry/src/main/resources/reference.conf diff --git a/reporters/kamon-opentelemetry/src/main/scala/kamon/otel/OpenTelemetryTraceReporter.scala b/reporters/opentelemetry/src/main/scala/kamon/otel/OpenTelemetryTraceReporter.scala similarity index 100% rename from reporters/kamon-opentelemetry/src/main/scala/kamon/otel/OpenTelemetryTraceReporter.scala rename to reporters/opentelemetry/src/main/scala/kamon/otel/OpenTelemetryTraceReporter.scala diff --git a/reporters/kamon-opentelemetry/src/main/scala/kamon/otel/SpanConverter.scala b/reporters/opentelemetry/src/main/scala/kamon/otel/SpanConverter.scala similarity index 100% rename from reporters/kamon-opentelemetry/src/main/scala/kamon/otel/SpanConverter.scala rename to reporters/opentelemetry/src/main/scala/kamon/otel/SpanConverter.scala diff --git a/reporters/kamon-opentelemetry/src/main/scala/kamon/otel/TraceService.scala b/reporters/opentelemetry/src/main/scala/kamon/otel/TraceService.scala similarity index 100% rename from reporters/kamon-opentelemetry/src/main/scala/kamon/otel/TraceService.scala rename to reporters/opentelemetry/src/main/scala/kamon/otel/TraceService.scala diff --git a/reporters/kamon-opentelemetry/src/test/resources/application.conf b/reporters/opentelemetry/src/test/resources/application.conf similarity index 100% rename from reporters/kamon-opentelemetry/src/test/resources/application.conf rename to reporters/opentelemetry/src/test/resources/application.conf diff --git a/reporters/kamon-opentelemetry/src/test/scala/kamon/otel/OpenTelemetryTraceReporterSpec.scala b/reporters/opentelemetry/src/test/scala/kamon/otel/OpenTelemetryTraceReporterSpec.scala similarity index 100% rename from reporters/kamon-opentelemetry/src/test/scala/kamon/otel/OpenTelemetryTraceReporterSpec.scala rename to reporters/opentelemetry/src/test/scala/kamon/otel/OpenTelemetryTraceReporterSpec.scala diff --git a/reporters/kamon-opentelemetry/src/test/scala/kamon/otel/SpanConverterSpec.scala b/reporters/opentelemetry/src/test/scala/kamon/otel/SpanConverterSpec.scala similarity index 100% rename from reporters/kamon-opentelemetry/src/test/scala/kamon/otel/SpanConverterSpec.scala rename to reporters/opentelemetry/src/test/scala/kamon/otel/SpanConverterSpec.scala diff --git a/reporters/kamon-opentelemetry/src/test/scala/kamon/otel/TraceServiceSpec.scala b/reporters/opentelemetry/src/test/scala/kamon/otel/TraceServiceSpec.scala similarity index 100% rename from reporters/kamon-opentelemetry/src/test/scala/kamon/otel/TraceServiceSpec.scala rename to reporters/opentelemetry/src/test/scala/kamon/otel/TraceServiceSpec.scala diff --git a/reporters/kamon-opentelemetry/src/test/scala/kamon/otel/Utils.scala b/reporters/opentelemetry/src/test/scala/kamon/otel/Utils.scala similarity index 100% rename from reporters/kamon-opentelemetry/src/test/scala/kamon/otel/Utils.scala rename to reporters/opentelemetry/src/test/scala/kamon/otel/Utils.scala diff --git a/reporters/package.mill b/reporters/package.mill new file mode 100644 index 000000000..36c361870 --- /dev/null +++ b/reporters/package.mill @@ -0,0 +1,268 @@ +package build.reporters + +import mill.*, scalalib.*, build.* +import mill.javalib.Assembly.Rule + +object apm extends Cross[apm](AllScalaVersions) +trait apm extends KamonModule { + + override def artifactName = "kamon-apm-reporter" + + def moduleDeps = Seq(core.core(crossValue)) + + def compileMvnDeps = shadedMvnDeps + + def shadedMvnDeps = Seq( + Deps.okhttp, + Deps.protobuf + ) + + override def shadingRules = super.shadingRules ++ Seq( + Rule.Relocate("fastparse.**", "kamon.apm.shaded.@1"), + Rule.Relocate("fansi.**", "kamon.apm.shaded.@1"), + Rule.Relocate("sourcecode.**", "kamon.apm.shaded.@1"), + Rule.Relocate("com.google.protobuf.**", "kamon.apm.shaded.@1"), + Rule.Relocate("google.protobuf.**", "kamon.apm.shaded.@1"), + Rule.Relocate("okhttp3.**", "kamon.apm.shaded.@1"), + Rule.Relocate("okio.**", "kamon.apm.shaded.@1"), + Rule.ExcludePattern("META-INF/maven.*") + ) + + override def jar: T[PathRef] = jarWithShadedDependencies + + object test extends SbtTests with TestModule.ScalaTest { + def moduleDeps = super.moduleDeps ++ Seq(core.testkit(crossValue)) + + def mvnDeps = { + val commonDeps = Seq( + mvn"ch.qos.logback:logback-classic:1.2.3", + Deps.scalatest + ) ++ shadedMvnDeps + + val akkaDeps = if (crossValue == Scala2Version) { + Seq( + mvn"com.typesafe.akka::akka-http:10.1.8", + mvn"com.typesafe.akka::akka-stream:2.5.23", + mvn"com.typesafe.akka::akka-testkit:2.5.23" + ) + } else { + Seq( + mvn"com.typesafe.akka:akka-http_2.13:10.1.8", + mvn"com.typesafe.akka:akka-stream_2.13:2.5.23", + mvn"com.typesafe.akka:akka-testkit_2.13:2.5.23" + ) + } + + commonDeps ++ akkaDeps + } + } +} + +object datadog extends Cross[datadog](AllScalaVersions) +trait datadog extends KamonModule { + + override def artifactName = "kamon-datadog" + + def moduleDeps = Seq(core.core(crossValue)) + + def mvnDeps = Seq( + Deps.nanojson + ) + + def compileMvnDeps = shadedMvnDeps + + def shadedMvnDeps = Seq( + Deps.okhttp + ) + + override def shadingRules = super.shadingRules ++ Seq( + Rule.Relocate("okhttp3.**", "kamon.lib.@1"), + Rule.Relocate("okio.**", "kamon.lib.@1"), + Rule.ExcludePattern("META-INF/maven.*") + ) + + override def jar: T[PathRef] = jarWithShadedDependencies + + object test extends SbtTests with TestModule.ScalaTest { + def moduleDeps = super.moduleDeps ++ Seq(core.testkit(crossValue)) + + def mvnDeps = { + val baseDeps = Seq( + Deps.scalatest, + Deps.slf4jApi, + Deps.slf4jNop, + Deps.okhttpMock + ) ++ shadedMvnDeps + + if (crossValue == Scala2Version) { + baseDeps :+ mvn"com.typesafe.play::play-json:2.7.4" + } else { + baseDeps :+ mvn"com.typesafe.play:play-json_2.13:2.7.4" + } + } + } +} + +object prometheus extends Cross[prometheus](AllScalaVersions) +trait prometheus extends KamonModule { + + override def artifactName = "kamon-prometheus" + + def moduleDeps = Seq(core.core(crossValue)) + + def mvnDeps = Seq( + Deps.okhttp + ) + + object test extends SbtTests with TestModule.ScalaTest { + def moduleDeps = super.moduleDeps ++ Seq(core.testkit(crossValue)) + + def mvnDeps = Seq( + Deps.scalatest, + Deps.logbackClassic + ) + } +} + +object statsd extends Cross[statsd](AllScalaVersions) +trait statsd extends KamonModule { + + override def artifactName = "kamon-statsd" + + def moduleDeps = Seq(core.core(crossValue)) + + object test extends SbtTests with TestModule.ScalaTest { + def moduleDeps = super.moduleDeps ++ Seq(core.testkit(crossValue)) + + def mvnDeps = Seq( + Deps.scalatest + ) + } +} + +object zipkin extends Cross[zipkin](AllScalaVersions) +trait zipkin extends KamonModule { + + override def artifactName = "kamon-zipkin" + + def moduleDeps = Seq(core.core(crossValue)) + + def mvnDeps = Seq( + mvn"io.zipkin.reporter2:zipkin-reporter:3.3.0", + mvn"io.zipkin.reporter2:zipkin-sender-okhttp3:3.3.0" + ) + + object test extends SbtTests with TestModule.ScalaTest { + def moduleDeps = super.moduleDeps ++ Seq(core.testkit(crossValue)) + + def mvnDeps = Seq( + Deps.scalatest + ) + } +} + +object jaeger extends Cross[jaeger](AllScalaVersions) +trait jaeger extends KamonModule { + + override def artifactName = "kamon-jaeger" + + def moduleDeps = Seq(core.core(crossValue)) + + def mvnDeps = Seq( + mvn"io.jaegertracing:jaeger-thrift:1.8.1" + ) + + object test extends SbtTests with TestModule.ScalaTest { + def moduleDeps = super.moduleDeps ++ Seq(core.testkit(crossValue)) + + def mvnDeps = Seq( + Deps.scalatest + ) + } +} + +object influxdb extends Cross[influxdb](AllScalaVersions) +trait influxdb extends KamonModule { + + override def artifactName = "kamon-influxdb" + + def moduleDeps = Seq(core.core(crossValue)) + + def mvnDeps = Seq( + Deps.okhttp + ) + + object test extends SbtTests with TestModule.ScalaTest { + def moduleDeps = super.moduleDeps ++ Seq(core.testkit(crossValue)) + + def mvnDeps = Seq( + Deps.scalatest, + Deps.okhttpMock + ) + } +} + +object graphite extends Cross[graphite](AllScalaVersions) +trait graphite extends KamonModule { + + override def artifactName = "kamon-graphite" + + def moduleDeps = Seq(core.core(crossValue)) + + object test extends SbtTests with TestModule.ScalaTest { + def moduleDeps = super.moduleDeps ++ Seq(core.testkit(crossValue)) + + def mvnDeps = Seq( + Deps.scalatest, + Deps.logbackClassic + ) + } +} + +object newrelic extends Cross[newrelic](AllScalaVersions) +trait newrelic extends KamonModule { + + override def artifactName = "kamon-newrelic" + + def moduleDeps = Seq(core.core(crossValue)) + + def mvnDeps = Seq( + mvn"com.newrelic.telemetry:telemetry-core:0.16.0", + mvn"com.newrelic.telemetry:telemetry-http-okhttp:0.16.0" + ) + + object test extends SbtTests with TestModule.ScalaTest { + def moduleDeps = super.moduleDeps ++ Seq(core.testkit(crossValue)) + + def mvnDeps = Seq( + Deps.scalatest, + mvn"org.mockito:mockito-core:3.12.4" + ) + } +} + +object opentelemetry extends Cross[opentelemetry](AllScalaVersions) +trait opentelemetry extends KamonModule { + + override def artifactName = "kamon-opentelemetry" + + def moduleDeps = Seq(core.core(crossValue)) + + def mvnDeps = Seq( + mvn"io.opentelemetry:opentelemetry-exporter-otlp:1.35.0" + ) + + // Compile-time dependency required in Scala 3 + def compileMvnDeps = Seq( + mvn"com.google.auto.value:auto-value-annotations:1.9" + ) + + object test extends SbtTests with TestModule.ScalaTest { + def moduleDeps = super.moduleDeps ++ Seq(core.testkit(crossValue)) + + def mvnDeps = Seq( + Deps.scalatest, + Deps.logbackClassic + ) + } +} diff --git a/reporters/kamon-prometheus/src/main/resources/META-INF/native-image/io.kamon/kamon-prometheus/native-image.properties b/reporters/prometheus/src/main/resources/META-INF/native-image/io.kamon/kamon-prometheus/native-image.properties similarity index 100% rename from reporters/kamon-prometheus/src/main/resources/META-INF/native-image/io.kamon/kamon-prometheus/native-image.properties rename to reporters/prometheus/src/main/resources/META-INF/native-image/io.kamon/kamon-prometheus/native-image.properties diff --git a/reporters/kamon-prometheus/src/main/resources/META-INF/native-image/io.kamon/kamon-prometheus/reflect-config.json b/reporters/prometheus/src/main/resources/META-INF/native-image/io.kamon/kamon-prometheus/reflect-config.json similarity index 100% rename from reporters/kamon-prometheus/src/main/resources/META-INF/native-image/io.kamon/kamon-prometheus/reflect-config.json rename to reporters/prometheus/src/main/resources/META-INF/native-image/io.kamon/kamon-prometheus/reflect-config.json diff --git a/reporters/kamon-prometheus/src/main/resources/reference.conf b/reporters/prometheus/src/main/resources/reference.conf similarity index 100% rename from reporters/kamon-prometheus/src/main/resources/reference.conf rename to reporters/prometheus/src/main/resources/reference.conf diff --git a/reporters/kamon-prometheus/src/main/scala/kamon/prometheus/HttpClient.scala b/reporters/prometheus/src/main/scala/kamon/prometheus/HttpClient.scala similarity index 100% rename from reporters/kamon-prometheus/src/main/scala/kamon/prometheus/HttpClient.scala rename to reporters/prometheus/src/main/scala/kamon/prometheus/HttpClient.scala diff --git a/reporters/kamon-prometheus/src/main/scala/kamon/prometheus/MetricOverrideReporter.scala b/reporters/prometheus/src/main/scala/kamon/prometheus/MetricOverrideReporter.scala similarity index 100% rename from reporters/kamon-prometheus/src/main/scala/kamon/prometheus/MetricOverrideReporter.scala rename to reporters/prometheus/src/main/scala/kamon/prometheus/MetricOverrideReporter.scala diff --git a/reporters/kamon-prometheus/src/main/scala/kamon/prometheus/PrometheusPushgatewayReporter.scala b/reporters/prometheus/src/main/scala/kamon/prometheus/PrometheusPushgatewayReporter.scala similarity index 100% rename from reporters/kamon-prometheus/src/main/scala/kamon/prometheus/PrometheusPushgatewayReporter.scala rename to reporters/prometheus/src/main/scala/kamon/prometheus/PrometheusPushgatewayReporter.scala diff --git a/reporters/kamon-prometheus/src/main/scala/kamon/prometheus/PrometheusReporter.scala b/reporters/prometheus/src/main/scala/kamon/prometheus/PrometheusReporter.scala similarity index 100% rename from reporters/kamon-prometheus/src/main/scala/kamon/prometheus/PrometheusReporter.scala rename to reporters/prometheus/src/main/scala/kamon/prometheus/PrometheusReporter.scala diff --git a/reporters/kamon-prometheus/src/main/scala/kamon/prometheus/PrometheusSettings.scala b/reporters/prometheus/src/main/scala/kamon/prometheus/PrometheusSettings.scala similarity index 100% rename from reporters/kamon-prometheus/src/main/scala/kamon/prometheus/PrometheusSettings.scala rename to reporters/prometheus/src/main/scala/kamon/prometheus/PrometheusSettings.scala diff --git a/reporters/kamon-prometheus/src/main/scala/kamon/prometheus/ScrapeDataBuilder.scala b/reporters/prometheus/src/main/scala/kamon/prometheus/ScrapeDataBuilder.scala similarity index 100% rename from reporters/kamon-prometheus/src/main/scala/kamon/prometheus/ScrapeDataBuilder.scala rename to reporters/prometheus/src/main/scala/kamon/prometheus/ScrapeDataBuilder.scala diff --git a/reporters/kamon-prometheus/src/main/scala/kamon/prometheus/embeddedhttp/EmbeddedHttpServer.scala b/reporters/prometheus/src/main/scala/kamon/prometheus/embeddedhttp/EmbeddedHttpServer.scala similarity index 100% rename from reporters/kamon-prometheus/src/main/scala/kamon/prometheus/embeddedhttp/EmbeddedHttpServer.scala rename to reporters/prometheus/src/main/scala/kamon/prometheus/embeddedhttp/EmbeddedHttpServer.scala diff --git a/reporters/kamon-prometheus/src/main/scala/kamon/prometheus/embeddedhttp/SunEmbeddedHttpServer.scala b/reporters/prometheus/src/main/scala/kamon/prometheus/embeddedhttp/SunEmbeddedHttpServer.scala similarity index 100% rename from reporters/kamon-prometheus/src/main/scala/kamon/prometheus/embeddedhttp/SunEmbeddedHttpServer.scala rename to reporters/prometheus/src/main/scala/kamon/prometheus/embeddedhttp/SunEmbeddedHttpServer.scala diff --git a/reporters/kamon-prometheus/src/test/scala/kamon/prometheus/EmbeddedHttpServerSpec.scala b/reporters/prometheus/src/test/scala/kamon/prometheus/EmbeddedHttpServerSpec.scala similarity index 100% rename from reporters/kamon-prometheus/src/test/scala/kamon/prometheus/EmbeddedHttpServerSpec.scala rename to reporters/prometheus/src/test/scala/kamon/prometheus/EmbeddedHttpServerSpec.scala diff --git a/reporters/kamon-prometheus/src/test/scala/kamon/prometheus/KamonTestSnapshotSupport.scala b/reporters/prometheus/src/test/scala/kamon/prometheus/KamonTestSnapshotSupport.scala similarity index 100% rename from reporters/kamon-prometheus/src/test/scala/kamon/prometheus/KamonTestSnapshotSupport.scala rename to reporters/prometheus/src/test/scala/kamon/prometheus/KamonTestSnapshotSupport.scala diff --git a/reporters/kamon-prometheus/src/test/scala/kamon/prometheus/MetricOverrideReporterSpec.scala b/reporters/prometheus/src/test/scala/kamon/prometheus/MetricOverrideReporterSpec.scala similarity index 100% rename from reporters/kamon-prometheus/src/test/scala/kamon/prometheus/MetricOverrideReporterSpec.scala rename to reporters/prometheus/src/test/scala/kamon/prometheus/MetricOverrideReporterSpec.scala diff --git a/reporters/kamon-prometheus/src/test/scala/kamon/prometheus/ScrapeDataBuilderSpec.scala b/reporters/prometheus/src/test/scala/kamon/prometheus/ScrapeDataBuilderSpec.scala similarity index 100% rename from reporters/kamon-prometheus/src/test/scala/kamon/prometheus/ScrapeDataBuilderSpec.scala rename to reporters/prometheus/src/test/scala/kamon/prometheus/ScrapeDataBuilderSpec.scala diff --git a/reporters/kamon-statsd/src/main/resources/META-INF/native-image/io.kamon/kamon-statsd/native-image.properties b/reporters/statsd/src/main/resources/META-INF/native-image/io.kamon/kamon-statsd/native-image.properties similarity index 100% rename from reporters/kamon-statsd/src/main/resources/META-INF/native-image/io.kamon/kamon-statsd/native-image.properties rename to reporters/statsd/src/main/resources/META-INF/native-image/io.kamon/kamon-statsd/native-image.properties diff --git a/reporters/kamon-statsd/src/main/resources/META-INF/native-image/io.kamon/kamon-statsd/reflect-config.json b/reporters/statsd/src/main/resources/META-INF/native-image/io.kamon/kamon-statsd/reflect-config.json similarity index 100% rename from reporters/kamon-statsd/src/main/resources/META-INF/native-image/io.kamon/kamon-statsd/reflect-config.json rename to reporters/statsd/src/main/resources/META-INF/native-image/io.kamon/kamon-statsd/reflect-config.json diff --git a/reporters/kamon-statsd/src/main/resources/reference.conf b/reporters/statsd/src/main/resources/reference.conf similarity index 100% rename from reporters/kamon-statsd/src/main/resources/reference.conf rename to reporters/statsd/src/main/resources/reference.conf diff --git a/reporters/kamon-statsd/src/main/scala/kamon/statsd/SimpleMetricKeyGenerator.scala b/reporters/statsd/src/main/scala/kamon/statsd/SimpleMetricKeyGenerator.scala similarity index 100% rename from reporters/kamon-statsd/src/main/scala/kamon/statsd/SimpleMetricKeyGenerator.scala rename to reporters/statsd/src/main/scala/kamon/statsd/SimpleMetricKeyGenerator.scala diff --git a/reporters/kamon-statsd/src/main/scala/kamon/statsd/StatsDReporter.scala b/reporters/statsd/src/main/scala/kamon/statsd/StatsDReporter.scala similarity index 100% rename from reporters/kamon-statsd/src/main/scala/kamon/statsd/StatsDReporter.scala rename to reporters/statsd/src/main/scala/kamon/statsd/StatsDReporter.scala diff --git a/reporters/kamon-statsd/src/main/scala/kamon/statsd/package.scala b/reporters/statsd/src/main/scala/kamon/statsd/package.scala similarity index 100% rename from reporters/kamon-statsd/src/main/scala/kamon/statsd/package.scala rename to reporters/statsd/src/main/scala/kamon/statsd/package.scala diff --git a/reporters/kamon-statsd/src/test/resources/application.conf b/reporters/statsd/src/test/resources/application.conf similarity index 100% rename from reporters/kamon-statsd/src/test/resources/application.conf rename to reporters/statsd/src/test/resources/application.conf diff --git a/reporters/kamon-statsd/src/test/resources/logback.xml b/reporters/statsd/src/test/resources/logback.xml similarity index 100% rename from reporters/kamon-statsd/src/test/resources/logback.xml rename to reporters/statsd/src/test/resources/logback.xml diff --git a/reporters/kamon-statsd/src/test/scala/kamon/statsd/MetricDataPacketBufferSpec.scala b/reporters/statsd/src/test/scala/kamon/statsd/MetricDataPacketBufferSpec.scala similarity index 100% rename from reporters/kamon-statsd/src/test/scala/kamon/statsd/MetricDataPacketBufferSpec.scala rename to reporters/statsd/src/test/scala/kamon/statsd/MetricDataPacketBufferSpec.scala diff --git a/reporters/kamon-statsd/src/test/scala/kamon/statsd/ReadConfigUnitSpec.scala b/reporters/statsd/src/test/scala/kamon/statsd/ReadConfigUnitSpec.scala similarity index 100% rename from reporters/kamon-statsd/src/test/scala/kamon/statsd/ReadConfigUnitSpec.scala rename to reporters/statsd/src/test/scala/kamon/statsd/ReadConfigUnitSpec.scala diff --git a/reporters/kamon-statsd/src/test/scala/kamon/statsd/SimpleMetricKeyGeneratorSpec.scala b/reporters/statsd/src/test/scala/kamon/statsd/SimpleMetricKeyGeneratorSpec.scala similarity index 100% rename from reporters/kamon-statsd/src/test/scala/kamon/statsd/SimpleMetricKeyGeneratorSpec.scala rename to reporters/statsd/src/test/scala/kamon/statsd/SimpleMetricKeyGeneratorSpec.scala diff --git a/reporters/kamon-statsd/src/test/scala/kamon/statsd/StatsDReporterSpec.scala b/reporters/statsd/src/test/scala/kamon/statsd/StatsDReporterSpec.scala similarity index 100% rename from reporters/kamon-statsd/src/test/scala/kamon/statsd/StatsDReporterSpec.scala rename to reporters/statsd/src/test/scala/kamon/statsd/StatsDReporterSpec.scala diff --git a/reporters/kamon-statsd/src/test/scala/kamon/statsd/StatsDServer.scala b/reporters/statsd/src/test/scala/kamon/statsd/StatsDServer.scala similarity index 100% rename from reporters/kamon-statsd/src/test/scala/kamon/statsd/StatsDServer.scala rename to reporters/statsd/src/test/scala/kamon/statsd/StatsDServer.scala diff --git a/reporters/kamon-zipkin/src/main/resources/META-INF/native-image/io.kamon/kamon-apm-reporter/native-image.properties b/reporters/zipkin/src/main/resources/META-INF/native-image/io.kamon/kamon-apm-reporter/native-image.properties similarity index 100% rename from reporters/kamon-zipkin/src/main/resources/META-INF/native-image/io.kamon/kamon-apm-reporter/native-image.properties rename to reporters/zipkin/src/main/resources/META-INF/native-image/io.kamon/kamon-apm-reporter/native-image.properties diff --git a/reporters/kamon-zipkin/src/main/resources/META-INF/native-image/io.kamon/kamon-apm-reporter/reflect-config.json b/reporters/zipkin/src/main/resources/META-INF/native-image/io.kamon/kamon-apm-reporter/reflect-config.json similarity index 100% rename from reporters/kamon-zipkin/src/main/resources/META-INF/native-image/io.kamon/kamon-apm-reporter/reflect-config.json rename to reporters/zipkin/src/main/resources/META-INF/native-image/io.kamon/kamon-apm-reporter/reflect-config.json diff --git a/reporters/kamon-zipkin/src/main/resources/reference.conf b/reporters/zipkin/src/main/resources/reference.conf similarity index 100% rename from reporters/kamon-zipkin/src/main/resources/reference.conf rename to reporters/zipkin/src/main/resources/reference.conf diff --git a/reporters/kamon-zipkin/src/main/scala/kamon/zipkin/ZipkinReporter.scala b/reporters/zipkin/src/main/scala/kamon/zipkin/ZipkinReporter.scala similarity index 100% rename from reporters/kamon-zipkin/src/main/scala/kamon/zipkin/ZipkinReporter.scala rename to reporters/zipkin/src/main/scala/kamon/zipkin/ZipkinReporter.scala diff --git a/reporters/kamon-zipkin/src/test/scala/kamon/zipkin/SpanConversionSpec.scala b/reporters/zipkin/src/test/scala/kamon/zipkin/SpanConversionSpec.scala similarity index 100% rename from reporters/kamon-zipkin/src/test/scala/kamon/zipkin/SpanConversionSpec.scala rename to reporters/zipkin/src/test/scala/kamon/zipkin/SpanConversionSpec.scala