ModuleManagement

Handles the lifecycle of all modules known by Kamon. The most common implementations of modules are metrics and span reporters, but modules can be used to encapsulate any process that should be started automatically by Kamon and stopped when all modules are stopped (usually during shutdown).

Modules can be automatically discovered from the kamon.modules configuration path, using the following schema:

kamon.modules { module-name { enabled = true name = "My Module Name" description = "A module description" factory = "com.example.MyModuleFactory"

 // For Metric Reporters only:
 metric-filter {
   includes = []
   excludes = []
 }

 // For Periodic Collectors only:
 interval = 10 seconds

} }

Take a look at the reference.conf file for more details.

class Object
trait Matchable
class Any
object Kamon.type

Value members

Concrete methods

def addReporter(name: String, reporter: SpanReporter): Registration
def addReporter(name: String, description: String, reporter: SpanReporter): Registration
def addReporter(name: String, reporter: MetricReporter): Registration
def addReporter(name: String, reporter: MetricReporter, metricFilter: Filter): Registration
def addReporter(name: String, description: String, reporter: MetricReporter, metricFilter: Filter): Registration
def addScheduledAction(name: String, description: Option[String], collector: ScheduledAction, interval: Duration): Registration
def loadModules(): Unit

Loads modules from Kamon's configuration.

Loads modules from Kamon's configuration.

def stopModules(): Future[Unit]

Stops all registered modules and returns a future that completes when the stop callback on all available modules have been completed. This includes automatically and programmatically registered modules.

Stops all registered modules and returns a future that completes when the stop callback on all available modules have been completed. This includes automatically and programmatically registered modules.

Deprecated methods

def registerModule(name: String, module: Module): Registration

Register a module instantiated by the user and returns a Registration that can be used to stop and deregister the module at any time.

Register a module instantiated by the user and returns a Registration that can be used to stop and deregister the module at any time.

Deprecated
[Since version 2.3.0]
def registerModule(name: String, description: String, module: Module, configPath: String): Registration

Register a module instantiated by the user and returns a Registration that can be used to stop and deregister the module at any time.

Register a module instantiated by the user and returns a Registration that can be used to stop and deregister the module at any time.

Deprecated
[Since version 2.3.0]

Concrete fields