
运维可见性
|
53
•
在应用程序层进行压缩或加密;
•
在搜索层进行查询。
传统
SQL
分析
从事咨询工作的时候,我(莱恩)经常碰到服务没有监控的情形,既没有应用程序层
性能监控,也没有数据库监控。我总是要调查
TCP
或收集
SQL
的日志,以便创建数
据库的视图。然后,我会列出需要优化的
SQL
优先级列表,并反馈给软件工程师,他
们可能并不知道问题代码在哪儿。寻找问题代码可能会花费一周甚至更长时间。
数据库可靠性工程师有很多机会和软件工程师一起工作,并确保所有类、方法、函数
以及任务都和调用的
SQL
做了映射。当软件工程师和数据库可靠性工程师使用相同的
工具时,数据库可靠性工程师可以指出问题的关键之处,很快软件工程师就能独当一
面了。
如果一个事务有性能“预算”,并且已知延时需求,那么建议各组件的负责人以团队合作
的方式开展工作,以便找到相应关键点,并通过适当的投入和妥协来达到目的。
4.6.2
事件与日志
应该收集并保存应用程序的所有日志,包括栈追踪,这是不言自明的。此外,还有许多非
常有用的事件可以发送到运维可见性平台,例如:
•
部署代码;
•
部署时间;
•
部署过程中出现的错误。
应用程序监控是至关重要的第一步,从用户的角度观察行为,并且和延时
SLO
直接相关。
这提供了服务故障或者降级的线索。下面介绍有助于分析根本原因和建立预防措施的支撑
数据:主机数据。
4.7
度量服务器或实例
数据库实例在独立主机中运行,主机可以是物理机或虚拟机。可以从主机获取关于操作系
统和数据库运行时分配的物理资源的所有数据。尽管这些数据和具体的应用程序 ...