Loading documentation...
Loading documentation...
Loading documentation...
Complete API documentation for the observe package.
Import Path: github.com/kolosys/ion/observe
Package observe provides observability interfaces and implementations for logging, metrics, and tracing across all Ion components.
Logger provides a simple logging interface that components can use without depending on specific logging libraries.
// Example implementation of Logger
type MyLogger struct {
// Add your fields here
}
func (m MyLogger) Debug(param1 string, param2 ...any) {
// Implement your logic here
return
}
func (m MyLogger) Info(param1 string, param2 ...any) {
// Implement your logic here
return
}
func (m MyLogger) Warn(param1 string, param2 ...any) {
// Implement your logic here
return
}
func (m MyLogger) Error(param1 string, param2 error, param3 ...any) {
// Implement your logic here
return
}
type Logger interface {
Debug(msg string, kv ...any)
Info(msg string, kv ...any)
Warn(msg string, kv ...any)
Error(msg string, err error, kv ...any)
}| Method | Description |
|---|
Metrics provides a simple metrics interface for recording component behavior without depending on specific metrics libraries.
// Example implementation of Metrics
type MyMetrics struct {
// Add your fields here
}
func (m MyMetrics) Inc(param1 string, param2 ...any) {
// Implement your logic here
return
}
func (m MyMetrics) Add(param1 string, param2 float64, param3 ...any) {
// Implement your logic here
return
}
func (m MyMetrics) Gauge(param1 string, param2 float64, param3 ...any) {
// Implement your logic here
return
}
func (m MyMetrics) Histogram(param1 string, param2 float64, param3 ...any) {
// Implement your logic here
return
}
type Metrics interface {
Inc(name string, kv ...any)
Add(name string, v float64, kv ...any)
Gauge(name string, v float64, kv ...any)
Histogram(name string, v float64, kv ...any)
}| Method | Description |
|---|
NopLogger is a no-operation logger that discards all log messages
// Create a new NopLogger
noplogger := NopLogger{
}type NopLogger struct {
}func (NopLogger) Debug(msg string, kv ...any)Parameters:
msg (string)kv (...any)Returns: None
func (NopLogger) Error(msg string, err error, kv ...any)Parameters:
msg (string)err (error)kv (...any)Returns: None
func (NopLogger) Info(msg string, kv ...any)Parameters:
msg (string)kv (...any)Returns: None
func (NopLogger) Warn(msg string, kv ...any)Parameters:
msg (string)kv (...any)Returns: None
NopMetrics is a no-operation metrics recorder that discards all metrics
// Create a new NopMetrics
nopmetrics := NopMetrics{
}type NopMetrics struct {
}func (NopMetrics) Add(name string, v float64, kv ...any)Parameters:
name (string)v (float64)kv (...any)Returns: None
func (NopMetrics) Gauge(name string, v float64, kv ...any)Parameters:
name (string)v (float64)kv (...any)Returns: None
func (NopMetrics) Histogram(name string, v float64, kv ...any)Parameters:
name (string)v (float64)kv (...any)Returns: None
func (NopMetrics) Inc(name string, kv ...any)Parameters:
name (string)kv (...any)Returns: None
NopTracer is a no-operation tracer that creates no spans
// Create a new NopTracer
noptracer := NopTracer{
}type NopTracer struct {
}func (NopTracer) Start(ctx context.Context, name string, kv ...any) (context.Context, func(err error))Parameters:
ctx (context.Context)name (string)kv (...any)Returns:
Observability holds observability hooks for a component
// Create a new Observability
observability := Observability{
Logger: Logger{},
Metrics: Metrics{},
Tracer: Tracer{},
}type Observability struct {
Logger Logger
Metrics Metrics
Tracer Tracer
}| Field | Type | Description |
|---|---|---|
| Logger | Logger | |
| Metrics | Metrics | |
| Tracer | Tracer |
New creates observability hooks with no-op defaults
func New() *ObservabilityParameters: None
Returns:
WithLogger sets the logger, returning a new Observability instance
func (*Observability) WithLogger(logger Logger) *ObservabilityParameters:
logger (Logger)Returns:
WithMetrics sets the metrics recorder, returning a new Observability instance
func (*Observability) WithMetrics(metrics Metrics) *ObservabilityParameters:
metrics (Metrics)Returns:
WithTracer sets the tracer, returning a new Observability instance
func (*Observability) WithTracer(tracer Tracer) *ObservabilityParameters:
tracer (Tracer)Returns:
Tracer provides a simple tracing interface for observing component operations without depending on specific tracing libraries.
// Example implementation of Tracer
type MyTracer struct {
// Add your fields here
}
func (m MyTracer) Start(param1 context.Context, param2 string, param3 ...any) context.Context {
// Implement your logic here
return
}
type Tracer interface {
Start(ctx context.Context, name string, kv ...any) (context.Context, func(err error))
}| Method | Description |
|---|
Complete API documentation for the observe package.
Import Path: github.com/kolosys/ion/observe
Package observe provides observability interfaces and implementations for logging, metrics, and tracing across all Ion components.
Logger provides a simple logging interface that components can use without depending on specific logging libraries.
// Example implementation of Logger
type MyLogger struct {
// Add your fields here
}
func (m MyLogger) Debug(param1 string, param2 ...any) {
// Implement your logic here
return
}
func (m MyLogger) Info(param1 string, param2 ...any) {
// Implement your logic here
return
}
func (m MyLogger) Warn(param1 string, param2 ...any) {
// Implement your logic here
return
}
func (m MyLogger) Error(param1 string, param2 error, param3 ...any) {
// Implement your logic here
return
}
type Logger interface {
Debug(msg string, kv ...any)
Info(msg string, kv ...any)
Warn(msg string, kv ...any)
Error(msg string, err error, kv ...any)
}| Method | Description |
|---|
Metrics provides a simple metrics interface for recording component behavior without depending on specific metrics libraries.
// Example implementation of Metrics
type MyMetrics struct {
// Add your fields here
}
func (m MyMetrics) Inc(param1 string, param2 ...any) {
// Implement your logic here
return
}
func (m MyMetrics) Add(param1 string, param2 float64, param3 ...any) {
// Implement your logic here
return
}
func (m MyMetrics) Gauge(param1 string, param2 float64, param3 ...any) {
// Implement your logic here
return
}
func (m MyMetrics) Histogram(param1 string, param2 float64, param3 ...any) {
// Implement your logic here
return
}
type Metrics interface {
Inc(name string, kv ...any)
Add(name string, v float64, kv ...any)
Gauge(name string, v float64, kv ...any)
Histogram(name string, v float64, kv ...any)
}| Method | Description |
|---|
NopLogger is a no-operation logger that discards all log messages
// Create a new NopLogger
noplogger := NopLogger{
}type NopLogger struct {
}func (NopLogger) Debug(msg string, kv ...any)Parameters:
msg (string)kv (...any)Returns: None
func (NopLogger) Error(msg string, err error, kv ...any)Parameters:
msg (string)err (error)kv (...any)Returns: None
func (NopLogger) Info(msg string, kv ...any)Parameters:
msg (string)kv (...any)Returns: None
func (NopLogger) Warn(msg string, kv ...any)Parameters:
msg (string)kv (...any)Returns: None
NopMetrics is a no-operation metrics recorder that discards all metrics
// Create a new NopMetrics
nopmetrics := NopMetrics{
}type NopMetrics struct {
}func (NopMetrics) Add(name string, v float64, kv ...any)Parameters:
name (string)v (float64)kv (...any)Returns: None
func (NopMetrics) Gauge(name string, v float64, kv ...any)Parameters:
name (string)v (float64)kv (...any)Returns: None
func (NopMetrics) Histogram(name string, v float64, kv ...any)Parameters:
name (string)v (float64)kv (...any)Returns: None
func (NopMetrics) Inc(name string, kv ...any)Parameters:
name (string)kv (...any)Returns: None
NopTracer is a no-operation tracer that creates no spans
// Create a new NopTracer
noptracer := NopTracer{
}type NopTracer struct {
}func (NopTracer) Start(ctx context.Context, name string, kv ...any) (context.Context, func(err error))Parameters:
ctx (context.Context)name (string)kv (...any)Returns:
Observability holds observability hooks for a component
// Create a new Observability
observability := Observability{
Logger: Logger{},
Metrics: Metrics{},
Tracer: Tracer{},
}type Observability struct {
Logger Logger
Metrics Metrics
Tracer Tracer
}| Field | Type | Description |
|---|---|---|
| Logger | Logger | |
| Metrics | Metrics | |
| Tracer | Tracer |
New creates observability hooks with no-op defaults
func New() *ObservabilityParameters: None
Returns:
WithLogger sets the logger, returning a new Observability instance
func (*Observability) WithLogger(logger Logger) *ObservabilityParameters:
logger (Logger)Returns:
WithMetrics sets the metrics recorder, returning a new Observability instance
func (*Observability) WithMetrics(metrics Metrics) *ObservabilityParameters:
metrics (Metrics)Returns:
WithTracer sets the tracer, returning a new Observability instance
func (*Observability) WithTracer(tracer Tracer) *ObservabilityParameters:
tracer (Tracer)Returns:
Tracer provides a simple tracing interface for observing component operations without depending on specific tracing libraries.
// Example implementation of Tracer
type MyTracer struct {
// Add your fields here
}
func (m MyTracer) Start(param1 context.Context, param2 string, param3 ...any) context.Context {
// Implement your logic here
return
}
type Tracer interface {
Start(ctx context.Context, name string, kv ...any) (context.Context, func(err error))
}| Method | Description |
|---|
// Example implementation of Logger
type MyLogger struct {
// Add your fields here
}
func (m MyLogger) Debug(param1 string, param2 ...any) {
// Implement your logic here
return
}
func (m MyLogger) Info(param1 string, param2 ...any) {
// Implement your logic here
return
}
func (m MyLogger) Warn(param1 string, param2 ...any) {
// Implement your logic here
return
}
func (m MyLogger) Error(param1 string, param2 error, param3 ...any) {
// Implement your logic here
return
}
type Logger interface {
Debug(msg string, kv ...any)
Info(msg string, kv ...any)
Warn(msg string, kv ...any)
Error(msg string, err error, kv ...any)
}// Example implementation of Metrics
type MyMetrics struct {
// Add your fields here
}
func (m MyMetrics) Inc(param1 string, param2 ...any) {
// Implement your logic here
return
}
func (m MyMetrics) Add(param1 string, param2 float64, param3 ...any) {
// Implement your logic here
return
}
func (m MyMetrics) Gauge(param1 string, param2 float64, param3 ...any) {
// Implement your logic here
return
}
func (m MyMetrics) Histogram(param1 string, param2 float64, param3 ...any) {
// Implement your logic here
return
}
type Metrics interface {
Inc(name string, kv ...any)
Add(name string, v float64, kv ...any)
Gauge(name string, v float64, kv ...any)
Histogram(name string, v float64, kv ...any)
}// Create a new NopLogger
noplogger := NopLogger{
}type NopLogger struct {
}func (NopLogger) Debug(msg string, kv ...any)func (NopLogger) Error(msg string, err error, kv ...any)func (NopLogger) Info(msg string, kv ...any)func (NopLogger) Warn(msg string, kv ...any)// Create a new NopMetrics
nopmetrics := NopMetrics{
}type NopMetrics struct {
}func (NopMetrics) Add(name string, v float64, kv ...any)func (NopMetrics) Gauge(name string, v float64, kv ...any)func (NopMetrics) Histogram(name string, v float64, kv ...any)func (NopMetrics) Inc(name string, kv ...any)// Create a new NopTracer
noptracer := NopTracer{
}type NopTracer struct {
}func (NopTracer) Start(ctx context.Context, name string, kv ...any) (context.Context, func(err error))// Create a new Observability
observability := Observability{
Logger: Logger{},
Metrics: Metrics{},
Tracer: Tracer{},
}type Observability struct {
Logger Logger
Metrics Metrics
Tracer Tracer
}func New() *Observabilityfunc (*Observability) WithLogger(logger Logger) *Observabilityfunc (*Observability) WithMetrics(metrics Metrics) *Observabilityfunc (*Observability) WithTracer(tracer Tracer) *Observability// Example implementation of Tracer
type MyTracer struct {
// Add your fields here
}
func (m MyTracer) Start(param1 context.Context, param2 string, param3 ...any) context.Context {
// Implement your logic here
return
}
type Tracer interface {
Start(ctx context.Context, name string, kv ...any) (context.Context, func(err error))
}// Example implementation of Logger
type MyLogger struct {
// Add your fields here
}
func (m MyLogger) Debug(param1 string, param2 ...any) {
// Implement your logic here
return
}
func (m MyLogger) Info(param1 string, param2 ...any) {
// Implement your logic here
return
}
func (m MyLogger) Warn(param1 string, param2 ...any) {
// Implement your logic here
return
}
func (m MyLogger) Error(param1 string, param2 error, param3 ...any) {
// Implement your logic here
return
}
type Logger interface {
Debug(msg string, kv ...any)
Info(msg string, kv ...any)
Warn(msg string, kv ...any)
Error(msg string, err error, kv ...any)
}// Example implementation of Metrics
type MyMetrics struct {
// Add your fields here
}
func (m MyMetrics) Inc(param1 string, param2 ...any) {
// Implement your logic here
return
}
func (m MyMetrics) Add(param1 string, param2 float64, param3 ...any) {
// Implement your logic here
return
}
func (m MyMetrics) Gauge(param1 string, param2 float64, param3 ...any) {
// Implement your logic here
return
}
func (m MyMetrics) Histogram(param1 string, param2 float64, param3 ...any) {
// Implement your logic here
return
}
type Metrics interface {
Inc(name string, kv ...any)
Add(name string, v float64, kv ...any)
Gauge(name string, v float64, kv ...any)
Histogram(name string, v float64, kv ...any)
}// Create a new NopLogger
noplogger := NopLogger{
}type NopLogger struct {
}func (NopLogger) Debug(msg string, kv ...any)func (NopLogger) Error(msg string, err error, kv ...any)func (NopLogger) Info(msg string, kv ...any)func (NopLogger) Warn(msg string, kv ...any)// Create a new NopMetrics
nopmetrics := NopMetrics{
}type NopMetrics struct {
}func (NopMetrics) Add(name string, v float64, kv ...any)func (NopMetrics) Gauge(name string, v float64, kv ...any)func (NopMetrics) Histogram(name string, v float64, kv ...any)func (NopMetrics) Inc(name string, kv ...any)// Create a new NopTracer
noptracer := NopTracer{
}type NopTracer struct {
}func (NopTracer) Start(ctx context.Context, name string, kv ...any) (context.Context, func(err error))// Create a new Observability
observability := Observability{
Logger: Logger{},
Metrics: Metrics{},
Tracer: Tracer{},
}type Observability struct {
Logger Logger
Metrics Metrics
Tracer Tracer
}func New() *Observabilityfunc (*Observability) WithLogger(logger Logger) *Observabilityfunc (*Observability) WithMetrics(metrics Metrics) *Observabilityfunc (*Observability) WithTracer(tracer Tracer) *Observability// Example implementation of Tracer
type MyTracer struct {
// Add your fields here
}
func (m MyTracer) Start(param1 context.Context, param2 string, param3 ...any) context.Context {
// Implement your logic here
return
}
type Tracer interface {
Start(ctx context.Context, name string, kv ...any) (context.Context, func(err error))
}