|| 日志 - Neo4j 图数据科学 - Neo4j 文档

日志记录

在 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 无效"

© . This site is unofficial and not affiliated with Neo4j, Inc.