Pprof是Go语言提供的性能分析工具之一,用于分析和优化Go程序的性能。您可以通过日志服务全栈可观测中的Golang拉取功能采集Go Pprof性能数据,以及在全栈可观测中分析及可视化展示数据。
前提条件
已创建全栈可观测实例。具体操作,请参见创建实例。
使用限制
Logtail为Linux Logtail 1.7及以上版本。
工作原理
Go语言已内置Pprof性能数据暴露机制。在Go程序中启动内置的Pprof性能数据暴露机制后,Logtail会通过HTTP接口获取Pprof数据。
准备工作
在接入Go Pprof性能数据前,您需要先启动Go程序性能数据的暴露机制。您可以通过如下方式启动内置的暴露机制,也可以自定义暴露机制,但需保证Pprof数据暴露于{host}:{port}/debug/pprof/端口
。下述示例表示将Pprof性能数据暴露于8080端口。
package main
import (
"net/http"
_ "net/http/pprof"
)
func main() {
// do something...
_ = http.ListenAndServe(":8080", nil)
}
创建Logtail采集配置
登录日志服务控制台。
在日志应用区域的智能运维页签下,单击全栈可观测。
在SLS全栈可观测页面,单击目标实例。
在左侧导航栏中,单击性能监控。
首次在该实例中使用性能监控时,请单击立即开启。
在左侧导航栏中,单击数据接入,然后在数据接入配置页面,找到Golang拉取。
首次创建目标监控项的接入配置时,打开创建开关,可进入配置页面。如果您已创建过接入配置,则单击图标,可进入配置页面。
创建机器组。
如果您已有可用的机器组,请单击使用现有机器组。
如果您还没有可用的机器组,请执行以下操作(以ECS为例)。
在ECS机器页签中,通过手动选择实例方式选择目标ECS实例,单击创建。
更多信息,请参见安装Logtail(ECS实例)。
重要如果您的服务器是与日志服务属于不同账号的ECS、其他云厂商的服务器和自建IDC时,您需要手动在目标服务器中安装Linux Logtail 1.7及以上版本。具体操作,请参见安装Logtail(Linux系统)。安装完成后,您还需要在该服务器上手动配置用户标识。具体操作,请参见配置用户标识。
安装完成后,单击确认安装完毕。
在创建机器组页面,输入名称,单击下一步。
日志服务支持创建IP地址机器组和用户自定义标识机器组,详细参数说明请参见创建IP地址机器组和创建用户自定义标识机器组。
重要请确保用于安装Logtail的服务器可连接目标服务器。
确认目标机器组已在应用机器组区域,单击下一步。
重要创建机器组后立刻应用,可能因为连接未生效,导致心跳为FAIL,您可单击自动重试。如果还未解决,请参见Logtail机器组无心跳进行排查。
在数据源设置配置向导中,配置如下参数,然后单击完成。
参数名称
说明
配置名称
设置Logtail采集配置的名称。
集群
设置集群名称。
设置该参数后,日志服务会为通过该Logtail采集配置采集到的Golang性能数据添加
cluster=集群名称
的标签。重要请确保该集群名称唯一,否则可能出现数据冲突。
服务
设置服务名称,下述设置的所有静态实例都归属该服务。例如服务名称为sls-mall,则下述设置的所有实例都归属于sls-mall服务。
Profile白名单
选择要采集的性能数据类别。
采集间隔
设置采集数据间隔时间,单位:秒。
超时时间
设置采集数据超时时间,单位:秒。
最大Body大小
设置采集数据的最大采集Body大小,单位:KB。
静态实例数组
添加实例信息,包括如下配置:
主机:主机地址。
端口:采集端口号。
Labels:为实例添加标签。
重要请勿使用service作为标签。
设置完成后,日志服务将自动生成Metricstore等资产。更多信息,请参见资产说明。