1 回答
TA贡献1794条经验 获得超7个赞
既然您没有在上面提到它:您是否检测了 Go 应用程序?Elastic APM Go“代理”是一个用于检测应用程序源代码的包。它不是一个独立的进程,而是在您的应用程序中运行。
因此,首先(如果您还没有)检测您的应用程序。请参阅https://www.elastic.co/guide/en/apm/agent/go/current/getting-started.html#instrumenting-source
这是一个使用Echo和apmechov4检测模块的示例 Web 服务器:
package main
import (
"fmt"
"net/http"
echo "github.com/labstack/echo/v4"
"go.elastic.co/apm/module/apmechov4"
)
func main() {
e := echo.New()
e.Use(apmechov4.Middleware())
e.GET("/hello/:name", func(c echo.Context) error {
fmt.Println(c.Param("name"))
return nil
})
http.ListenAndServe(":8080", e)
}
如果您运行它并向 发送一些请求http://localhost:8080/hello/world,您应该很快就会在 Kibana 的 APM 应用程序中看到请求。
如果您在 Kibana 中仍然看不到任何内容,可以按照https://www.elastic.co/guide/en/apm/agent/go/current/troubleshooting.html#agent-logging启用日志记录。如果代理能够成功地将数据发送到服务器,您可以看到以下内容:
$ ELASTIC_APM_LOG_FILE=stderr ELASTIC_APM_LOG_LEVEL=debug go run main.go
{"level":"debug","time":"2020-08-19T13:33:28+08:00","message":"sent request with 3 transactions, 0 spans, 0 errors, 0 metricsets"}
{"level":"debug","time":"2020-08-19T13:33:46+08:00","message":"gathering metrics"}
{"level":"debug","time":"2020-08-19T13:33:56+08:00","message":"sent request with 0 transactions, 0 spans, 0 errors, 3 metricsets"}
另一方面,如果服务器无法访问,您会看到如下内容:
{"level":"error","time":"2020-08-19T13:38:01+08:00","message":"config request failed: sending config request failed: Get \"http://localhost:8200/config/v1/agents?service.name=main\": dial tcp 127.0.0.1:8200: connect: connection refused"}
- 1 回答
- 0 关注
- 164 浏览
添加回答
举报