You are browsing documentation for an older version. See the latest documentation here.

kong.tracing

Tracer module Application-level tracing for Kong.

span:finish(end_time_ns)

Ends a Span Set the end time and release the span, the span table MUST not being used after ended.

Parameters

  • end_time_ns (number|nil):

Usage

  1. span:finish()
  2. local time = ngx.now()
  3. span:finish(time * 100000000)

span:set_attribute(key, value)

Set an attribute to a Span

Parameters

  • key (string):
  • value (string|number|boolean):

Usage

  1. span:set_attribute("net.transport", "ip_tcp")
  2. span:set_attribute("net.peer.port", 443)
  3. span:set_attribute("exception.escaped", true)

span:add_event(name, attributes, time_ns)

Adds an event to a Span

Parameters

  • name (string): Event name
  • attributes (table|nil): Event attributes
  • time_ns (number|nil): Event timestamp

span:record_error(err)

Adds an error event to a Span

Parameters

  • err (string): error string

span:set_status(status)

Adds an error event to a Span Status codes:

  • 0 unset
  • 1 ok
  • 2 error

Parameters

  • status (number): status code

kong.tracing.active_span()

Get the active span Returns the root span by default

Phases

  • rewrite, access, header_filter, response, body_filter, log, admin_api

Returns

  • table: span

kong.tracing.set_active_span(span)

Set the active span

Phases

  • rewrite, access, header_filter, response, body_filter, log, admin_api

Parameters

  • span (table):

kong.tracing.start_span(name, options)

Create a new Span

Phases

  • rewrite, access, header_filter, response, body_filter, log, admin_api

Parameters

  • name (string): span name
  • options (table): TODO(mayo)

Returns

  • table: span

kong.tracing.process_span(processor)

Batch process spans Please note that socket is not available in the log phase, use ngx.timer.at instead

Phases

  • log

Parameters

  • processor (function): a function that accept a span as the parameter

kong.tracing:set_should_sample(should_sample)

Update the value of should_sample for all spans

Parameters

  • should_sample (bool): value for the sample parameter

kong.tracing:get_sampling_decision(parent_should_sample, sampling_rate)

Get the sampling decision result

Uses a parent-based sampler when the parent has sampled flag == false to inherit the non-recording decision from the parent span, or when trace_id is not available.

Else, apply the probability-based should_sample decision.

Parameters

  • parent_should_sample (bool): value of the parent span sampled flag extracted from the incoming tracing headers
  • sampling_rate (number): the sampling rate to apply for the probability sampler

Returns

  • bool: sampled value of sampled for this trace