关于数据库可观测性

数据库可观测性用于衡量根据数据库系统在日志、指标和跟踪记录中生成的数据或遥测推断数据库系统的内部状态的准确程度。

在应用中发生的问题涉及数据库时,诊断和问题排查尤其困难且特别耗时。遥测收集至关重要。遥测经过应用上下文充实后,可以使数据库实例更易于理解、可观测且更易于维护。您可以轻松识别问题和趋势,并尽早采取补救措施,而不会造成代价高昂的停机。此外,使用此类数据,您还可以配置较新的数据库实例,以从它们启动的那一刻起收集正确类型的数据。

您可以高效利用数据,主动预防问题并专注于战略性创新。良好的遥测数据收集在 DevOps 模型中特别有用,数据库专家需要在该模型中独立分析遥测数据,以监控、评估和优化其快速发展的应用的性能和健康状况。

Google Cloud 提供了多种跨四个迭代可观测性阶段的强大功能,可帮助您维护 Cloud SQL 数据库的运行状况。

实现可观测性的迭代阶段

自动遥测收集

为了实现可观测性目标,我们首先收集遥测,最好是通过自动化的过程进行。进行一段时间的收集后,遥测数据可帮助您为不同负载条件下的指标建立基准。

Google Cloud 服务会自动生成可观测性数据,包括指标、日志和跟踪记录,这有助于提供完整的可观测性概览。

  • Cloud Monitoring 会收集您的服务和您使用的 Google Cloud 资源的测量结果。Cloud SQL 会使用内置内存自定义代理来收集查询遥测数据,从而降低对性能的影响并消除对代理维护或安全开销的需求。

  • Cloud Logging 会从常见应用组件收集日志记录数据。对于 Cloud SQL,另请参阅查看实例日志

  • Cloud Trace 可从应用收集延迟数据和已执行的查询计划,以帮助您跟踪请求如何在您的应用中传播。您可以比较一段时间内或不同版本之间的这些延迟分布情况。如果对您的应用进行了插桩处理以使用 Cloud Trace,则当 Cloud Trace 检测到您的应用的延迟情况发生明显变化时会向您发出提醒。

Sqlcommenter 是一个用于数据库的 OpenTelemetry 库,可帮助您从应用的视角监控数据库。Sqlcommenter 会自动对 ORM 进行插桩处理,以使用标记增强 SQL 语句,并允许将 OpenTelemetry 跟踪记录上下文信息传播到数据库。

借助数据库中的标记和跟踪记录应用上下文,您可以轻松将应用代码与数据库性能相关联,并排查基于微服务的架构的问题。

数据库监控

适当的监控可帮助您确定应用是否以最佳方式运行。尽早实现监控,例如在启动迁移之前或将新应用部署到生产环境之前。区分应用问题与底层云问题。

Cloud SQL 概览页面显示一些关键指标的图表。

Cloud SQL 还有助于您比较指标(针对选定实例)。

您可以使用 Cloud Monitoring 创建自定义信息中心以帮助您监控指标,以及设置提醒政策,以便您能够及时收到通知。

数据库调整

您可以采用迭代方式排查并调整数据库。

Cloud SQL Recommender 可帮助您分析数据库的当前使用情况,并根据启发式方法和机器学习提供建议数据洞见

Cloud SQL Recommender 简要说明如下:

名称 说明
磁盘空间不足 Recommender 降低 Cloud SQL 实例用尽磁盘空间导致的停机风险。
空闲实例 Recommender 通过关闭无意中空闲的 Cloud SQL 实例来降低费用。
超额预配的实例 Recommender 通过调整对于给定工作负载而言过大的 Cloud SQL 实例大小来降低费用。
预配不足的实例 Recommender 通过调整具有高 CPU 和/或内存用量的 Cloud SQL 实例的大小,避免 CPU 和内存用量过高的瓶颈,并最大限度地降低发生内存不足事件的可能性。

后续步骤