管理维护
配置参数
在 ArcGraph 图数据库中,配置参数分为系统变量(Variable)和系统配置项(Config)两种类型。本章节将详细介绍这两种类型参数,以及它们的配置方法。
- 系统变量
系统变量通常和用户 Session(会话)绑定,用于控制 Session 级别的语句行为。用户可以通过SET
命令更改系统变量的值,支持设置全局(Global)和会话(Session)级别的变量。设置 Global 级别的系统变量后,在当前 Session 上不会生效,后续新建的任何 Session 都能读到新的变量值。设置 Session 级别的系统变量后,该设置仅对当前 Session 生效。 - 系统配置项
系统配置项主要用于运维,常用于控制机器及其上层应用的系统行为。这些配置项可以作为服务器节点的启动参数和创建参数,并且允许在服务器节点运行时进行修改 以调整系统行为。配置项的作用域通常是全局性的,影响着当前整个服务器节点的运行表现。
更改系统变量
ArcGraph 图数据库可使用 SET
命令修改系统变量的值,通过 SHOW VARIABLES
语句可以查看系统变量的更改等级、当前值、默认值、允许设置的最小值、允许设置的最大值以及其他相关信息,详情请参见 SHOW VARIABLES 章节。
系统变量支持全局(Global)和会话(Session)两个级别的设置,具体区别如下:
- 全局(Global)
设置全局级别的系统变量即同时修改集群内所有服务器节点后,当前会话不会受到此修改的影响,而后续新建立的会话会继承这些更改。修改成功后立即生效且重启系统后仍会保存该修改。请注意,操作前请确认当前登录用户已拥有集群中所有图的Traverse
权限,详情请参见 权限 章节。 - 会话(Session)
设置会话级别的系统变量后,仅对当前会话生效且该操作无需任何权限,修改成功后新的设置将立即生效。然而,如果会话中断(如用户主动断开连接或会话因超时自动结束),那么会话级别的配置将会丢失。
语法
SET SESSION|GLOBAL <variable_name> = <String | Integer | Boolean>
详细说明
<variable_name>
:系统变量名称,用于指定将要操作的系统变量的名称。<String | Integer | Boolean>
:表示将要设置的系统变量的值,它支持String
、Integer
、Boolean
三种类型,修改时需与原系统变量值的类型保持一致。
示例 1
更改 SESSION
级别的系统变量,命令如下:
SET SESSION compiler_max_var_hops = 20;
示例 2
更改 GLOBAL
级别的系统变量,命令如下:
SET GLOBAL compiler_max_var_hops = 20;
示例 3
SET SESSION compiler_opt_enable_mat_pushdown = true;
示例 4
SET SESSION SET SESSION analytical_ap_coordinator_address_rest = "ap1-service:18000";
更改系统配置项
ArcGraph 图数据库可使用 ALTER CONFIG
命令修改系统配置项的值,修改成功后将立即在当前客户端连接的服务器节点上生效,不影响集群中的其他服务器节点,并且在重启系统后仍会保存该修改。请注意,该操作仅支持对更改等级(modify_level
)为 DYNAMIC
的变量进行修改,通过 SHOW FULL CONFIGS
语句可以查看系统配置项的更改等级、当前值、默认值、允许设置的最小值、允许设置的最大值以及其他相关信息,详情请参见 SHOW CONFIGS 章节。操作前请确认当前登录用户已拥有集群中所有图的 All
权限,详情请参见 权限 章节。
语法
ALTER CONFIG <config_name> = <String | Integer | Boolean>
详细说明
<config_name>
:系统配置项名称,用于指定将要操作的系统配置项的名称。<String | Integer | Boolean>
:表示将要设置的系统配置项的值,它支持String
、Integer
、Boolean
三种类型,修改时需与原系统配置项的值的类型保持一致。
示例
将当前服务器节点的 log_enable_audit_file
系统配置项的值设置为 true
。命令如下:
ALTER CONFIG log_enable_audit_file = true;
配置项变更优先级
ArcGraph 图数据库的配置项变更优先级遵循“命令行优先于配置文件”原则,即服务器启动时指定的命令行参数具有最高优先级,并覆盖配置文件中对应的配置项。
当系统启动后,推荐使用 ALTER CONFIG
命令进行动态类配置项的调整,以实现高效且灵活的配置管理;并且通过 ALTER CONFIG
命令修改的配置项,在服务器重启之后依然生效。
监控指标
计数器指标介绍
计数器是 ArcGraph 图数据库监控体系中的核心组件,主要用于统计系统活动的基本数值。计数器能够实时显示在一定时间段内发生的特定事件(如查询)的次数,帮助用户评估性能、发现瓶颈并优化系统。计数器是评估图数据库健康状况、性能和可用性的关键工具。通过查看计数器指标,用户能够深入了解数据库的运行状态,从而进行有效的监控和优化,确保数据库的稳定运行。
说明:
在重启 ArcGraph 后,计数器各项指标的数据将被重置为初始状态,即从 0 开始重新计数。为避免数据丢失,在重启前请确保数据已保存。
计数器指标概览
ArcGraph 图数据库的计数器指标及其说明如下。
计数器指标名称 | 说明 |
---|---|
tp_ddl.create_graph_success | 创建图的数量。 |
tp_ddl.create_vertex_type_success | 创建点类型的数量。 |
tp_ddl.create_edge_type_success | 创建边类型的数量。 |
tp_ddl.rename_graph_success | 重命名图的数量。 |
tp_ddl.rename_schema_success | 重命名模式的数量。 |
tp_ddl.rename_property_success | 重命名属性的数量。 |
tp_ddl.drop_graph_success | 删除图的数量。 |
tp_ddl.truncate_graph_success | 清空图的数量。 |
tp_ddl.drop_vertex_type_success | 删除点类型的数量。 |
tp_ddl.drop_edge_type_success | 删除边类型的数量。 |
tp_ddl.drop_index_success | 删除索引的数量。 |
tp_dml.insert_vertexes | 插入点的数量。 |
tp_dml.insert_edges | 插入边的数量。 |
tp_dml.update_vertexes | 更新点的数量。 |
tp_dml.update_edges | 更新边的数量。 |
tp_dml.delete_vertexes | 删除点的数量。 |
tp_dml.delete_edges | 删除边的数量。 |
tp_dml.insert_vertex_time | 插入单个点所需的时间,单位为微秒(μs)。 |
tp_dml.insert_edge_time | 插入单个边所需的时间,单位为微秒(μs)。 |
tp_dml.update_vertex_time | 更新单个点所需的时间,单位为微秒(μs)。 |
tp_dml.update_edge_time | 更新单个边所需的时间,单位为微秒(μs)。 |
tp_dml.delete_vertex_time | 删除单个点所需的时间,单位为微秒(μs)。 |
tp_dml.delete_edge_time | 删除单个边所需的时间,单位为微秒(μs)。 |
db_query.error | 查询失败的数量。 |
db_session.create | 创建会话的数量。 |
db_session.kill | 终止会话的数量。 |
db_session.remove | 移除会话的数量(包括终止会话)。 |
db_session.create_query | 创建查询的数量。 |
db_session.close_query | 关闭查询的数量(包括终止查询)。 |
db_session.kill_query | 终止查询的数量。 |
db_transaction.trans_commit | 提交事务的数量。 |
db_transaction.trans_rollback | 事务回滚的数量。 |
db_grpc.meta_request | 服务器发送给元数据(Meta )的 gRPC 请求数量。 |
db_grpc.meta_error_request | 服务器发送给元数据(Meta )的 gRPC 请求失败的数量。 |
计数器指标查询
在 ArcGraph 图数据库中,可以通过使用 SHOW METRICS
语句或通过 HTTP 端口查询两种方式查询计数器指标的详细信息。关于如何使用 SHOW METRICS
语句查询计数器指标,详情请参见 SHOW METRICS 章节。本章节将重点介绍如何通过 HTTP 端口进行查询。
前提条件
- 已获取 ArcGraph 图数据库服务器的 IP 地址和 HTTP 端口。默认情况下,HTTP 端口通常设置为 7001。
- 已拥有支持 HTTP 的客户端,如浏览器、curl 等。
语法
curl http://localhost:7001/api/prometheus
详细说明
localhost
:表示服务器的 IP 地址,执行语句时请替换为实际的 ArcGraph 图数据库服务器的 IP 地址。
示例
ArcGraph 图数据库服务器的 IP 地址为 0.0.0.0
,HTTP 端口为 7001
,在支持 HTTP 的客户端中执行以下命令来查询此服务器下目前所有的计数器指标信息。命令如下:
curl http://0.0.0.0:7001/api/prometheus
返回结果示例如下:
arcGraph_counter{counter_name="db_session.close_query",describe="Total number of closed queries (including kills)",server_id="1"} 13
arcGraph_counter{counter_name="db_session.create",describe="Total number of sessions created",server_id="1"} 1
arcGraph_counter{counter_name="db_session.create_query",describe="Total number of queries created",server_id="1"} 13
arcGraph_counter{counter_name="db_transaction.trans_commit",describe="Total number of transaction commit",server_id="1"} 5
arcGraph_counter{counter_name="db_transaction.trans_rollback",describe="Total number of transaction rollback",server_id="1"} 2
结果说明:
参数 | 说明 |
---|---|
arcGraph_counter | 返回结果中,以 arcGraph_counter 为首的每一行都代表了一个计数器指标,该行末尾的参数表示该计数器指标的值,如 13 。 |
counter_name | 表示计数器指标名称。 |
server_id | 产生该计数器指标的服务器 ID。 |
describe | 该计数器指标的描述。 |
慢查询日志
在图数据库的日常运维与优化中,慢查询日志(简称慢日志)是不可或缺的一部分。它记录着执行缓慢的查询,帮助用户快速定位性能瓶颈,优化查询效率,确保数据库高效稳定运行。本章节将详细介绍 ArcGraph 图数据库中的慢查询日志功能及其配置方法。
配置慢查询日志
开启并配置慢查询日志功能后,ArcGraph 图数据库会自动将执行时间超过指定阈值的查询视为慢查询,并记录到慢查询日志文件中。以下是慢查询日志的关键配置项及其配置方法说明,请注意,这些配置一旦设置成功,将立即在当前客户端连接的服务器节点上生效,不会影响集群中的其他服务器节点,并且在重启系统后仍会保存该配置。
开启慢查询日志功能
通过在 ArcGraph 图数据库中修改 log_enable_slow_file
配置项来开启慢查询日志功能。默认情况下,ArcGraph 图数据库已开启该功能。
ALTER CONFIG log_enable_slow_file = true;
设置慢查询时间阈值
通过在 ArcGraph 图数据库中修改 long_query_time
配置项来设置慢查询的时间阈值(单位为秒)。默认阈值为 10.0 秒,可根据实际需求调整。
ALTER CONFIG long_query_time = 10;
设置文件存储路径和文件名
根据实际情况可以在 ArcGraph 图数据库的 server_config.toml
配置文件中,通过修改 [log]
部分的 slow_file_path
(文件存放路径)、slow_file_name
(文件名)配置项,自定义慢查询日志文件的存储路径和文件名。
[log]
部分内容示例如下,修改前请确认已获取 server_config.toml
配置文件并拥有修改权限。
[log]
slow_file_path = "./log/slow"
slow_file_name = "slow.log"
ArcGraph 图数据库的慢查询日志文件默认存放在 ./log/slow/
目录下,文件名默认以 slow.log
为首并遵循日期命名规则,如 slow.log.2024-07-17
,可通过 SHOW CONFIGS
语句查看这些信息。
查看慢查询日志配置
您可以在 ArcGraph 图数据库中使用以下命令查看慢查询日志的相关配置。
-
查看慢查询日志功能是否已开启:
SHOW CONFIGS LIKE "log_enable_slow_file";
若返回结果为
true
,则表示已开启慢查询日志功能。 -
查看慢查询的时间阈值:
SHOW CONFIGS LIKE "long_query_time";
返回结果中显示当前设置的慢查询时间阈值。
-
查看慢查询日志文件的存放路径和文件名:
# 查看慢查询日志文件的存放路径
SHOW CONFIGS LIKE "log_slow_file_path";
# 查看慢查询日志文件的文件名
SHOW CONFIGS LIKE "log_slow_file_name";
查看慢查询日志详情
慢查询日志功能配置完成后,ArcGraph 图数据库将自动记录慢查询日志。您可以在指定的路径下找到慢查询日志文件(默认存放在 ./log/slow/
目录下,文件名遵循日期命名规则,如 slow.log.2024-07-17
),并使用文本编辑器或命令行工具查看其内容。
ArcGraph 图数据库会将同一天内的所有慢查询日志追加到同一个文件中(如 slow.log.2024-07-17
),从而简化了日志管理和查询过程。若慢查询日志配置发生变更,新的日志条目仍会按照时间顺序追加到相应的日志文件中,而不会覆盖旧日志信息。
示例
慢查询日志内容示例如下:
2024-07-17T07:25:21.940693Z INFO QueryService IO-worker ThreadId(06) slow_log: src/server/src/service/grpc_service.rs:405: 7213797935748882098 graph name: "ARC_GRAPH_TEST" stmt: "MATCH (n:Person)-[:KNOWS]->(m) RETURN n, m;" query_time: 10.016241313s
详细说明
参数 | 说明 |
---|---|
2024-07-17T07:25:21.940693Z | 表示生成这条慢查询日志的具体时间。 |
QueryService IO-worker ThreadId(06) | 表示查询服务 IO 工作线程,QueryService IO-worker ThreadId(06) 表示这条日志是由查询服务的 IO 工作线程(编号为 06)产生的。 |
slow_log | 慢查询日志标签,表示该条日志为慢查询日志。 |
7213797935748882098 | 表示会话 ID。 |
graph name | 表示执行查询时所使用的图的名称,如示例中的 ARC_GRAPH_TEST 。 |
stmt | 表示执行的 Cypher 查询语句。 |
query_time | 表示查询执行的具体持续时间(单位为秒),如示例中的 10.016241313s 。 |
相关操作
- 查看系统配置:更多查看系统配置的操作,请参见 SHOW CONFIGS 章节。
- 修改系统配置:更 多修改系统配置的操作,请参见 配置参数 章节。
审计日志
在 ArcGraph 图数据库中,审计日志是保障系统安全、监控用户行为及排查问题的重要功能。本章节将详细介绍 ArcGraph 图数据库中的审计日志功能及其配置方法。
配置审计日志
开启并配置审计日志功能后,ArcGraph 图数据库会将符合审计规则的操作自动记录在审计日志文件中。以下是审计日志的关键配置项及其配置方法说明,请注意,这些配置一旦设置成功,将立即在当前客户端连接的服务器节点上生效,不会影响集群中的其他服务器节点,并且在重启系统后仍会保存该配置。
开启审计日志功能
通过在 ArcGraph 图数据库中修改 log_enable_audit_file
配置项来开启审计日志功能。默认情况下,ArcGraph 图数据库已开启该功能。
ALTER CONFIG log_enable_audit_file = true;
设置审计规则
ArcGraph 图数据库支持高度可配置的审计日志功能,允许用户根据实际需要灵活设置审计规则,以满足不同场景下的审计需求。以下是审计规则的关键配置项及其说明,请注意,不同的审计规则之间采用逻辑与(AND
)关系,即只有当一条日志记录同时满足所有指定的审计规则时,才会被记录为审计日志,而同一审计规则可配置多个审计条件(使用英文逗号“;”分隔),这些条件之间采用逻辑或(OR
)关系,满足任意条件即可触发审计。
SQL 类型审计
通过在 ArcGraph 图数据库中修改 audit_sql_type
配置项来指定需要审计的 SQL 操作类型。支持设置的操作类型包括:query
(查询)、show
(显示)、dml
(如插入、更新、删除数据等操作)、ddl
(如创建、修改、删除图 Schema 等操作)、login
(登录)等。默认值为空,表示对所有 SQL 类型进行审计。
-
示例 1
若只需审计查询(query
)操作,可执行如下命令:ALTER CONFIG audit_sql_type = "query";
-
示例 2
若需审计查询(query
)和显示(show
)操作,可执行如下命令:ALTER CONFIG audit_sql_type = "query;show";
图审计
通过在 ArcGraph 图数据库中修改 audit_graph_name
配置项来指定需要审计的具体图。默认值为空,表示对所有图进行审计。
示例
若只需审计图 ARC_GRAPH_TEST
中的操作,可执行如下命令:
ALTER CONFIG audit_graph_name = "ARC_GRAPH_TEST";
客户端审计
通过在 ArcGraph 图数据库中修改 audit_client_ip
配置项来指定需要审计的客户端 IP 地址。默认值为空,表示对所有客户端的操作进行审计。
示例
若只需审计客户端 IP 地址为 127.0.0.1
的操作,可执行如下命令:
ALTER CONFIG audit_client_ip = "127.0.0.1";
用户审计
通过在 ArcGraph 图数据库中修改 audit_user_name
配置项来指定需要审计的用户名。默认值为空,表示对所有用户的操作进行审计。
示例
若只需审计用户 arcgraph
的操作,可执行如下命令:
ALTER CONFIG audit_user_name = "arcgraph";
时间审计
通过在 ArcGraph 图数据库中修改 audit_query_time
配置项来指定开始审计的时间(该时间需以时间戳格式提供)。默认值为 -1.0,表示对开启审计日志功能后的所有时间点的操作进行审计。
示例
若需审计用户在时间戳“1721379600”之后执行的操作,可执行如下命令:
ALTER CONFIG audit_query_time = 1721379600;
设置文件存储路径和文件名
根据实际情况可以在 ArcGraph 图数据库的 server_config.toml
配置文件中,通过修改 [log]
部分的 audit_file_path
(文件存放路径)、audit_file_name
(文件名)配置项,自定义审计日志文件的存储路径和文件名。
[log]
部分内容示例如下,修改前请确认已获取 server_config.toml
配置文件并拥有修改权限。
[log]
audit_file_path = "./log/audit"
audit_file_name = "audit.log"
ArcGraph 图数据库的审计日志文件默认存放在 ./log/audit/
目录下,文件名默认以 audit.log
为首并遵循日期命名规则,如 audit.log.2024-07-17
,可通过 SHOW CONFIGS
语句查看这些信息。
查看审计日志配置
您可以在 ArcGraph 图数据库中使用以下命令查看审计日志的相关配置。
查看审计日志整体配置
在 ArcGraph 图数据库中执行如下命令,查看与审计日志相关的所有配置项的设置情况:
SHOW CONFIGS LIKE "%audit%";
查看功能是否已开启
在 ArcGraph 图数据库中执行如下命令,查看功能是否已开启:
SHOW CONFIGS LIKE "log_enable_audit_file";
若返回结果为 true
,则表示已开启审计日志功能。
查看审计规则
您可以在 ArcGraph 图数据库中使用以下命令查看当前配置的审计规则,若返回结果为空(审计时间为“-1.0”)时,表示不对该规则进行审计过滤:
-
查看审计的 SQL 类型:
SHOW CONFIGS LIKE "audit_sql_type";
-
查看审计的图名称:
SHOW CONFIGS LIKE "audit_graph_name";
-
查看审计的客户端 IP 地址:
SHOW CONFIGS LIKE "audit_client_ip";
-
查看审计的用户名:
SHOW CONFIGS LIKE "audit_user_name";
-
查看审计开始时间:
SHOW CONFIGS LIKE "audit_query_time";
查看文件存放路径和文件名
在 ArcGraph 图数据库中执行如下命令,查看审计日志文件的存放路径和文件名:
# 查看审计日志文件的存放路径
SHOW CONFIGS LIKE "log_audit_file_path";
# 查看审计日志文件的文件名
SHOW CONFIGS LIKE "log_audit_file_name";
查看审计日志详情
审计规则配置完成后,ArcGraph 图数据库将根据设定的规则自动记录审计日志。用户可以在指定的路 径下找到审计日志文件(默认存放在 ./log/audit/
目录下,文件名遵循日期命名规则,如 audit.log.2024-07-17
),并使用文本编辑器或命令行工具查看其内容。
ArcGraph 图数据库将在同一天内的所有审计日志追加到同一个文件中(如 audit.log.2024-07-17
),从而简化了日志管理和查询过程。若审计规则发生变更,新的日志条目仍会按照时间顺序追加到相应的日志文件中,而不会覆盖旧日志信息。
示例
审计日志内容示例如下:
2024-07-17T10:47:10.802723Z INFO Background IO-worker ThreadId(29) audit: src/job_manager/src/job_manager.rs:494: cluster 1 graph 1031 job id 4516252804192575588 type - status done job RawJobSpec { cluster_id: 1, graph_id: 1031, job_id: 4516252804192575588, job_type: DropGraph, job_json_str: "{\"job_id\":4516252804192575588,\"graph_id\":1031,\"partition_ids\":[0],\"graph_name\":\"ARC_GRAPH_TEST\",\"stmt_ctx\":{\"id\":7213797935748881495,\"cluster_id\":1,\"graph_id\":1031,\"txn_id\":7213797935748882124,\"stmt_ts\":451205599266603305,\"stmt_type\":{\"Job\":\"DropGraph\"},\"depend_objects\":{\"graph_id\":1031,\"schema\":[]},\"session_variable\":{\"session_id\":0,\"computing_batch_send_size\":1000,\"request_timeout\":300000,\"computing_batch_neighbor_size\":20000,\"computing_neighbor_task_num\":10,\"compiler_max_var_hops\":8,\"computing_batch_size\":20000,\"computing_batch_scan_size\":20000,\"compiler_opt_enable_index_scan\":true,\"compiler_opt_enable_mat_pushdown\":true,\"compiler_enable_export_optsteps\":false,\"compiler_enable_apply_batch\":false,\"computing_enable_property\":false,\"computing_enable_profile_peek_data\":false,\"session_tti\":600},\"read_follower\":false,\"coordinator_host\":null,\"store_ts\":451205599266603305}}", partition_id: None, job_name: "ARC_GRAPH_TEST", desc: None, priority: None, preceding_job_id: None }
详细说明
参数 | 说明 |
---|---|
2024-07-17T10:47:10.802723Z | 表示生成这条审计日志的具体时间。 |
Background IO-worker ThreadId(29) | 线程 ID,即执行日志记录操作的线程标识符。 |
audit | 审计日志标签,表示该条日志为审计日志。 |
相关操作
- 查看系统配置:更多查看系统配置的操作,请参见 SHOW CONFIGS 章节。
- 修改系统配置:更多修改系统配置的操作,请参见 配置参数 章节。