Kamon

trait Init
trait Tracing
trait Metrics
trait Utilities
class Object
trait Matchable
class Any
Kamon.type

Value members

Inherited methods

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

Tries to attach the Kanela instrumentation agent, if the Kamon Bundle dependency is available on the classpath. If the Status module indicates that instrumentation has been already applied this method will not try to do anything.

Tries to attach the Kanela instrumentation agent, if the Kamon Bundle dependency is available on the classpath. If the Status module indicates that instrumentation has been already applied this method will not try to do anything.

Inherited from:
Init

Retrieves the binary propagation channel with the supplied name. Propagation channels are configured on the kamon.propagation.binary configuration section.

Retrieves the binary propagation channel with the supplied name. Propagation channels are configured on the kamon.propagation.binary configuration section.

Inherited from:
ContextPropagation
protected def clearRegistry(): Unit
Inherited from:
Metrics
def clientSpanBuilder(operationName: String, component: String): SpanBuilder

Creates a new SpanBuilder for a Client Span and applies the provided component name as a metric tag. It is recommended that all Spans include a "component" metric tag that indicates what library or library section is generating the Span.

Creates a new SpanBuilder for a Client Span and applies the provided component name as a metric tag. It is recommended that all Spans include a "component" metric tag that indicates what library or library section is generating the Span.

Inherited from:
Tracing
def clock(): Clock

Kamon's Clock implementation.

Kamon's Clock implementation.

Inherited from:
Utilities
def config(): Config

Retrieve Kamon's current configuration.

Retrieve Kamon's current configuration.

Inherited from:
Configuration
def consumerSpanBuilder(operationName: String, component: String): SpanBuilder

Creates a new SpanBuilder for a Consumer Span and applies the provided component name as a metric tag. It is recommended that all Spans include a "component" metric tag that indicates what library or library section is generating the Span.

Creates a new SpanBuilder for a Consumer Span and applies the provided component name as a metric tag. It is recommended that all Spans include a "component" metric tag that indicates what library or library section is generating the Span.

Inherited from:
Tracing
def counter(name: String, description: String, settings: ForValueInstrument): Counter

Creates or retrieves a Counter-backed metric with the provided settings

Creates or retrieves a Counter-backed metric with the provided settings

Inherited from:
MetricBuilding
def counter(name: String, description: String, unit: MeasurementUnit): Counter

Creates or retrieves a Counter-backed metric with the provided unit

Creates or retrieves a Counter-backed metric with the provided unit

Inherited from:
MetricBuilding
def counter(name: String, unit: MeasurementUnit): Counter

Creates or retrieves a Counter-backed metric with the provided unit

Creates or retrieves a Counter-backed metric with the provided unit

Inherited from:
MetricBuilding
def counter(name: String, description: String): Counter

Creates or retrieves a Counter-backed metric

Creates or retrieves a Counter-backed metric

Inherited from:
MetricBuilding
def counter(name: String): Counter

Creates or retrieves a Counter-backed metric

Creates or retrieves a Counter-backed metric

Inherited from:
MetricBuilding

Returns the current Context on Kamon's Context Storage. As the default behavior, this will return Context.Empty if no other Context has been stored on the calling thread.

Returns the current Context on Kamon's Context Storage. As the default behavior, this will return Context.Empty if no other Context has been stored on the calling thread.

Inherited from:
ContextStorage

Returns the Span held by the current Context, if any. As the default behavior, this will return Span.Empty if the current Context does not contain a Span.

Returns the Span held by the current Context, if any. As the default behavior, this will return Span.Empty if the current Context does not contain a Span.

Inherited from:
ContextStorage

Retrieves the default binary propagation channel. Configuration for this channel can be found under the kamon.propagation.binary.default configuration section.

Retrieves the default binary propagation channel. Configuration for this channel can be found under the kamon.propagation.binary.default configuration section.

Inherited from:
ContextPropagation

Retrieves the default HTTP propagation channel. Configuration for this channel can be found under the kamon.propagation.http.default configuration section.

Retrieves the default HTTP propagation channel. Configuration for this channel can be found under the kamon.propagation.http.default configuration section.

Inherited from:
ContextPropagation

Returns the current enviroment instance constructed by Kamon using the "kamon.environment" settings.

Returns the current enviroment instance constructed by Kamon using the "kamon.environment" settings.

Inherited from:
CurrentStatus
def filter(configKey: String): Filter

