APM Go 代理未能传输数据到 APM 服务器
来源:stackoverflow
时间:2024-02-22 09:51:25 474浏览 收藏
大家好,我们又见面了啊~本文《APM Go 代理未能传输数据到 APM 服务器》的内容中将会涉及到等等。如果你正在学习Golang相关知识,欢迎关注我,以后会给大家带来更多Golang相关文章,希望我们能一起进步!下面就开始本文的正式内容~
我有一个 elastic apm-server 已启动并正在运行,并且它已成功与 elasticsearch 建立连接。
然后我安装了 elastic apm go 代理:
go get -u go.elastic.co/apm
它返回以下内容:
finding go.elastic.co/apm v1.8.0 finding github.com/stretchr/testify v1.4.0 finding github.com/prometheus/procfs v0.0.3 finding github.com/google/go-cmp v0.3.1 finding github.com/armon/go-radix v1.0.0 finding github.com/santhosh-tekuri/jsonschema v1.2.4 finding github.com/cucumber/godog v0.8.1 finding golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e finding go.elastic.co/fastjson v1.0.0 finding github.com/google/go-cmp v0.5.1 finding github.com/prometheus/procfs v0.1.3 finding golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e finding golang.org/x/sys latest finding github.com/elastic/go-sysinfo v1.1.1 finding golang.org/x/sync latest finding golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e finding github.com/stretchr/testify v1.6.1 finding go.elastic.co/fastjson v1.1.0 finding github.com/cucumber/godog v0.10.0 finding github.com/stretchr/objx v0.3.0 finding github.com/elastic/go-sysinfo v1.4.0 finding gopkg.in/yaml.v2 v2.2.2 finding github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901 finding golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 finding github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0 finding github.com/elastic/go-windows v1.0.0 finding golang.org/x/sys v0.0.0-20191025021431-6c3a3bfe00ae finding golang.org/x/xerrors latest finding gopkg.in/yaml.v2 v2.3.0 finding golang.org/x/tools v0.0.0-20200509030707-2212a7e161a5 finding github.com/yuin/goldmark v1.1.27 finding github.com/cucumber/messages-go/v10 v10.0.3 finding gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c finding howett.net/plist v0.0.0-20181124034731-591f970eefbb finding golang.org/x/net v0.0.0-20200226121028-0de0cce0169b finding gopkg.in/check.v1 latest finding golang.org/x/mod v0.2.0 finding golang.org/x/tools latest finding github.com/hashicorp/go-memdb v1.2.1 finding golang.org/x/net latest finding github.com/cucumber/gherkin-go/v11 v11.0.0 finding github.com/joeshaw/multierror latest finding golang.org/x/crypto latest finding github.com/yuin/goldmark v1.1.32 finding github.com/elastic/go-windows v1.0.1 finding golang.org/x/mod v0.3.0 finding golang.org/x/text v0.3.3 finding howett.net/plist latest finding golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e finding golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550 finding golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd finding golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898 finding golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 finding golang.org/x/net v0.0.0-20200625001655-4c5254603344 finding github.com/kr/pretty v0.2.1 finding github.com/jessevdk/go-flags v1.4.0 finding github.com/kr/text v0.2.0 finding github.com/kr/pty v1.1.8 finding github.com/hashicorp/go-immutable-radix v1.2.0 finding github.com/hashicorp/golang-lru v0.5.4 finding github.com/yuin/goldmark v1.2.1 finding github.com/aslakhellesoy/gox v1.0.100 finding gopkg.in/yaml.v3 latest finding gopkg.in/yaml.v2 v2.2.8 finding golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a finding github.com/gogo/protobuf v1.3.1 finding github.com/gofrs/uuid v3.2.0+incompatible finding github.com/stretchr/testify v1.5.1 finding github.com/creack/pty v1.1.7 finding github.com/creack/pty v1.1.9 finding github.com/cucumber/messages-go/v10 v10.0.1 finding github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e finding github.com/hashicorp/go-uuid v1.0.0 finding github.com/hashicorp/go-version v1.0.0 finding github.com/mitchellh/iochan v1.0.0 finding gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 finding github.com/kr/pretty v0.2.0 finding github.com/niemeyer/pretty latest finding github.com/hashicorp/go-uuid v1.0.2 finding github.com/hashicorp/go-version v1.2.1 finding github.com/creack/pty v1.1.11 finding github.com/kisielk/errcheck v1.2.0 finding github.com/gofrs/uuid v3.3.0+incompatible finding github.com/kisielk/errcheck v1.4.0 finding golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563 finding golang.org/x/tools v0.0.0-20200619180055-7c47624df98f downloading go.elastic.co/apm v1.8.0 extracting go.elastic.co/apm v1.8.0 downloading github.com/elastic/go-sysinfo v1.4.0 downloading golang.org/x/sys v0.0.0-20200819035508-9a32b3aa38f5 downloading go.elastic.co/fastjson v1.1.0 downloading github.com/armon/go-radix v1.0.0 extracting go.elastic.co/fastjson v1.1.0 extracting github.com/armon/go-radix v1.0.0 extracting github.com/elastic/go-sysinfo v1.4.0 downloading howett.net/plist v0.0.0-20200419221736-3b63eb3a43b5 downloading github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901 downloading github.com/prometheus/procfs v0.1.3 extracting github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901 extracting howett.net/plist v0.0.0-20200419221736-3b63eb3a43b5 extracting github.com/prometheus/procfs v0.1.3 extracting golang.org/x/sys v0.0.0-20200819035508-9a32b3aa38f5
然后我设置 elastic_apm_server_url
和 elastic_apm_service_name
:
export ELASTIC_APM_SERVER_URL=http://my-apm-server-url export ELASTIC_APM_SERVICE_NAME=agent-name
但是,我没有看到代理在 apm 仪表板中注册。
它没有向 apm 服务器发送任何数据。
如何确保代理正在运行?如何检查代理日志以了解无法连接到 apm 服务器的原因?
解决方案
既然您上面没有提到:您是否检测过 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"}
文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《APM Go 代理未能传输数据到 APM 服务器》文章吧,也可关注golang学习网公众号了解相关技术文章。
-
502 收藏
-
502 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
139 收藏
-
204 收藏
-
325 收藏
-
477 收藏
-
486 收藏
-
439 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 507次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 484次学习