package telemetry

Import Path
	/pkg/telemetry (on go.dev)

Dependency Relation
	imports 25 packages, and imported by 5 packages

Involved Source Files Package telemetry provides telemetry exporters: am-dbg, Prometheus, OpenTelemetry. Package telemetry provides telemetry exporters: am-dbg, Prometheus, OpenTelemetry. telemetry.go
Package-Level Type Names (total 4)
/* sort by: | */
Ended bool ID string Index is a unique number for this machine withing the Otel tracer.
OtelMachTracer implements machine.Tracer for OpenTelemetry. Supports tracing of multiple state machines, resulting in a single trace. This tracer is automatically bound to new sub-machines. TODO bind to env var Machines map[string]*OtelMachineData MachinesMx sync.Mutex MachinesOrder []string NextIndex int RootSpan trace.Span Tracer trace.Tracer TracerNoOp *am.TracerNoOp (*OtelMachTracer) HandlerEnd(tx *am.Transition, emitter string, handler string) ( OtelMachTracer) HandlerStart(transition *machine.Transition, emitter string, handler string) ( OtelMachTracer) Inheritable() bool (*OtelMachTracer) MachineDispose(id string) (*OtelMachTracer) MachineInit(mach am.Api) context.Context ( OtelMachTracer) MutationQueued(machine machine.Api, mutation *machine.Mutation) NewSubmachine links 2 machines with a parent-child relationship. (*OtelMachTracer) QueueEnd(mach am.Api) ( OtelMachTracer) SchemaChange(machine machine.Api, old machine.Schema) (*OtelMachTracer) TransitionEnd(tx *am.Transition) (*OtelMachTracer) TransitionFinals(tx *am.Transition) (*OtelMachTracer) TransitionInit(tx *am.Transition) ( OtelMachTracer) TransitionStart(transition *machine.Transition) ( OtelMachTracer) VerifyStates(machine machine.Api) *OtelMachTracer : github.com/pancsta/asyncmachine-go/pkg/machine.Tracer func NewOtelMachTracer(rootMach am.Api, rootSpan trace.Span, otelTracer trace.Tracer, opts *OtelMachTracerOpts) *OtelMachTracer
eg []string{"machId:StateName", "StateName2"} against "machId:StateName" if true, only Healthcheck and Heartbeat will be skipped Logf func(format string, args ...any) if true, auto transitions won't be traced if true, transition traces won't include [am.Machine.GetLogArgs] SkipStates take preceding before [AllowStates] eg []string{"machId:StateName", "StateName2"} against "machId:StateName" if true, only state changes will be traced func NewOtelMachTracer(rootMach am.Api, rootSpan trace.Span, otelTracer trace.Tracer, opts *OtelMachTracerOpts) *OtelMachTracer
Ctx context.Context Id string
Package-Level Functions (total 9)
BindLokiEnv bind Loki logger to [mach], based on environment vars: - AM_SERVICE (required) - AM_LOKI_ADDR (required) This tracer is NOT inherited by submachines.
func BindLokiLogger(mach am.Api, client promtail.Client)
BindOtelLogger binds an OpenTelemetry logger to a machine.
MachBindOtelEnv bind an OpenTelemetry tracer to [mach], based on environment variables: - AM_SERVICE (required) - AM_OTEL_TRACE (required) - AM_OTEL_TRACE_TXS - OTEL_EXPORTER_OTLP_ENDPOINT - OTEL_EXPORTER_OTLP_TRACES_ENDPOINT This tracer is inherited by submachines, and this function applies only to top-level machines.
NewOtelLoggerProvider creates a new OpenTelemetry logger provider bound to the given exporter.
NewOtelMachTracer creates a new machine tracer from an OpenTelemetry tracer. Requires OtelMachTracer.Dispose to be called at the end.
Package-Level Constants (total 13)
const EnvLokiAddr = "AM_LOKI_ADDR"
const EnvOtelExporterOtlpTracesEndpoint = "OTEL_EXPORTER_OTLP_TRACES_ENDPOINT"
const EnvOtelSpanId = "AM_OTEL_SPAN_ID"
export Otel traces for states and submachines, requires AM_SERVICE
const EnvOtelTraceAllowStates = "AM_OTEL_TRACE_ALLOW_STATES"
const EnvOtelTraceAllowStatesRe = "AM_OTEL_TRACE_ALLOW_STATES_RE"
include logged arguments as traces tags
const EnvOtelTraceId = "AM_OTEL_TRACE_ID"
skip traces for auto transitions
const EnvOtelTraceSkipStates = "AM_OTEL_TRACE_SKIP_STATES"
const EnvOtelTraceSkipStatesRe = "AM_OTEL_TRACE_SKIP_STATES_RE"
create additional Otel traces for transitions
const EnvService = "AM_SERVICE"