从环境文件golang中读取apm环境变量

时间:2019-04-15 11:30:49

标签: go environment-variables apm

我在go应用程序中使用了弹性apm  开发我通过终端导出环境变量,它正在工作。 但是现在我想部署该应用程序,所以我需要从.env文件中读取变量

解释

我在我的应用中使用go.elastic.co/apm/module/apmhttpgo.elastic.co/apm读取环境变量时, 它看不到ELASTIC_APM_SERVICE_NAMEELASTIC_APM_SERVER_URLELASTIC_APM_SECRET_TOKEN 在我的.env应用程序文件中存在的文件。

1 个答案:

答案 0 :(得分:1)

这是我问题的答案,希望对你有帮助@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)))