遥测数据收集

Firebase 遥测插件会将指标、轨迹和日志组合导出到 Google Cloud Observability。本文档详细介绍了系统会收集哪些指标、轨迹属性和日志,以及延迟时间、配额和费用方面的预期情况。

遥测延迟

Firebase 中可能需要稍等一段时间才能显示给定调用的遥测数据。这取决于您的导出间隔时间(默认为 5 分钟)。

配额和限制

请务必注意以下几个配额:

费用

Cloud Logging、Cloud Trace 和 Cloud Monitoring 提供宽裕的免费层级。如需查看具体价格,请访问以下链接:

指标

Firebase 遥测插件会收集多种不同的指标,以支持下文详述的各种 Genkit 操作类型。

地图项指标

功能是 Genkit 代码的顶级入口点。在大多数情况下,这将是一个流程。否则,这将是轨迹中的最上层跨度。

名称 类型 说明
genkit/feature/requests 计数器 请求数量
genkit/feature/latency 直方图 执行延迟时间(毫秒)

每个地图项指标都包含以下维度:

名称 说明
名称 功能的名称。在大多数情况下,这是顶级 Genkit 流
状态 “success”或“failure”,具体取决于功能请求是否成功
error 仅在 status=failure 时设置。包含导致失败的错误类型
来源 Genkit 源语言。例如,'ts'
sourceVersion Genkit 框架版本

操作指标

操作代表 Genkit 中的通用执行步骤。系统会跟踪以下每个步骤的指标:

名称 类型 说明
genkit/action/requests 计数器 此操作的执行次数
genkit/action/latency 直方图 执行延迟时间(毫秒)

每项操作指标都包含以下维度:

名称 说明
名称 操作的名称
featureName 要执行的父级地图项的名称
路径 从功能根目录到此操作的执行路径。例如,'/myFeature/parentAction/thisAction'
状态 “success”或“failure”,具体取决于操作是否成功
error 仅在 status=failure 时设置。包含导致失败的错误类型
来源 Genkit 源语言。例如,'ts'
sourceVersion Genkit 框架版本

生成指标

这些是与与模型互动的操作相关的特殊操作指标。除了请求和延迟时间之外,系统还会跟踪输入和输出,并提供特定于模型的维度,以便更轻松地进行调试和配置调整。

名称 类型 说明
genkit/ai/generate/requests 计数器 此模型的调用次数
genkit/ai/generate/latency 直方图 执行延迟时间(毫秒)
genkit/ai/generate/input/tokens 计数器 输入令牌
genkit/ai/generate/output/tokens 计数器 输出令牌
genkit/ai/generate/input/characters 计数器 输入字符
genkit/ai/generate/output/characters 计数器 输出字符
genkit/ai/generate/input/images 计数器 输入图片
genkit/ai/generate/output/images 计数器 输出图片
genkit/ai/generate/input/audio 计数器 输入音频文件
genkit/ai/generate/output/audio 计数器 输出音频文件

每个生成指标都包含以下维度:

名称 说明
modelName 模型的名称
featureName 要执行的父级地图项的名称
路径 从功能根目录到此操作的执行路径。例如,'/myFeature/parentAction/thisAction'
latencyMs 模型的响应时间
状态 “success”或“failure”,具体取决于功能请求是否成功
error 仅在 status=failure 时设置。包含导致失败的错误类型
来源 Genkit 源语言。例如,'ts'
sourceVersion Genkit 框架版本

跟踪记录

所有 Genkit 操作都会自动插桩,以便为您的 AI 功能提供详细轨迹。在本地,轨迹会显示在开发者界面中。对于已部署的应用,请启用 Firebase Genkit Monitoring 以获得相同级别的可见性。

以下部分介绍了您可以根据轨迹中特定跨度的 Genkit 操作类型预期获得哪些轨迹属性。

根 span

根跨度具有特殊属性,有助于区分整个轨迹与单个跨度的状态属性。

属性名称 说明
genkit/feature 要执行的父级地图项的名称
genkit/isRoot 如果此 span 是根 span,则标记为 true
genkit/rootState 整体执行状态,可以是 successerror。这并不表示此步骤特别失败。

属性名称 说明
genkit/input 流的输入。由于轨迹属性大小限制,此值始终为 <redacted>
genkit/metadata/subtype Genkit 操作的类型。对于数据流,则为 flow
genkit/name 此 Genkit 操作的名称。在本例中,流的名称
genkit/output 流程中生成的输出。由于轨迹属性大小限制,此值始终为 <redacted>
genkit/path 导致跟踪记录中此步骤的完全限定执行路径,包括类型信息。
genkit/state 此跨度的执行状态,为 successerror
genkit/type 与此 span 对应的 Genkit 基元类型。对于数据流,此值为 action

Util

属性名称 说明
genkit/input 实用程序的输入。由于轨迹属性大小限制,此值始终为 <redacted>
genkit/name 此 Genkit 操作的名称。在本例中,流的名称
genkit/output 实用程序中生成的输出。由于轨迹属性大小限制,此值始终为 <redacted>
genkit/path 导致跟踪记录中此步骤的完全限定执行路径,包括类型信息。
genkit/state 此跨度的执行状态,为 successerror
genkit/type 与此 span 对应的 Genkit 基元类型。对于数据流,此值为 util

型号

