无论你是开发者还是操作者,我们都希望给你提供可观察性的工具来监控你的CockroachDB集群。这包括标准的工具,如日志、Prometheus和健康端点等指标,以及警报。但是现代的可观察性需要的不仅仅是标准工具。
为了让你尽可能多地了解你的数据库,CockroachDB还提供了SQL命令、表格以及与每个二进制文件打包的本地DB控制台,为任何工作负载提供观察能力。DB Console让操作者和开发者能够访问重要的集群数据,包括指标、数据库、会话(CockroachDB 20.2的新内容)、交易(CockroachDB 20.2的新内容)、语句等等。
这篇文章的目的是让你了解监控CockroachDB的几种关键方式,并为你提供一个学习的地方。
为什么操作员要使用DB控制台?
如果你是一个运营商,你就会知道,环境出问题不是一个问题,而是一个时间问题。我们通过评估节点状态(例如,活节点、可疑节点和死节点)、复制健康状况,以及评估CPU、内存和磁盘使用情况等关键指标,使运营商能够访问关键的集群健康信息。这使你能够防患于未然,或者在紧急情况下迅速发现问题的根源。
为什么开发人员要使用DB控制台?
如果你是一个开发人员,你知道变化是生产工作负载的唯一常量。新的业务需求会导致模式迁移和新的性能目标的交易。CockroachDB已经提供了零停机时间的迁移,以减少现代开发的影响。DB Console现在为你提供了一种观察工作负载以及组成这些负载的会话、事务和语句的方法。迭代是开发人员的一种生活方式,CockroachDB现在提供了一个工具,可以轻松评估模式和查询设计的变化对工作负载的影响。
让我们深入了解一下开发者如何使用DB Console。
会话页面
如果你注意到吞吐量下降或CPU使用率接近100%,你可能会怀疑一个错误的语句在你的数据库中的某个地方乱跑。你需要能够找到它并尽快取消它。在CockroachDB 20.2中引入的会话页面为你提供了对所有会话(即连接)和正在进行的事务和语句的实时访问。
你可以根据会话年龄、事务年龄、语句年龄或内存使用情况进行排序,以找到任何有问题的活动会话。更重要的是,CockroachDB现在允许你取消有问题的会话和查询。

你可以点击进入任何给定的会话,了解更多关于执行或重试的语句数量,以及了解内存使用情况。
现在通过CockroachDB 20.2,开发者可以灵活地找到并取消会话。通过我们的文档了解更多关于会话页面的信息。
交易页面
要理解一个复杂的、动态的工作负载所执行的事务并不容易。了解每个事务由哪些语句和表组成,以及事务的端到端延迟,是了解和管理工作负载吞吐量和终端用户延迟的关键输入。 CockroachDB 20.2在DB Console的新事务页面上增加了对事务指纹的可见性。与之前版本中引入的语句页面一样,交易页面显示了已经执行的交易和语句的历史信息。
然而,与语句页不同的是,你现在可以看到构成一个特定事务的所有语句指纹。
你甚至可以深入到报表的详细页面来了解更多关于该指纹的信息。
更喜欢使用SQL shell?没问题!
我们使用SQL来驱动DB控制台中的会话、事务和语句页面。如果你想直接访问这些信息,你可以使用以下表格。
| DB Console页面 | CockroachDB内部表 |
|---|---|
| 会话 | crdb_internal.node_sessions |
| 交易 | crdb_internal.node_transaction_statistics |
| 语句 | crdb_internal.node_statement_statistics |
例如,这里有一个来自crdb_internal.node_statement_statistics 虚拟表的语句聚合的例子。
root@127.0.0.1:26257/movr> select * from crdb_internal.node_statement_statistics limit 1;
-[ RECORD 1 ]
node_id | 1
application_name | $ cockroach demo
flags |
key | ALTER TABLE rides ADD FOREIGN KEY (city, rider_id) REFERENCES users (city, id)
anonymized | ALTER TABLE _ ADD FOREIGN KEY (_, _) REFERENCES _ (_, _)
count | 1
first_attempt_count | 1
max_retries | 0
last_error | NULL
rows_avg | 0
rows_var | NaN
parse_lat_avg | 2.1e-05
parse_lat_var | NaN
plan_lat_avg | 0.000362
plan_lat_var | NaN
run_lat_avg | 0.002501
run_lat_var | NaN
service_lat_avg | 0.002923
service_lat_var | NaN
overhead_lat_avg | 3.899999999999954e-05
overhead_lat_var | NaN
bytes_read_avg | 0
bytes_read_var | NaN
rows_read_avg | 0
rows_read_var | NaN
implicit_txn | true
Time: 1ms total (execution 0ms / network 0ms)
你也可以通过下面的SQL SHOW命令查看正在进行的会话、事务和语句。
SHOW SESSIONS;SHOW TRANSACTIONS;SHOW QUERIES;
使用CockroachDB和CockroachCloud试用DB控制台
无论你是一个专注于使用数据库来迭代你的应用程序的开发者,还是一个专注于保持整个集群的操作者,CockroachDB 20.2都有你需要的工具来观察和解决任何问题。你今天就可以通过CockroachCloud的免费试用来开始。
有什么可观察的功能是你希望我们支持的吗?我们很想知道它是什么。请在我们的社区Slack组的#product-feedback频道中给我们留言。