OpenTelemetry API v0.4.0 API Reference

Modules

An OpenTelemetry Trace consists of 1 or more Spans that either have a parent/child relationship or are linked together through a Link. Each Span has a TraceId (trace_id/0), SpanId (span_id/0), and a start and end time in nanoseconds.

require OpenTelemetry.Counter

OpenTelemetry.Counter.new("some.counter")

OpenTelemetry.Counter.add("some.counter", 3)
require OpenTelemetry.ValueRecorder
require OpenTelemetry.Counter
require OpenTelemetry.Meter

OpenTelemetry.register_application_meter(Your.Application)

OpenTelemetry.Meter.new_instruments([OpenTelemetry.ValueRecorder.instrument("some.latency"),
                                     OpenTelemetry.Counter.instrument("some.counter")])

# use the new instrument by name
OpenTelemetry.Counter.add("some.counter", 1)

# or use a bound instrument
bound = OpenTelemetry.Meter.bind("some.latency", [])
# measure time spent on some function and then record it
OpenTelemetry.ValueRecorder.record(bound, time)

This module contains macros for Span operations that update the active current Span in the current process. An example of creating an Event and adding it to the current Span

require OpenTelemetry.SumObserver

OpenTelemetry.SumObserver.set_callback("some.counter", &OpenTelemetry.SumObserver.observe(&1, 33, []))

This module contains macros for Tracer operations around the lifecycle of the Spans within a Trace.

require OpenTelemetry.UpdownCounter

OpenTelemetry.UpdownCounter.new("some.counter")

OpenTelemetry.UpdownCounter.add("some.counter", -3)
require OpenTelemetry.UpdownSumObserver

OpenTelemetry.UpdownSumObserver.set_callback("some.counter", OpenTelemetry.UpdownSumObserver.observe(&1, -33, []))
require OpenTelemetry.ValueObserver

OpenTelemetry.ValueObserver.set_callback("some.counter", fn o -> OpenTelemetry.ValueObserver.observe(o, 33, []))
require OpenTelemetry.ValueRecorder

OpenTelemetry.ValueRecorder.record("some.recorder", 3)