属性名称 说明
genkit/input 模型的输入。由于轨迹属性大小限制,此值始终为 <redacted>
genkit/metadata/subtype Genkit 操作的类型。对于模型,则为 model
genkit/model 模型的名称。
genkit/name 此 Genkit 操作的名称。在本例中,是模型的名称。
genkit/output 模型生成的输出。由于轨迹属性大小限制,此值始终为 <redacted>
genkit/path 导致跟踪记录中此步骤的完全限定执行路径,包括类型信息。
genkit/state 此跨度的执行状态,为 successerror
genkit/type 与此 span 对应的 Genkit 基元类型。对于数据流,此值为 action

工具

属性名称 说明
genkit/input 模型的输入。由于轨迹属性大小限制,此值始终为 <redacted>
genkit/metadata/subtype Genkit 操作的类型。对于工具,则为 tool
genkit/name 此 Genkit 操作的名称。在本例中,是模型的名称。
genkit/output 模型生成的输出。由于轨迹属性大小限制,此值始终为 <redacted>
genkit/path 导致跟踪记录中此步骤的完全限定执行路径,包括类型信息。
genkit/state 此跨度的执行状态,为 successerror
genkit/type 与此 span 对应的 Genkit 基元类型。对于数据流,此值为 action

日志

对于启用了 Firebase Genkit Monitoring 的已部署应用,日志用于捕获输入、输出和配置元数据,这些元数据可提供有关 AI 功能中每个步骤的丰富详细信息。

所有日志都将包含以下共享元数据字段:

字段名称 说明
insertId 日志条目的唯一 ID
jsonPayload 用于存储每种日志类型专属变量信息的容器
标签 {module: genkit}
logName projects/weather-gen-test-next/logs/genkit_log
receivedTimestamp Cloud 接收日志的时间
资源 日志来源的相关信息,包括部署信息区域和 projectId
和程度上减少 写入的日志级别。请参阅 Cloud 的 LogSeverity
spanId 创建此日志的 span 的标识符
时间戳 客户端记录消息的时间
trace 轨迹的标识符,格式为 projects/<project-id>/traces/<trace-id>
traceSampled 表示轨迹是否已采样。不会对日志进行采样。

每种日志类型都有不同的 JSON 载荷,每个部分中都介绍了这些载荷。

输入

JSON 载荷:

字段名称 说明
消息 [genkit] Input[<path>, <featureName>],包括适用于多部分邮件的 (message X of N)
元数据 其他上下文,包括发送给操作的输入消息

元数据:

字段名称 说明
内容 发送到此 Genkit 操作的输入消息内容
featureName Genkit 流程、操作、工具、实用程序或帮助程序的名称。
messageIndex * 用于指示包含多封邮件的输入的邮件顺序的索引。对于单个消息,此值始终为 0。
型号 * 模型名称。
路径 生成此日志的执行路径(格式为 step1 > step2 > step3
partIndex * 对于多部分邮件,指示邮件中各部分的顺序的编号。在单个输入中组合文本和图片时,这种情况很常见。
qualifiedPath 生成此日志的执行路径,包括格式为 /{flow1,t:flow}/{generate,t:util}/{modelProvider/model,t:action,s:model 的类型信息
totalMessages * 此输入的总消息数。对于单个消息,此值始终为 1。
totalParts * 此邮件的部分总数。对于单部分消息,此值始终为 1。

(*) 加星标的项仅显示在模型互动输入日志中。

输出

JSON 载荷:

字段名称 说明
消息 [genkit] Output[<path>, <featureName>],包括适用于多部分邮件的 (message X of N)
元数据 其他上下文,包括发送给操作的输入消息

元数据:

字段名称 说明
candidateIndex *(已废弃) 用于指示包含多个候选项的输出的候选项顺序的索引。对于包含单个候选项的日志,此值始终为 0。
内容 Genkit 操作生成的输出消息
featureName Genkit 流程、操作、工具、实用程序或帮助程序的名称。
messageIndex * 用于指示包含多封邮件的输入的邮件顺序的索引。对于单个消息,此值始终为 0。
型号 * 模型名称。
路径 生成此日志的执行路径,格式为“step1 > step2 > step3
partIndex * 对于多部分邮件,指示邮件中各部分的顺序的索引。在单个输出中组合文本和图片时,这种情况很常见。
qualifiedPath 生成此日志的执行路径,包括格式为 /{flow1,t:flow}/{generate,t:util}/{modelProvider/model,t:action,s:model 的类型信息
totalCandidates *(已废弃) 作为输出生成的候选项总数。对于单候选人消息,此值始终为 1。
totalParts * 此邮件的部分总数。对于单部分消息,此值始终为 1。

(*) 带星号的项仅显示在模型互动输出日志中。

配置

JSON 载荷:

字段名称 说明
消息 [genkit] Config[<path>, <featureName>]
元数据 其他上下文,包括发送给操作的输入消息

元数据:

字段名称 说明
featureName Genkit 流程、操作、工具、实用程序或帮助程序的名称。
模型 模型名称。
路径 生成此日志的执行路径,格式为“step1 > step2 > step3
qualifiedPath 生成此日志的执行路径,包括格式为 /{flow1,t:flow}/{generate,t:util}/{modelProvider/model,t:action,s:model 的类型信息
来源 使用的 Genkit 库语言。此值始终会设为“ts”,因为它是唯一受支持的语言。
sourceVersion Genkit 库版本。
温度 使用的模型温度。

路径

JSON 载荷:

字段名称 说明
消息 [genkit] Paths[<path>, <featureName>]
元数据 其他上下文,包括发送给操作的输入消息

元数据:

字段名称 说明
flowName Genkit 流程、操作、工具、实用程序或帮助程序的名称。
paths 一个数组,其中包含收集的跨度的所有执行路径。