Creates a new composite Filter by looking up the provided key on Kamon's configuration. All inputs matching any of the include filters and none of the exclude filters will be accepted. The configuration is expected to have the following structure:

Creates a new composite Filter by looking up the provided key on Kamon's configuration. All inputs matching any of the include filters and none of the exclude filters will be accepted. The configuration is expected to have the following structure:

config { includes = [ "some/pattern", "regex:some[0-9]" ] excludes = [ ] }

By default, the patterns are treated as Glob patterns but users can explicitly configure the pattern type by prefixing the pattern with either "glob:" or "regex:". If any of the elements are missing they will be considered empty.

Inherited from:
Utilities
def gauge(name: String, description: String, settings: ForValueInstrument): Gauge

Creates or retrieves a Gauge-backed metric with the provided settings

Creates or retrieves a Gauge-backed metric with the provided settings

Inherited from:
MetricBuilding
def gauge(name: String, description: String, unit: MeasurementUnit): Gauge

Creates or retrieves a Gauge-backed metric with the provided unit

Creates or retrieves a Gauge-backed metric with the provided unit

Inherited from:
MetricBuilding
def gauge(name: String, unit: MeasurementUnit): Gauge

Creates or retrieves a Gauge-backed metric with the provided unit

Creates or retrieves a Gauge-backed metric with the provided unit

Inherited from:
MetricBuilding
def gauge(name: String, description: String): Gauge

Creates or retrieves a Gauge-backed metric

Creates or retrieves a Gauge-backed metric

Inherited from:
MetricBuilding
def gauge(name: String): Gauge

Creates or retrieves a Gauge-backed metric

Creates or retrieves a Gauge-backed metric

Inherited from:
MetricBuilding
def histogram(name: String, description: String, settings: ForDistributionInstrument): Histogram

Creates or retrieves a Histogram-backed metric with the provided settings

Creates or retrieves a Histogram-backed metric with the provided settings

Inherited from:
MetricBuilding
def histogram(name: String, description: String, unit: MeasurementUnit, dynamicRange: DynamicRange): Histogram

Creates or retrieves a Histogram-backed metric with the provided unit and dynamic range

Creates or retrieves a Histogram-backed metric with the provided unit and dynamic range

Inherited from:
MetricBuilding
def histogram(name: String, unit: MeasurementUnit, dynamicRange: DynamicRange): Histogram

Creates or retrieves a Histogram-backed metric with the provided unit and dynamic range

Creates or retrieves a Histogram-backed metric with the provided unit and dynamic range

Inherited from:
MetricBuilding
def histogram(name: String, description: String, unit: MeasurementUnit): Histogram

Creates or retrieves a Histogram-backed metric with the provided unit

Creates or retrieves a Histogram-backed metric with the provided unit

Inherited from:
MetricBuilding
def histogram(name: String, unit: MeasurementUnit): Histogram

Creates or retrieves a Histogram-backed metric with the provided unit

Creates or retrieves a Histogram-backed metric with the provided unit

Inherited from:
MetricBuilding
def histogram(name: String, description: String): Histogram

Creates or retrieves a Histogram-backed metric

Creates or retrieves a Histogram-backed metric

Inherited from:
MetricBuilding
def histogram(name: String): Histogram

Creates or retrieves a Histogram-backed metric

Creates or retrieves a Histogram-backed metric

Inherited from:
MetricBuilding
def httpPropagation(channelName: String): Option[Propagation[HeaderReader, HeaderWriter]]

Retrieves the HTTP propagation channel with the supplied name. Propagation channels are configured on the kamon.propagation.http configuration section.

Retrieves the HTTP propagation channel with the supplied name. Propagation channels are configured on the kamon.propagation.http configuration section.

Inherited from:
ContextPropagation

Returns the Identifier Scheme currently used by the tracer.

Returns the Identifier Scheme currently used by the tracer.

Inherited from:
Tracing
def init(config: Config): Unit

Reconfigures Kamon to use the provided configuration and then attempts to attach the instrumentation agent and start all registered modules.

Reconfigures Kamon to use the provided configuration and then attempts to attach the instrumentation agent and start all registered modules.

Inherited from:
Init
def init(): Unit

Attempts to attach the instrumentation agent and start all registered modules.

Attempts to attach the instrumentation agent and start all registered modules.

Inherited from:
Init
def initWithoutAttaching(config: Config): Unit

Initializes Kamon without trying to attach the instrumentation agent from the Kamon Bundle.

Initializes Kamon without trying to attach the instrumentation agent from the Kamon Bundle.

Inherited from:
Init

