从 env 文件 golang 中读取 apm env 变量
read apm env variable from env file golang
我正在为我的 go 应用程序使用弹性 apm
开发我通过终端导出环境变量并且它正在工作。
但现在我想部署应用程序,所以我需要从 .env 文件中读取变量
说明
我在我的应用程序中使用 go.elastic.co/apm/module/apmhttp
当 go.elastic.co/apm
读取环境变量时,
它看不到 ELASTIC_APM_SERVICE_NAME
、ELASTIC_APM_SERVER_URL
或 ELASTIC_APM_SECRET_TOKEN
存在于我的应用程序文件中的 .env 中。
这就是我的问题的答案希望对你有帮助@HongboMiao
// close default Tracer
apm.DefaultTracer.Close()
tracer, err := apm.NewTracer(os.Getenv("ELASTIC_APM_SERVICE_NAME"), os.Getenv("VERSION"))
if err != nil {
// handle err
}
transport, err := transport.NewHTTPTransport()
if err != nil {
// handle err
}
transport.SetSecretToken(os.Getenv("ELASTIC_APM_SECRET_TOKEN"))
u, err := url.Parse(os.Getenv("ELASTIC_APM_SERVER_URL"))
if err != nil {
// handle err
}
transport.SetServerURL(u)
tracer.Transport = transport
// this step will be difference depend on your webserver package
r.Use(apmchi.Middleware(apmchi.WithTracer(tracer)))
我正在为我的 go 应用程序使用弹性 apm 开发我通过终端导出环境变量并且它正在工作。 但现在我想部署应用程序,所以我需要从 .env 文件中读取变量
说明
我在我的应用程序中使用 go.elastic.co/apm/module/apmhttp
当 go.elastic.co/apm
读取环境变量时,
它看不到 ELASTIC_APM_SERVICE_NAME
、ELASTIC_APM_SERVER_URL
或 ELASTIC_APM_SECRET_TOKEN
存在于我的应用程序文件中的 .env 中。
这就是我的问题的答案希望对你有帮助@HongboMiao
// close default Tracer
apm.DefaultTracer.Close()
tracer, err := apm.NewTracer(os.Getenv("ELASTIC_APM_SERVICE_NAME"), os.Getenv("VERSION"))
if err != nil {
// handle err
}
transport, err := transport.NewHTTPTransport()
if err != nil {
// handle err
}
transport.SetSecretToken(os.Getenv("ELASTIC_APM_SECRET_TOKEN"))
u, err := url.Parse(os.Getenv("ELASTIC_APM_SERVER_URL"))
if err != nil {
// handle err
}
transport.SetServerURL(u)
tracer.Transport = transport
// this step will be difference depend on your webserver package
r.Use(apmchi.Middleware(apmchi.WithTracer(tracer)))