如何在生产环境优雅的 debug?

2020-06-22 15:58:43 +08:00
 dandankele

我们日常生产环境反馈有问题的做法一般都是直接在线上 debug,比如直接在线上修改代码打日志等。。 因为我们使用的是 PHP,其优点在这里就可以凸显出,那就是可以随时修改代码随时看效果,所以我们都是在线上改代码打日志。。。但我觉得这样子不是正常的做法。。

不知道有没有什么样的系统性方案。。来应对这么些问题:

  1. 该问题只在生产环境中出现,若要复现只能在线上做调试,因此本地或测试环境无法复现和排查。
  2. 当我们应用从单机部署变成了集群部署,在线上修改代码就不止修改一份代码了。
  3. 我们无法有充分的预见性在代码中各个点埋好日志记录,因此只有等问题出现了,然后再去加日志埋点?
  4. 即使我们做足了日志收集,但日常 90%的时间以上都是没有问题的,日志照样输出并采集,积累的大量日志太占磁盘了,而出问题时,我们仅仅需要那一小部分的日志信息。

所以不知道大家都是怎么做的?难道是应用中日志埋点做满,但平常不输出和采集,只有出问题时,通过修改日志采集配置再进行日志采集?比较困惑

5982 次点击
所在节点    程序员
29 条回复
fhsan
2020-06-22 20:17:46 +08:00
elk 吧,别搞了
oneoy
2020-06-22 22:30:10 +08:00
idea 支持的 谷歌下就可以 我目前在用
sadfQED2
2020-06-23 09:18:20 +08:00
哈哈哈,我也经常在生产环境 debug 啊,在我个人博客项目里面
ifconfig
2020-06-23 09:21:50 +08:00
1 、该问题只在生产环境中出现,若要复现只能在线上做调试:
你说的应该就是 Sentry,可以在 Sentry 配置各种环境, 报错会提示相关环境、第几行代码

2 、在线上修改代码就不止修改一份代码了
这些不是都可以通过 Git 分支加 webhook 解决么
avenger
2020-06-23 10:11:03 +08:00
多打日志吧,再加一个预发布 staging 环境,日志记录推荐一下 papertrailapp
带尾巴链接 URL: https://papertrailapp.com/?thank=48e610
dandankele
2020-06-23 10:15:23 +08:00
@Vegetable 好吧,就是觉得一些地方做日志,平时基本没啥问题,但日志大量被产生,收集的贼多,感觉像是在浪费磁盘。。
dandankele
2020-06-23 10:20:28 +08:00
@useben 这些都有,但日志没做满,一些问题出现在没做日志的地方,但不出问题的话感觉这些日志太占空间了。。
dandankele
2020-06-23 10:21:21 +08:00
@ben1024 看起来不错,回头我研究一下
weixiangzhe
2020-06-23 17:59:14 +08:00
本地开个 http 代理,whistle 挺好用的,代理到本地也可以

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/683792

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX