支持的技术
编辑支持的技术编辑
此页面描述了 Elastic APM Go Agent 支持的技术。
如果您的最爱技术尚未得到支持,您可以通过参与我们的 调查 或加入 讨论论坛 中的对话来投票。我们将使用调查结果和讨论主题来添加对最常请求的技术的支持。
如果您想了解更多参与方式,请查看 贡献指南。
Go编辑
Elastic APM Go Agent 自然需要 Go。我们支持 Go 的最后两个主要版本,如 Go 的发布策略 所述。
每个主要 Go 版本都得到支持,直到出现两个更新的主要版本。例如,Go 1.5 在 Go 1.7 版本发布之前得到支持,Go 1.6 在 Go 1.8 版本发布之前得到支持。
Web 框架编辑
我们支持几个第三方 Web 框架,以及 Go 的标准 net/http
包。无论框架如何,我们都会为每个传入请求创建一个事务,并根据注册的路由命名事务。
fasthttp编辑
我们支持 valyala/fasthttp,v1.26.0 及更高版本。
有关 fasthttp 检测的更多信息,请参阅 module/apmfasthttp。
httprouter编辑
julienschmidt/httprouter 不使用语义版本控制,但其 API 相对稳定。任何最近的版本都应该与 Elastic APM Go Agent 兼容。
有关 httprouter 检测的更多信息,请参阅 module/apmhttprouter。
Echo编辑
我们支持 Echo Web 框架,v3.3.5 及更高版本。
我们为 Echo v3 和 v4 版本提供不同的包:module/apmecho
用于 Echo v3.x,module/apmechov4
用于 Echo v4.x。
有关 Echo 检测的更多信息,请参阅 module/apmecho。
Gin编辑
有关 Gin 检测的更多信息,请参阅 module/apmgin。
Fiber编辑
我们支持 Fiber Web 框架,v2.18.0 及更高版本。
我们仅为 Fiber v2 提供包。有关 Fiber 检测的更多信息,请参阅 module/apmfiber。
Beego编辑
我们支持 Beego Web 框架,v1.10.0 及更高版本。
有关 Beego 检测的更多信息,请参阅 module/apmbeego。
gorilla/mux编辑
我们支持 gorilla/mux v1.6.1 及更高版本。由于使用了 gorilla.Middleware,因此不支持旧版本。
有关 gorilla/mux 检测的更多信息,请参阅 module/apmgorilla。
go-restful编辑
我们支持 go-restful,2.0.0 及更高版本。
有关 go-restful 检测的更多信息,请参阅 module/apmrestful。
chi编辑
有关 chi 检测的更多信息,请参阅 module/apmchi。
negroni编辑
有关 negroni 检测的更多信息,请参阅 module/apmnegroni。
数据库编辑
database/sql编辑
我们支持使用任何 database/sql
驱动程序跟踪请求,前提是驱动程序已在 Elastic APM Go Agent 中注册。将为执行的每个语句创建跨度。
当使用以下驱动程序之一时,Elastic APM Go Agent 将能够解析数据源名称,并在其发出的跨度中提供更多上下文
- lib/pq (PostgreSQL)
- jackc/pgx (PostgreSQL)
- go-sql-driver/mysql
- mattn/go-sqlite3
有关 database/sql 检测的更多信息,请参阅 module/apmsql。
GORM编辑
我们支持 GORM 对象关系映射库,v1.9 及更高版本。将为每个创建、查询、更新和删除操作创建跨度。
与 database/sql
支持一样,我们为 postgres、mysql 和 sqlite 方言提供额外支持。
我们为 Gorm v1 和 v2 版本提供不同的包:module/apmgorm
用于 Gorm v1.x,module/apmgormv2
用于 Gorm v2.x。
有关 GORM 检测的更多信息,请参阅 module/apmgorm 或 module/apmgormv2。
go-pg/pg编辑
我们支持 go-pg/pg PostgreSQL ORM,v8.0.4。将为每个数据库操作创建跨度。
有关 go-pg 检测的更多信息,请参阅 module/apmgopg。
Cassandra (gocql)编辑
GoCQL 没有稳定的 API,因此我们将尽力支持最新的 API 以及旧版本的 API。将为每个查询创建跨度。当使用批处理 API 时,将为批处理创建跨度,并为批处理中的每个查询创建子跨度。
有关 GoCQL 检测的更多信息,请参阅 module/apmgocql。
Redis (gomodule/redigo)编辑
我们支持 Redigo,v2.0.0 及更高版本。我们提供帮助程序函数,用于将 Redis 命令报告为跨度。
有关 Redigo 监控的更多信息,请参见 module/apmredigo。
Redis (go-redis/redis)编辑
我们支持 go-redis,v6.15.3。我们提供用于将 Redis 命令报告为跨度的辅助函数。
有关 go-redis 监控的更多信息,请参见 module/apmgoredis。
Elasticsearch编辑
我们为 Elasticsearch 客户端提供监控。这可用于 go-elasticsearch 和 olivere/elastic 客户端,也应该可用于任何其他提供配置基础 net/http.RoundTripper
方法的客户端。
有关 Elasticsearch 客户端监控的更多信息,请参见 module/apmelasticsearch。
MongoDB编辑
我们为官方 MongoDB Go 驱动程序,v1.0.0 及更高版本提供监控。将在包含事务的上下文中执行的每个 MongoDB 命令创建跨度。
有关 MongoDB Go 驱动程序监控的更多信息,请参见 module/apmmongo。
DynamoDB编辑
我们为 AWS DynamoDB 提供监控。这可用于 AWS SDK Go。
有关 AWS SDK Go 监控的更多信息,请参见 module/apmawssdkgo。
RPC 框架编辑
gRPC编辑
我们支持 gRPC v1.3.0 及更高版本。我们为客户端和服务器提供一元和流拦截器。服务器拦截器将为每个传入请求创建一个事务,而客户端拦截器将为每个传出请求创建一个跨度。
有关 gRPC 监控的更多信息,请参见 module/apmgrpc。
服务框架编辑
Go kit编辑
当使用 gRPC 或 HTTP 传输时,我们支持跟踪 Go kit 客户端和服务器,分别通过 module/apmgrpc 和 module/apmhttp。
可在 https://pkg.go.dev/go.elastic.co/apm/module/apmgokit/v2 找到入门代码示例。
日志记录框架编辑
Logrus编辑
我们支持与 Logrus,v1.1.0 及更高版本进行日志关联和异常跟踪。
有关 Logrus 集成的更多信息,请参见 module/apmlogrus。
Zap编辑
我们支持与 Zap,v1.0.0 及更高版本进行日志关联和异常跟踪。
有关 Zap 集成的更多信息,请参见 module/apmzap。
Zerolog编辑
我们支持与 Zerolog,v1.12.0 及更高版本进行日志关联和异常跟踪。
有关 Zerolog 集成的更多信息,请参见 module/apmzerolog。
对象存储编辑
Amazon S3编辑
我们为 AWS S3 提供监控。这可用于 AWS SDK Go。
有关 AWS SDK Go 监控的更多信息,请参见 module/apmawssdkgo。
Azure 存储编辑
我们为 Azure 存储提供监控。这可用于
- github.com/Azure/azure-storage-blob-go/azblob[Azure Blob 存储]
- github.com/Azure/azure-storage-queue-go/azqueue[Azure 队列存储]
- github.com/Azure/azure-storage-file-go/azfile[Azure 文件存储]
有关 Azure SDK Go 监控的更多信息,请参见 module/apmazure。
消息传递系统编辑
Amazon SQS编辑
我们为 AWS SQS 提供监控。这可用于 AWS SDK Go。
有关 AWS SDK Go 监控的更多信息,请参见 module/apmawssdkgo。
Amazon SNS编辑
我们为 AWS SNS 提供监控。这可用于 AWS SDK Go。
有关 AWS SDK Go 监控的更多信息,请参见 module/apmawssdkgo。