帮助我们改善您的体验。

让我们了解您的想法。

您是否能抽出两分钟的时间完成一份问卷调查?

external-header-nav
keyboard_arrow_up
close
keyboard_arrow_left
Juniper Apstra 4.2 用户指南
Table of Contents Expand all
list Table of Contents

机器翻译对您有帮助吗?

starstarstarstarstar
Go to English page
免责声明:

我们将使用第三方机器翻译软件翻译本页面。瞻博网络虽已做出相当大的努力提供高质量译文,但无法保证其准确性。如果对译文信息的准确性有任何疑问,请参阅英文版本. 可下载的 PDF 仅提供英文版.

RCI 故障模型 (API)

date_range 07-Feb-24

您可以从 平台>开发人员 部分的 Web 界面访问完整的 Apstra API 文档。

  • 蓝图与零个或多个根本原因识别实例相关联。
  • 根本原因识别实例通过蓝图下用于根本原因识别子资源的 CRUD API 启用(创建)/禁用(删除)。
  • 可以创建的实例取决于蓝图的参考设计。在根本原因识别的第一阶段,只有two_stage_l3clos支持根本原因识别,目前每个蓝图只允许一个根本原因识别实例。

创建根本原因识别实例

content_copy zoom_out_map
POST /api/blueprints/<blueprint_id>/arca
  Request Payload schema
  {
  "model_name":  s.String() # Name of ARCA instance's system fault model (ref
  design specific)
  "trigger_period": s.Float(min=10.0) # ARCA instance runs every <trigger_period>
  seconds.
  }

参考设计two_stage_l3clos蓝图示例:

content_copy zoom_out_map
{
    "model_name": "default",
    "trigger_period": 10.0
}

Return values:
201 - Successfully created the RCI instance. Response payload:

{"id": <RCI  instance ID>}

The ID is used in GET, PUT, DELETE

404 - Blueprint does not exist or is not deployed
422 - Validation error. Response payload:

{"error": <message>}

Possible error messages:
Model name is not found for the reference design
An ARCA instance already exists for given model name
trigger_period is too small

更新根本原因识别实例

使用 PUT API,您可以调整根本原因识别实例的执行频率。

content_copy zoom_out_map
PUT /api/blueprints/<blueprint_id>/arca/<arca_id>
    Request Payload schema
    {
    "trigger_period": s.Float(min=10.0)
    }

Return values:
200 - Update succeeded.
404 - ARCA instance not found.
422 - Validation error. Response payload:

{"error": <message>}

Possible error messages:
trigger_period is too small

删除根本原因识别实例

使用 GET API,您可以获取根本原因识别实例的当前状态(根本原因集)。

content_copy zoom_out_map
GET /api/blueprints/<blueprint_id>/arca/<arca_id>

Return values:
200 - see response schema below
404 - ARCA instance not found
content_copy zoom_out_map
Response payload schema
{
    "id": String,    # ARCA instance ID
    "model_name": String,    # see POST payload
    "trigger_period": Float,   # see POST payload
    "state":  Enum("created", "operational"),
    "config_updated_at": Timestamp # of last update to instance via POST/PUT
    "status_updated_at": Timestamp # of last update to ARCA results
    "root_cause_count": Integer(min=0)   # Number of root causes identified
    "root_causes": List(ROOT_CAUSE_OBJ)  # Actual root causes
}

时间戳采用 UTC 时区的ISO8601格式,例如“2018-10-16T22:12:34+0000” 如果状态 == “created”,则 Status_updated_at == UNIX 纪元 root_cause_count == 0 不返回“root_causes”键

每个ROOT_CAUSE_OBJ都具有以下架构:

content_copy zoom_out_map
{
    "id": String,   # Unique ID for the root cause in the ARCA instance
    "context": String,   # Encoded context such as references to graph nodes
    "description": String,   # Human-readable text, e.g. "link <blah> broken"
    "timestamp":  Timestamp,   # of when RC is detected (ISO8601 format)
    "symptoms": List(SYMPTOM_OBJ),   # List of symptoms; always non-empty
}

有关根本原因检测和 ID 的说明:在蓝图的生命周期内,可能会多次检测到根本原因。例如,为主干 1 和枝叶 1 之间的电缆断裂定义了根本原因。此根本原因可能随时出现,一旦问题得到解决,它可能会消失。根本原因在 ARCA 实例中具有唯一 ID。这意味着 ID 可能会根据问题是否发生或修复而出现和消失,例如电缆断裂或重新连接 预期的根本原因 ID:two_stage_l3clos根本原因 ID 是图形节点和关系 ID 的组合,以及根本原因的一些不可变但可读的名称。示例:<图形链接节点 ID>/已损坏。

每个SYMPTOM_OBJ都具有以下架构:

content_copy zoom_out_map
{
    "id": String,   # Unique ID for the symptom in the ARCA instance
    "context": String,  # Encoded context such as system ID, service name
    "description": String, # Readable, e.g. "interface swp1 on leaf1 is down"
}

给定相同的 ARCA 系统故障模型,对于给定的根本原因,症状 ID 集始终相同。但是,上下文可能会有所不同。例如,症状“叶 1 上的接口 swp1 已关闭”是相同的,而此症状的不同实例的上下文可能具有不同的系统 ID,具体取决于在检测到此症状的根本原因时分配给叶 1 的系统 ID。症状 ID 示例:<图形接口节点 ID>/向下

列出根本原因识别实例

content_copy zoom_out_map
GET /api/blueprints/<blueprint_id>/arca

Return values
200 - see response schema below
404 - blueprint not found or blueprint not deployed

响应架构:

content_copy zoom_out_map
{
    "items": List(ARCA_INSTANCE_DIGEST),  # list may be empty
}

ARCA_INSTANCE_DIGEST 具有与 GET 单个 ARCA 实例的响应有效负载相同的架构,只是它不包含“root_causes”键。

在此阶段,对于two_stage_l3clos蓝图,列表中最多有 1 个元素,因为每个蓝图只允许 1 个 ARCA 实例。

external-footer-nav