go get github.com/middleware-labs/golang-apm@latest
Add this import statement in your project.
import (
track "github.com/middleware-labs/golang-apm/tracker"
)
Add this snippet in your main function
go track.Track(
track.WithConfigTag(track.Service, "your-service-name"),
track.WithConfigTag(track.Token, "your API token"),
)
Logger | Version | Minimal go version |
---|---|---|
mwotelslog | v0.2.0 | 1.21 |
mwotelzap | v0.0.1 | 1.20 |
mwotelzerolog | v0.0.1 | 1.20 |
mwotellogrus | v0.2.0 | 1.21 |
config, _ := track.Track(
track.WithConfigTag(track.Service, "your service name"),
track.WithConfigTag(track.Token, "your API token"),
)
logger := mwotelslog.NewMWOTelLogger(
config,
mwotelslog.WithDefaultConsoleLog(), // to enable console log
mwotelslog.WithName("otelslog"),
)
//configure default logger
slog.SetDefault(logger)
Add NewMWOtelHandler with config from tracker config.
This will start collecting the application log from slog and standard library logs.
See mwotelslog features sample for more details.
config, _ := track.Track(
track.WithConfigTag(track.Service, "your service name"),
track.WithConfigTag(track.Token, "your token"),
)
logger := zap.New(zapcore.NewTee(consoleCore, fileCore, mwotelzap.NewMWOTelCore(config, mwotelzap.WithName("otelzaplog"))))
zap.ReplaceGlobals(logger)
Add NewMWOTelCore with config from tracker config.
This will start collecting the application log from zap.
See mwotelzap features sample for more details.
config, _ := track.Track(
track.WithConfigTag(track.Service, "your service name"),
track.WithConfigTag(track.Token, "your API token"),
= )
hook := mwotelzerolog.NewMWOTelHook(config)
logger := log.Hook(hook)
Add NewMWOTelHook with config from tracker config.
This will start collecting the application log from zerolog.
See mwotelzerolog features sample for more details.
config, _ := track.Track(
track.WithConfigTag(track.Service, "your service name"),
track.WithConfigTag(track.Token, "your API token"),
)
logHook := otellog.NewMWOTelHook(config, otellog.WithLevels(log.AllLevels), otellog.WithName("otellogrus"))
// add hook in logrus
log.AddHook(logHook)
// set formatter if required
log.SetFormatter(&log.JSONFormatter{})
Add NewMWOTelHook with config from tracker config.
This will start collecting the application log from logrus.
See mwotellogrus features sample for more details.
If you also want to collect profiling data for your application, simply add this one config to your track.Track() call
track.WithConfigTag(track.Token, "{ACCOUNT_KEY}"),
If you want to record exception in traces then you can use track.ErrorRecording(ctx,error) method.
err := errors.New("something went wrong")
track.ErrorRecording(ctx, err)
go track.Track(
track.WithConfigTag(track.PauseDefaultMetrics,true),
)
go track.Track(
track.WithConfigTag(track.Debug, true),
)
go track.Track(
track.WithConfigTag(track.Debug, true),
track.WithConfigTag(track.DebugLogFile, true),
)