Initializes Kamon without trying to attach the instrumentation agent from the Kamon Bundle.

Initializes Kamon without trying to attach the instrumentation agent from the Kamon Bundle.

Inherited from:
Init
def internalSpanBuilder(operationName: String, component: String): SpanBuilder

Creates a new SpanBuilder for an Internal Span and applies the provided component name as a metric tag. It is recommended that all Spans include a "component" metric tag that indicates what library or library section is generating the Span.

Creates a new SpanBuilder for an Internal Span and applies the provided component name as a metric tag. It is recommended that all Spans include a "component" metric tag that indicates what library or library section is generating the Span.

Inherited from:
Tracing
def loadModules(): Unit

Loads modules from Kamon's configuration.

Loads modules from Kamon's configuration.

Inherited from:
ModuleManagement
Inherited from:
ModuleManagement
def onReconfigure(hook: Config => Unit): Unit

Register a reconfigure hook that will be run when the a call to Kamon.reconfigure(config) is performed. All registered hooks will run sequentially in the same Thread that calls Kamon.reconfigure(config).

Register a reconfigure hook that will be run when the a call to Kamon.reconfigure(config) is performed. All registered hooks will run sequentially in the same Thread that calls Kamon.reconfigure(config).

Inherited from:
Configuration

Register a reconfigure hook that will be run when the a call to Kamon.reconfigure(config) is performed. All registered hooks will run sequentially in the same Thread that calls Kamon.reconfigure(config).

Register a reconfigure hook that will be run when the a call to Kamon.reconfigure(config) is performed. All registered hooks will run sequentially in the same Thread that calls Kamon.reconfigure(config).

Inherited from:
Configuration
def producerSpanBuilder(operationName: String, component: String): SpanBuilder

Creates a new SpanBuilder for a Producer Span and applies the provided component name as a metric tag. It is recommended that all Spans include a "component" metric tag that indicates what library or library section is generating the Span.

Creates a new SpanBuilder for a Producer Span and applies the provided component name as a metric tag. It is recommended that all Spans include a "component" metric tag that indicates what library or library section is generating the Span.

Inherited from:
Tracing
def rangeSampler(name: String, description: String, settings: ForDistributionInstrument): RangeSampler

Creates or retrieves a RangeSampler-backed metric with the provided settings

Creates or retrieves a RangeSampler-backed metric with the provided settings

Inherited from:
MetricBuilding
def rangeSampler(name: String, description: String, unit: MeasurementUnit, dynamicRange: DynamicRange): RangeSampler

Creates or retrieves a RangeSampler-backed metric with the provided unit and dynamic range

Creates or retrieves a RangeSampler-backed metric with the provided unit and dynamic range

Inherited from:
MetricBuilding
def rangeSampler(name: String, unit: MeasurementUnit, dynamicRange: DynamicRange): RangeSampler

Creates or retrieves a RangeSampler-backed metric with the provided unit and dynamic range

Creates or retrieves a RangeSampler-backed metric with the provided unit and dynamic range

Inherited from:
MetricBuilding
def rangeSampler(name: String, description: String, unit: MeasurementUnit, autoUpdateInterval: Duration): RangeSampler

Creates or retrieves a RangeSampler-backed metric with the provided unit and auto-update interval

Creates or retrieves a RangeSampler-backed metric with the provided unit and auto-update interval

Inherited from:
MetricBuilding
def rangeSampler(name: String, description: String, unit: MeasurementUnit): RangeSampler

Creates or retrieves a RangeSampler-backed metric with the provided unit

Creates or retrieves a RangeSampler-backed metric with the provided unit

Inherited from:
MetricBuilding
def rangeSampler(name: String, unit: MeasurementUnit, autoUpdateInterval: Duration): RangeSampler

Creates or retrieves a RangeSampler-backed metric with the provided unit and auto-update interval

Creates or retrieves a RangeSampler-backed metric with the provided unit and auto-update interval

Inherited from:
MetricBuilding
def rangeSampler(name: String, unit: MeasurementUnit): RangeSampler

Creates or retrieves a RangeSampler-backed metric with the provided unit

Creates or retrieves a RangeSampler-backed metric with the provided unit

Inherited from:
MetricBuilding
def rangeSampler(name: String, description: String): RangeSampler

Creates or retrieves a RangeSampler-backed metric

Creates or retrieves a RangeSampler-backed metric

Inherited from:
MetricBuilding
def rangeSampler(name: String): RangeSampler

Creates or retrieves a RangeSampler-backed metric

