|
本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。 |
调试健康同步
概述
SUSE Observability CLI 可用于排查健康同步并修复可能阻止健康数据被正确摄取和显示在SUSE Observability中的问题。本页面描述了在调试健康同步时应采取的一般故障排除步骤,以及所用的CLI命令和返回的错误消息的描述。
常见问题
检查状态在 SUSE Observability 中更新缓慢
主要原因是健康同步的延迟高于预期。使用 CLI 命令 show stream status 来确认流的延迟、消息的吞吐量以及特定检查操作的状态。可能需要调整发送到健康同步的数据或数据发送的频率。
有用的 CLI 命令
列出流
返回所有当前同步的健康流及每个流中包含的子流数量的列表。
$ sts health list
STREAM URN | STREAM CONSISTENCY MODEL | SUB STREAM COUNT
urn:health:sourceId:streamId | REPEAT_SNAPSHOTS | 1
列出子流
返回给定流 URN 的所有子流的列表,以及每个子流中的检查状态数量。
$ sts health list -u urn:health:sourceId:streamId
SUB STREAM ID | CHECK STATE COUNT
subStreamId1 | 1
subStreamId2 | 1
显示流状态
流状态命令返回聚合的流延迟和吞吐量指标。这在调试健康检查为何需要很长时间才能达到预期拓扑元素时非常有帮助。这将有助于诊断是否需要调整发送到 SUSE Observability 的数据频率。输出包括一个部分 Errors for non-existing sub streams:,因为某些错误仅在无法创建子流时相关,例如 StreamMissingSubStream。子流错误可以是任何已记录的 错误消息。
$ sts health status -u urn:health:sourceId:streamId
显示子流状态
子流状态提供有用的信息,以验证 SUSE Observability 是否能够将来自外部系统的检查状态绑定到现有的拓扑元素。这些信息有助于调试为何特定检查在预期的拓扑元素上不可见。
$ sts health status -u urn:health:sourceId:streamId -sub-stream-urn subStreamId3
|
子流状态将显示与一致性模型相关的元数据:
|
子流状态可以展开,以包含使用 -t 命令行参数匹配和不匹配的检查状态的详细信息。这有助于识别任何未附加到拓扑元素的健康状态。
在下面的示例中,checkStateId2 列在 Check states with identifier which has no matching topology element 之下。这意味着无法将检查状态与标识符为 server-2 的拓扑元素匹配。
$ sts health status -u urn:health:sourceId:streamId -sub-stream-urn subStreamId3 -t
错误消息
|
一旦描述的问题得到修复,错误将被关闭。 例如,一旦健康同步观察到开始快照消息后跟停止快照消息, |
| 错误 | 说明 |
|---|---|
StreamMissingSubStream |
当健康同步接收到没有先前流设置消息的消息时,会引发此错误,消息类型为 |
StreamConsistencyModelMismatch |
当接收到属于与创建流时指定的不同一致性模型的消息时,会引发此错误。 |
StreamMissingSubStream |
当健康同步接收到带有先前开始快照的消息时,会引发此错误。 |
SubStreamRepeatIntervalTooHigh |
当健康同步接收到大于配置最大值 30 分钟的 |
SubStreamStartWithoutStop |
当健康同步接收到第二条打开快照的消息,而先前的快照仍然打开时,会引发此错误。 |
SubStreamCheckStateOutsideSnapshot |
当健康同步接收到外部检查状态而没有先前打开快照时,会引发此错误。 |
SubStreamStopWithoutStart |
当健康同步接收到停止快照消息而没有开始快照时引发。 |
SubStreamMissingStop |
当健康同步在超时期间未收到停止快照,超时时间为开始快照消息中建立的 |
SubStreamExpired |
当健康同步在特定子流上停止接收数据超过配置的 |
SubStreamLateData |
当健康同步未及时收到基于建立的 |
SubStreamTransformerError |
当健康同步无法解释发送到接收器的有效负载时引发。例如,"缺少必需字段 'name'",有效负载为 |
SubStreamMissingCheckpoint |
当一个事务性增量子流之前观察到一个检查点,但接收到的消息缺少 |
SubStreamInvalidCheckpoint |
当一个事务性增量子流之前观察到一个检查点,但接收到的消息有一个 |
SubStreamOutdatedCheckpoint |
当一个事务性增量子流之前观察到一个检查点,但接收到的消息有一个 |
SubStreamUnknownCheckState |
当删除一个事务性增量检查状态时,如果 |