From 6cc7a58ae8dc689350a8b00dc5b125849d3a7855 Mon Sep 17 00:00:00 2001 From: Sean Glover Date: Thu, 25 Apr 2019 12:48:24 -0400 Subject: [PATCH] Factor out spark-event-exporter and project reorg/simplification (#15) --- README.md | 214 +++++++++++++++++- build.sbt | 70 +----- kafka-lag-exporter/README.md | 201 ---------------- .../src/main/resources/logback.xml | 15 -- .../CodahaleMetricsSink.scala | 54 ----- .../kafka/kafkametricstools/Config.scala | 11 - .../CodahaleMetricsSinkSpec.scala | 47 ---- lib/jmx-prometheus-exporter-config.yaml | 15 -- lib/jmx_prometheus_javaagent-0.3.1.jar | Bin 367417 -> 0 bytes project/Dependencies.scala | 21 +- spark-event-exporter/README.md | 50 ---- .../kafka/sparkeventexporter/Config.scala | 46 ---- .../SparkEventExporter.scala | 69 ------ .../sparkeventexporter/internal/Domain.scala | 12 - .../internal/ExporterManager.scala | 49 ---- .../internal/MetricCollector.scala | 142 ------------ .../sparkeventexporter/internal/Metrics.scala | 75 ------ .../MetricsStreamingQueryListener.scala | 19 -- .../internal/SparkEventAdapter.scala | 118 ---------- .../SparkEventExporterSource.scala | 11 - .../internal/MetricCollectorSpec.scala | 75 ------ .../internal/SparkEventAdapterSpec.scala | 31 --- .../src => src}/main/resources/logback.xml | 2 +- .../src => src}/main/resources/reference.conf | 0 .../kafkalagexporter/AppConfig.scala | 7 +- .../ConsumerGroupCollector.scala | 9 +- .../lightbend/kafkalagexporter}/Domain.scala | 2 +- .../kafkalagexporter}/KafkaClient.scala | 4 +- .../KafkaClusterManager.scala | 11 +- .../kafkalagexporter}/LookupTable.scala | 3 +- .../lightbend}/kafkalagexporter/MainApp.scala | 3 +- .../lightbend}/kafkalagexporter/Metrics.scala | 5 +- .../kafkalagexporter}/MetricsReporter.scala | 4 +- .../kafkalagexporter}/MetricsSink.scala | 4 +- .../PrometheusEndpointSink.scala | 7 +- .../watchers/StrimziClient.scala | 4 +- .../watchers/StrimziClusterWatcher.scala | 7 +- .../kafkalagexporter/watchers/Watcher.scala | 6 +- .../src => src}/test/resources/logback.xml | 2 +- .../src => src}/test/resources/reference.conf | 0 .../ConsumerGroupCollectorSpec.scala | 10 +- .../kafkalagexporter}/LookupTableSpec.scala | 5 +- .../kafkalagexporter}/TestData.scala | 4 +- .../integration/IntegrationSpec.scala | 6 +- .../kafkalagexporter/integration/LagSim.scala | 3 +- .../integration/PrometheusUtils.scala | 5 +- .../integration/SpecBase.scala | 5 +- 47 files changed, 281 insertions(+), 1182 deletions(-) delete mode 100644 kafka-lag-exporter/README.md delete mode 100644 kafka-lag-exporter/src/main/resources/logback.xml delete mode 100644 kafka-metrics-tools/src/main/scala/com/lightbend/kafka/kafkametricstools/CodahaleMetricsSink.scala delete mode 100644 kafka-metrics-tools/src/main/scala/com/lightbend/kafka/kafkametricstools/Config.scala delete mode 100644 kafka-metrics-tools/src/test/scala/com/lightbend/kafka/kafkametricstools/CodahaleMetricsSinkSpec.scala delete mode 100644 lib/jmx-prometheus-exporter-config.yaml delete mode 100644 lib/jmx_prometheus_javaagent-0.3.1.jar delete mode 100644 spark-event-exporter/README.md delete mode 100644 spark-event-exporter/src/main/scala/com/lightbend/kafka/sparkeventexporter/Config.scala delete mode 100644 spark-event-exporter/src/main/scala/com/lightbend/kafka/sparkeventexporter/SparkEventExporter.scala delete mode 100644 spark-event-exporter/src/main/scala/com/lightbend/kafka/sparkeventexporter/internal/Domain.scala delete mode 100644 spark-event-exporter/src/main/scala/com/lightbend/kafka/sparkeventexporter/internal/ExporterManager.scala delete mode 100644 spark-event-exporter/src/main/scala/com/lightbend/kafka/sparkeventexporter/internal/MetricCollector.scala delete mode 100644 spark-event-exporter/src/main/scala/com/lightbend/kafka/sparkeventexporter/internal/Metrics.scala delete mode 100644 spark-event-exporter/src/main/scala/com/lightbend/kafka/sparkeventexporter/internal/MetricsStreamingQueryListener.scala delete mode 100644 spark-event-exporter/src/main/scala/com/lightbend/kafka/sparkeventexporter/internal/SparkEventAdapter.scala delete mode 100644 spark-event-exporter/src/main/scala/org/apache/spark/lightbend/sparkeventexporter/SparkEventExporterSource.scala delete mode 100644 spark-event-exporter/src/test/scala/com/lightbend/kafka/sparkeventexporter/internal/MetricCollectorSpec.scala delete mode 100644 spark-event-exporter/src/test/scala/com/lightbend/kafka/sparkeventexporter/internal/SparkEventAdapterSpec.scala rename {spark-event-exporter/src => src}/main/resources/logback.xml (88%) rename {kafka-lag-exporter/src => src}/main/resources/reference.conf (100%) rename {kafka-lag-exporter/src/main/scala/com/lightbend/kafka => src/main/scala/com/lightbend}/kafkalagexporter/AppConfig.scala (90%) rename {kafka-lag-exporter/src/main/scala/com/lightbend/kafka => src/main/scala/com/lightbend}/kafkalagexporter/ConsumerGroupCollector.scala (96%) rename {kafka-metrics-tools/src/main/scala/com/lightbend/kafka/kafkametricstools => src/main/scala/com/lightbend/kafkalagexporter}/Domain.scala (96%) rename {kafka-metrics-tools/src/main/scala/com/lightbend/kafka/kafkametricstools => src/main/scala/com/lightbend/kafkalagexporter}/KafkaClient.scala (98%) rename {kafka-lag-exporter/src/main/scala/com/lightbend/kafka => src/main/scala/com/lightbend}/kafkalagexporter/KafkaClusterManager.scala (90%) rename {kafka-metrics-tools/src/main/scala/com/lightbend/kafka/kafkametricstools => src/main/scala/com/lightbend/kafkalagexporter}/LookupTable.scala (98%) rename {kafka-lag-exporter/src/main/scala/com/lightbend/kafka => src/main/scala/com/lightbend}/kafkalagexporter/MainApp.scala (89%) rename {kafka-lag-exporter/src/main/scala/com/lightbend/kafka => src/main/scala/com/lightbend}/kafkalagexporter/Metrics.scala (94%) rename {kafka-metrics-tools/src/main/scala/com/lightbend/kafka/kafkametricstools => src/main/scala/com/lightbend/kafkalagexporter}/MetricsReporter.scala (86%) rename {kafka-metrics-tools/src/main/scala/com/lightbend/kafka/kafkametricstools => src/main/scala/com/lightbend/kafkalagexporter}/MetricsSink.scala (78%) rename {kafka-metrics-tools/src/main/scala/com/lightbend/kafka/kafkametricstools => src/main/scala/com/lightbend/kafkalagexporter}/PrometheusEndpointSink.scala (91%) rename {kafka-lag-exporter/src/main/scala/com/lightbend/kafka => src/main/scala/com/lightbend}/kafkalagexporter/watchers/StrimziClient.scala (96%) rename {kafka-lag-exporter/src/main/scala/com/lightbend/kafka => src/main/scala/com/lightbend}/kafkalagexporter/watchers/StrimziClusterWatcher.scala (85%) rename {kafka-lag-exporter/src/main/scala/com/lightbend/kafka => src/main/scala/com/lightbend}/kafkalagexporter/watchers/Watcher.scala (83%) rename {kafka-lag-exporter/src => src}/test/resources/logback.xml (88%) rename {kafka-lag-exporter/src => src}/test/resources/reference.conf (100%) rename {kafka-lag-exporter/src/test/scala/com/lightbend/kafka => src/test/scala/com/lightbend}/kafkalagexporter/ConsumerGroupCollectorSpec.scala (94%) rename {kafka-metrics-tools/src/test/scala/com/lightbend/kafka/kafkametricstools => src/test/scala/com/lightbend/kafkalagexporter}/LookupTableSpec.scala (98%) rename {kafka-metrics-tools/src/test/scala/com/lightbend/kafka/kafkametricstools => src/test/scala/com/lightbend/kafkalagexporter}/TestData.scala (87%) rename {kafka-lag-exporter/src/test/scala/com/lightbend/kafka => src/test/scala/com/lightbend}/kafkalagexporter/integration/IntegrationSpec.scala (93%) rename {kafka-lag-exporter/src/test/scala/com/lightbend/kafka => src/test/scala/com/lightbend}/kafkalagexporter/integration/LagSim.scala (97%) rename {kafka-lag-exporter/src/test/scala/com/lightbend/kafka => src/test/scala/com/lightbend}/kafkalagexporter/integration/PrometheusUtils.scala (96%) rename {kafka-lag-exporter/src/test/scala/com/lightbend/kafka => src/test/scala/com/lightbend}/kafkalagexporter/integration/SpecBase.scala (92%) diff --git a/README.md b/README.md index 2212f86f..be91999a 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,209 @@ -# Kafka Metrics Tools +# Kafka Lag Exporter -> A set of tools and libraries to expose Kafka performance metrics in the K8s and Prometheus ecosystem - -## [Kafka Lag Exporter](./kafka-lag-exporter/README.md) +> A Kafka consumer group lag exporter for Kubernetes The Kafka Lag Exporter is a Prometheus Exporter which will calculate the consumer lag for all consumer groups running -in a Kafka cluster. It exports several consumer group related metrics, including an extrapolation of consumer group -lag in seconds. See kafka-lag-exporter/README.md for more information. +in a Kafka cluster. It exports several consumer group related metrics, including an interpolation or extrapolation of +consumer group lag in seconds. + +We can calculate a reasonable approximation of consumer lag in seconds by applying a linear extrapolation formula to +predict the time that a consumer will reach the latest partition offset available based on previously measured +consumer group consumed offsets for the same partition. + +For each poll interval we associate all the latest consumed offsets with current system time (wall clock). After at +least two measurements are made we can extrapolate at what time an arbitrary offset in the future will be consumed. As +a refresher, linear interpolation and extrapolation is just estimating a point on a slope and estimating its +coordinates. [Read this post for more details.](https://math.tutorvista.com/calculus/extrapolation.html) + +## Metrics + +The following metrics are exposed: + +* `kafka_consumergroup_group_lag_seconds` - Extrapolated lag in seconds for each partition. +* `kafka_consumergroup_group_max_lag_seconds` - Max extrapolated lag in seconds for each consumer group. +* `kafka_consumergroup_group_lag` - Lag in offsets for each partition (latest offset - last consumed offset). +* `kafka_consumergroup_group_max_lag` - Max offset lag for each consumer group. +* `kafka_consumergroup_group_offset` - Last consumed offset for each consumer group partition. +* `kafka_partition_latest_offset` - Latest offset available for each partition. + +## Configuration + +Details for configuration for the Helm Chart can be found in the [`values.yaml`](./charts/kafka-lag-exporter/values.yaml) +file of the accompanying Helm Chart. + +## Install with Helm + +You can install the chart from the local filesystem. + +``` +helm install ./charts/kafka-lag-exporter +``` + +Or from the lightbend Helm Chart repository. + +``` +helm repo add lightbend https://repo.lightbend.com/helm-charts +helm install lightbend/kafka-lag-exporter +``` + +### Examples + +Install with the [Strimzi](https://strimzi.io/) Kafka discovery feature. +See [Strimzi Kafka Cluster Watcher](#strimzi-kafka-cluster-watcher) for more details. + +``` +helm install ./charts/kafka-lag-exporter \ + --name kafka-lag-exporter \ + --namespace myproject \ + --set watchers.strimzi=true +``` + +Install with statically defined cluster at the CLI. + +``` +helm install ./charts/kafka-lag-exporter \ + --name kafka-lag-exporter \ + --namespace myproject \ + --set clusters\[0\].name=my-cluster \ + --set clusters\[0\].bootstrapBrokers=my-cluster-kafka-bootstrap:9092 +``` + +Run a debug install (`DEBUG` logging, debug helm chart install, force docker pull policy to `Always`). + +``` +helm install ./charts/kafka-lag-exporter \ + --name kafka-lag-exporter \ + --namespace myproject \ + --set image.pullPolicy=Always \ + --set logLevel=DEBUG \ + --set clusters\[0\].name=my-cluster \ + --set clusters\[0\].bootstrapBrokers=my-cluster-kafka-bootstrap.myproject:9092 \ + --debug +``` + +### View the health endpoint + +To view the Prometheus health endpoint from outside your Kubernetes cluster, use `kubectl port-forward`. + +Ex) + +``` +kubectl port-forward service/kafka-lag-exporter-service 8080:8000 --namespace myproject +``` + +### Exporter logs + +To view the logs of the exporter, identify the pod name of the exporter and use the `kubectl logs` command. + +Ex) + +``` +kubectl logs {POD_ID} --namespace myproject -f +``` + +## Testing with local `docker-compose.yaml` + +A Docker Compose cluster with producers and multiple consumer groups is defined in `./docker/docker-compose.yaml`. This +is useful to manually test the project locally, without K8s infrastructure. These images are based on the popular +[`wurstmeister`](https://hub.docker.com/r/wurstmeister/kafka/) Apache Kafka Docker images. Confirm you match up the +version of these images with the correct version of Kafka you wish to test. + +Remove any previous volume state. + +``` +docker-compose rm -f +``` + +Start up the cluster in the foreground. + +``` +docker-compose up +``` + +## Strimzi Kafka Cluster Watcher + +When you install the chart with `--set watchers.strimzi=true` then the exporter will create a new `ClusterRole` and +`ClusterRoleBinding` to allow for the automatic discovery of [Strimzi](https://strimzi.io/) Kafka clusters. The exporter will watch for +`Kafka` resources to be created or destroyed. If the cluster already exists, or was created while the exporter was +online then it will automatically begin to collect consumer group metadata and export it. If a `Kafka` resource is +destroyed then it will stop collecting consumer group metadata for that cluster. + +The exporter will name the cluster the same as `Kafka` resources `metadata.name` field. + +## Grafana Dashboard + +A sample Grafana dashboard is provided in `./grafana/`. It can be imported into a Grafana server that is configured +with a Prometheus datasource that is reading the Kafka Lag Exporter's Prometheus health endpoint. + +The dashboard contains several high level user-configurable variables. + +* **Namespace** - The namespace of the Kafka cluster. Only 1 namespace can be selected at a time. +* **Cluster Name** - The name of the Kafka cluster. Only 1 cluster name can be selected at a time. +* **Consumer Group** - The name of the Consumer Group. This is a multi-select list which allows you to view the dashboard +for 1 to All consumer groups. + +This dashboard has several rows that are described below. + +* **All Consumer Group Lag** - A high level set of 4 panels. + * Max lag in seconds per group + * Lag in seconds per group partition + * Max lag in offsets per group + * Lag in offsets per group partition +* **Consumer Group Lag Per Group** - One panel for each consumer group that shows a sum of lag for all partitions on the +left Y axis. The right Y axis has the sum of latest and last consumed offsets for all group partitions. +* **Kafka Lag Exporter JVM Metrics** - Critical JVM metrics for the Kafka Lag Exporter itself. + +Example snapshot of dashboard showing all Consumer Groups (2) + +![Kafka Lag Exporter Dashboard](./grafana/example_dashboard_snapshot.png) + +## Release Process + +1. Update the Change Log +2. Run `./scripts/release.sh` which will do the following: + * Run `compile` and `test` targets. A pre-compile task will automatically update the version in the Helm Chart. + * Publish docker image to DockerHub at `lightbend/kafka-lag-exporter`. If not publishing to `lightbend` repository, + update `./build.sbt` file with the correct repository, or publish locally instead (`sbt docker:publishLocal`). + * Bundle Helm Chart into a tarball artifact. The `helm package` command will output the artifact in the CWD it is + executed from. +3. Upload the tarball to a Helm Chart Repository. + +## Change log + +0.4.0 + +* Add Integration tests using Embedded Kafka #11 +* Replace lag in time implementation with interpolation table implementation #5 +* Removed `spark-event-exporter`. See the [`spark-committer`](https://github.com/lightbend/spark-committer) GitHub +project to commit offsets in Spark Structured Streaming back to Kafka. #9 +* Implement backoff strategy for Kafka connections in Kafka Lag Exporter #6 + +0.3.6 + +* Add `kafka-client-timeout` config. +* Tune retry and timeout logic of Kafka admin client and consumer +* Use backoff strategy restarting offset collection logic when transient runtime exceptions are encountered +* Terminate when Prometheus HTTP server can't start (i.e. port can't be bound) + +0.3.1 + +* Default partition to 0 (instead of omitting it from being reported) when a consumer group returns no offset for a +group partition +* Use `akkaSource` for actor path in logging + +0.3.0 + +* Bugfix: Parse `poll-interval` in seconds +* Rename metric from `kafka_consumergroup_latest_offset` to `kafka_partition_latest_offset` +* Use JVM 8 experimental cgroup memory awareness flags when running exporter in container +* Use snakecase for metric label names +* Sample Grafana Dashboard + +0.2.0 + +* Strimzi cluster auto discovery -## [Spark Event Exporter](./spark-event-exporter/README.md) +0.1.0 -Spark Event Exporter is a library you can include in your Spark driver application which can output several performance -metrics including Kafka client lag, lag in seconds, last read offset, as well as input and processed records per -second per streaming source. See spark-event-exporter/README.md for more information. +* Initial release -This project was developed by [Sean Glover](https://github.com/seglo) at [Lightbend](https://www.lightbend.com). For a production-ready system with support for Kafka, Spark, with this project, Akka, Play, Lagom, and other tools on Kubernetes and OpenShift, see [Lightbend Platform](https://www.lightbend.com/lightbend-platform). diff --git a/build.sbt b/build.sbt index b681f190..d54f162c 100644 --- a/build.sbt +++ b/build.sbt @@ -2,62 +2,15 @@ import com.typesafe.sbt.packager.docker.{Cmd, ExecCmd} import Dependencies._ import com.typesafe.sbt.packager.docker.DockerPlugin.autoImport.{dockerCommands, dockerUsername} -lazy val root = - Project(id = "root", base = file(".")) - .settings( - name := "root", - skip in publish := true - ) - .withId("root") - .settings(commonSettings) - .aggregate( - kafkaMetricsTools, - kafkaLagExporter, -// sparkEventExporter - ) - -lazy val kafkaMetricsTools = - module("kafka-metrics-tools") - .settings( - description := "Tools to help get and report Kafka client metrics", - libraryDependencies ++= Vector( - Kafka, - AkkaTyped, - AkkaSlf4j, - Logback, - Prometheus, - PrometheusHotSpot, - PrometheusHttpServer, - DropwizardMetrics, - ScalaJava8Compat, - ScalaTest, - AkkaTypedTestKit, - MockitoScala - ) - ) - -//lazy val sparkEventExporter = -// module("spark-event-exporter") -// .dependsOn(kafkaMetricsTools % "compile->compile;test->test") -// .settings( -// description := "Spark event exporter exposes offset and throughput related metrics for Spark Streaming apps", -// libraryDependencies ++= Vector( -// Spark, -// SparkSql, -// ScalaTest, -// AkkaTypedTestKit, -// MockitoScala -// ) -// ) - lazy val updateHelmChartVersions = taskKey[Unit]("Update Helm Chart versions") lazy val kafkaLagExporter = - module("kafka-lag-exporter") - .dependsOn(kafkaMetricsTools % "compile->compile;test->test") + Project(id = "kafka-lag-exporter", base = file(".")) .enablePlugins(JavaAppPackaging) .enablePlugins(DockerPlugin) + .settings(commonSettings) .settings( + name := "kafka-lag-exporter", description := "Kafka lag exporter finds and reports Kafka consumer group lag metrics", libraryDependencies ++= Vector( LightbendConfig, @@ -66,6 +19,10 @@ lazy val kafkaLagExporter = AkkaSlf4j, Fabric8Model, Fabric8Client, + Prometheus, + PrometheusHotSpot, + PrometheusHttpServer, + ScalaJava8Compat, Logback, ScalaTest, AkkaTypedTestKit, @@ -97,9 +54,7 @@ lazy val kafkaLagExporter = ) lazy val commonSettings = Seq( - organization := "com.lightbend.kafka", - bintrayOrganization := Some("lightbend"), - bintrayRepository := "pipelines-internal", + organization := "com.lightbend.kafkalagexporter", publishMavenStyle := false, bintrayOmitLicense := true, scalaVersion := Version.Scala, @@ -119,12 +74,3 @@ lazy val commonSettings = Seq( scalacOptions in (Compile, console) := (scalacOptions in (Global)).value.filter(_ == "-Ywarn-unused-import"), scalacOptions in (Test, console) := (scalacOptions in (Compile, console)).value, ) - -def module(moduleId: String): Project = { - Project(id = moduleId, base = file(moduleId)) - .settings( - name := moduleId - ) - .withId(moduleId) - .settings(commonSettings) -} \ No newline at end of file diff --git a/kafka-lag-exporter/README.md b/kafka-lag-exporter/README.md deleted file mode 100644 index cc2d8ab8..00000000 --- a/kafka-lag-exporter/README.md +++ /dev/null @@ -1,201 +0,0 @@ -# Kafka Lag Exporter - -> A Kafka consumer group lag exporter for Kubernetes - -The Kafka Lag Exporter is a Prometheus Exporter which will calculate the consumer lag for all consumer groups running -in a Kafka cluster. It exports several consumer group related metrics, including an extrapolation of consumer group -lag in seconds. - -We can calculate a reasonable approximation of consumer lag in seconds by applying a linear extrapolation formula to -predict the time that a consumer will reach the latest partition offset available based on previously measured -consumer group consumed offsets for the same partition. - -For each poll interval we associate all the latest consumed offsets with current system time (wall clock). After at -least two measurements are made we can extrapolate at what time an arbitrary offset in the future will be consumed. As -a refresher, linear interpolation and extrapolation is just estimating a point on a slope and estimating its -coordinates. [Read this post for more details.](https://math.tutorvista.com/calculus/extrapolation.html) - -## Metrics - -The following metrics are exposed: - -* `kafka_consumergroup_group_lag_seconds` - Extrapolated lag in seconds for each partition. -* `kafka_consumergroup_group_max_lag_seconds` - Max extrapolated lag in seconds for each consumer group. -* `kafka_consumergroup_group_lag` - Lag in offsets for each partition (latest offset - last consumed offset). -* `kafka_consumergroup_group_max_lag` - Max offset lag for each consumer group. -* `kafka_consumergroup_group_offset` - Last consumed offset for each consumer group partition. -* `kafka_partition_latest_offset` - Latest offset available for each partition. - -## Configuration - -Details for configuration for the Helm Chart can be found in the [`values.yaml`](./charts/kafka-lag-exporter/values.yaml) -file of the accompanying Helm Chart. - -## Install with Helm - -You can install the chart from the local filesystem. - -``` -helm install ./charts/kafka-lag-exporter -``` - -Or from the lightbend Helm Chart repository. - -``` -helm repo add lightbend https://repo.lightbend.com/helm-charts -helm install lightbend/kafka-lag-exporter -``` - -### Examples - -Install with the [Strimzi](https://strimzi.io/) Kafka discovery feature. -See [Strimzi Kafka Cluster Watcher](#strimzi-kafka-cluster-watcher) for more details. - -``` -helm install ./charts/kafka-lag-exporter \ - --name kafka-lag-exporter \ - --namespace myproject \ - --set watchers.strimzi=true -``` - -Install with statically defined cluster at the CLI. - -``` -helm install ./charts/kafka-lag-exporter \ - --name kafka-lag-exporter \ - --namespace myproject \ - --set clusters\[0\].name=my-cluster \ - --set clusters\[0\].bootstrapBrokers=my-cluster-kafka-bootstrap:9092 -``` - -Run a debug install (`DEBUG` logging, debug helm chart install, force docker pull policy to `Always`). - -``` -helm install ./charts/kafka-lag-exporter \ - --name kafka-lag-exporter \ - --namespace myproject \ - --set image.pullPolicy=Always \ - --set logLevel=DEBUG \ - --set clusters\[0\].name=my-cluster \ - --set clusters\[0\].bootstrapBrokers=my-cluster-kafka-bootstrap.myproject:9092 \ - --debug -``` - -### View the health endpoint - -To view the Prometheus health endpoint from outside your Kubernetes cluster, use `kubectl port-forward`. - -Ex) - -``` -kubectl port-forward service/kafka-lag-exporter-service 8080:8000 --namespace myproject -``` - -### Exporter logs - -To view the logs of the exporter, identify the pod name of the exporter and use the `kubectl logs` command. - -Ex) - -``` -kubectl logs {POD_ID} --namespace myproject -f -``` - -## Testing with local `docker-compose.yaml` - -A Docker Compose cluster with producers and multiple consumer groups is defined in `./docker/docker-compose.yaml`. This -is useful to manually test the project locally, without K8s infrastructure. These images are based on the popular -[`wurstmeister`](https://hub.docker.com/r/wurstmeister/kafka/) Apache Kafka Docker images. Confirm you match up the -version of these images with the correct version of Kafka you wish to test. - -Remove any previous volume state. - -``` -docker-compose rm -f -``` - -Start up the cluster in the foreground. - -``` -docker-compose up -``` - -## Strimzi Kafka Cluster Watcher - -When you install the chart with `--set watchers.strimzi=true` then the exporter will create a new `ClusterRole` and -`ClusterRoleBinding` to allow for the automatic discovery of [Strimzi](https://strimzi.io/) Kafka clusters. The exporter will watch for -`Kafka` resources to be created or destroyed. If the cluster already exists, or was created while the exporter was -online then it will automatically begin to collect consumer group metadata and export it. If a `Kafka` resource is -destroyed then it will stop collecting consumer group metadata for that cluster. - -The exporter will name the cluster the same as `Kafka` resources `metadata.name` field. - -## Grafana Dashboard - -A sample Grafana dashboard is provided in `./grafana/`. It can be imported into a Grafana server that is configured -with a Prometheus datasource that is reading the Kafka Lag Exporter's Prometheus health endpoint. - -The dashboard contains several high level user-configurable variables. - -* **Namespace** - The namespace of the Kafka cluster. Only 1 namespace can be selected at a time. -* **Cluster Name** - The name of the Kafka cluster. Only 1 cluster name can be selected at a time. -* **Consumer Group** - The name of the Consumer Group. This is a multi-select list which allows you to view the dashboard -for 1 to All consumer groups. - -This dashboard has several rows that are described below. - -* **All Consumer Group Lag** - A high level set of 4 panels. - * Max lag in seconds per group - * Lag in seconds per group partition - * Max lag in offsets per group - * Lag in offsets per group partition -* **Consumer Group Lag Per Group** - One panel for each consumer group that shows a sum of lag for all partitions on the -left Y axis. The right Y axis has the sum of latest and last consumed offsets for all group partitions. -* **Kafka Lag Exporter JVM Metrics** - Critical JVM metrics for the Kafka Lag Exporter itself. - -Example snapshot of dashboard showing all Consumer Groups (2) - -![Kafka Lag Exporter Dashboard](./grafana/example_dashboard_snapshot.png) - -## Release Process - -1. Update the Change Log -2. Run `./scripts/release.sh` which will do the following: - * Run `compile` and `test` targets. A pre-compile task will automatically update the version in the Helm Chart. - * Publish docker image to DockerHub at `lightbend/kafka-lag-exporter`. If not publishing to `lightbend` repository, - update `./build.sbt` file with the correct repository, or publish locally instead (`sbt docker:publishLocal`). - * Bundle Helm Chart into a tarball artifact. The `helm package` command will output the artifact in the CWD it is - executed from. -3. Upload the tarball to a Helm Chart Repository. - -## Change log - -0.3.6 - -* Add `kafka-client-timeout` config. -* Tune retry and timeout logic of Kafka admin client and consumer -* Use backoff strategy restarting offset collection logic when transient runtime exceptions are encountered -* Terminate when Prometheus HTTP server can't start (i.e. port can't be bound) - -0.3.1 - -* Default partition to 0 (instead of omitting it from being reported) when a consumer group returns no offset for a -group partition -* Use `akkaSource` for actor path in logging - -0.3.0 - -* Bugfix: Parse `poll-interval` in seconds -* Rename metric from `kafka_consumergroup_latest_offset` to `kafka_partition_latest_offset` -* Use JVM 8 experimental cgroup memory awareness flags when running exporter in container -* Use snakecase for metric label names -* Sample Grafana Dashboard - -0.2.0 - -* Strimzi cluster auto discovery - -0.1.0 - -* Initial release - diff --git a/kafka-lag-exporter/src/main/resources/logback.xml b/kafka-lag-exporter/src/main/resources/logback.xml deleted file mode 100644 index 7b4e5175..00000000 --- a/kafka-lag-exporter/src/main/resources/logback.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - %date{ISO8601} %-5level %logger{36} %X{akkaSource} - %msg %ex%n - - - - - - - - \ No newline at end of file diff --git a/kafka-metrics-tools/src/main/scala/com/lightbend/kafka/kafkametricstools/CodahaleMetricsSink.scala b/kafka-metrics-tools/src/main/scala/com/lightbend/kafka/kafkametricstools/CodahaleMetricsSink.scala deleted file mode 100644 index 166d7734..00000000 --- a/kafka-metrics-tools/src/main/scala/com/lightbend/kafka/kafkametricstools/CodahaleMetricsSink.scala +++ /dev/null @@ -1,54 +0,0 @@ -package com.lightbend.kafka.kafkametricstools - -import com.codahale.metrics.{Gauge, MetricRegistry} -import com.lightbend.kafka.kafkametricstools.CodahaleMetricsSink.SparkGauge -import com.lightbend.kafka.kafkametricstools.MetricsSink.{Metric, MetricDefinitions} - -object CodahaleMetricsSink { - def apply(registry: MetricRegistry, definitions: MetricDefinitions, newMetricRegistered: () => Unit): MetricsSink = - new CodahaleMetricsSink(registry, definitions, newMetricRegistered) - - class SparkGauge extends Gauge[Double] { - private var _value: Double = 0 - def setValue(value: Double): Unit = _value = value - override def getValue: Double = _value - } -} - -class CodahaleMetricsSink private(registry: MetricRegistry, definitions: MetricDefinitions, newMetricRegistered: () => Unit) - extends MetricsSink { - - private def upsertGauge(metricType: Class[_], labels: List[String]): SparkGauge = { - def newGauge(name: String): SparkGauge = { - val gauge = new SparkGauge - registry.register(name, gauge) - newMetricRegistered() - gauge - } - - val defn = definitions.getOrElse(metricType, throw new IllegalArgumentException(s"No metric with type $metricType defined")) - val metricName = encodeNameWithLabels(labels, defn) - - if (registry.getGauges.containsKey(metricName)) - registry.getGauges().get(metricName).asInstanceOf[SparkGauge] - else - newGauge(metricName) - } - - /** - * Encodes label names and values into the metric name to make parsing easier downstream. - * i.e. label_one=some-value,label_two=some-other.value,label_three=yet-another-value - */ - private def encodeNameWithLabels( - labels: List[String], - defn: MetricsSink.GaugeDefinition - ) = { - defn.name + "," + defn.label - .zip(labels) - .map { case (name, value) => s"$name=$value" } - .mkString(",") - } - override def report(m: Metric): Unit = { - upsertGauge(m.getClass, m.labels).setValue(m.value) - } -} diff --git a/kafka-metrics-tools/src/main/scala/com/lightbend/kafka/kafkametricstools/Config.scala b/kafka-metrics-tools/src/main/scala/com/lightbend/kafka/kafkametricstools/Config.scala deleted file mode 100644 index fee57d99..00000000 --- a/kafka-metrics-tools/src/main/scala/com/lightbend/kafka/kafkametricstools/Config.scala +++ /dev/null @@ -1,11 +0,0 @@ -package com.lightbend.kafka.kafkametricstools - -import scala.concurrent.duration.FiniteDuration - -trait SimpleConfig { - def pollInterval: FiniteDuration - def port: Int - def clientGroupId: String -} - -final case class KafkaCluster(name: String, bootstrapBrokers: String) diff --git a/kafka-metrics-tools/src/test/scala/com/lightbend/kafka/kafkametricstools/CodahaleMetricsSinkSpec.scala b/kafka-metrics-tools/src/test/scala/com/lightbend/kafka/kafkametricstools/CodahaleMetricsSinkSpec.scala deleted file mode 100644 index 0480b07a..00000000 --- a/kafka-metrics-tools/src/test/scala/com/lightbend/kafka/kafkametricstools/CodahaleMetricsSinkSpec.scala +++ /dev/null @@ -1,47 +0,0 @@ -package com.lightbend.kafka.kafkametricstools -import com.codahale.metrics.MetricRegistry -import com.lightbend.kafka.kafkametricstools.MetricsSink.{GaugeDefinition, Message, Metric, MetricDefinitions} -import org.scalatest.{FlatSpec, Matchers} - -import scala.collection.JavaConverters._ - -class CodahaleMetricsSinkSpec extends FlatSpec with Matchers { - case class TestMetric(clusterName: String, providedName: String, topic: String, partition: Int, value: Double) - extends Message with Metric { - override def labels: List[String] = - List( - clusterName, - providedName, - topic, - partition.toString - ) - } - val metricDefinitions: MetricDefinitions = Map( - classOf[TestMetric] -> GaugeDefinition( - "test_metric", - "Test Metric", - "cluster_name", "provided_name", "topic", "partition" - ) - ) - "CodahaleMetricsSink" should "delimit metric labels correctly" in { - - val newMetricRegistered = () => {} - val registry = new MetricRegistry - - val sink = CodahaleMetricsSink( - registry, - metricDefinitions, - newMetricRegistered - ) - - val m = TestMetric("pipelines-strimzi", "application.streamlet.inlet", "application.otherstreamlet.outlet", 0, 47) - - sink.report(m) - - val (gaugeName, gauge) = registry.getGauges().asScala.head - - gauge shouldNot be(null) - gauge.getValue should be(47) - gaugeName should be("test_metric,cluster_name=pipelines-strimzi,provided_name=application.streamlet.inlet,topic=application.otherstreamlet.outlet,partition=0") - } -} diff --git a/lib/jmx-prometheus-exporter-config.yaml b/lib/jmx-prometheus-exporter-config.yaml deleted file mode 100644 index c09b3eaa..00000000 --- a/lib/jmx-prometheus-exporter-config.yaml +++ /dev/null @@ -1,15 +0,0 @@ ---- -startDelaySeconds: 10 -lowercaseOutputName: true -lowercaseOutputLabelNames: true -#whitelistObjectNames: ["org.apache.cassandra.metrics:*"] -#blacklistObjectNames: ["org.apache.cassandra.metrics:type=ColumnFamily,*"] -#rules: -#- pattern: 'org.apache.cassandra.metrics<>Value: (\d+)' -# name: cassandra_$1_$2 -# value: $3 -# valueFactor: 0.001 -# labels: {} -# help: "Cassandra metric $1 $2" -# type: GAUGE -# attrNameSnakeCase: false \ No newline at end of file diff --git a/lib/jmx_prometheus_javaagent-0.3.1.jar b/lib/jmx_prometheus_javaagent-0.3.1.jar deleted file mode 100644 index 1408b9f31a47d63429bb20bb9cadeaffe2b35013..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 367417 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

fDIK2TO-XsARibziKeE3mYD-* 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 MU@hLiA}DbF516M0NdN!< diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 258c3381..0c2b33ad 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -5,17 +5,23 @@ object Version { val Akka = "2.5.20" val Prometheus = "0.5.0" val Fabric8 = "4.1.0" - val Spark = "2.4.0" } object Dependencies { - val LightbendConfig = "com.typesafe" % "config" % "1.3.2" /* * Dependencies on com.fasterxml.jackson.core:jackson-databind and com.fasterxml.jackson.core:jackson-core - * conflict with Spark, so in spark-event-exporter exclude all transient dependencies in the - * com.fasterxml.jackson.core organization. + * conflict with Spark and Kafka, so in spark-committer exclude all transient dependencies in the + * com.fasterxml.jackson.core organization from Kafka deps. + * + * Kafka dependencies on Java logging frameworks interfere with correctly setting app logging in spark-committer's + * integration tests. */ - val Kafka = "org.apache.kafka" %% "kafka" % "2.1.0" excludeAll ExclusionRule("com.fasterxml.jackson.core") + private val jacksonExclusionRule = ExclusionRule("com.fasterxml.jackson.core") + private val log4jExclusionRule = ExclusionRule("log4j") + private val slf4jExclusionRule = ExclusionRule("org.slf4j") + + val LightbendConfig = "com.typesafe" % "config" % "1.3.2" + val Kafka = "org.apache.kafka" %% "kafka" % "2.1.0" excludeAll (jacksonExclusionRule, log4jExclusionRule, slf4jExclusionRule) val AkkaTyped = "com.typesafe.akka" %% "akka-actor-typed" % Version.Akka val AkkaSlf4j = "com.typesafe.akka" %% "akka-slf4j" % Version.Akka val Logback = "ch.qos.logback" % "logback-classic" % "1.2.3" @@ -24,14 +30,11 @@ object Dependencies { val PrometheusHttpServer = "io.prometheus" % "simpleclient_httpserver" % Version.Prometheus val Fabric8Model = "io.fabric8" % "kubernetes-model" % Version.Fabric8 val Fabric8Client = "io.fabric8" % "kubernetes-client" % Version.Fabric8 - val DropwizardMetrics = "io.dropwizard.metrics" % "metrics-core" % "3.1.5" - val Spark = "org.apache.spark" %% "spark-core" % Version.Spark - val SparkSql = "org.apache.spark" %% "spark-sql" % Version.Spark val ScalaJava8Compat = "org.scala-lang.modules" %% "scala-java8-compat" % "0.9.0" val ScalaTest = "org.scalatest" %% "scalatest" % "3.0.5" % Test val AkkaTypedTestKit = "com.typesafe.akka" %% "akka-actor-testkit-typed" % Version.Akka % Test val MockitoScala = "org.mockito" %% "mockito-scala" % "1.0.8" % Test - val AlpakkaKafkaTestKit = "com.typesafe.akka" %% "akka-stream-kafka-testkit" % "1.0.1" % Test + val AlpakkaKafkaTestKit = "com.typesafe.akka" %% "akka-stream-kafka-testkit" % "1.0.1" % Test excludeAll(jacksonExclusionRule, log4jExclusionRule, slf4jExclusionRule) val AkkaHttp = "com.typesafe.akka" %% "akka-http" % "10.1.8" % Test } \ No newline at end of file diff --git a/spark-event-exporter/README.md b/spark-event-exporter/README.md deleted file mode 100644 index 274aefd3..00000000 --- a/spark-event-exporter/README.md +++ /dev/null @@ -1,50 +0,0 @@ -# Spark Event Exporter - -> Exports metrics from data in Spark's `StreamingQueryListener` events - -Spark Event Exporter is a library you can include in your Spark driver application that can output several performance -metrics including Kafka client lag, lag in seconds, last read offset, as well as input and processed records per -second per streaming source. - -Spark Event Exporter uses the Spark `StreamingQueryListener` to obtain this event data that can then be directly -exported as a Prometheus endpoint, or integrated into Spark's own metrics system as custom metrics for the Spark -driver application. - -The following metrics are exported. - -* `spark_kafka_last_offset` - The last offset read for a partition. -* `spark_kafka_last_offset_lag` - The lag for a partition. -* `spark_kafka_last_offset_lag_seconds` - The extrapolated lag in seconds for a partition. -* `spark_kafka_input_records_per_second` - The input records per second for a Spark streaming source. -* `spark_kafka_processed_records_per_second` - The processed records per second for a Spark streaming source. - -## Documentation TODO: - -- Configuration -- Metrics sink configuration -- Metric labels - -## Building Yourself - -[SBT] is used to build this project. - -* Run `sbt test` to compile everything and run the tests -* Run `sbt package` to create the binary artifacts -* Run `sbt publishLocal` to create artifacts and publish to your local Ivy repository -* Run `sbt publishM2` to create artifacts and publish to your local Maven repository -* Run `sbt release` to upgrade to the next version and publish Ivy artifacts to bintray - -## Change log - -0.3.6 - -* Final refinements before open sourcing the project. - -0.3.5 - -* Encode labels into Codahale metric names using key=value convention to make them easier to parse. - -0.3.2 - -* Initial release - diff --git a/spark-event-exporter/src/main/scala/com/lightbend/kafka/sparkeventexporter/Config.scala b/spark-event-exporter/src/main/scala/com/lightbend/kafka/sparkeventexporter/Config.scala deleted file mode 100644 index 5c414b22..00000000 --- a/spark-event-exporter/src/main/scala/com/lightbend/kafka/sparkeventexporter/Config.scala +++ /dev/null @@ -1,46 +0,0 @@ -package com.lightbend.kafka.sparkeventexporter -import java.util.UUID - -import com.lightbend.kafka.kafkametricstools.KafkaCluster -import org.apache.spark.SparkEnv -import org.apache.spark.sql.SparkSession -import scala.concurrent.duration._ - -sealed trait MetricsSinkConfig - -/** - * Exposes an internal prometheus HTTP metrics endpoint - */ -final case class PrometheusEndpointSinkConfig(port: Int = 8080) extends MetricsSinkConfig - -/** - * Uses Spark's existing metrics system. This will result in a lack of fidelity in terms of the number of labels/tags - * that can be expressed per metric. - */ -case object SparkMetricsSinkConfig extends MetricsSinkConfig - -final case class Config( - cluster: KafkaCluster, - providedName: String, - sparkSession: SparkSession, - sparkEnv: SparkEnv, - metricsSink: MetricsSinkConfig, - kafkaClientTimeout: FiniteDuration = 10 seconds, - clientGroupId: String = s"spark-event-exporter-${UUID.randomUUID()}" - ) { - require(cluster.bootstrapBrokers != null && cluster.bootstrapBrokers != "", - "You must provide the Kafka bootstrap brokers connection string") - require(sparkSession != null, "You must provide a SparkSession object") - - override def toString: String = { - s""" - |Kafka cluster: - | Name: ${cluster.name} - | Bootstrap brokers: ${cluster.bootstrapBrokers} - |Provided name: $providedName - |Metrics sink: $metricsSink - |Kafka client timeout ms: ${kafkaClientTimeout.toMillis} - |Client consumer group id: $clientGroupId - """.stripMargin - } -} diff --git a/spark-event-exporter/src/main/scala/com/lightbend/kafka/sparkeventexporter/SparkEventExporter.scala b/spark-event-exporter/src/main/scala/com/lightbend/kafka/sparkeventexporter/SparkEventExporter.scala deleted file mode 100644 index de949014..00000000 --- a/spark-event-exporter/src/main/scala/com/lightbend/kafka/sparkeventexporter/SparkEventExporter.scala +++ /dev/null @@ -1,69 +0,0 @@ -package com.lightbend.kafka.sparkeventexporter - -import java.util.concurrent.Executors - -import akka.actor.typed.{ActorSystem, Terminated} -import com.lightbend.kafka.kafkametricstools.{CodahaleMetricsSink, KafkaClient, MetricsSink, PrometheusEndpointSink} -import com.lightbend.kafka.sparkeventexporter.internal.{ExporterManager, Metrics} -import org.apache.spark.lightbend.sparkeventexporter.SparkEventExporterSource - -import scala.concurrent.duration._ -import scala.concurrent.{Await, ExecutionContext} - -object SparkEventExporter { - /** - * Create a new SparkEventExporter instance with the provided configuration - */ - def apply(config: Config): SparkEventExporter = new SparkEventExporter(config) - def initialize(config: Config): SparkEventExporter = apply(config) -} - -final class SparkEventExporter(config: Config) { - import config._ - - // Cached thread pool for various Kafka calls for non-blocking I/O - private val kafkaClientEc = ExecutionContext.fromExecutor(Executors.newCachedThreadPool()) - - private val clientCreator = () => KafkaClient(cluster.bootstrapBrokers, clientGroupId, kafkaClientTimeout)(kafkaClientEc) - - private val metricsSinkCreator = () => metricsSink match { - case PrometheusEndpointSinkConfig(port) => PrometheusEndpointSink(port, Metrics.metricDefinitions) - case SparkMetricsSinkConfig => createCodahaleMetricsSink - } - - private val system = ActorSystem(ExporterManager.init(config, cluster, metricsSinkCreator, clientCreator), "spark-event-exporter") - - private def createCodahaleMetricsSink: MetricsSink = { - val sparkEventSource = new SparkEventExporterSource() - - /* - * Due to limitations with the dropwizard metrics library we must encode metric labels such as "topic" and "partition" - * into the metric name itself, because labels/tags are naturally supported. This requires us to register metrics - * at runtime, but they're only added to Spark's internal metric registry when a metric `Source` is registered. - * Therefore we have to re-register the whole set of metrics, in order to pick up new metrics that are created. This - * can be done by removing and registering the source again each time a new metric is added. - * - * This could be optimized by re-registering metrics based on a timer, but since an application's is likely only - * going to generate new metrics at the beginning of its lifecycle it probably doesn't have much of a performance - * impact. - */ - val newMetricRegistered = () => { - sparkEnv.metricsSystem.removeSource(sparkEventSource) - sparkEnv.metricsSystem.registerSource(sparkEventSource) - } - - CodahaleMetricsSink( - sparkEventSource.metricRegistry, - Metrics.metricDefinitions, - newMetricRegistered - ) - } - - /** - * Synchronous call to stop the SparkEventExporter actor system - */ - def stop(timeout: FiniteDuration = 5 seconds): Terminated = { - system ! ExporterManager.Stop - Await.result(system.whenTerminated, timeout) - } -} diff --git a/spark-event-exporter/src/main/scala/com/lightbend/kafka/sparkeventexporter/internal/Domain.scala b/spark-event-exporter/src/main/scala/com/lightbend/kafka/sparkeventexporter/internal/Domain.scala deleted file mode 100644 index 63c47c31..00000000 --- a/spark-event-exporter/src/main/scala/com/lightbend/kafka/sparkeventexporter/internal/Domain.scala +++ /dev/null @@ -1,12 +0,0 @@ -package com.lightbend.kafka.sparkeventexporter.internal -import com.lightbend.kafka.kafkametricstools.Domain.{Measurements, TopicPartition} - -object Domain { - final case class SourceMetrics( - inputRecordsPerSecond: Double, - outputRecordsPerSecond: Double, - endOffsets: Map[TopicPartition, Measurements.Single] - ) - - final case class Query(sparkAppId: String, timestamp: Long, sourceMetrics: List[SourceMetrics]) -} diff --git a/spark-event-exporter/src/main/scala/com/lightbend/kafka/sparkeventexporter/internal/ExporterManager.scala b/spark-event-exporter/src/main/scala/com/lightbend/kafka/sparkeventexporter/internal/ExporterManager.scala deleted file mode 100644 index 389ff5d5..00000000 --- a/spark-event-exporter/src/main/scala/com/lightbend/kafka/sparkeventexporter/internal/ExporterManager.scala +++ /dev/null @@ -1,49 +0,0 @@ -package com.lightbend.kafka.sparkeventexporter.internal -import akka.actor.typed.scaladsl.Behaviors -import akka.actor.typed.{ActorRef, Behavior, SupervisorStrategy} -import com.lightbend.kafka.kafkametricstools.KafkaClient.KafkaClientContract -import com.lightbend.kafka.kafkametricstools.{KafkaCluster, MetricsReporter, MetricsSink} -import com.lightbend.kafka.sparkeventexporter.Config -import com.lightbend.kafka.sparkeventexporter.internal.MetricCollector.CollectorState -import org.apache.spark.sql.streaming.StreamingQueryListener -import scala.concurrent.duration._ - -object ExporterManager { - sealed trait Message - sealed trait Stop extends Message - final case object Stop extends Stop - - def init( - config: Config, - cluster: KafkaCluster, - metricsSinkCreator: () => MetricsSink, - clientCreator: () => KafkaClientContract): Behavior[Message] = - Behaviors.supervise[Message] { - Behaviors.setup[Message] { context => - context.log.info("Starting Spark Events Exporter with configuration: \n{}", config) - - val metricsSinkInst = metricsSinkCreator() - val reporter: ActorRef[MetricsSink.Message] = - context.spawn(MetricsReporter.init(metricsSinkInst), "lag-reporter") - val collectorState = CollectorState(config.providedName, cluster) - val collector: ActorRef[MetricCollector.Message] = context.spawn( - MetricCollector.init(collectorState, clientCreator, reporter),"offset-collector") - - val listener: StreamingQueryListener = - MetricsStreamingQueryListener(collector) - config.sparkSession.streams.addListener(listener) - - main(reporter, collector) - } - }.onFailure(SupervisorStrategy.restartWithBackoff(200 milliseconds, 30 seconds, 0.2)) - - def main( - reporter: ActorRef[MetricsSink.Message], - collector: ActorRef[MetricCollector.Message]): Behavior[Message] = Behaviors.receive { - case (context, _: Stop) => - context.log.info("Attempting graceful shutdown") - collector ! MetricCollector.Stop - reporter ! MetricsSink.Stop - Behaviors.stopped - } -} diff --git a/spark-event-exporter/src/main/scala/com/lightbend/kafka/sparkeventexporter/internal/MetricCollector.scala b/spark-event-exporter/src/main/scala/com/lightbend/kafka/sparkeventexporter/internal/MetricCollector.scala deleted file mode 100644 index 9007d460..00000000 --- a/spark-event-exporter/src/main/scala/com/lightbend/kafka/sparkeventexporter/internal/MetricCollector.scala +++ /dev/null @@ -1,142 +0,0 @@ -package com.lightbend.kafka.sparkeventexporter.internal -import akka.actor.typed.scaladsl.Behaviors -import akka.actor.typed.{ActorRef, Behavior, PostStop} -import com.lightbend.kafka.kafkametricstools.Domain.{Measurements, PartitionOffsets, TopicPartition} -import com.lightbend.kafka.kafkametricstools.KafkaClient.KafkaClientContract -import com.lightbend.kafka.kafkametricstools.{KafkaCluster, MetricsSink} -import com.lightbend.kafka.sparkeventexporter.internal.Domain.{Query, SourceMetrics} - -import scala.util.{Failure, Success} - -object MetricCollector { - sealed trait Message - sealed trait Stop extends Message - final case object Stop extends Stop - - final case class QueryResults(query: Query) extends Message - - final case class NewOffsets( - sparkAppId: String, - sourceMetrics: List[SourceMetrics], - latestOffsets: PartitionOffsets, - lastOffsets: PartitionOffsets, - ) extends Message - - - final case class CollectorState( - name: String, - cluster: KafkaCluster, - latestOffsets: PartitionOffsets = PartitionOffsets(), - lastOffsets: PartitionOffsets = PartitionOffsets(), - ) - - def init(state: CollectorState, - clientCreator: () => KafkaClientContract, - reporter: ActorRef[MetricsSink.Message]): Behavior[Message] = Behaviors.setup { _ => - collector(clientCreator(), reporter, state) - } - - def collector( - client: KafkaClientContract, - reporter: ActorRef[MetricsSink.Message], - state: CollectorState - ): Behavior[Message] = Behaviors.receive { - case (context, queryResults: QueryResults) => - context.log.debug(s"Processing Spark Event Metrics:\n$queryResults") - - val sourceMetrics = queryResults.query.sourceMetrics - val sparkAppId = queryResults.query.sparkAppId - - val topicPartitions: Set[TopicPartition] = for { - source: Domain.SourceMetrics <- sourceMetrics.toSet - (topicPartition, _) <- source.endOffsets - } yield topicPartition - - val lastOffsets = sourceMetrics.foldLeft(PartitionOffsets()) { (acc, source) => - acc ++ source.endOffsets - } - - client.getLatestOffsets(queryResults.query.timestamp, topicPartitions) match { - case Success(latestOffsets) => - val newOffsets = NewOffsets(sparkAppId, sourceMetrics, latestOffsets, lastOffsets) - context.self ! newOffsets - case Failure(e) => - context.log.error(e, "An error occurred while retrieving latest offsets") - context.self ! Stop - } - - Behaviors.same - case (context, newOffsets: NewOffsets) => - val mergedState = mergeState(state, newOffsets) - - context.log.debug("Reporting Metrics") - reportThroughputMetrics(newOffsets.sparkAppId, newOffsets.sourceMetrics, state, reporter) - //reportLatestOffsetMetrics(newOffsets.sparkAppId, mergedState, reporter) - reportConsumerMetrics(newOffsets.sparkAppId, mergedState, reporter) - - collector(client, reporter, mergedState) - case (context, _: Stop) => - Behaviors.stopped { - Behaviors.receiveSignal { - case (_, PostStop) => - client.close() - context.log.info("Gracefully stopped polling and Kafka client for cluster: {}", state.cluster.name) - Behaviors.same - } - } - } - - private def reportThroughputMetrics( - sparkAppId: String, - sourceMetrics: List[SourceMetrics], - state: CollectorState, - reporter: ActorRef[MetricsSink.Message]): Unit = { - for(sourceMetric <- sourceMetrics) { - /* - * A Spark Query subscription could contain more than 1 topic, but throughput is only available per Source - */ - val sourceTopics = sourceMetric.endOffsets.keys.map(_.topic).toSet.mkString(",") - reporter ! Metrics.InputRecordsPerSecondMetric(state.cluster.name, sparkAppId, state.name, sourceTopics, sourceMetric.inputRecordsPerSecond) - reporter ! Metrics.ProcessedRecordsPerSecondMetric(state.cluster.name, sparkAppId, state.name, sourceTopics, sourceMetric.outputRecordsPerSecond) - } - } - - private def reportConsumerMetrics( - sparkAppId: String, - state: CollectorState, - reporter: ActorRef[MetricsSink.Message] - ): Unit = { - for { - (tp, measurement: Measurements.Double) <- state.lastOffsets - latestOffset <- state.latestOffsets.get(tp) - } { - val offsetLag = measurement.offsetLag(latestOffset.offset) - val timeLag = measurement.timeLag(latestOffset.offset) - - reporter ! Metrics.LastOffsetMetric(state.cluster.name, sparkAppId, state.name, tp, measurement.b.offset) - reporter ! Metrics.OffsetLagMetric(state.cluster.name, sparkAppId, state.name, tp, offsetLag) - reporter ! Metrics.TimeLagMetric(state.cluster.name, sparkAppId, state.name, tp, timeLag) - } - } - -// private def reportLatestOffsetMetrics( -// sparkAppId: String, -// state: CollectorState, -// reporter: ActorRef[MetricsSink.Message] -// ): Unit = { -// for ((tp, measurement: Measurements.Single) <- state.latestOffsets) -// reporter ! Metrics.LatestOffsetMetric(state.cluster.name, sparkAppId, state.name, tp, measurement.offset) -// } - - private def mergeState(state: CollectorState, newOffsets: NewOffsets): CollectorState = { - val mergedOffsets: PartitionOffsets = for { - (topicPartition, newMeasurement: Measurements.Single) <- newOffsets.lastOffsets - } yield { - topicPartition -> state.lastOffsets - .get(topicPartition) - .map(measurement => measurement.addMeasurement(newMeasurement)) - .getOrElse(newMeasurement) - } - state.copy(latestOffsets = newOffsets.latestOffsets, lastOffsets = mergedOffsets) - } -} diff --git a/spark-event-exporter/src/main/scala/com/lightbend/kafka/sparkeventexporter/internal/Metrics.scala b/spark-event-exporter/src/main/scala/com/lightbend/kafka/sparkeventexporter/internal/Metrics.scala deleted file mode 100644 index 2e1407ad..00000000 --- a/spark-event-exporter/src/main/scala/com/lightbend/kafka/sparkeventexporter/internal/Metrics.scala +++ /dev/null @@ -1,75 +0,0 @@ -package com.lightbend.kafka.sparkeventexporter.internal -import com.lightbend.kafka.kafkametricstools.Domain.TopicPartition -import com.lightbend.kafka.kafkametricstools.MetricsSink.{GaugeDefinition, Message, Metric, MetricDefinitions} - -object Metrics { - sealed trait SparkOffsetMetric extends Message with Metric { - def clusterName: String - def sparkAppId: String - def name: String - def topicPartition: TopicPartition - - override def labels: List[String] = - List( - clusterName, - name, - topicPartition.topic, - topicPartition.partition.toString - ) - } - - final case class LatestOffsetMetric(clusterName: String, sparkAppId: String, name: String, topicPartition: TopicPartition, value: Double) extends SparkOffsetMetric - final case class LastOffsetMetric(clusterName: String, sparkAppId: String, name: String, topicPartition: TopicPartition, value: Double) extends SparkOffsetMetric - final case class OffsetLagMetric(clusterName: String, sparkAppId: String, name: String, topicPartition: TopicPartition, value: Double) extends SparkOffsetMetric - final case class TimeLagMetric(clusterName: String, sparkAppId: String, name: String, topicPartition: TopicPartition, value: Double) extends SparkOffsetMetric - - sealed trait SparkThroughputMetric extends Message with Metric { - def clusterName: String - def sparkAppId: String - def name: String - def sourceTopics: String - - override def labels: List[String] = - List( - clusterName, - name, - sourceTopics - ) - } - - final case class InputRecordsPerSecondMetric(clusterName: String, sparkAppId: String, name: String, sourceTopics: String, value: Double) extends SparkThroughputMetric - final case class ProcessedRecordsPerSecondMetric(clusterName: String, sparkAppId: String, name: String, sourceTopics: String, value: Double) extends SparkThroughputMetric - - val metricDefinitions: MetricDefinitions = Map( - classOf[LatestOffsetMetric] -> GaugeDefinition( - "spark_kafka_partition_latest_offset", - "Latest offset of a partition", - "cluster_name", "provided_name", "topic", "partition" - ), - classOf[LastOffsetMetric] -> GaugeDefinition( - "spark_kafka_last_offset", - "Last consumed offset of a partition", - "cluster_name", "provided_name", "topic", "partition" - ), - classOf[OffsetLagMetric] -> GaugeDefinition( - "spark_kafka_last_offset_lag", - "Last consumed offset lag of a partition", - "cluster_name", "provided_name", "topic", "partition" - ), - classOf[TimeLagMetric] -> GaugeDefinition( - "spark_kafka_last_offset_lag_seconds", - "Last consumed offset time lag of a partition", - "cluster_name", "provided_name", "topic", "partition" - ), - classOf[InputRecordsPerSecondMetric] -> GaugeDefinition( - "spark_kafka_input_records_per_second", - "Input records per second for a source", - "cluster_name", "provided_name", "source_topics" - ), - classOf[ProcessedRecordsPerSecondMetric] -> GaugeDefinition( - "spark_kafka_processed_records_per_second", - "Processed records per second for a source", - "cluster_name", "provided_name", "source_topics" - ) - ) -} diff --git a/spark-event-exporter/src/main/scala/com/lightbend/kafka/sparkeventexporter/internal/MetricsStreamingQueryListener.scala b/spark-event-exporter/src/main/scala/com/lightbend/kafka/sparkeventexporter/internal/MetricsStreamingQueryListener.scala deleted file mode 100644 index 16f57027..00000000 --- a/spark-event-exporter/src/main/scala/com/lightbend/kafka/sparkeventexporter/internal/MetricsStreamingQueryListener.scala +++ /dev/null @@ -1,19 +0,0 @@ -package com.lightbend.kafka.sparkeventexporter.internal - -import akka.actor.typed.ActorRef -import org.apache.spark.sql.streaming.StreamingQueryListener -import org.apache.spark.sql.streaming.StreamingQueryListener.{QueryProgressEvent, QueryStartedEvent, QueryTerminatedEvent} - -object MetricsStreamingQueryListener { - def apply(collector: ActorRef[MetricCollector.Message]): MetricsStreamingQueryListener = - new MetricsStreamingQueryListener(collector) -} - -final class MetricsStreamingQueryListener private[internal](collector: ActorRef[MetricCollector.Message]) extends StreamingQueryListener() { - override def onQueryStarted(event: QueryStartedEvent): Unit = () - override def onQueryTerminated(event: QueryTerminatedEvent): Unit = () - override def onQueryProgress(event: QueryProgressEvent): Unit = { - val results = SparkEventAdapter.parseProgress(event.progress) - collector ! MetricCollector.QueryResults(results) - } -} diff --git a/spark-event-exporter/src/main/scala/com/lightbend/kafka/sparkeventexporter/internal/SparkEventAdapter.scala b/spark-event-exporter/src/main/scala/com/lightbend/kafka/sparkeventexporter/internal/SparkEventAdapter.scala deleted file mode 100644 index 3f16fa47..00000000 --- a/spark-event-exporter/src/main/scala/com/lightbend/kafka/sparkeventexporter/internal/SparkEventAdapter.scala +++ /dev/null @@ -1,118 +0,0 @@ -package com.lightbend.kafka.sparkeventexporter.internal -import java.time.Instant - -import com.lightbend.kafka.kafkametricstools.Domain.{Measurements, TopicPartition} -import com.lightbend.kafka.sparkeventexporter.internal.Domain.{Query, SourceMetrics} -import org.apache.spark.sql.streaming.{SourceProgress, StreamingQueryProgress} -import org.json4s.JsonAST.{JInt, JObject} -import org.json4s.jackson.JsonMethods.parseOpt - -import scala.util.Try - -object SparkEventAdapter { - /** - * Parse a `org.apache.spark.sql.streaming.StreamingQueryProgress` for relevant metric labels and values. - * - * An example of this JSON could be - * - * ``` - * { - * "id" : "9a8b3024-d197-4689-9075-43c312e33637", - * "runId" : "1b88089d-b62a-4194-89db-2e22708c0fad", - * "name" : null, - * "timestamp" : "2019-02-04T18:22:08.230Z", - * "batchId" : 1, - * "numInputRows" : 1832, - * "inputRowsPerSecond" : 48.09156297579671, - * "processedRowsPerSecond" : 184.9384211588936, - * "durationMs" : { - * "addBatch" : 9291, - * "getBatch" : 3, - * "getEndOffset" : 1, - * "queryPlanning" : 391, - * "setOffsetRange" : 17, - * "triggerExecution" : 9906, - * "walCommit" : 173 - * }, - * "eventTime" : { - * "avg" : "2019-02-04T18:21:52.239Z", - * "max" : "2019-02-04T18:22:07.000Z", - * "min" : "2019-02-04T18:21:38.000Z", - * "watermark" : "2019-02-04T18:20:38.000Z" - * }, - * "stateOperators" : [ { - * "numRowsTotal" : 3, - * "numRowsUpdated" : 2, - * "memoryUsedBytes" : 113431, - * "customMetrics" : { - * "loadedMapCacheHitCount" : 400, - * "loadedMapCacheMissCount" : 0, - * "stateOnCurrentVersionSizeBytes" : 22047 - * } - * } ], - * "sources" : [ { - * "description" : "KafkaV2[Subscribe[call-record-pipeline-seglo.cdr-validator.out-1]]", - * "startOffset" : { - * "call-record-pipeline-seglo.cdr-validator.out-1" : { - * "0" : 12382, - * "1" : 12126, - * } - * }, - * "endOffset" : { - * "call-record-pipeline-seglo.cdr-validator.out-1" : { - * "0" : 12428, - * "1" : 12156, - * } - * }, - * "numInputRows" : 1832, - * "inputRowsPerSecond" : 48.09156297579671, - * "processedRowsPerSecond" : 184.9384211588936 - * } ], - * "sink" : { - * "description" : "org.apache.spark.sql.kafka010.KafkaSourceProvider@6598181e" - * } - * ``` - */ - def parseProgress(qp: StreamingQueryProgress): Query = { - val sparkQueryId: String = qp.id.toString - val timestamp: Long = Instant.parse(qp.timestamp).toEpochMilli - - val sourceMetrics = qp.sources.toList.map { sp: SourceProgress => - val endOffsets = parseEndOffsets(sp.endOffset, timestamp) - SourceMetrics(sp.inputRowsPerSecond, sp.processedRowsPerSecond, endOffsets) - } - - - Query(sparkQueryId, timestamp, sourceMetrics) - } - - /** - * Parse the `endOffsets` JSON happy path from the Spark `org.apache.spark.sql.streaming.SourceProgress` object. - * - * An example of this JSON could be: - * - * ``` - * { - * "call-record-pipeline-seglo.cdr-validator.out-1" : { - * "0" : 12477, - * "1" : 12293, - * "2" : 11274 - * } - * } - * ``` - */ - def parseEndOffsets(endOffsetsJson: String, timestamp: Long): Map[TopicPartition, Measurements.Single] = { - val endOffsets = parseOpt(endOffsetsJson) - - val lastOffsets = for { - JObject(topicJson) <- endOffsets.toList - (topic, JObject(offsetsJson)) <- topicJson - (partitionString, JInt(offsetBigInt)) <- offsetsJson - offset = offsetBigInt.toLong - partition <- Try(partitionString.toInt).toOption - } - yield TopicPartition(topic, partition) -> Measurements.Single(offset, timestamp) - - lastOffsets.toMap - } -} diff --git a/spark-event-exporter/src/main/scala/org/apache/spark/lightbend/sparkeventexporter/SparkEventExporterSource.scala b/spark-event-exporter/src/main/scala/org/apache/spark/lightbend/sparkeventexporter/SparkEventExporterSource.scala deleted file mode 100644 index 265c10ce..00000000 --- a/spark-event-exporter/src/main/scala/org/apache/spark/lightbend/sparkeventexporter/SparkEventExporterSource.scala +++ /dev/null @@ -1,11 +0,0 @@ -package org.apache.spark.lightbend.sparkeventexporter - -import com.codahale.metrics.MetricRegistry -import org.apache.spark.metrics.source.Source - -class SparkEventExporterSource extends Source with Serializable { - private val _metricRegistry = new MetricRegistry - override def sourceName: String = "SparkEventExporter" - override def metricRegistry: MetricRegistry = _metricRegistry -} - diff --git a/spark-event-exporter/src/test/scala/com/lightbend/kafka/sparkeventexporter/internal/MetricCollectorSpec.scala b/spark-event-exporter/src/test/scala/com/lightbend/kafka/sparkeventexporter/internal/MetricCollectorSpec.scala deleted file mode 100644 index 0120507f..00000000 --- a/spark-event-exporter/src/test/scala/com/lightbend/kafka/sparkeventexporter/internal/MetricCollectorSpec.scala +++ /dev/null @@ -1,75 +0,0 @@ -package com.lightbend.kafka.sparkeventexporter.internal - -import akka.actor.testkit.typed.scaladsl.{BehaviorTestKit, TestInbox} -import com.lightbend.kafka.kafkametricstools -import com.lightbend.kafka.kafkametricstools.Domain._ -import com.lightbend.kafka.kafkametricstools.KafkaClient.KafkaClientContract -import com.lightbend.kafka.kafkametricstools.{KafkaCluster, MetricsSink} -import com.lightbend.kafka.sparkeventexporter.internal.Domain.SourceMetrics -import org.mockito.MockitoSugar -import org.scalatest.{Matchers, _} - -class MetricCollectorSpec extends FreeSpec with Matchers with kafkametricstools.TestData with MockitoSugar { - val client: KafkaClientContract = mock[KafkaClientContract] - val sparkAppId = "my-spark-id-uuid" - - "MetricCollectorSpec should send" - { - val reporter = TestInbox[MetricsSink.Message]() - - val state = MetricCollector.CollectorState( - name = "my-app-foo", - cluster = KafkaCluster("kafka-cluster-name", ""), - latestOffsets = PartitionOffsets() + (topicPartition0 -> Measurements.Single(offset = 100, timestamp = 100)), - lastOffsets = PartitionOffsets() + (topicPartition0 -> Measurements.Single(offset = 90, timestamp = 100)) - ) - - val providedName = state.name - val clusterName = state.cluster.name - - val behavior = MetricCollector.collector(client, reporter.ref, state) - val testKit = BehaviorTestKit(behavior) - - val newOffsets = MetricCollector.NewOffsets( - sparkAppId = sparkAppId, - sourceMetrics = List(SourceMetrics(1000, 500, Map(topicPartition0 -> Measurements.Single(180, timestamp = 200)))), - latestOffsets = PartitionOffsets() + (topicPartition0 -> Measurements.Single(offset = 200, timestamp = 200)), - lastOffsets = PartitionOffsets() + (topicPartition0 -> Measurements.Single(offset = 180, timestamp = 200)) - ) - - testKit.run(newOffsets) - - val metrics = reporter.receiveAll() - - "report 5 metrics" in { metrics.length shouldBe 5 } - -// "latest offset metric" in { -// metrics should contain( -// Metrics.LatestOffsetMetric(clusterName, sparkAppId, providedName, topicPartition0, value = 200)) -// } - - "last group offset metric" in { - metrics should contain( - Metrics.LastOffsetMetric(clusterName, sparkAppId, providedName, topicPartition0, value = 180)) - } - - "offset lag metric" in { - metrics should contain( - Metrics.OffsetLagMetric(clusterName, sparkAppId, providedName, topicPartition0, value = 20)) - } - - "time lag metric" in { - metrics should contain( - Metrics.TimeLagMetric(clusterName, sparkAppId, providedName, topicPartition0, value = 0.022)) - } - - "input throughput metric" in { - metrics should contain( - Metrics.InputRecordsPerSecondMetric(clusterName, sparkAppId, providedName, topicPartition0.topic, 1000)) - } - - "processed throughput metric" in { - metrics should contain( - Metrics.ProcessedRecordsPerSecondMetric(clusterName, sparkAppId, providedName, topicPartition0.topic, 500)) - } - } -} diff --git a/spark-event-exporter/src/test/scala/com/lightbend/kafka/sparkeventexporter/internal/SparkEventAdapterSpec.scala b/spark-event-exporter/src/test/scala/com/lightbend/kafka/sparkeventexporter/internal/SparkEventAdapterSpec.scala deleted file mode 100644 index 86c664d2..00000000 --- a/spark-event-exporter/src/test/scala/com/lightbend/kafka/sparkeventexporter/internal/SparkEventAdapterSpec.scala +++ /dev/null @@ -1,31 +0,0 @@ -package com.lightbend.kafka.sparkeventexporter.internal - -import com.lightbend.kafka.kafkametricstools -import com.lightbend.kafka.kafkametricstools.Domain.{Measurements, PartitionOffsets, TopicPartition} -import org.mockito.MockitoSugar -import org.scalatest.{Matchers, _} - -class SparkEventAdapterSpec extends FreeSpec with Matchers with kafkametricstools.TestData with MockitoSugar { - "SparkEventAdapterSpec" - { - "parseEndOffsets" in { - val endOffsetsJson = - """ - |{ - | "call-record-pipeline-seglo.cdr-validator.out-1" : { - | "0" : 12477, - | "1" : 12293, - | "2" : 11274 - | } - |} - """.stripMargin - - val offsets: PartitionOffsets = SparkEventAdapter.parseEndOffsets(endOffsetsJson, 0) - - offsets shouldBe Map( - TopicPartition("call-record-pipeline-seglo.cdr-validator.out-1", 0) -> Measurements.Single(12477, 0), - TopicPartition("call-record-pipeline-seglo.cdr-validator.out-1", 1) -> Measurements.Single(12293, 0), - TopicPartition("call-record-pipeline-seglo.cdr-validator.out-1", 2) -> Measurements.Single(11274, 0) - ) - } - } -} diff --git a/spark-event-exporter/src/main/resources/logback.xml b/src/main/resources/logback.xml similarity index 88% rename from spark-event-exporter/src/main/resources/logback.xml rename to src/main/resources/logback.xml index 7b4e5175..ded95953 100644 --- a/spark-event-exporter/src/main/resources/logback.xml +++ b/src/main/resources/logback.xml @@ -8,7 +8,7 @@ - + diff --git a/kafka-lag-exporter/src/main/resources/reference.conf b/src/main/resources/reference.conf similarity index 100% rename from kafka-lag-exporter/src/main/resources/reference.conf rename to src/main/resources/reference.conf diff --git a/kafka-lag-exporter/src/main/scala/com/lightbend/kafka/kafkalagexporter/AppConfig.scala b/src/main/scala/com/lightbend/kafkalagexporter/AppConfig.scala similarity index 90% rename from kafka-lag-exporter/src/main/scala/com/lightbend/kafka/kafkalagexporter/AppConfig.scala rename to src/main/scala/com/lightbend/kafkalagexporter/AppConfig.scala index fa29ca0e..c22a3044 100644 --- a/kafka-lag-exporter/src/main/scala/com/lightbend/kafka/kafkalagexporter/AppConfig.scala +++ b/src/main/scala/com/lightbend/kafkalagexporter/AppConfig.scala @@ -1,6 +1,5 @@ -package com.lightbend.kafka.kafkalagexporter +package com.lightbend.kafkalagexporter -import com.lightbend.kafka.kafkametricstools.{KafkaCluster, SimpleConfig} import com.typesafe.config.Config import scala.collection.JavaConverters._ @@ -26,9 +25,9 @@ object AppConfig { } } +final case class KafkaCluster(name: String, bootstrapBrokers: String) final case class AppConfig(pollInterval: FiniteDuration, lookupTableSize: Int, port: Int, clientGroupId: String, - clientTimeout: FiniteDuration, clusters: List[KafkaCluster], strimziWatcher: Boolean) - extends SimpleConfig { + clientTimeout: FiniteDuration, clusters: List[KafkaCluster], strimziWatcher: Boolean) { override def toString(): String = { val clusterString = if (clusters.isEmpty) diff --git a/kafka-lag-exporter/src/main/scala/com/lightbend/kafka/kafkalagexporter/ConsumerGroupCollector.scala b/src/main/scala/com/lightbend/kafkalagexporter/ConsumerGroupCollector.scala similarity index 96% rename from kafka-lag-exporter/src/main/scala/com/lightbend/kafka/kafkalagexporter/ConsumerGroupCollector.scala rename to src/main/scala/com/lightbend/kafkalagexporter/ConsumerGroupCollector.scala index 81072e18..52d8ffdf 100644 --- a/kafka-lag-exporter/src/main/scala/com/lightbend/kafka/kafkalagexporter/ConsumerGroupCollector.scala +++ b/src/main/scala/com/lightbend/kafkalagexporter/ConsumerGroupCollector.scala @@ -1,20 +1,19 @@ -package com.lightbend.kafka.kafkalagexporter +package com.lightbend.kafkalagexporter import java.time.Clock import akka.actor.Cancellable import akka.actor.typed.scaladsl.Behaviors import akka.actor.typed.{ActorRef, Behavior, PostStop, SupervisorStrategy} -import com.lightbend.kafka.kafkametricstools.KafkaClient.KafkaClientContract -import com.lightbend.kafka.kafkametricstools.{Domain, LookupTable, MetricsSink} +import com.lightbend.kafkalagexporter.KafkaClient.KafkaClientContract import scala.collection.immutable -import scala.concurrent.duration.{FiniteDuration, _} +import scala.concurrent.duration._ import scala.concurrent.{ExecutionContextExecutor, Future} import scala.util.{Failure, Success} object ConsumerGroupCollector { - import com.lightbend.kafka.kafkametricstools.Domain._ + import Domain._ sealed trait Message sealed trait Collect extends Message diff --git a/kafka-metrics-tools/src/main/scala/com/lightbend/kafka/kafkametricstools/Domain.scala b/src/main/scala/com/lightbend/kafkalagexporter/Domain.scala similarity index 96% rename from kafka-metrics-tools/src/main/scala/com/lightbend/kafka/kafkametricstools/Domain.scala rename to src/main/scala/com/lightbend/kafkalagexporter/Domain.scala index 750c5020..5e8ba63b 100644 --- a/kafka-metrics-tools/src/main/scala/com/lightbend/kafka/kafkametricstools/Domain.scala +++ b/src/main/scala/com/lightbend/kafkalagexporter/Domain.scala @@ -1,4 +1,4 @@ -package com.lightbend.kafka.kafkametricstools +package com.lightbend.kafkalagexporter object Domain { final case class TopicPartition(topic: String, partition: Int) diff --git a/kafka-metrics-tools/src/main/scala/com/lightbend/kafka/kafkametricstools/KafkaClient.scala b/src/main/scala/com/lightbend/kafkalagexporter/KafkaClient.scala similarity index 98% rename from kafka-metrics-tools/src/main/scala/com/lightbend/kafka/kafkametricstools/KafkaClient.scala rename to src/main/scala/com/lightbend/kafkalagexporter/KafkaClient.scala index 988f9f87..0849116f 100644 --- a/kafka-metrics-tools/src/main/scala/com/lightbend/kafka/kafkametricstools/KafkaClient.scala +++ b/src/main/scala/com/lightbend/kafkalagexporter/KafkaClient.scala @@ -1,11 +1,11 @@ -package com.lightbend.kafka.kafkametricstools +package com.lightbend.kafkalagexporter import java.time.Duration import java.util.Properties import java.util.concurrent.TimeUnit import java.{lang, util} -import com.lightbend.kafka.kafkametricstools.KafkaClient.KafkaClientContract +import com.lightbend.kafkalagexporter.KafkaClient.KafkaClientContract import org.apache.kafka.clients.admin._ import org.apache.kafka.clients.consumer.{ConsumerConfig, KafkaConsumer, OffsetAndMetadata} import org.apache.kafka.common.serialization.StringDeserializer diff --git a/kafka-lag-exporter/src/main/scala/com/lightbend/kafka/kafkalagexporter/KafkaClusterManager.scala b/src/main/scala/com/lightbend/kafkalagexporter/KafkaClusterManager.scala similarity index 90% rename from kafka-lag-exporter/src/main/scala/com/lightbend/kafka/kafkalagexporter/KafkaClusterManager.scala rename to src/main/scala/com/lightbend/kafkalagexporter/KafkaClusterManager.scala index a77273d2..1894e22c 100644 --- a/kafka-lag-exporter/src/main/scala/com/lightbend/kafka/kafkalagexporter/KafkaClusterManager.scala +++ b/src/main/scala/com/lightbend/kafkalagexporter/KafkaClusterManager.scala @@ -1,10 +1,9 @@ -package com.lightbend.kafka.kafkalagexporter +package com.lightbend.kafkalagexporter import akka.actor.typed.scaladsl.Behaviors -import akka.actor.typed._ -import com.lightbend.kafka.kafkalagexporter.watchers.Watcher -import com.lightbend.kafka.kafkametricstools.KafkaClient.KafkaClientContract -import com.lightbend.kafka.kafkametricstools.{KafkaCluster, MetricsReporter, MetricsSink} +import akka.actor.typed.{ActorRef, Behavior, ChildFailed} +import com.lightbend.kafkalagexporter.KafkaClient.KafkaClientContract +import com.lightbend.kafkalagexporter.watchers.Watcher object KafkaClusterManager { sealed trait Message @@ -77,5 +76,3 @@ object KafkaClusterManager { Behaviors.same } } - - diff --git a/kafka-metrics-tools/src/main/scala/com/lightbend/kafka/kafkametricstools/LookupTable.scala b/src/main/scala/com/lightbend/kafkalagexporter/LookupTable.scala similarity index 98% rename from kafka-metrics-tools/src/main/scala/com/lightbend/kafka/kafkametricstools/LookupTable.scala rename to src/main/scala/com/lightbend/kafkalagexporter/LookupTable.scala index e680cdee..5e51dbc1 100644 --- a/kafka-metrics-tools/src/main/scala/com/lightbend/kafka/kafkametricstools/LookupTable.scala +++ b/src/main/scala/com/lightbend/kafkalagexporter/LookupTable.scala @@ -1,4 +1,5 @@ -package com.lightbend.kafka.kafkametricstools +package com.lightbend.kafkalagexporter + import scala.collection.mutable object LookupTable { diff --git a/kafka-lag-exporter/src/main/scala/com/lightbend/kafka/kafkalagexporter/MainApp.scala b/src/main/scala/com/lightbend/kafkalagexporter/MainApp.scala similarity index 89% rename from kafka-lag-exporter/src/main/scala/com/lightbend/kafka/kafkalagexporter/MainApp.scala rename to src/main/scala/com/lightbend/kafkalagexporter/MainApp.scala index 945d891c..82fd31f5 100644 --- a/kafka-lag-exporter/src/main/scala/com/lightbend/kafka/kafkalagexporter/MainApp.scala +++ b/src/main/scala/com/lightbend/kafkalagexporter/MainApp.scala @@ -1,9 +1,8 @@ -package com.lightbend.kafka.kafkalagexporter +package com.lightbend.kafkalagexporter import java.util.concurrent.Executors import akka.actor.typed.ActorSystem -import com.lightbend.kafka.kafkametricstools.{KafkaClient, PrometheusEndpointSink} import com.typesafe.config.{Config, ConfigFactory} import scala.concurrent.duration._ diff --git a/kafka-lag-exporter/src/main/scala/com/lightbend/kafka/kafkalagexporter/Metrics.scala b/src/main/scala/com/lightbend/kafkalagexporter/Metrics.scala similarity index 94% rename from kafka-lag-exporter/src/main/scala/com/lightbend/kafka/kafkalagexporter/Metrics.scala rename to src/main/scala/com/lightbend/kafkalagexporter/Metrics.scala index ae563894..75315dab 100644 --- a/kafka-lag-exporter/src/main/scala/com/lightbend/kafka/kafkalagexporter/Metrics.scala +++ b/src/main/scala/com/lightbend/kafkalagexporter/Metrics.scala @@ -1,7 +1,6 @@ -package com.lightbend.kafka.kafkalagexporter +package com.lightbend.kafkalagexporter -import com.lightbend.kafka.kafkametricstools.Domain -import com.lightbend.kafka.kafkametricstools.MetricsSink.{GaugeDefinition, Message, Metric, MetricDefinitions} +import com.lightbend.kafkalagexporter.MetricsSink._ object Metrics { final case class LatestOffsetMetric(clusterName: String, topicPartition: Domain.TopicPartition, value: Double) diff --git a/kafka-metrics-tools/src/main/scala/com/lightbend/kafka/kafkametricstools/MetricsReporter.scala b/src/main/scala/com/lightbend/kafkalagexporter/MetricsReporter.scala similarity index 86% rename from kafka-metrics-tools/src/main/scala/com/lightbend/kafka/kafkametricstools/MetricsReporter.scala rename to src/main/scala/com/lightbend/kafkalagexporter/MetricsReporter.scala index 4e05accc..c3560d47 100644 --- a/kafka-metrics-tools/src/main/scala/com/lightbend/kafka/kafkametricstools/MetricsReporter.scala +++ b/src/main/scala/com/lightbend/kafkalagexporter/MetricsReporter.scala @@ -1,8 +1,8 @@ -package com.lightbend.kafka.kafkametricstools +package com.lightbend.kafkalagexporter import akka.actor.typed.scaladsl.Behaviors import akka.actor.typed.{Behavior, PostStop} -import com.lightbend.kafka.kafkametricstools.MetricsSink.{Message, Metric, Stop} +import com.lightbend.kafkalagexporter.MetricsSink.{Message, Metric, Stop} object MetricsReporter { def init( diff --git a/kafka-metrics-tools/src/main/scala/com/lightbend/kafka/kafkametricstools/MetricsSink.scala b/src/main/scala/com/lightbend/kafkalagexporter/MetricsSink.scala similarity index 78% rename from kafka-metrics-tools/src/main/scala/com/lightbend/kafka/kafkametricstools/MetricsSink.scala rename to src/main/scala/com/lightbend/kafkalagexporter/MetricsSink.scala index a9de7d83..32047570 100644 --- a/kafka-metrics-tools/src/main/scala/com/lightbend/kafka/kafkametricstools/MetricsSink.scala +++ b/src/main/scala/com/lightbend/kafkalagexporter/MetricsSink.scala @@ -1,6 +1,6 @@ -package com.lightbend.kafka.kafkametricstools +package com.lightbend.kafkalagexporter -import com.lightbend.kafka.kafkametricstools.MetricsSink.Metric +import com.lightbend.kafkalagexporter.MetricsSink.Metric object MetricsSink { trait Message diff --git a/kafka-metrics-tools/src/main/scala/com/lightbend/kafka/kafkametricstools/PrometheusEndpointSink.scala b/src/main/scala/com/lightbend/kafkalagexporter/PrometheusEndpointSink.scala similarity index 91% rename from kafka-metrics-tools/src/main/scala/com/lightbend/kafka/kafkametricstools/PrometheusEndpointSink.scala rename to src/main/scala/com/lightbend/kafkalagexporter/PrometheusEndpointSink.scala index 5924f4cc..08d36174 100644 --- a/kafka-metrics-tools/src/main/scala/com/lightbend/kafka/kafkametricstools/PrometheusEndpointSink.scala +++ b/src/main/scala/com/lightbend/kafkalagexporter/PrometheusEndpointSink.scala @@ -1,8 +1,9 @@ -package com.lightbend.kafka.kafkametricstools -import com.lightbend.kafka.kafkametricstools.MetricsSink.{Metric, MetricDefinitions} -import io.prometheus.client.{CollectorRegistry, Gauge} +package com.lightbend.kafkalagexporter + +import com.lightbend.kafkalagexporter.MetricsSink.{Metric, MetricDefinitions} import io.prometheus.client.exporter.HTTPServer import io.prometheus.client.hotspot.DefaultExports +import io.prometheus.client.{CollectorRegistry, Gauge} import scala.util.Try diff --git a/kafka-lag-exporter/src/main/scala/com/lightbend/kafka/kafkalagexporter/watchers/StrimziClient.scala b/src/main/scala/com/lightbend/kafkalagexporter/watchers/StrimziClient.scala similarity index 96% rename from kafka-lag-exporter/src/main/scala/com/lightbend/kafka/kafkalagexporter/watchers/StrimziClient.scala rename to src/main/scala/com/lightbend/kafkalagexporter/watchers/StrimziClient.scala index 6e1fe478..4b3e3748 100644 --- a/kafka-lag-exporter/src/main/scala/com/lightbend/kafka/kafkalagexporter/watchers/StrimziClient.scala +++ b/src/main/scala/com/lightbend/kafkalagexporter/watchers/StrimziClient.scala @@ -1,9 +1,9 @@ -package com.lightbend.kafka.kafkalagexporter.watchers +package com.lightbend.kafkalagexporter.watchers import java.lang import com.fasterxml.jackson.annotation.JsonIgnoreProperties -import com.lightbend.kafka.kafkametricstools.KafkaCluster +import com.lightbend.kafkalagexporter.KafkaCluster import io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionBuilder import io.fabric8.kubernetes.client.{Watcher => FWatcher, _} import io.fabric8.kubernetes.client.dsl.FilterWatchListMultiDeletable diff --git a/kafka-lag-exporter/src/main/scala/com/lightbend/kafka/kafkalagexporter/watchers/StrimziClusterWatcher.scala b/src/main/scala/com/lightbend/kafkalagexporter/watchers/StrimziClusterWatcher.scala similarity index 85% rename from kafka-lag-exporter/src/main/scala/com/lightbend/kafka/kafkalagexporter/watchers/StrimziClusterWatcher.scala rename to src/main/scala/com/lightbend/kafkalagexporter/watchers/StrimziClusterWatcher.scala index c055e69a..c305d09b 100644 --- a/kafka-lag-exporter/src/main/scala/com/lightbend/kafka/kafkalagexporter/watchers/StrimziClusterWatcher.scala +++ b/src/main/scala/com/lightbend/kafkalagexporter/watchers/StrimziClusterWatcher.scala @@ -1,9 +1,10 @@ -package com.lightbend.kafka.kafkalagexporter.watchers +package com.lightbend.kafkalagexporter.watchers import akka.actor.typed.scaladsl.Behaviors import akka.actor.typed.{ActorRef, Behavior, PostStop} -import com.lightbend.kafka.kafkalagexporter.KafkaClusterManager -import com.lightbend.kafka.kafkametricstools.KafkaCluster +import com.lightbend.kafkalagexporter.KafkaCluster +import com.lightbend.kafkalagexporter.KafkaClusterManager + object StrimziClusterWatcher { val name: String = "strimzi" diff --git a/kafka-lag-exporter/src/main/scala/com/lightbend/kafka/kafkalagexporter/watchers/Watcher.scala b/src/main/scala/com/lightbend/kafkalagexporter/watchers/Watcher.scala similarity index 83% rename from kafka-lag-exporter/src/main/scala/com/lightbend/kafka/kafkalagexporter/watchers/Watcher.scala rename to src/main/scala/com/lightbend/kafkalagexporter/watchers/Watcher.scala index de3f981e..92ad6dd6 100644 --- a/kafka-lag-exporter/src/main/scala/com/lightbend/kafka/kafkalagexporter/watchers/Watcher.scala +++ b/src/main/scala/com/lightbend/kafkalagexporter/watchers/Watcher.scala @@ -1,9 +1,9 @@ -package com.lightbend.kafka.kafkalagexporter.watchers +package com.lightbend.kafkalagexporter.watchers import akka.actor.typed.ActorRef import akka.actor.typed.scaladsl.ActorContext -import com.lightbend.kafka.kafkametricstools.KafkaCluster -import com.lightbend.kafka.kafkalagexporter.{AppConfig, KafkaClusterManager} +import com.lightbend.kafkalagexporter.{AppConfig, KafkaCluster} +import com.lightbend.kafkalagexporter.KafkaClusterManager object Watcher { diff --git a/kafka-lag-exporter/src/test/resources/logback.xml b/src/test/resources/logback.xml similarity index 88% rename from kafka-lag-exporter/src/test/resources/logback.xml rename to src/test/resources/logback.xml index b85e8381..d2f70d94 100644 --- a/kafka-lag-exporter/src/test/resources/logback.xml +++ b/src/test/resources/logback.xml @@ -8,7 +8,7 @@ - + diff --git a/kafka-lag-exporter/src/test/resources/reference.conf b/src/test/resources/reference.conf similarity index 100% rename from kafka-lag-exporter/src/test/resources/reference.conf rename to src/test/resources/reference.conf diff --git a/kafka-lag-exporter/src/test/scala/com/lightbend/kafka/kafkalagexporter/ConsumerGroupCollectorSpec.scala b/src/test/scala/com/lightbend/kafkalagexporter/ConsumerGroupCollectorSpec.scala similarity index 94% rename from kafka-lag-exporter/src/test/scala/com/lightbend/kafka/kafkalagexporter/ConsumerGroupCollectorSpec.scala rename to src/test/scala/com/lightbend/kafkalagexporter/ConsumerGroupCollectorSpec.scala index 88206e58..89cbec67 100644 --- a/kafka-lag-exporter/src/test/scala/com/lightbend/kafka/kafkalagexporter/ConsumerGroupCollectorSpec.scala +++ b/src/test/scala/com/lightbend/kafkalagexporter/ConsumerGroupCollectorSpec.scala @@ -1,18 +1,16 @@ -package com.lightbend.kafka.kafkalagexporter +package com.lightbend.kafkalagexporter import java.time.{Clock, Instant, ZoneId} import akka.actor.testkit.typed.scaladsl.{BehaviorTestKit, TestInbox} -import com.lightbend.kafka.kafkametricstools -import com.lightbend.kafka.kafkametricstools.KafkaClient.KafkaClientContract -import com.lightbend.kafka.kafkametricstools.LookupTable._ -import com.lightbend.kafka.kafkametricstools.{Domain, LookupTable, MetricsSink} +import com.lightbend.kafkalagexporter.KafkaClient.KafkaClientContract +import com.lightbend.kafkalagexporter.LookupTable._ import org.mockito.MockitoSugar import org.scalatest.{Matchers, _} import scala.concurrent.duration._ -class ConsumerGroupCollectorSpec extends FreeSpec with Matchers with kafkametricstools.TestData with MockitoSugar { +class ConsumerGroupCollectorSpec extends FreeSpec with Matchers with TestData with MockitoSugar { val client: KafkaClientContract = mock[KafkaClientContract] val config = ConsumerGroupCollector.CollectorConfig(0 seconds, 20, "default", "", Clock.fixed(Instant.ofEpochMilli(0), ZoneId.systemDefault())) diff --git a/kafka-metrics-tools/src/test/scala/com/lightbend/kafka/kafkametricstools/LookupTableSpec.scala b/src/test/scala/com/lightbend/kafkalagexporter/LookupTableSpec.scala similarity index 98% rename from kafka-metrics-tools/src/test/scala/com/lightbend/kafka/kafkametricstools/LookupTableSpec.scala rename to src/test/scala/com/lightbend/kafkalagexporter/LookupTableSpec.scala index eeda89bc..014cf260 100644 --- a/kafka-metrics-tools/src/test/scala/com/lightbend/kafka/kafkametricstools/LookupTableSpec.scala +++ b/src/test/scala/com/lightbend/kafkalagexporter/LookupTableSpec.scala @@ -1,9 +1,10 @@ -package com.lightbend.kafka.kafkametricstools +package com.lightbend.kafkalagexporter + import org.scalatest.{FreeSpec, Matchers} class LookupTableSpec extends FreeSpec with Matchers { - import LookupTable._ + import com.lightbend.kafkalagexporter.LookupTable._ "LookupTable" - { "lookupOffset" - { diff --git a/kafka-metrics-tools/src/test/scala/com/lightbend/kafka/kafkametricstools/TestData.scala b/src/test/scala/com/lightbend/kafkalagexporter/TestData.scala similarity index 87% rename from kafka-metrics-tools/src/test/scala/com/lightbend/kafka/kafkametricstools/TestData.scala rename to src/test/scala/com/lightbend/kafkalagexporter/TestData.scala index 7b4cdda5..974c7815 100644 --- a/kafka-metrics-tools/src/test/scala/com/lightbend/kafka/kafkametricstools/TestData.scala +++ b/src/test/scala/com/lightbend/kafkalagexporter/TestData.scala @@ -1,6 +1,6 @@ -package com.lightbend.kafka.kafkametricstools +package com.lightbend.kafkalagexporter -import com.lightbend.kafka.kafkametricstools.Domain.{ConsumerGroup, ConsumerGroupMember, GroupTopicPartition, TopicPartition} +import com.lightbend.kafkalagexporter.Domain._ trait TestData { val topicPartition0 = TopicPartition("test-topic", 0) diff --git a/kafka-lag-exporter/src/test/scala/com/lightbend/kafka/kafkalagexporter/integration/IntegrationSpec.scala b/src/test/scala/com/lightbend/kafkalagexporter/integration/IntegrationSpec.scala similarity index 93% rename from kafka-lag-exporter/src/test/scala/com/lightbend/kafka/kafkalagexporter/integration/IntegrationSpec.scala rename to src/test/scala/com/lightbend/kafkalagexporter/integration/IntegrationSpec.scala index 88d2ffe6..b871cbe9 100644 --- a/kafka-lag-exporter/src/test/scala/com/lightbend/kafka/kafkalagexporter/integration/IntegrationSpec.scala +++ b/src/test/scala/com/lightbend/kafkalagexporter/integration/IntegrationSpec.scala @@ -1,8 +1,8 @@ -package com.lightbend.kafka.kafkalagexporter.integration +package com.lightbend.kafkalagexporter.integration import akka.actor.testkit.typed.scaladsl.ActorTestKit import akka.stream.testkit.scaladsl.StreamTestKit.assertAllStagesStopped -import com.lightbend.kafka.kafkalagexporter.Metrics._ +import com.lightbend.kafkalagexporter.Metrics._ import org.scalatest.BeforeAndAfterEach import scala.concurrent.duration._ @@ -52,7 +52,7 @@ class IntegrationSpec extends SpecBase(kafkaPort = 9094, exporterPort = 8000) wi var lastLagInTime: Double = 0 - def isIncreasing: String => Unit = (actual: String) => { + val isIncreasing: String => Unit = (actual: String) => { val parsedDoubleTry = Try(actual.toDouble) assert(parsedDoubleTry.isSuccess) val parsedDouble = parsedDoubleTry.get diff --git a/kafka-lag-exporter/src/test/scala/com/lightbend/kafka/kafkalagexporter/integration/LagSim.scala b/src/test/scala/com/lightbend/kafkalagexporter/integration/LagSim.scala similarity index 97% rename from kafka-lag-exporter/src/test/scala/com/lightbend/kafka/kafkalagexporter/integration/LagSim.scala rename to src/test/scala/com/lightbend/kafkalagexporter/integration/LagSim.scala index 27ffd693..99bff132 100644 --- a/kafka-lag-exporter/src/test/scala/com/lightbend/kafka/kafkalagexporter/integration/LagSim.scala +++ b/src/test/scala/com/lightbend/kafkalagexporter/integration/LagSim.scala @@ -1,4 +1,5 @@ -package com.lightbend.kafka.kafkalagexporter.integration +package com.lightbend.kafkalagexporter.integration + import akka.actor.Cancellable import akka.actor.typed.scaladsl.Behaviors import akka.actor.typed.{Behavior, PostStop} diff --git a/kafka-lag-exporter/src/test/scala/com/lightbend/kafka/kafkalagexporter/integration/PrometheusUtils.scala b/src/test/scala/com/lightbend/kafkalagexporter/integration/PrometheusUtils.scala similarity index 96% rename from kafka-lag-exporter/src/test/scala/com/lightbend/kafka/kafkalagexporter/integration/PrometheusUtils.scala rename to src/test/scala/com/lightbend/kafkalagexporter/integration/PrometheusUtils.scala index 06f55e02..d9781a7e 100644 --- a/kafka-lag-exporter/src/test/scala/com/lightbend/kafka/kafkalagexporter/integration/PrometheusUtils.scala +++ b/src/test/scala/com/lightbend/kafkalagexporter/integration/PrometheusUtils.scala @@ -1,10 +1,11 @@ -package com.lightbend.kafka.kafkalagexporter.integration +package com.lightbend.kafkalagexporter.integration + import akka.actor.ActorSystem import akka.http.scaladsl.Http import akka.http.scaladsl.model.{HttpRequest, HttpResponse, StatusCodes} import akka.http.scaladsl.unmarshalling.Unmarshal import akka.stream.Materializer -import com.lightbend.kafka.kafkalagexporter.Metrics +import com.lightbend.kafkalagexporter.Metrics import org.scalatest.Matchers import org.scalatest.concurrent.ScalaFutures import org.slf4j.{Logger, LoggerFactory} diff --git a/kafka-lag-exporter/src/test/scala/com/lightbend/kafka/kafkalagexporter/integration/SpecBase.scala b/src/test/scala/com/lightbend/kafkalagexporter/integration/SpecBase.scala similarity index 92% rename from kafka-lag-exporter/src/test/scala/com/lightbend/kafka/kafkalagexporter/integration/SpecBase.scala rename to src/test/scala/com/lightbend/kafkalagexporter/integration/SpecBase.scala index eacd0fd1..299ccaf9 100644 --- a/kafka-lag-exporter/src/test/scala/com/lightbend/kafka/kafkalagexporter/integration/SpecBase.scala +++ b/src/test/scala/com/lightbend/kafkalagexporter/integration/SpecBase.scala @@ -1,8 +1,9 @@ -package com.lightbend.kafka.kafkalagexporter.integration +package com.lightbend.kafkalagexporter.integration import akka.actor.typed.ActorSystem import akka.kafka.testkit.scaladsl.{EmbeddedKafkaLike, ScalatestKafkaSpec} -import com.lightbend.kafka.kafkalagexporter.{KafkaClusterManager, MainApp} +import com.lightbend.kafkalagexporter.MainApp +import com.lightbend.kafkalagexporter.KafkaClusterManager import com.typesafe.config.{Config, ConfigFactory} import net.manub.embeddedkafka.EmbeddedKafkaConfig import org.scalatest.concurrent.{Eventually, ScalaFutures}