Akka Management - Already in the Lagom?

akka-http
akka-cluster

(Joo) #1

Hi there,

I am currently building Lagom services with the Cluster Sharding in mind. And since Lagom is based on Akka, I was wondering if I could make use of Akka Management’s Cluster Http module to monitor the cluster health.

In order to do this, I added following library dependencies as per the document:

libraryDependencies ++= Seq(
  "com.lightbend.akka.management" %% "akka-management" % "0.19.0",
  "com.lightbend.akka.management" %% "akka-management-cluster-http" % "0.19.0"
)

And then added the following code in the ApplicationLoader in one of the services:

val httpMgmt = ClusterHttpManagement(system)

While I was doing this, I came up with the two questions.

  1. Is this even possible to monitor the cluster health of Lagom clusters using Akka Http Management plugins like this?

  2. Does Lagom’s **lagomScaladslCluster** library already contains and handles this Akka Management things, meaning that I don’t have to explicitly add those two libraries again in the build.sbt, I just need to find ways to use the existing ones in the lagomScaladslCluster library…?
    Does Lagom’s lagomScaladslCluster already make uses of Akka Management’s plugins like Cluster Bootstrapping and Discovery to achieve the Cluster Sharding?

Thanks,


(Joo) #2

adding to the thread as I am investigating further… I believe Akka Management is already part of the Lagom platform…

It says :

A status facility is provided by the tooling. When enabled, an additional route is added to the Akka Management HTTP server and the appropriate health and readiness checks are defined. By default, this route responds to requests to /platform-tooling/healthy and /platform-tooling/ready

This feature is automatically enabled for applications that use Akka Cluster.

And then here says the Akka cluster is automatically enabled for Lagom application that requires it.


(Tim Moore) #3

Lagom itself does not depend on Akka Management, but if you are using the Lightbend Orchestration tools (aka reactive-lib), that does.