日志记录

在 GDS 库中,有三种类型的日志记录:调试日志记录、进度日志记录和提示或警告日志记录。

调试日志记录提供有关系统中事件的信息。例如,当算法计算完成时,可能会记录使用的内存量和总运行时间。当操作未能正常完成时,异常事件也会被记录。调试日志信息对于理解系统中的事件非常有用,尤其是在故障排除时。

进度日志记录用于跟踪预期耗时较长的操作的进度。这包括图投射、算法计算和结果写入。

提示或警告日志记录为用户提供与其查询相关的有用提示或警告。

所有日志条目都写入为 Neo4j 数据库配置的日志文件。有关配置 Neo4j 日志的更多信息,请参阅Neo4j 操作手册

进度日志记录过程

GDS 库本身也会跟踪进度。这使得除了查看日志文件之外,还可以通过 Cypher 检查进度。要访问当前运行任务(也称为作业)的进度信息,我们可以使用列出进度过程:gds.listProgress。GDS 库中的任务定义为正在运行的过程,例如算法或图加载过程。

列出进度过程有两种模式,具体取决于是否设置了 jobId 参数:首先,如果未设置 jobId,该过程将为每个当前运行的任务生成一行。这可以视为这些任务的摘要,例如显示特定任务的总体进度。其次,如果设置了 jobId 参数,它将显示给定运行作业的详细视图。详细视图将为该作业在执行期间将执行的每个步骤或任务生成一行。它还将显示任务如何以树形结构组织,并打印每个单独任务的进度。

对于具有管理员权限的用户,此过程将列出所有用户正在运行的任务。

语法

获取任务进度
CALL gds.listProgress(jobId: String, showCompleted: Boolean)
YIELD
  username,
  jobId,
  taskName,
  progress,
  progressBar,
  status,
  timeStarted,
  elapsedTime
表 1. 参数
名称 类型 默认值 可选 描述

jobId

字符串

""

正在运行任务的 jobId。这将触发该特定任务的详细概述。

showCompleted

布尔值

false

如果为 false,则仅列出待处理和正在运行的任务。如果为 true,则列出所有任务,包括已完成、失败和已中止的任务。如果提供了 jobId,这仅影响根任务。

表 2. 结果
名称 类型 描述

用户名

字符串

启动运行任务的用户。

jobId

字符串

正在运行任务的生成标识符。

任务名称

字符串

正在运行任务的名称,例如 Node2Vec

进度

字符串

以百分比值显示的作业进度。

进度条

字符串

以 ASCII 进度条显示的作业进度。

状态

字符串

作业的当前状态,例如 RUNNING(运行中)或 CANCELED(已取消)。

timeStarted

本地时间

任务开始时的本地真实时间。

elapsedTime

持续时间

timeStarted 到现在的持续时间。

某些通常需要运行一段时间的作业,如图投射和运行算法,在其配置参数映射中包含一个可选的 jobId。这可以使跟踪它们更容易,因为它们将列在 gds.listProgress 结果中提供的 jobId 下。对于算法,请参阅jobId 参数文档以获取更多信息。

示例

假设我们刚刚启动了 gds.node2vec.stream 过程。

CALL gds.listProgress()
YIELD
  jobId,
  taskName,
  progress
表 3. 结果
jobId 任务名称 进度

"d21bb4ca-e1e9-4a31-a487-42ac8c9c1a0d"

"Node2Vec"

"42%"

用户日志

提示和警告也可以通过 GDS 库进行跟踪,并通过 Cypher 查询访问。GDS 库会为每个用户跟踪其最近 100 个生成了提示或警告的任务,并将它们存储在内存中。当用户调用 gds.userLog 过程时,将返回其各自生成的提示和警告列表。

语法

获取用户的提示和警告
CALL gds.userLog()
YIELD
  taskName,
  timeStarted,
  message
表 4. 结果
名称 类型 描述

任务名称

字符串

生成警告或提示的任务名称,例如 WCC

timeStarted

本地时间

任务开始时的本地真实时间。

消息

字符串

与任务相关的提示或警告。

示例

假设我们已经调用了 gds.wcc.stream 过程,并设置了 relationshipWeightProperty 但未指定 threshold 值。这会生成一个警告,可以通过用户日志访问,如下所示。

CALL gds.userLog()
YIELD
  taskName,
  message
表 5. 结果
任务名称 消息

"WCC"

"除非同时设置 threshold,否则指定 relationshipWeightProperty 无效"

© . All rights reserved.