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 | 整体执行状态,可以是 success 或 error 。这并不表示此步骤特别失败。 |
流
属性名称 | 说明 |
---|---|
genkit/input | 流的输入。由于轨迹属性大小限制,此值始终为 <redacted> 。 |
genkit/metadata/subtype | Genkit 操作的类型。对于数据流,则为 flow 。 |
genkit/name | 此 Genkit 操作的名称。在本例中,流的名称 |
genkit/output | 流程中生成的输出。由于轨迹属性大小限制,此值始终为 <redacted> 。 |
genkit/path | 导致跟踪记录中此步骤的完全限定执行路径,包括类型信息。 |
genkit/state | 此跨度的执行状态,为 success 或 error 。 |
genkit/type | 与此 span 对应的 Genkit 基元类型。对于数据流,此值为 action 。 |
Util
属性名称 | 说明 |
---|---|
genkit/input | 实用程序的输入。由于轨迹属性大小限制,此值始终为 <redacted> 。 |
genkit/name | 此 Genkit 操作的名称。在本例中,流的名称 |
genkit/output | 实用程序中生成的输出。由于轨迹属性大小限制,此值始终为 <redacted> 。 |
genkit/path | 导致跟踪记录中此步骤的完全限定执行路径,包括类型信息。 |
genkit/state | 此跨度的执行状态,为 success 或 error 。 |
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 | 此跨度的执行状态,为 success 或 error 。 |
genkit/type | 与此 span 对应的 Genkit 基元类型。对于数据流,此值为 action 。 |
工具
属性名称 | 说明 |
---|---|
genkit/input | 模型的输入。由于轨迹属性大小限制,此值始终为 <redacted> 。 |
genkit/metadata/subtype | Genkit 操作的类型。对于工具,则为 tool 。 |
genkit/name | 此 Genkit 操作的名称。在本例中,是模型的名称。 |
genkit/output | 模型生成的输出。由于轨迹属性大小限制,此值始终为 <redacted> 。 |
genkit/path | 导致跟踪记录中此步骤的完全限定执行路径,包括类型信息。 |
genkit/state | 此跨度的执行状态,为 success 或 error 。 |
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 | 一个数组,其中包含收集的跨度的所有执行路径。 |