golazy.dev golazy.dev / lazytelemetry Index | Files | Directories

package lazytelemetry

import "golazy.dev/lazytelemetry"

Package lazytelemetry configures GoLazy telemetry hooks.

Functions

func Logger

Logger returns the slog logger attached to ctx.

func Logger(ctx context.Context) *slog.Logger

func NewLogger

NewLogger builds a default telemetry logger from config.

func NewLogger(config Config, out io.Writer) *slog.Logger

func RequestID

RequestID returns the request id attached to ctx.

func RequestID(ctx context.Context) string

func SpanID

SpanID returns the span id attached to ctx.

func SpanID(ctx context.Context) string

func StartSpan

StartSpan starts a span and attaches it to the returned context.

func StartSpan(ctx context.Context, name string, attrs ...slog.Attr) (context.Context, *lazytracing.Span)

func TraceID

TraceID returns the trace id attached to ctx.

func TraceID(ctx context.Context) string

func WithLogAttrs

WithLogAttrs returns a context whose logger includes attrs.

func WithLogAttrs(ctx context.Context, attrs ...slog.Attr) context.Context

func WithLogGroup

WithLogGroup returns a context whose logger writes subsequent attrs in group.

func WithLogGroup(ctx context.Context, group string) context.Context

func WithLogTags

WithLogTags returns a context whose logger includes tags.

func WithLogTags(ctx context.Context, tags ...string) context.Context

func WithLogger

WithLogger attaches logger to ctx.

func WithLogger(ctx context.Context, logger *slog.Logger) context.Context

func WithRequestID

WithRequestID attaches requestID to ctx.

func WithRequestID(ctx context.Context, requestID string) context.Context

Types

type Config

Config contains OpenTelemetry-compatible environment configuration for GoLazy telemetry.

type Config struct {
	SDKDisabled		bool
	Entities		string
	ResourceAttributes	string
	ServiceName		string
	LogLevel		string
	Propagators		[]string	`var:"PROPAGATORS"`
	TracesSampler		string
	TracesSamplerArg	string

	BSP	BatchSpanProcessorConfig
	BLRP	BatchLogRecordProcessorConfig

	AttributeValueLengthLimit	int
	AttributeCountLimit		int

	SpanAttributeValueLengthLimit	int
	SpanAttributeCountLimit		int
	SpanEventCountLimit		int
	SpanLinkCountLimit		int
	EventAttributeCountLimit	int
	LinkAttributeCountLimit		int

	LogrecordAttributeValueLengthLimit	int	`var:"LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT"`
	LogrecordAttributeCountLimit		int	`var:"LOGRECORD_ATTRIBUTE_COUNT_LIMIT"`

	TracesExporter	[]string
	MetricsExporter	[]string
	LogsExporter	[]string

	Exporter	ExporterConfig

	MetricsExemplarFilter	string
	MetricExportInterval	Duration
	MetricExportTimeout	Duration

	ConfigFile		string
	ExperimentalConfigFile	string
}
func LoadConfig

LoadConfig reads Config from the process environment.

func LoadConfig() (Config, error)
func MustLoadConfig

MustLoadConfig reads Config and panics when the environment is invalid.

func MustLoadConfig() Config
func (config Config) Enabled

Enabled reports whether telemetry should be installed.

func (config Config) Enabled() bool
func (config Config) JSONLogs

JSONLogs reports whether config asks for structured log output.

func (config Config) JSONLogs() bool

type Duration

Duration stores an OTEL duration value.

OTEL SDK values are commonly represented as milliseconds, while OTLP exporter timeout values are often written as Go-style durations such as "10s". Duration accepts both forms.

type Duration time.Duration
func (d Duration) Duration

Duration returns d as a time.Duration.

func (d Duration) Duration() time.Duration
func (d *Duration) UnmarshalText

UnmarshalText implements encoding.TextUnmarshaler.

func (d *Duration) UnmarshalText(data []byte) error

type OTLPExporterConfig

OTLPExporterConfig contains OTEL_EXPORTER_OTLP_* values.

type OTLPExporterConfig struct {
	Endpoint	string
	TracesEndpoint	string
	MetricsEndpoint	string
	LogsEndpoint	string

	Insecure	bool
	TracesInsecure	bool
	MetricsInsecure	bool
	LogsInsecure	bool

	Certificate		string
	TracesCertificate	string
	MetricsCertificate	string
	LogsCertificate		string

	ClientKey		string
	TracesClientKey		string
	MetricsClientKey	string
	LogsClientKey		string

	ClientCertificate		string
	TracesClientCertificate		string
	MetricsClientCertificate	string
	LogsClientCertificate		string

	Headers		string
	TracesHeaders	string
	MetricsHeaders	string
	LogsHeaders	string

	Compression		string
	TracesCompression	string
	MetricsCompression	string
	LogsCompression		string

	Timeout		Duration
	TracesTimeout	Duration
	MetricsTimeout	Duration
	LogsTimeout	Duration

	Protocol	string
	TracesProtocol	string
	MetricsProtocol	string
	LogsProtocol	string

	SpanInsecure	bool
	MetricInsecure	bool
}

Directories

Path Synopsis
lazytelemetry/lazylogs Package lazylogs provides slog-compatible context logging helpers.
lazytelemetry/lazymetrics Package lazymetrics provides lightweight metric helpers for GoLazy telemetry.
lazytelemetry/lazytracing Package lazytracing provides lightweight span helpers for GoLazy telemetry.