Creates or retrieves a RangeSampler-backed metric

Inherited from:
MetricBuilding
def reconfigure(newConfig: Config): Unit

Supply a new Config instance to rule Kamon's world.

Supply a new Config instance to rule Kamon's world.

Inherited from:
Configuration
protected def registry(): MetricRegistry

Metric registry from which all metric-building APIs will draw instances. For more details on the entire set of exposes APIs please refer to kamon.metric.MetricBuilding.

Metric registry from which all metric-building APIs will draw instances. For more details on the entire set of exposes APIs please refer to kamon.metric.MetricBuilding.

Inherited from:
Metrics
@inline
def runWithContext[T](context: Context)(f: => T): T

Temporarily stores the provided Context on Kamon's Context Storage. The provided Context will be stored before executing the provided function and removed right after it finishes executing.

Temporarily stores the provided Context on Kamon's Context Storage. The provided Context will be stored before executing the provided function and removed right after it finishes executing.

Inherited from:
ContextStorage
def runWithContextEntry[T, K](key: Key[K], value: K)(f: => T): T

Temporarily stores the provided Context Key on Kamon's Context Storage. The provided Context key will be added to the current Context and stored before executing the provided function, then removed right after execution finishes.

Temporarily stores the provided Context Key on Kamon's Context Storage. The provided Context key will be added to the current Context and stored before executing the provided function, then removed right after execution finishes.

Inherited from:
ContextStorage
def runWithContextTag[T](key: String, value: Long)(f: => T): T

Temporarily stores the provided Context tag on Kamon's Context Storage. The provided Context tag will be added to the current Context and stored before executing the provided function, then removed right after execution finishes.

Temporarily stores the provided Context tag on Kamon's Context Storage. The provided Context tag will be added to the current Context and stored before executing the provided function, then removed right after execution finishes.

Inherited from:
ContextStorage
def runWithContextTag[T](key: String, value: Boolean)(f: => T): T

Temporarily stores the provided Context tag on Kamon's Context Storage. The provided Context tag will be added to the current Context and stored before executing the provided function, then removed right after execution finishes.

Temporarily stores the provided Context tag on Kamon's Context Storage. The provided Context tag will be added to the current Context and stored before executing the provided function, then removed right after execution finishes.

Inherited from:
ContextStorage
def runWithContextTag[T](key: String, value: String)(f: => T): T

Temporarily stores the provided Context tag on Kamon's Context Storage. The provided Context tag will be added to the current Context and stored before executing the provided function, then removed right after execution finishes.

Temporarily stores the provided Context tag on Kamon's Context Storage. The provided Context tag will be added to the current Context and stored before executing the provided function, then removed right after execution finishes.

Inherited from:
ContextStorage
@inline
def runWithSpan[T](span: Span, finishSpan: Boolean)(f: => T): T

Temporarily stores the provided Span on Kamon's Context Storage. The provided Span will be added to the current Context and stored before executing the provided function, then removed right after execution finishes. Optionally, this function can finish the provided Span once the function execution finishes.

Temporarily stores the provided Span on Kamon's Context Storage. The provided Span will be added to the current Context and stored before executing the provided function, then removed right after execution finishes. Optionally, this function can finish the provided Span once the function execution finishes.

Inherited from:
ContextStorage
def runWithSpan[T](span: Span)(f: => T): T

Temporarily stores the provided Span on Kamon's Context Storage. The provided Span will be added to the current Context and stored before executing the provided function, then removed right after execution finishes.

Temporarily stores the provided Span on Kamon's Context Storage. The provided Span will be added to the current Context and stored before executing the provided function, then removed right after execution finishes.

Inherited from:
ContextStorage
def serverSpanBuilder(operationName: String, component: String): SpanBuilder

Creates a new SpanBuilder for a Server Span and applies the provided component name as a metric tag. It is recommended that all Spans include a "component" metric tag that indicates what library or library section is generating the Span.

Creates a new SpanBuilder for a Server Span and applies the provided component name as a metric tag. It is recommended that all Spans include a "component" metric tag that indicates what library or library section is generating the Span.

Inherited from:
Tracing
def span[A](operationName: String, component: String)(f: => A): A

Creates an Internal Span that finishes automatically when the provided function finishes execution. If the provided function returns a scala.concurrent.Future or java.util.concurrent.CompletionStage implementation then the Span will be finished with the Future/CompletionState completes.

