- 资源:Investigation
- 方法
资源:Investigation
描述调查对象的消息 Next Id: 24
JSON 表示法 |
---|
{ "name": string, "createTime": string, "updateTime": string, "labels": { string: string, ... }, "revision": string, "revisionIndex": integer, "revisionPredecessor": string, "annotations": { object ( |
字段 | |
---|---|
name |
标识符。资源的名称 |
createTime |
仅限输出。[仅限输出] 创建时间戳 采用 RFC 3339 标准,生成的输出将始终在末尾带 Z,并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
updateTime |
仅限输出。[仅限输出] 更新时间戳 采用 RFC 3339 标准,生成的输出将始终在末尾带 Z,并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
labels |
可选。标签作为键值对 包含一系列 |
revision |
仅限输出。[仅限输出] 调查的当前修订版本 |
revisionIndex |
仅限输出。[仅限输出] 调查的当前修订版本的索引。从 1 开始。 |
revisionPredecessor |
可选。相应修订版本的前身修订版本的名称。例如,当因编辑而创建新修订版本时,界面会将此属性设置为现有修订版本。 |
annotations |
可选。调查的注释。与标签不同,这些注释在运行调查时可能具有语义含义,并且不会被结算等其他系统读取。 |
executionState |
仅限输出。[仅限输出] 相应调查的执行状态。 |
error |
仅限输出。[仅限输出] 如果调查执行状态为“失败”,此字段将包含错误消息。 |
operation |
仅限输出。最近对调查执行的“运行”操作。 |
title |
必需。调查的直观易懂的显示标题。 |
observations |
可选。从观测 ID 到观测的映射。这是一个映射,以便我们可以使用最新修订版本中的版本来干净地覆盖旧观测结果。如需有关选择 ID 的指导,请参阅“观测”。 包含一系列 |
observerStatuses |
可选。上述内容的复数形式。代码会逐渐过渡到这种形式。 包含一系列 |
clarificationsNeeded |
可选。系统需要向用户提出的问题。界面会将结果作为新的观测结果传递回来。相应观测结果的 ID 将是 clarificationsNeeded 映射中相应条目的键。 包含一系列 |
InvestigationAnnotations
调查的其他用户定义的注释。有一些预定义的,还有一个供新应用添加自己的。
JSON 表示法 |
---|
{
"followUp": boolean,
"extrasMap": {
string: string,
...
},
"revisionLastRunInterval": {
object ( |
字段 | |
---|---|
followUp |
仅限输出。需要进行后续调查才能继续。通常由问题排查工具设置为 true,并在问题回答完毕后设置为 false。 |
extrasMap |
可选。应用所需的其他注释。这些内容不会被遮盖,并且不应包含任何 CCC/PII。 包含一系列 |
revisionLastRunInterval |
可选。上次运行修订版本时的开始/结束时间。 |
间隔
表示时间间隔,编码为开始时间戳(含)和结束时间戳(不含)。
开始时间必须早于或等于结束时间。如果开始时间与结束时间相同,则时间间隔为空(不匹配任何时间)。如果未指定开始时间和结束时间,则该时间段会匹配任何时间。
JSON 表示法 |
---|
{ "startTime": string, "endTime": string } |
字段 | |
---|---|
startTime |
可选。区间的开始值(含)。 如果指定,与此时间段匹配的时间戳必须等于或晚于开始时间。 采用 RFC 3339 标准,生成的输出将始终在末尾带 Z,并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
endTime |
可选。间隔的结束值(不含)。 如果指定了此值,则与相应时间段匹配的时间戳必须在结束时间之前。 采用 RFC 3339 标准,生成的输出将始终在末尾带 Z,并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
InvestigationExecutionState
调查的执行状态。
枚举 | |
---|---|
INVESTIGATION_EXECUTION_STATE_UNSPECIFIED |
默认值。此值未使用。 |
INVESTIGATION_EXECUTION_STATE_RUNNING |
调查正在进行中。 |
INVESTIGATION_EXECUTION_STATE_MODIFIED |
自上次更新症状以来,尚未执行过调查。 |
INVESTIGATION_EXECUTION_STATE_FAILED |
调查执行已完成,但执行失败。 |
INVESTIGATION_EXECUTION_STATE_COMPLETED |
所有执行任务均已完成,调查处于静止状态。 |
观察
观测是用户与系统之间或系统不同组件之间交换的基本单位。它是具有相关性的元素。因此,观测结果应相对较小;如果您希望用户对观测结果的“一部分”做出反应,则应将其分解为较小的观测结果。特定的 Runbook 运行、特定的用户参数输入、特定的有趣日志条目可能都是单独的观测结果。这意味着,在一次调查中,可能需要处理数十个或数百个文件。下一个 ID:26
JSON 表示法 |
---|
{ "id": string,"timeIntervals": [ { object ( |
字段 | |
---|---|
id |
必需。相应观测结果的唯一标识符。应取决于观测的“核心内容”,但不取决于相关性等。不应依赖于任何可能因修订版本而异的不可预测的因素来运行。这也是父级调查中的地图键。它们应具有层次结构,以“.”作为分隔符,并以观测器的名称开头。例如,diagnostics.runbook.ABC、signals.logs 或 user.input.2。它应可用作网址组成部分。(不区分大小写 [a-z0-9-._]+)这些内容不会向用户呈现,但会在数据模型中显示。Google 工程师将使用这些信息来定位 bug,因此这些信息应具有一定的可读性。 |
timeIntervals[] |
可选。相应观测结果的出现时间。观测结果应至少包含一个时间范围,以便在时间轴上显示观测结果,并找到相关事件。对于重复但不连续的活动,可以有多个范围。界面可能会将这些信息合并显示。 |
title |
可选。界面中显示的标签。在调查中,此值不必是唯一的。不过,它应具体且不超过 80 个字符,以便用户轻松浏览多项观测结果。“配置了所有已丢弃功能的 Nettools pod”比“有趣的 pod 配置”好得多。 |
observationType |
必需。观测结果的类型(例如日志、指标等) |
observerType |
必需。数据的来源,例如用户、系统代码、LLM 等。 |
text |
可选。与观测结果关联的自然语言 [Markdown] 文本。这是核心内容,而不是元数据说明。 |
data |
可选。观测者选择的观测结构化表示形式。可选。如果存在,观测者还应提供观测结果的文本说明,以便 LLM 进行处理并在界面中呈现。 |
dataUrls |
可选。从人类可读的名称到支持性证据的网址的映射。地图键将呈现为网址锚文本。每当观测结果取决于系统之外的事物时,请填写此项。例如,可以重新生成观测结果的日志/指标/等查询。 包含一系列 |
knowledgeUrls |
可选。从直观易懂的名称到文档网址的映射。 包含一系列 |
baseObservations[] |
可选。相应观测所依据的其他观测的 ID。例如,结论观测会记录用于生成该结论的观测。提取的参数将记录其提取来源。在修订版本中,前提和结论的图将是非循环的。 |
relevantResources[] |
可选。与观测结果相关的 Google Cloud 资源。这些应是完全限定的资源 URI,例如 "//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/my-instance" |
recommendation |
可选。自然语言 [markdown] 文本,用于描述建议采取的补救措施 / 修复根本原因。此字段没有格式限制,目前不会进行机器处理。建议可以包括:- 高级别补救措施说明 - 包含可执行命令的具体战术性补救措施步骤 - 包含可执行命令的具体战术性问题排查步骤,用于确定下一步的调查方向 |
systemRelevanceScore |
可选。系统推断出的相应观测结果与调查的相关程度。可选。应在 [-1, 1] 范围内。对于 OBSERVATION_TYPE_HYPOTHESIS,表示对解释的置信度。只有根本原因假设会相互比较排名。对于其他 ObservationType,此值表示相关性得分,并会相互比较。值为 0 表示中性。 |
relevanceOverride |
可选。用户的相关性判断。 |
observationCompletionState |
可选。ObservationCompletionState 表示发出的观测结果是否已完全形成,是否应向用户显示。此属性旨在允许隐藏处于中间状态的观测结果。 |
observedNormalOperation |
可选。相应观测结果是否提供有关问题 / 根本原因的信息 (false),还是表明正常运行 (true)。这在概念上与相关性不同,使用方式也不同。无关的观测结果应向 LLM 和用户隐藏。对问题的相关观察应显示为观察结果,并应激发假设。正常性相关发现可能会 / 可能不会显示在界面中,但应由 LLM 使用,以过滤掉被该发现驳斥的假设。 |
ObservationType
表示构成观测结果的数据类型。这与来源无关:日志可能由用户明确提供,也可能通过 AI 提取,还可能由 Runbook 发现。
枚举 | |
---|---|
OBSERVATION_TYPE_UNSPECIFIED |
请勿使用。指定观测类型。如果需要,请添加新的枚举。 |
OBSERVATION_TYPE_CLOUD_LOG |
此观测结果的文本是一条日志条目。 |
OBSERVATION_TYPE_CLOUD_METRIC |
相应观测对象的内容是指标或一组指标。 |
OBSERVATION_TYPE_CAIS_CONFIG |
配置 |
OBSERVATION_TYPE_CAIS_CONFIG_DIFF |
配置更改 |
OBSERVATION_TYPE_CLOUD_ALERT |
提醒 |
OBSERVATION_TYPE_CICD_EVENT |
来自持续集成系统的事件,例如探测器故障。 |
OBSERVATION_TYPE_TEXT_DESCRIPTION |
自由文本输入,例如初始用户输入。可以是 Markdown。 |
OBSERVATION_TYPE_HYPOTHESIS |
这是系统得出的 [初步] 结论。这些数据可以成为后续修订版本的输入。在这种情况下,系统会使用建议,但不会使用补救措施。 |
OBSERVATION_TYPE_STRUCTURED_INPUT |
结构化输入,例如放入表单中的 Runbook 参数 |
OBSERVATION_TYPE_COMPOSITE |
用于包含多种证据(例如 Runbook 输出)的观测结果。 |
OBSERVATION_TYPE_OTHER |
如果其他类型都不适用,runbook 输出可以是“其他”。 |
OBSERVATION_TYPE_RELATED_RESOURCES |
我们认为与调查相关的资源。 |
OBSERVATION_TYPE_LOG_THEME |
日志中发现的主题。 |
OBSERVATION_TYPE_CONFIG_ANALYSIS |
包含 LLM 分析的配置的信号输出。 |
OBSERVATION_TYPE_OUTAGE |
包含来自 PSH 的中断的信号输出。 |
OBSERVATION_TYPE_KNOWLEDGE |
提供有关特定用户问题的知识的文本。例如,错误目录说明/外部链接、RAG 等。 |
ObserverType
这表示数据是如何进入调查的。
枚举 | |
---|---|
OBSERVER_TYPE_UNSPECIFIED |
请勿使用。指定观测结果的来源。如果需要,请添加新的枚举。 |
OBSERVER_TYPE_DIAGNOSTICS |
出于内部归因方面的考虑,我们会将这些内容分开。诊断具有明确的根本原因概念,例如通过 Runbook。 |
OBSERVER_TYPE_SIGNALS |
信号用于处理没有明确根本原因的情况。 |
OBSERVER_TYPE_DETERMINISTIC_CODE |
此代码仅依赖于本地。尤其是错误目录查找。 |
OBSERVER_TYPE_AI |
这是指在推理过程中做出的仅依赖于前提中列出的观测结果的 AI 推理。 |
OBSERVER_TYPE_USER |
用户输入观测结果,包括对澄清问题的回答。 |
OBSERVER_TYPE_ALERT |
来自 GCA 外部提醒的观测结果。 |
UserRelevance
表示用户对观测结果表达的相关性判断。界面将类似于“我喜欢”或“不喜欢”按钮。
枚举 | |
---|---|
USER_RELEVANCE_UNSPECIFIED |
用户尚未将此观测结果标记为相关或不相关。 |
USER_RELEVANCE_PROMOTED |
用户将相应观测结果标记为相关。 |
USER_RELEVANCE_REJECTED |
用户将此观测结果标记为无关。 |
ObservationCompletionState
确定观测是否已完全形成并完整。作为一种副作用,这会决定是否向用户显示观测结果。
枚举 | |
---|---|
OBSERVATION_COMPLETION_STATE_UNSPECIFIED |
请勿使用。 |
OBSERVATION_COMPLETION_STATE_COMPLETE |
此观测结果已完全形成,应向用户显示。 |
OBSERVATION_COMPLETION_STATE_INCOMPLETE |
此观测结果缺少一些信息,或者需要由其他观测者进一步处理。此类观测结果不应保留到未来的调查修订版本中。 |
ObserverStatus
ObserverStatus 表示在执行调查期间的特定时间点,观察者的状态。注意:默认情况下,此消息中的任何内容都不会被遮盖。组件不应在此处放置 PII / CCC,除非已进行编辑。下一个 ID:13
JSON 表示法 |
---|
{ "observer": string, "observerExecutionState": enum ( |
字段 | |
---|---|
observer |
必需。相应状态所针对的观测器的 ID。观测器 ID 应采用人类可读懂的分层结构,例如“signals.logs.firewall_rules”或“diagnostics.error_catalog”。 |
observerExecutionState |
可选。观察者的当前执行状态。 |
observerDisplayName |
必需。描述相应观测器时向用户显示的名称。请注意,界面可能会将此字符串替换为国际化版本,因此不应动态生成此字符串。必需,以便用户了解系统所指的观测器(例如 runbook)。 |
updateTime |
可选。状态的更新时间。可选,因为观察者负责设置它。当观测者完成时,变为 endTime。 采用 RFC 3339 标准,生成的输出将始终在末尾带 Z,并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
startTime |
可选。观测器的启动时间。可选,因为观察者负责设置它。当观察者完成时,此时间和 updateTime 之间的差值就是观察者运行时间。 采用 RFC 3339 标准,生成的输出将始终在末尾带 Z,并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
updateComment |
可选。来自观测者的状态更新。可能会记录以用于调试目的。这些内容可能会向用户显示。良好的更新应为“参数匹配,已排队等待执行”或“已检查日志文件 2/5”。 |
observerErrors[] |
可选。调查系统中的一种错误,导致观察者无法进行特定观察。此处的错误字符串将显示给用户。重复,因为观测者可能缺少多项权限。 |
ObserverExecution
观测者的状态。
枚举 | |
---|---|
OBSERVER_EXECUTION_UNSPECIFIED |
未指定观测者状态。 |
OBSERVER_EXECUTION_NOT_STARTED |
调查尚未开始。 |
OBSERVER_EXECUTION_RUNNING |
调查正在运行,并且相应观察者可运行或正在运行。 |
OBSERVER_EXECUTION_COMPLETE |
观测器已完成,没有出现内部错误。 |
OBSERVER_EXECUTION_FAILED |
观测器尝试运行,但因错误而失败。此消息特定于某个组件,如果显示观测结果,则可能会在界面中呈现此消息,但优先级非常低。 |
OBSERVER_EXECUTION_BLOCKED |
观察者处于阻塞状态,等待输入。 |
OBSERVER_EXECUTION_INVESTIGATION_BLOCKED |
观察者报告了会阻碍或严重影响调查的错误,例如 CAIS 或日志记录已停用。应在界面中以醒目方式呈现。 |
OBSERVER_EXECUTION_INVESTIGATION_DEGRADED |
观测器报告的错误会降低调查的有效性,可能需要用户在缓解原因后升级或重新运行调查。 |
AbsentObservation
所需观测的标识符。通常是一个形参,但可以扩展到其他情况。
JSON 表示法 |
---|
{ // Union field |
字段 | |
---|---|
联合字段 t 。缺少参数的情况不止一种。t 只能是下列其中一项: |
|
param |
可选。runbook 参数。 |
generalMissingObservation |
可选。用户可以提供但不是 runbook 参数的缺失观测结果。 |
pendingObservation |
可选。尚未创建的观测结果,观察者应通过运行来创建。这可能会促使系统执行 runbook。 |
GeneralAbsentObservation
缺少的观测结果(不是 Runbook 参数)。
JSON 表示法 |
---|
{ "id": string, "title": string, "validationRegex": string } |
字段 | |
---|---|
id |
可选。缺失观测数据的 ID。 |
title |
可选。要在界面中显示的标题 |
validationRegex |
可选。答案必须匹配的正则表达式。必须符合 JavaScript 的正则表达式字符串格式语法。请参阅 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/RegExp#syntax |
ObserverLogEntry
来自观测器的日志条目。
JSON 表示法 |
---|
{
"logTime": string,
"logMessage": string,
"logSeverity": enum ( |
字段 | |
---|---|
logTime |
必需。日志的创建时间。 采用 RFC 3339 标准,生成的输出将始终在末尾带 Z,并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
logMessage |
必需。人类可读的消息。 |
logSeverity |
必需。日志消息的严重程度。 |
data |
可选。任何其他数据,例如 RPC 错误。警告:与 ObserverStatus 的其余部分一样,此字段的内容可能会被读取,以用于 Observer 调试。对于敏感数据,请改用 |
sensitiveData |
可选。可能包含有关被调查项目的敏感信息的任何其他数据。出于调试目的读取 ObserverStatus 时,系统会对此字段进行编辑。 |
LogSeverity 枚举中的静态方法
日志条目中所述事件的严重性,以以下列出的标准严重性级别之一表示。为方便您参考,我们为各个级别分配了以下数值。使用所列值以外的数值的效果未定义。
您可以按严重程度过滤日志条目。例如,以下过滤条件表达式将匹配严重程度为 INFO
、NOTICE
和 WARNING
的日志条目:
severity > DEBUG AND severity <= WARNING
如果您在编写日志条目,则应将其他严重性编码映射到这些标准级别之一。例如,您可以将 Java 的所有 FINE、FINER 和 FINEST 级别映射到 LogSeverity.DEBUG
。您可以根据需要保留日志条目载荷中的原始严重程度。
枚举 | |
---|---|
DEFAULT |
(0) 日志条目没有分配严重级别。 |
DEBUG |
(100) 调试或跟踪信息。 |
INFO |
(200) 常规信息,例如正在进行的状态或表现。 |
NOTICE |
(300) 正常但重要的事件,例如启动、关闭或配置更改。 |
WARNING |
(400) 警告事件可能会导致问题。 |
ERROR |
(500) 错误事件可能会导致问题。 |
CRITICAL |
(600) 严重事件会导致更严重的问题或中断。 |
ALERT |
(700) 必须立即采取行动。 |
EMERGENCY |
(800) 一个或多个系统无法使用。 |
ClarificationNeeded
系统需要澄清。
JSON 表示法 |
---|
{ "runbookParameter": { object ( |
字段 | |
---|---|
runbookParameter |
可选。澄清的结果是观测。用户需要提供的 Runbook 参数。 |
generalMissingObservation |
可选。缺少不是 Runbook 参数的观测结果。 |
parentObserverNames[] |
可选。请求此澄清的观测者的显示名称。界面将按这些名称进行分组。 |
RunbookParameter
由诊断任务更新的 Runbook 的参数元数据。
JSON 表示法 |
---|
{ "id": string, "displayName": string, "description": string, "exampleValues": [ string ], "value": string, "associatedAssetTypes": [ string ] } |
字段 | |
---|---|
id |
可选。参数的名称。 |
displayName |
可选。要向用户显示的参数的名称。 |
description |
可选。参数说明。 |
exampleValues[] |
可选。参数值的示例。 |
value |
可选。参数的值(如有)。 |
associatedAssetTypes[] |
可选。如果存在,则表示此参数可能属于的资源类型列表。例如,“compute.googleapis.com/Instance”。 |
方法 |
|
---|---|
|
在给定的项目和位置中创建新的调查。 |
|
删除单个调查。 |
|
获取单个调查的详细信息。 |
|
获取资源的访问权限控制政策。 |
|
列出给定项目和位置中的调查。 |
|
更新单个调查的参数。 |
|
针对指定资源设置访问权限控制政策。 |
|
返回调用者对指定资源拥有的权限。 |