Package

kamon

trace

Permalink

package trace

Visibility
  1. Public
  2. All

Type Members

  1. class AdaptiveSampler extends Sampler

    Permalink

    An adaptive sampler tries to balance a global throughput goal across all operations in the current application, making the best possible effort to provide sampled traces from all operations and to satisfy all configured rules.

    An adaptive sampler tries to balance a global throughput goal across all operations in the current application, making the best possible effort to provide sampled traces from all operations and to satisfy all configured rules.

    This sampler divides the task of balancing the load into two phases: rebalancing and adapting. Rebalancing happens every time a new operation is seen by the sampler and splits the overall throughput allocation across all operations seen so far, only taking the configured throughput goal and rules into account. Adapting happens every second and tries to adjust the sampling rate for each individual operation based on the historical behavior of the operation, the target throughput set during rebalance and take advantage of any "unused" throughput by distributing across more active operations.

  2. class ConstantSampler extends Sampler

    Permalink

    Sampler that always returns the same sampling decision.

  3. case class Identifier(string: String, bytes: Array[Byte]) extends Product with Serializable

    Permalink

    Encapsulates an identifier in its String and Byte representations.

    Encapsulates an identifier in its String and Byte representations. Since it is a very common practice to include Trace and (sometimes) Span identifiers on logs we make heavy use of the String representation since Identifiers are assigned even if the Trace is not sampled. The binary representation might be used by some reporters or when transferring the identifiers through binary transports.

    Users of this class must ensure that the String and Binary representations are equivalent. Most likely you will never want to create an instance by yourself but rather use one of the existent providers (or your own) to create instances.

  4. class RandomSampler extends Sampler

    Permalink

    Sampler that uses a random number generator and a probability threshold to decide whether to trace a request or not.

  5. trait Sampler extends AnyRef

    Permalink

    A sampler takes the decision of whether to collect and report Spans for a particular trace.

    A sampler takes the decision of whether to collect and report Spans for a particular trace. Samplers are used only when starting a new Trace.

  6. sealed abstract class Span extends Operation

    Permalink

    A Span encapsulates information about an operation performed by the application and its relationship to other operations.

    A Span encapsulates information about an operation performed by the application and its relationship to other operations. At the most basic level, all Spans have an operation name and they are bound to the time taken by the application to perform that operation, meaning that they have start and end time time stamps.

    Spans connect to each other creating a hierarchical structure of operations, where an operation can have several child operations but only one parent operation. Furthermore, all related Spans share the same Trace information.

    Spans can be enriched with two types of information: tags and marks. Tags are key/value pairs that give additional information about the operation; for example, a Span that represents an HTTP request could have tags that indicate the full request URL, the response status code and the size of the payload, information that might come handy when analyzing and troubleshooting issues using the trace data. Marks represent events related to the operation and they are bound to a specific instant in time; for example, a mark could be used to indicate the instant when a connection was established, when the SSL handshake finished and when the payload was transferred for a single HTTP request operation.

    Optionally, Spans can generate metrics about the processing time of the operations they represent. By default, all Spans will generate metrics unless they are explicitly disabled. Since metrics are very susceptible to high cardinality tags, the Spans handle two different sets of tags: the Span tags that can have any sort of information (like URLs, user ids and so on) and the metric tags which should only include information with low cardinality (like HTTP status codes or operation names).

    Once a Span is finished it will be flushed to the Span reporters and, if metrics stayed enabled, the processing time of the Span will be recorded on the "span.processing-time" metric with all provided metric tags in addition to the operationName and error tags which are always added.

  7. trait SpanBuilder extends Operation

    Permalink

    Gathers information about an operation before it can be turned into a Span.

    Gathers information about an operation before it can be turned into a Span. The Span creation is handled in two steps (creating a builder and then creating a Span from it) because there are certain bits of information that can only be influenced or changed at the early life of a Span, like the parent Span or the Trace information but once the SpanBuilder is turned into a Span they cannot be modified anymore.

    Implementations are not expected to be thread safe.

  8. trait Trace extends AnyRef

    Permalink

    Holds information shared across all Spans from the same Trace.

    Holds information shared across all Spans from the same Trace. It might seem like too little information but all in all, a trace is just a bunch of Spans that share the same trace identifier ;).

  9. class Tracer extends AnyRef

    Permalink

    A Tracer assists on the creation of Spans and temporarily holds finished Spans until they are flushed to the available reporters.

Value Members

  1. object AdaptiveSampler

    Permalink
  2. object ConstantSampler

    Permalink
  3. object Hooks

    Permalink

    Built-in hooks that can be configured on the "kamon.tracer.hooks" setting.

  4. object Identifier extends Serializable

    Permalink
  5. object RandomSampler

    Permalink
  6. object Sampler

    Permalink
  7. object Span

    Permalink
  8. object SpanPropagation

    Permalink

    Propagation mechanisms for Kamon's Span data to and from HTTP and Binary mediums.

  9. object Trace

    Permalink
  10. object Tracer

    Permalink

Ungrouped