登录
首页 >  Golang >  Go问答

定期运行pprof以收集最新数据

来源:stackoverflow

时间:2024-02-07 21:18:22 173浏览 收藏

学习Golang要努力,但是不要急!今天的这篇文章《定期运行pprof以收集最新数据》将会介绍到等等知识点,如果你想深入学习Golang,可以关注我!我会持续更新相关文章的,希望对大家都能有所帮助!

问题内容

我像这样使用 go pprof:

go tool pprof -no_browser -http=0.0.0.0:8081 http://localhost:6060/debug/pprof/profile?seconds=60

如何让 pprof 定期获取分析数据?


正确答案


这是一个 python 脚本,它使用 wget 每小时抓取一次数据,并将输出放入名称包含时间戳的文件中。

每个文件都可以通过运行来检查

go tool pprof pprof_data_yyyy_mm_dd_hh

这是脚本:

import subprocess
import time
from datetime import datetime

while True:
    now = datetime.now()
    sleepTime = 3601 - (60 * now.minute + now.second + 1e-6 * now.microsecond)
    time.sleep(sleepTime)

    now = datetime.now()
    tag = f"{now.year}-{now.month:02d}-{now.day:02d}_{now.hour:02d}"
    subprocess.run(["wget", "-O", f"pprof_data_{tag}", "-nv", "-o", "/dev/null", "http://localhost:6060/debug/pprof/profile?seconds=60"])

3601 导致 wget 在小时结束后运行约 1 秒,以避免 time.sleep 在小时结束前返回的竞争条件。

您显然可以用 bash 或您最喜欢的语言编写类似的脚本。

到这里,我们也就讲完了《定期运行pprof以收集最新数据》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>