在开发过程中,我使用弹性apm作为go应用程序,我通过终端导出env变量,它正在工作。但是现在我想部署这个应用程序,所以我需要从.env文件中读取变量
解释
我在我的应用程序中使用go.elastic.co/apm/module/apmhttp,当go.elastic.co/apm读取env变量时,它无法在我的应用程序文件中看到在我的.env中存在的ELASTIC_APM_SERVICE_NAME、ELASTIC_APM_SERVER_URL或ELASTIC_APM_SECRET_TOKEN。
发布于 2021-08-09 15:20:38
这就是我的问题的答案,我希望它能帮助你@洪博庙
// 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)))https://stackoverflow.com/questions/55688256
复制相似问题