0

我正在尝试使用 uber zap 日志库将日志发送到 APM 服务器。

我已经尝试过他们的仪表模块(https://www.elastic.co/guide/en/apm/agent/go/1.x/builtin-modules.html#builtin-modules-apmzap),但事实并非如此为我工作:

事务未发送到 APM 服务器。

环境:

ELASTIC_APM_LOG_FILE=stderr=stderr
ELASTIC_APM_LOG_LEVEL=debug
ELASTIC_APM_SERVICE_NAME=service-name
ELASTIC_APM_SERVER_URL=http://localhost:8200
import (
    "go.uber.org/zap"

    "go.elastic.co/apm/module/apmzap"
)

// apmzap.Core.WrapCore will wrap the core created by zap.NewExample
// such that logs are also sent to the apmzap.Core.
//
// apmzap.Core will send "error", "panic", and "fatal" level log
// messages to Elastic APM.
var logger = zap.NewExample(zap.WrapCore((&apmzap.Core{}).WrapCore))

func handleRequest(w http.ResponseWriter, req *http.Request) {
    // apmzap.TraceContext extracts the transaction and span (if any)
    // from the given context, and returns zap.Fields containing the
    // trace, transaction, and span IDs.
    traceContextFields := apmzap.TraceContext(req.Context())
    logger.With(traceContextFields...).Debug("handling request")
    logger.With(traceContextFields...).Error("handling error")
}
4

1 回答 1

0

将 APM 堆栈更新到 7.15。工作完美。

于 2022-02-03T14:07:36.483 回答