Creates an Internal Span that finishes automatically when the provided function finishes execution. If the provided function returns a scala.concurrent.Future or java.util.concurrent.CompletionStage implementation then the Span will be finished with the Future/CompletionState completes.

You can get access to the created Span within the provided function using Kamon.currentSpan. For example, if you wanted to add a tag to a Span created with this function you could do it as follows:

span("fetchUserDetails") { Kamon.currentSpan.tag("user.id", userId)

// Your business logic... }

If you need more customization options for the Span or complete control over Context propagation and Span lifecycle then create a SpanBuilder instead.

Inherited from:
Tracing
def span[A](operationName: String)(f: => A): A

Creates an Internal Span that finishes automatically when the provided function finishes execution. If the provided function returns a scala.concurrent.Future or java.util.concurrent.CompletionStage implementation then the Span will be finished with the Future/CompletionState completes.

Creates an Internal Span that finishes automatically when the provided function finishes execution. If the provided function returns a scala.concurrent.Future or java.util.concurrent.CompletionStage implementation then the Span will be finished with the Future/CompletionState completes.

You can get access to the created Span within the provided function using Kamon.currentSpan. For example, if you wanted to add a tag to a Span created with this function you could do it as follows:

span("fetchUserDetails") { Kamon.currentSpan.tag("user.id", userId)

// Your business logic... }

If you need more customization options for the Span or complete control over Context propagation and Span lifecycle then create a SpanBuilder instead.

Inherited from:
Tracing
def spanBuilder(operationName: String): SpanBuilder

Creates a new raw SpanBuilder instance using the provided operation name.

Creates a new raw SpanBuilder instance using the provided operation name.

Inherited from:
Tracing
def status(): Status

Returns an accessor to Kamon's current status. The current status information is split into four main sections:

Returns an accessor to Kamon's current status. The current status information is split into four main sections:

  • Settings: which include the Kamon version, environment and configuration being used.
  • Module Registry: Lists all modules that have been detected on the classpath and their current state.
  • Metric Registry: Lists all metrics currently registered in Kamon and all instruments belonging to them.
  • Instrumentation: Lists all instrumentation modules that have been detected and their current state.

All information exposed by the Status API represents an immutable snapshot of the state at the moment the status was requested.

Inherited from:
CurrentStatus
def stop(): Future[Unit]
Inherited from:
Init
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.

Inherited from:
ModuleManagement
def storeContext(context: Context): Scope

Stores the provided Context on Kamon's Context Storage and returns a Scope that removes that Context from the it upon closing. When a Scope is closed, it will always set the current Context to the Context that was available right before it was created.

Stores the provided Context on Kamon's Context Storage and returns a Scope that removes that Context from the it upon closing. When a Scope is closed, it will always set the current Context to the Context that was available right before it was created.

NOTE: The default implementation of Scope is not thread safe and, unless there is a good reason not to, users should always close scopes before leaving a thread, otherwise there is a risk of leaving "dirty" threads that could cause unexpected correlation between Contexts from different operations. It is strongly recommended to use any of the .storeContext(...) variants which ensure closing Scopes after finishing execution.

Inherited from:
ContextStorage
def timer(name: String, description: String, dynamicRange: DynamicRange): Timer

Creates or retrieves a Timer-backed metric with the provided unit and dynamic range

Creates or retrieves a Timer-backed metric with the provided unit and dynamic range

Inherited from:
MetricBuilding
def timer(name: String, dynamicRange: DynamicRange): Timer

Creates or retrieves a Timer-backed metric with the provided unit and dynamic range

Creates or retrieves a Timer-backed metric with the provided unit and dynamic range

Inherited from:
MetricBuilding
def timer(name: String, description: String): Timer

Creates or retrieves a Timer-backed metric

Creates or retrieves a Timer-backed metric

Inherited from:
MetricBuilding
def timer(name: String): Timer

Creates or retrieves a Timer-backed metric

Creates or retrieves a Timer-backed metric

Inherited from:
MetricBuilding
protected def tracer(): Tracer

The Tracer instance is only exposed to other Kamon components that need it like the Module Registry and Status

The Tracer instance is only exposed to other Kamon components that need it like the Module Registry and Status

Inherited from:
Tracing

Deprecated and Inherited methods

@deprecated("Use addReporter or addScheduledAction instead", since = "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]
Inherited from:
ModuleManagement
@deprecated("Use addReporter or addScheduledAction instead", since = "2.3.0")
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]
Inherited from:
ModuleManagement

Inherited fields

Inherited from:
Metrics
Inherited from:
ModuleManagement