支持通过 FM/PM 接口使用外部监控工具进行自动修复和自动扩展

https://blueprints.launchpad.net/tacker/+spec/support-auto-lcm

问题描述

本规范提供了一些实现,用于支持使用外部监控工具(如 Prometheus [1])进行自动修复和自动扩展。这些实现包括 ETSI NFV-SOL 002 v3.3.1 [2] 和 ETSI NFV-SOL 003 v3.3.1 [3] 基于的故障管理 / 性能管理接口,以及 Prometheus 插件的示例实现。

故障管理和性能管理接口在 ETSI NFV-SOL 002 v3.3.1 [2] 和 ETSI NFV-SOL 003 v3.3.1 [3] 中有定义,NFVO 或 EM 主动做出修复或扩展的决策。

Prometheus 插件具有一个接口,该接口由外部监控工具调用,并支持与 Prometheus 监控数据相关的的数据模型转换。

注意

  • 除非有特殊说明,本规范中描述的客户端默认为 NFVO/EM,VNFM 默认为 Tacker。

提议的变更

需要进行以下更改

  1. 添加对 SOL002/003 中指定的故障管理接口的支持

    • 添加 VNF 故障管理接口

      • 获取告警(s)

        • GET /vnffm/v1/alarms 获取所有告警。

        • GET /vnffm/v1/alarms/{alarmId} 获取指定的告警。

      • 确认告警

        • PATCH /vnffm/v1/alarms/{alarmId} 将目标告警更改为已确认状态。

      • 订阅

        • POST /vnffm/v1/subscriptions 创建新的订阅。

      • 获取订阅(s)

        • GET /vnffm/v1/subscriptions 获取所有订阅。

        • GET /vnffm/v1/subscriptions/{subscriptionId} 获取指定的订阅。

      • 删除订阅

        • DELETE /vnffm/v1/subscriptions/{subscriptionId} 删除指定的订阅。

    • 向客户端发送通知

      • POST <Client URI from subscriptions> 通知客户端 Tacker 收到告警。

      • GET <Client URI from subscriptions> 确认客户端的 URI 正确。

  2. 添加对 SOL002/003 中指定的性能管理接口的支持

    • 添加 VNF 性能管理接口

      • 创建或更新 PM 作业

        • POST /vnfpm/v2/pm_jobs 创建 PM 作业。

        • PATCH /vnfpm/v2/pm_jobs/{pmJobId} 更新指定的 PM 作业。

      • 获取 PM 作业(s)

        • GET /vnfpm/v2/pm_jobs 获取所有 PM 作业。

        • GET /vnfpm/v2/pm_jobs/{pmJobId} 获取指定的 PM 作业。

      • 删除 PM 作业

        • DELETE /vnfpm/v2/pm_jobs/{pmJobId} 删除指定的 PM 作业。

      • 获取 PM 报告

        • GET /vnfpm/v2/pm_jobs/{pmJobId}/reports/{reportId} 获取指定的性能报告。

    • 向客户端发送通知

      • POST <Client URI for notifications> 通知客户端 Tacker 收到与 PM 相关的事件。

      • GET <Client URI for notifications> 确认客户端的 URI 正确。

  3. 添加 Tacker 与外部监控工具之间通信的 RESTful API 支持

    • POST /alert 接收来自外部监控工具发送的 FM 告警。

    • POST /pm_event 接收来自外部监控工具发送的 PM 事件。

  4. 创建新的 DB 表

    • 创建用于 FM 告警的新 DB 表。

    • 创建用于 FM 订阅的新 DB 表。

    • 创建用于 PM 作业的新 DB 表。

    • 创建用于 PM 报告的新 DB 表。

注意

  • 外部监控工具是一个监控服务,不包含在 Tacker 中。运营商实施外部监控工具。外部监控工具使用指标服务,例如 Prometheus,并使用 Prometheus 插件接口通知 FM/PM 事件。

Prometheus 插件

Prometheus 插件是一个示例实现,它执行 Prometheus 特定的功能,例如将 Prometheus 特定的数据模型转换为 SOL002/003 [2] [3] 兼容的数据模型。

Prometheus 插件是一个可选功能。Tacker 将根据配置文件中的内容决定是否启用它。配置文件的详细信息在 [4] 中描述。

基于 FM 告警触发的自动修复

当外部监控工具检测到 CNF 失败时,它会将告警消息发送到 Tacker。Tacker 将告警转换为告警并将其存储在 DB 中。

NFVO/EM 基于 SOL002/003 [2] [3] 通过 FM 接口定期获取告警(轮询模式)或通过通知触发(通知模式)。

轮询模式是一种 NFVO/EM 定期查询 VNFM 监控信息的方法,而通知模式是一种 VNFM 在订阅/通知订阅模型中通知 NFVO/EM 的方法。

FM 轮询模式下修复操作的设计

以下是轮询模式下修复的示意图

                                +------------------------+
                                |                        |
                                |    Client (NFVO/EM)    |
                                |                        |
                                +--+---------+-----------+
                           5. Heal |         | 4. Get Alarms and return result
                            +------|---------|------------------------------------------------------------+
                            |      |         |                                                       VNFM |
                            |  +---|---------|---------+ +---------------------------------+              |
                            |  |   |         |  Tacker | |                      Tacker     |              |
                            |  |   |         |  Server | |                      Conductor  |              |
                            |  |   |   +-----v------+  | |                                 |   +--------+ |
                            |  |   |   | VnfFm      +------------------------------------------> Tacker | |
+----------------+          |  |   |   | Controller |  | |         +--------------+        |   |   DB   | |
|  External      |          |  |   |   +------------+  | |  +------+ VnfFm        +------------>        | |
|  Monitoring    |          |  |   |                   | |  |      | Driver       |        |   +--------+ |
|  Tool          | 2. POST  |  |   |                   | |  |      +--------------+        |              |
|  (based on     |    alert |  |   |   +------------+  | |  | 3. Convert alert to alarm    |              |
|   Prometheus)  +---------------------> Prometheus +-------+                              |              |
+--+-------------+          |  |   |   | Plugin     |  | |                                 |              |
   ^                        |  |   |   +------------+  | |                                 |              |
   | 1. Collect metrics     |  |   |                   | |                                 |              |
   |                        |  |   |   +------------+  | |         +--------------+        |              |
   |                        |  |   +---> Vnflcm     +--------------> VmfLcmDriver +---+    |              |
   |                        |  |       | Controller |  | |         +--------------+   |    |              |
   |                        |  |       +------------+  | |                  +---------v--+ |              |
   |                        |  |                       | |                  | Infra      | |              |
   |                        |  |                       | |                  | Driver     | |              |
   |                        |  |                       | |                  +----+-------+ |              |
   |                        |  +-----------------------+ +-----------------------|---------+              |
   |                        +----------------------------------------------------|------------------------+
   |                                                                             |
   |                        +----------------------------------------------------|------------+
   |                        |  CISM/CIS                                          |            |
   |                        |                  +---------------+-----------------+            |
   |                        | 6. Delete failed |               | 7. Create new                |
   |                        |    CNF           |               |    CNF                       |
   |                        |         +--------v----+   +------v------+    +-------------+    |
   |                        |         | +--------+  |   | +--------+  |    |             |    |
   +----------------------------------> | CNF    |  |   | | CNF    |  |    |             |    |
                            |         | +--------+  |   | +--------+  |    |             |    |
                            |         |      Worker |   |      Worker |    |      Master |    |
                            |         +-------------+   +-------------+    +-------------+    |
                            +-----------------------------------------------------------------+
  1. 外部监控工具收集指标并决定是否需要触发告警。

  2. 外部监控工具向 /alert/vnf_instances/{vnf_instance_id} 发送 POST 请求。

  3. Tacker 接收通知告警,将其转换为告警,并将其保存到 Tacker DB。

  4. 客户端定期请求获取 Tacker 中的告警。Tacker 使用客户端指定的查询条件搜索 Tacker DB,并将匹配的告警返回给客户端。

  5. 客户端从告警中识别 CNF 的故障,并向 Tacker 发送修复请求。

  6. 触发修复操作,删除旧 CNF。

  7. 创建新的 CNF。

FM 轮询模式下操作的请求参数

API 详细信息在 REST API 影响 中描述。

FM 轮询模式下操作的序列

以下描述了外部监控工具发送告警后 Tacker 的处理流程。

../../_images/0154.png
  1. 外部监控工具通过 Prometheus 检测故障事件,并将告警告知指定的 URI(Tacker)。

  2. Prometheus 插件从 cfg.CONF.tacker.prometheus_plugin 获取值,以确定是否启用此功能。

  3. Prometheus 插件根据告警中标签的 function_type 字段判断要执行哪种操作。

    • labels.function_typevnffm 时,执行自动修复。

    • labels.function_typevnfpm 时,执行自动扩展。请参阅 PM 操作序列

  4. Prometheus 插件根据告警中标签的值找到相应的 CNF 实例。

  5. Prometheus 插件将告警转换为告警。

  6. Prometheus 插件调用 VnfFmDriver 并将告警发送给它。

  7. VnfFmDriver 将告警保存到 DB 中。

以下描述了使用轮询模式的客户端处理 Tacker 进行自动修复的流程。

../../_images/0233.png
  1. 客户端发送请求到 Tacker 以获取指定条件的告警。

  2. 请求同步处理。

  3. Tacker-conductor 调用 VnfFmDriver 以获取告警。

  4. VnfFmDriver 根据请求中的条件过滤出满足条件的告警,并返回结果。

  5. 客户端从告警中获取 VNFC 信息后,向 Tacker 发送请求以修复 VNFC。

  6. 从这一步开始,与默认修复操作完全相同。

FM 通知模式下修复操作的设计

以下是通知模式下修复的示意图

                                +------------------------+
                                |                        |       5. Send alarm notification
                                |   Client (NFVO/EM)     <-------------------+
                                |                        |                   |
                                +--+---------+-----------+                   |
                           6. Heal |         | 1. Create subscription        |
                            +------|---------|-------------------------------|----------------------------+
                            |      |         |                               |                       VNFM |
                            |  +---|---------|---------+ +-------------------|-------------+              |
                            |  |   |         |  Tacker | |                   |  Tacker     |              |
                            |  |   |         |  Server | |                   |  Conductor  |              |
                            |  |   |   +-----v------+  | |                   |             |   +--------+ |
                            |  |   |   | VnfFm      +------------------------+-----------------> Tacker | |
+----------------+          |  |   |   | Controller |  | |         +---------+----+        |   | DB     | |
|  External      |          |  |   |   +------------+  | |  +------> VnfFm        +------------>        | |
|  Monitoring    |          |  |   |                   | |  |      | Driver       |        |   +--------+ |
|  Tool          | 3. POST  |  |   |                   | |  |      +--------------+        |              |
|  (based on     |    alert |  |   |   +------------+  | |  |  4. Convert alert to alarm   |              |
|   Prometheus)  +---------------------> Prometheus +-------+                              |              |
+--+-------------+          |  |   |   | Plugin     |  | |                                 |              |
   ^                        |  |   |   +------------+  | |                                 |              |
   | 2. Collect metrics     |  |   |                   | |                                 |              |
   |                        |  |   |   +------------+  | |         +--------------+        |              |
   |                        |  |   +---> Vnflcm     +--------------> VmfLcmDriver +---+    |              |
   |                        |  |       | Controller |  | |         +--------------+   |    |              |
   |                        |  |       +------------+  | |                  +---------v--+ |              |
   |                        |  |                       | |                  | Infra      | |              |
   |                        |  |                       | |                  | Driver     | |              |
   |                        |  |                       | |                  +----+-------+ |              |
   |                        |  +-----------------------+ +-----------------------|---------+              |
   |                        +----------------------------------------------------|------------------------+
   |                                                                             |
   |                        +----------------------------------------------------|------------+
   |                        |  CISM/CIS                                          |            |
   |                        |                  +---------------+-----------------+            |
   |                        | 7. Delete failed |               | 8. Create new                |
   |                        |    CNF           |               |    CNF                       |
   |                        |         +--------v----+   +------v------+    +-------------+    |
   |                        |         | +--------+  |   | +--------+  |    |             |    |
   +----------------------------------> | CNF    |  |   | | CNF    |  |    |             |    |
                            |         | +--------+  |   | +--------+  |    |             |    |
                            |         |      Worker |   |      Worker |    |      Master |    |
                            |         +-------------+   +-------------+    +-------------+    |
                            +-----------------------------------------------------------------+
  1. 客户端发送请求到 Tacker 以创建订阅。

    注意

    在创建订阅期间,Tacker 会向客户端的回调 URI 发送测试通知请求。回调 URI 包含在创建订阅请求的请求参数中。

  2. 与轮询模式的步骤 1 相同。

  3. 与轮询模式的步骤 2 相同。

  4. 与轮询模式的步骤 3 相同。

  5. VnfFmDriver 找到 DB 中的所有订阅,并将告警与它们匹配。如果有一个订阅可以成功匹配,则将告警发送到客户端指定的路径。如果匹配不成功,则处理结束。

  6. 与轮询模式的步骤 5 相同。

  7. 与轮询模式的步骤 6 相同。

  8. 与轮询模式的步骤 7 相同。

FM 通知模式下操作的请求参数

API 详细信息在 REST API 影响 中描述。

FM 通知模式下操作的序列

以下描述了使用通知模式的客户端处理 Tacker 进行自动修复的流程。

../../_images/0320.png
  1. 客户端发送请求到 Tacker 以创建订阅。Tacker 收到订阅后,将从中获取 callback_uri。为了验证 callback_uri 的正确性,VnfFmDriver 将请求发送到客户端的 callback_uri 地址。从客户端获得正常的响应 HTTP 204 No Content 后,Tacker 将订阅保存到 DB。

从步骤 2 到 8,流程与轮询方法的步骤 1-7 相同。

  1. VnfFmDriver 获取 DB 中的所有订阅。

  2. VnfFmDriver 判断告警是否可以与订阅匹配,如果不能匹配,则处理结束。

  3. 如果匹配成功,VnfFmDriver 将 Notify Alarm 请求发送到客户端的 callback_uri 地址。客户端收到请求并处理后,默认返回 HTTP 204 No Content。

从步骤 12 到 14,流程与轮询方法的步骤 12-14 相同。

基于 PM 事件触发的自动扩展

Tacker 在 tacker.conf 文件中有一个配置值,指示告警管理器的 URI。当创建 PM 作业时,Prometheus 插件将 PM 作业模式转换为 Prometheus 模式。

当外部监控工具检测到 CNF 具有一些 PM 事件时,它会将事件消息发送到 Tacker。Tacker 收到事件后,将其转换为报告并将其存储在 DB 中。此时,根据 SOL002/003 [2] [3] 6. VNF 性能管理接口。

PM 下扩展操作的设计

以下是扩展的示意图

                                +------------------------+
                                |                        |       8. Send report notification
                                |   Client (NFVO/EM)     <-------------------+
                                |                        |                   |
                                +--+---------+-----------+                   |
                                   |         | 1. Create PM job              |
                        10.  Scale |         | 9. Get PM report              |
                            +------|---------|-------------------------------|----------------------------+
                            |      |         |                               |                       VNFM |
                            |  +---|---------|---------+ +-------------------|-------------+              |
                            |  |   |         |  Tacker | |                   |  Tacker     |              |
                            |  |   |         |  Server | |                   |  Conductor  |              |
                            |  |   | +-------v------+  | |                   |             |   +--------+ |
                            |  |   | | VnfPm        +------------------------+-----------------> Tacker | |
                            |  |   | | ControllerV2 |  | |         +---------+----+        |   | DB     | |
+----------------+          |  |   | +---------+----+  | |  +------> VnfPm        +------------>        | |
|  External      |          |  |   | 2. set    |       | |  |      | DriverV2     |        |   +--------+ |
|  Monitoring    | 5. POST  |  |   |    PM job |       | |  |      +--------------+        |              |
|  Tool          |    event |  |   |   +-------v----+  | |  | 7. Convert event to report   |              |
|  (based on     +---------------------> Prometheus +-------+                              |              |
|   Prometheus)  <---------------------+ Plugin     |  | |                                 |              |
|                | 6. get related data |            |  | |                                 |              |
|                <---------------------+            |  | |                                 |              |
+--+-------------+ 3. set   |  |   |   +------------+  | |                                 |              |
   ^                 PM job |  |   |                   | |                                 |              |
   | 4. Trigger event       |  |   |   +------------+  | |         +--------------+        |              |
   |                        |  |   +---> Vnflcm     +--------------> VmfLcmDriver +---+    |              |
   |                        |  |       | Controller |  | |         +--------------+   |    |              |
   |                        |  |       +------------+  | |                  +---------v--+ |              |
   |                        |  |                       | |                  | Infra      | |              |
   |                        |  |                       | |                  | Driver     | |              |
   |                        |  |                       | |                  +----+-------+ |              |
   |                        |  +-----------------------+ +-----------------------|---------+              |
   |                        +----------------------------------------------------|------------------------+
   |                                                                             |
   |                        +----------------------------------------------------|------------+
   |                        |  CISM/CIS                                          |            |
   |                        |                  +---------------+-----------------+            |
   |                        |                  |               | 11. Create or Delete         |
   |                        |                  |               |     CNF                      |
   |                        |         +--------v----+   +------v------+    +-------------+    |
   |                        |         | +--------+  |   | +--------+  |    |             |    |
   +----------------------------------> | CNF    |  |   | | CNF    |  |    |             |    |
                            |         | +--------+  |   | +--------+  |    |             |    |
                            |         |      Worker |   |      Worker |    |      Master |    |
                            |         +-------------+   +-------------+    +-------------+    |
                            +-----------------------------------------------------------------+
  1. 客户端发送请求到 Tacker 以创建 PM 作业。

    注意

    在创建 PM 作业期间,Tacker 会向客户端的回调 URI 发送测试通知请求。回调 URI 包含在创建 PM 作业请求的请求主体中。

  2. VnfPmControllerV2 将 PM 作业信息发送到 Prometheus 插件。

  3. Prometheus 插件将 PM 作业设置为外部监控工具。

  4. 外部监控工具收集指标并决定是否需要触发事件。

  5. 外部监控工具向 Tacker 发送带有指定 URI 的 POST 请求。

  6. Tacker 收集与 PM 事件相关的数据。从步骤 5-6 获得的数据,确定与 performanceMetric 对应的价值和上下文。

  7. Tacker 接收通知事件,将其转换为报告,并将其保存到 DB。Tacker 还保存事件的时间戳。

  8. VnfPmDriverV2 找到 DB 中的所有作业,并将报告与作业匹配。如果有一个作业可以成功匹配,则将报告发送到客户端指定的路径。如果匹配不成功,则处理结束。

  9. 客户端请求报告的内容,然后做出扩展的决定。

  10. 触发扩展操作,在扩容的情况下创建新的 CNF,在缩容的情况下删除旧 CNF。

  11. 创建新的 CNF 或删除旧 CNF。

PM 下操作的请求参数

API 详细信息在 REST API 影响 中描述。

PM 下操作的序列

以下描述了客户端处理 Tacker 进行自动扩展的流程。

../../_images/0415.png
  1. 客户端向 Tacker 发送创建 PM 任务的请求。Tacker 收到 PM 任务后,会获取其中的 callback_uri。为了验证 callback_uri 的正确性,VnfPmDriverV2 向客户端的 callback_uri 地址发送请求。在从客户端获得正常的响应 HTTP 204 No Content 后,Tacker 会将订阅保存到数据库。

  2. VnfPmDriverV2 将 PM 任务发送到 Prometheus 插件。Prometheus 插件将其转换为 Prometheus 格式,然后发送到 Prometheus。

  3. 外部监控工具接收来自 Prometheus 发送的事件,并将其告知指定的 URI(Tacker)。

  4. Prometheus 插件从 cfg.CONF.tacker.prometheus_plugin 获取值,以确定是否启用此功能。

  5. Prometheus 插件根据事件中 labels 的 function_type 字段判断执行何种处理。

    • labels.function_typevnffm 时,执行 AutoHeal。请参阅 FM 轮询模式下操作流程

    • labels.function_typevnfpm 时,执行 AutoScale。

  6. Prometheus 插件根据事件中 node label 的值查找相应的资源信息。

  7. Prometheus 插件将事件转换为报告。

  8. Prometheus 插件调用 VnfPmDriverV2 并将报告发送给它。

  9. VnfPmDriverV2 将报告保存在数据库中。

  10. VnfPmDriverV2 获取数据库中的所有 PM 任务。

  11. VnfPmDriverV2 判断报告是否可以与 PM 任务匹配,如果不能匹配,则处理结束。

  12. 如果匹配成功,VnfPmDriverV2 向客户端的 callback_uri 地址发送 Notify Event 请求。客户端收到请求并处理后,默认返回 HTTP 204 No Content。

  13. 客户端从报告中获取 VNFC 信息后,向 Tacker 发送请求以扩展 VNFC。

  14. 从这一步开始,与默认的扩展操作完全相同。

备选方案

数据模型影响

在 ‘Tacker’ 数据库中添加以下新数据库表。

  • : AlarmV1

    名称

    类型

    约束

    id

    varchar(255)

    Pri

    managedObjectId

    varchar(255)

    NOT NULL

    vnfcInstanceIds

    JSON

    NULL

    rootCauseFaultyResource

    JSON

    NULL

    alarmRaisedTime

    datetime

    NOT NULL

    alarmChangedTime

    datetime

    NULL

    alarmClearedTime

    datetime

    NULL

    alarmAcknowledgedTime

    datetime

    NULL

    ackState

    Enum

    NOT NULL

    perceivedSeverity

    Enum

    NOT NULL

    eventTime

    datetime

    NOT NULL

    eventType

    Enum

    NOT NULL

    faultType

    varchar(255)

    NULL

    probableCause

    varchar(255)

    NOT NULL

    isRootCause

    布尔值

    NOT NULL

    correlatedAlarmIds

    JSON

    NULL

    faultDetails

    JSON

    NULL

    此表具有 id 作为主键。managedObjectId 将是 vnf_instances 的外键。

  • : FmSubscriptionV1

    名称

    类型

    约束

    id

    varchar(255)

    Pri

    filter

    JSON

    NULL

    callbackUri

    varchar(255)

    NOT NULL

    authentication

    JSON

    NULL

    此表具有 id 作为主键。

  • : PmJobV2

    名称

    类型

    约束

    id

    varchar(255)

    Pri

    objectType

    varchar(32)

    NOT NULL

    objectInstanceIds

    JSON

    NOT NULL

    subObjectInstanceIds

    JSON

    NULL

    criteria

    JSON

    NOT NULL

    callbackUri

    varchar(255)

    NOT NULL

    reports

    JSON

    NULL

    authentication

    JSON

    NULL

    此表具有 id 作为主键。

  • : PerformanceReportV2

    名称

    类型

    约束

    id

    varchar(255)

    Pri

    jobId

    varchar(255)

    NOT NULL

    entries

    JSON

    NULL

    此表具有 id 作为主键。

REST API 影响

以下 RESTful API 符合 SOL002/003 [2] [3] 6.VNF 性能管理接口和 7.VNF 故障管理接口。

  • 名称: 获取所有告警
    描述: 允许用户根据请求中的查询参数过滤告警
    方法类型: GET
    资源的 URL: /vnffm/v1/alarms
    查询参数:

    名称

    基数

    描述

    filter

    0..1

    基于属性的过滤表达式。Tacker 在基于属性的过滤表达式中应支持以下属性名称:id、managedObjectId、rootCauseFaultyResource/faultyResourceType、eventType、perceivedSeverity、probableCause。例如,以下 URI 查询参数将匹配 perceivedSeverity=WARNING 的告警

    GET /vnffm/v1/alarms?filter=(eq,perceivedSeverity,WARNING)
    
    请求:

    数据类型

    基数

    描述

    n/a

    响应:

    数据类型

    基数

    响应代码

    描述

    告警

    0..N

    成功: 200

    当已成功查询零个或多个告警的信息时,应返回此状态码。

    ProblemDetails

    1

    错误: 400

    无效的基于属性的过滤表达式。响应体应包含 ProblemDetails 结构,其中“detail”属性应传达有关错误的更多信息。

    ProblemDetails

    1

    错误: 400

    响应过大。

    ProblemDetails

    请参阅 [5] 的 6.4 条款

    错误: 4xx/5xx

    除了上述定义的响应代码外,ETSI GS NFV-SOL 013 [5] 的 6.4 条款中定义的任何常见错误响应代码也可能返回。

    属性名称 (告警)

    数据类型

    基数

    描述

    id

    标识符

    1

    此告警信息元素的标识符。

    managedObjectId

    标识符

    1

    受影响的 VNF 实例的标识符。

    vnfcInstanceIds

    IdentifierInVnf

    0..N

    受影响的 VNFC 实例的标识符。

    rootCauseFaultyResource

    FaultyResourceInfo

    0..1

    导致 VNF 故障的虚拟化资源。如果告警影响虚拟化资源,则应存在此信息。

    >faultyResource

    ResourceHandle

    1

    识别有故障的资源实例及其管理实体的相关信息。

    >>vimConnectionId

    标识符

    0..1

    管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持和存在此属性。引用的“VimConnectionInfo”结构可以通过“VnfInstance”结构中的“vimConnectionInfo”属性获得。

    >>resourceProviderId

    标识符

    0..1

    负责资源管理的实体的标识符。仅当间接模式下的 VNF 相关资源管理适用时,才应支持和存在此属性。标识方案超出本文档的范围。

    >>resourceId

    IdentifierInVim

    1

    在 VIM 或资源提供商的范围内资源的标识符。

    >>vimLevelResourceType

    字符串

    0..1

    在 VIM 或资源提供商的范围内资源的类型。请参阅注释。

    >faultyResourceType

    FaultyResourceType

    1

    有故障的资源的类型。COMPUTE:虚拟计算资源,STORAGE:虚拟存储资源,NETWORK:虚拟网络资源

    alarmRaisedTime

    DateTime

    1

    指示由受管对象引发告警的时间戳。

    alarmChangedTime

    DateTime

    0..1

    指示上次更新告警的时间戳。如果已更新告警,则应存在此时间戳。

    alarmClearedTime

    DateTime

    0..1

    指示清除告警的时间戳。如果已清除告警,则应存在此时间戳。

    alarmAcknowledgedTime

    DateTime

    0..1

    指示确认告警的时间戳。如果已确认告警,则应存在此时间戳。

    ackState

    Enum

    1

    告警的确认状态。允许的值:UNACKNOWLEDGED、ACKNOWLEDGED。

    perceivedSeverity

    PerceivedSeverityType

    1

    受管对象故障的感知严重程度。CRITICAL、MAJOR、MINOR、WARNING、INDETERMINATE、CLEARED

    eventTime

    DateTime

    1

    指示观察到故障的时间戳。

    eventType

    EventType

    1

    事件类型。

    faultType

    字符串

    0..1

    澄清故障类型以提供更多信息。

    probableCause

    字符串

    1

    有关故障的可能原因的信息。

    isRootCause

    布尔值

    1

    属性,指示此故障是否是其他相关告警的根本原因。如果为 true,则“correlatedAlarmIds”属性中列出的告警是由此故障引起的。

    correlatedAlarmIds

    标识符

    0..N

    与此故障相关的其他告警的标识符列表。

    faultDetails

    字符串

    0..N

    提供有关故障的更多信息。

    _links

    结构 (内联)

    1

    此资源的链接。

    >self

    链接

    1

    此资源的 URI。

    >objectInstance

    链接

    0..1

    链接到表示与通知的告警相关的 VNF 实例的资源。如果 VNF 实例信息可以作为资源访问,则应存在此链接。

  • 名称: 获取单个告警
    描述: 获取 Tacker 中指定的告警。
    方法类型: GET
    资源的 URL: /vnffm/v1/alarms/{alarmId}
    请求:

    数据类型

    基数

    描述

    n/a

    响应:

    数据类型

    基数

    响应代码

    描述

    告警

    1

    成功: 200

    当已成功读取单个告警的信息时,应返回此状态码。

    ProblemDetails

    请参阅 [5] 的 6.4 条款

    错误: 4xx/5xx

    除了上述定义的响应代码外,ETSI GS NFV-SOL 013 [5] 的 6.4 条款中定义的任何常见错误响应代码也可能返回。

    属性名称 (告警)

    数据类型

    基数

    描述

    id

    标识符

    1

    此告警信息元素的标识符。

    managedObjectId

    标识符

    1

    受影响的 VNF 实例的标识符。

    vnfcInstanceIds

    IdentifierInVnf

    0..N

    受影响的 VNFC 实例的标识符。

    rootCauseFaultyResource

    FaultyResourceInfo

    0..1

    导致 VNF 故障的虚拟化资源。如果告警影响虚拟化资源,则应存在此信息。

    >faultyResource

    ResourceHandle

    1

    识别有故障的资源实例及其管理实体的相关信息。

    >>vimConnectionId

    标识符

    0..1

    管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持和存在此属性。引用的“VimConnectionInfo”结构可以通过“VnfInstance”结构中的“vimConnectionInfo”属性获得。

    >>resourceProviderId

    标识符

    0..1

    负责资源管理的实体的标识符。仅当间接模式下的 VNF 相关资源管理适用时,才应支持和存在此属性。标识方案超出本文档的范围。

    >>resourceId

    IdentifierInVim

    1

    在 VIM 或资源提供商的范围内资源的标识符。

    >>vimLevelResourceType

    字符串

    0..1

    在 VIM 或资源提供商的范围内资源的类型。请参阅注释。

    >faultyResourceType

    FaultyResourceType

    1

    有故障的资源的类型。COMPUTE、STORAGE、NETWORK

    alarmRaisedTime

    DateTime

    1

    指示由受管对象引发告警的时间戳。

    alarmChangedTime

    DateTime

    0..1

    指示上次更新告警的时间戳。如果已更新告警,则应存在此时间戳。

    alarmClearedTime

    DateTime

    0..1

    指示清除告警的时间戳。如果已清除告警,则应存在此时间戳。

    alarmAcknowledgedTime

    DateTime

    0..1

    指示确认告警的时间戳。如果已确认告警,则应存在此时间戳。

    ackState

    Enum

    1

    告警的确认状态。允许的值:UNACKNOWLEDGED、ACKNOWLEDGED。

    perceivedSeverity

    PerceivedSeverityType

    1

    受管对象故障的感知严重程度。CRITICAL、MAJOR、MINOR、WARNING、INDETERMINATE、CLEARED

    eventTime

    DateTime

    1

    指示观察到故障的时间戳。

    eventType

    EventType

    1

    事件类型。

    faultType

    字符串

    0..1

    澄清故障类型以提供更多信息。

    probableCause

    字符串

    1

    有关故障的可能原因的信息。

    isRootCause

    布尔值

    1

    属性,指示此故障是否是其他相关告警的根本原因。如果为 true,则“correlatedAlarmIds”属性中列出的告警是由此故障引起的。

    correlatedAlarmIds

    标识符

    0..N

    与此故障相关的其他告警的标识符列表。

    faultDetails

    字符串

    0..N

    提供有关故障的更多信息。

    _links

    结构 (内联)

    1

    此资源的链接。

    >self

    链接

    1

    此资源的 URI。

    >objectInstance

    链接

    0..1

    链接到表示与通知的告警相关的 VNF 实例的资源。如果 VNF 实例信息可以作为资源访问,则应存在此链接。

  • 名称: 修改确认状态
    描述: 修改 Tacker 中指定的告警的确认状态。
    方法类型: PATCH
    资源的 URL: /vnffm/v1/alarms/{alarmId}
    Content-Type: application/mergepatch+json
    请求:

    数据类型

    基数

    描述

    AlarmModifications

    1

    告警修改

    属性名称 (AlarmModifications)

    数据类型

    基数

    描述

    ackState

    Enum

    1

    “Alarm”中“ackState”属性的新值。允许的值:ACKNOWLEDGED、UNACKNOWLEDGED

    响应:

    数据类型

    基数

    响应代码

    描述

    AlarmModifications

    1

    成功: 200

    当请求已接受并完成时,应返回此状态码。

    ProblemDetails

    1

    错误: 409

    由于与“单个告警”资源的状态冲突,当前无法执行该操作。

    ProblemDetails

    请参阅 [5] 的 6.4 条款

    错误: 4xx/5xx

    除了上述定义的响应代码外,ETSI GS NFV-SOL 013 [5] 的 6.4 条款中定义的任何常见错误响应代码也可能返回。

    注意

    由于当前的 Tacker 不支持 http Etag,因此不支持错误代码:412 前置条件失败。根据 ETSI NFV SOL 文档,尚未定义 Etag 的 API 请求/响应规范,并且使用 Etag 的事务未由标准化定义。在 ETSI NFV 规范定义相关事务后,Tacker 将支持 Etag。

    属性名称 (AlarmModifications)

    数据类型

    基数

    描述

    ackState

    Enum

    1

    “Alarm”中“ackState”属性的新值。允许的值:ACKNOWLEDGED、UNACKNOWLEDGED

  • 名称: 创建新订阅
    描述: 在 Tacker 中创建新订阅。
    方法类型: POST
    资源的 URL: /vnffm/v1/subscriptions
    请求:

    数据类型

    基数

    描述

    FmSubscriptionRequest

    1

    要创建的订阅的详细信息

    属性名称 (FmSubscriptionRequest)

    数据类型

    基数

    描述

    filter

    FmNotificationsFilter

    0..1

    此订阅的筛选设置,用于定义此订阅相关的通知子集。如果筛选条件匹配或没有筛选条件,则将通知发送给订阅者。

    >vnfInstanceSubscriptionFilter

    VnfInstanceSubscriptionFilter

    0..1

    筛选标准,用于选择要通知的 VNF 实例。

    >>vnfdIds

    标识符

    0..N

    如果存在,则匹配基于此属性中列出的 vnfdId 值创建的 VNF 实例。请参阅注释 1。

    >>vnfProductsFromProviders

    结构 (内联)

    0..N

    如果存在,则匹配属于某些提供商的 VNF 产品的 VNF 实例。请参阅注释 1。

    >>>vnfProvider

    字符串

    1

    要匹配的 VNF 提供商的名称。

    >>>vnfProducts

    结构 (内联)

    0..N

    如果存在,则匹配属于来自特定提供商的具有特定产品名称的 VNF 产品的 VNF 实例。

    >>>>vnfProductName

    字符串

    1

    要匹配的 VNF 产品名称。

    >>>>versions

    结构 (内联)

    0..N

    如果存在,则匹配属于来自特定提供商的具有特定版本和特定产品名称的 VNF 产品的 VNF 实例。

    >>>>>vnfSoftwareVersion

    版本

    1

    要匹配的软件版本。

    >>>>>vnfdVersions

    版本

    0..N

    如果存在,则匹配属于来自特定提供商的具有特定 VNFD 版本、特定软件版本和特定产品名称的 VNF 产品的 VNF 实例。

    >>vnfInstanceIds

    标识符

    0..N

    如果存在,则匹配具有此属性中列出的实例标识符的 VNF 实例。

    >>vnfInstanceNames

    字符串

    0..N

    如果存在,则匹配具有此属性中列出的 VNF 实例名称的 VNF 实例。

    >notificationTypes

    Enum (内联)

    0..N

    匹配特定的通知类型。允许的值:AlarmNotification、AlarmClearedNotification、AlarmListRebuiltNotification

    >faultyResourceTypes

    FaultyResourceType

    0..N

    匹配具有有故障的资源类型的 VNF 告警。COMPUTE、STORAGE、NETWORK

    >perceivedSeverities

    PerceivedSeverityType

    0..N

    匹配具有感知严重程度的 VNF 告警。CRITICAL、MAJOR、MINOR、WARNING、INDETERMINATE、CLEARED

    >eventTypes

    EventType

    0..N

    匹配具有事件类型的 VNF 告警。COMMUNICATIONS_ALARM、PROCESSING_ERROR_ALARM、ENVIRONMENTAL_ALARM、QOS_ALARM、EQUIPMENT_ALARM

    >probableCauses

    字符串

    0..N

    匹配具有此属性中列出的可能原因的 VNF 告警。

    callbackUri

    Uri

    1

    将通知发送到的端点的 URI。

    authentication

    SubscriptionAuthentication

    0..1

    用于配置发送与此订阅对应的通知时使用授权的身份验证参数。请参阅 ETSI GS NFV-SOL 013 的 8.3.4 条款 [5]

    响应:

    数据类型

    基数

    响应代码

    描述

    FmSubscription

    1

    成功: 201

    当已成功创建订阅时,应返回此状态码。

    n/a

    成功: 303

    当具有相同的回调 URI 和相同的筛选器的订阅已存在,并且 VNFM 的策略是不创建冗余订阅时,应返回此状态码。HTTP 响应应包含一个“Location”HTTP 标头,其中包含现有的“单个订阅”资源的资源 URI。响应体应为空。

    ProblemDetails

    1

    错误: 422

    有效负载体的内容类型受支持,并且请求的有效负载体包含语法上正确的数据,但无法处理该数据。

    ProblemDetails

    请参阅 [5] 的 6.4 条款

    错误: 4xx/5xx

    除了上述定义的响应代码外,ETSI GS NFV-SOL 013 [5] 的 6.4 条款中定义的任何常见错误响应代码也可能返回。

    属性名称 (FmSubscription)

    数据类型

    基数

    描述

    id

    标识符

    1

    此“单个订阅”资源的标识符。

    filter

    FmNotificationsFilter

    0..1

    此订阅的筛选设置,用于定义此订阅相关的通知子集。如果筛选条件匹配或没有筛选条件,则将通知发送给订阅者。

    >vnfInstanceSubscriptionFilter

    VnfInstanceSubscriptionFilter

    0..1

    筛选标准,用于选择要通知的 VNF 实例。

    >>vnfdIds

    标识符

    0..N

    如果存在,则匹配基于此属性中列出的 vnfdId 值创建的 VNF 实例。请参阅注释 1。

    >>vnfProductsFromProviders

    结构 (内联)

    0..N

    如果存在,则匹配属于某些提供商的 VNF 产品的 VNF 实例。请参阅注释 1。

    >>>vnfProvider

    字符串

    1

    要匹配的 VNF 提供商的名称。

    >>>vnfProducts

    结构 (内联)

    0..N

    如果存在,则匹配属于来自特定提供商的具有特定产品名称的 VNF 产品的 VNF 实例。

    >>>>vnfProductName

    字符串

    1

    要匹配的 VNF 产品名称。

    >>>>versions

    结构 (内联)

    0..N

    如果存在,则匹配属于来自特定提供商的具有特定版本和特定产品名称的 VNF 产品的 VNF 实例。

    >>>>>vnfSoftwareVersion

    版本

    1

    要匹配的软件版本。

    >>>>>vnfdVersions

    版本

    0..N

    如果存在,则匹配属于来自特定提供商的具有特定 VNFD 版本、特定软件版本和特定产品名称的 VNF 产品的 VNF 实例。

    >>vnfInstanceIds

    标识符

    0..N

    如果存在,则匹配具有此属性中列出的实例标识符的 VNF 实例。

    >>vnfInstanceNames

    字符串

    0..N

    如果存在,则匹配具有此属性中列出的 VNF 实例名称的 VNF 实例。

    >notificationTypes

    Enum (内联)

    0..N

    匹配特定的通知类型。允许的值:AlarmNotification、AlarmClearedNotification、AlarmListRebuiltNotification

    >faultyResourceTypes

    FaultyResourceType

    0..N

    匹配具有有故障的资源类型的 VNF 告警。COMPUTE、STORAGE、NETWORK

    >perceivedSeverities

    PerceivedSeverityType

    0..N

    匹配具有感知严重程度的 VNF 告警。CRITICAL、MAJOR、MINOR、WARNING、INDETERMINATE、CLEARED

    >eventTypes

    EventType

    0..N

    匹配具有事件类型的 VNF 告警。COMMUNICATIONS_ALARM、PROCESSING_ERROR_ALARM、ENVIRONMENTAL_ALARM、QOS_ALARM、EQUIPMENT_ALARM

    >probableCauses

    字符串

    0..N

    匹配具有此属性中列出的可能原因的 VNF 告警。

    callbackUri

    Uri

    1

    将通知发送到的端点的 URI。

    _links

    结构 (内联)

    1

    此资源的链接。

    >self

    链接

    1

    此资源的 URI。

  • 名称:获取所有订阅
    描述:允许用户根据请求查询参数过滤订阅
    方法类型: GET
    资源的 URL: /vnffm/v1/subscriptions
    查询参数:

    名称

    基数

    描述

    filter

    0..1

    基于属性的过滤表达式。Tacker 将支持基于属性的过滤表达式中的以下属性名称。VNFM 将在过滤表达式中支持 FmSubscription 中以及从其引用的数据类型中出现的所有属性名称。例如,以下 URI 查询参数将匹配 perceivedSeverity=WARNING 的警报

    GET /vnffm/v1/alarms?filter=(eq,filter/perceivedSeverity,WARNING)
    
    请求:

    数据类型

    基数

    描述

    n/a

    响应:

    数据类型

    基数

    响应代码

    描述

    FmSubscription

    0..N

    成功: 200

    当已成功查询订阅列表时,应返回此响应。

    ProblemDetails

    1

    错误: 400

    无效的基于属性的过滤表达式。响应体应包含 ProblemDetails 结构,其中“detail”属性应传达有关错误的更多信息。

    ProblemDetails

    1

    错误: 400

    响应过大。

    ProblemDetails

    请参阅 [5] 的 6.4 条

    错误: 4xx/5xx

    除了上述响应代码外,ETSI GS NFV-SOL 013 [5] 的 6.4 条中定义的任何常见错误响应代码也可能返回。

    属性名称 (FmSubscription)

    数据类型

    基数

    描述

    id

    标识符

    1

    此“单个订阅”资源的标识符。

    filter

    FmNotificationsFilter

    0..1

    此订阅的筛选设置,用于定义此订阅相关的通知子集。如果筛选条件匹配或没有筛选条件,则将通知发送给订阅者。

    >vnfInstanceSubscriptionFilter

    VnfInstanceSubscriptionFilter

    0..1

    筛选标准,用于选择要通知的 VNF 实例。

    >>vnfdIds

    标识符

    0..N

    如果存在,则匹配基于此属性中列出的 vnfdId 值创建的 VNF 实例。请参阅注释 1。

    >>vnfProductsFromProviders

    结构 (内联)

    0..N

    如果存在,则匹配属于某些提供商的 VNF 产品的 VNF 实例。请参阅注释 1。

    >>>vnfProvider

    字符串

    1

    要匹配的 VNF 提供商的名称。

    >>>vnfProducts

    结构 (内联)

    0..N

    如果存在,则匹配属于来自特定提供商的具有特定产品名称的 VNF 产品的 VNF 实例。

    >>>>vnfProductName

    字符串

    1

    要匹配的 VNF 产品名称。

    >>>>versions

    结构 (内联)

    0..N

    如果存在,则匹配属于来自特定提供商的具有特定版本和特定产品名称的 VNF 产品的 VNF 实例。

    >>>>>vnfSoftwareVersion

    版本

    1

    要匹配的软件版本。

    >>>>>vnfdVersions

    版本

    0..N

    如果存在,则匹配属于来自特定提供商的具有特定 VNFD 版本、特定软件版本和特定产品名称的 VNF 产品的 VNF 实例。

    >>vnfInstanceIds

    标识符

    0..N

    如果存在,则匹配具有此属性中列出的实例标识符的 VNF 实例。

    >>vnfInstanceNames

    字符串

    0..N

    如果存在,则匹配具有此属性中列出的 VNF 实例名称的 VNF 实例。

    >notificationTypes

    Enum (内联)

    0..N

    匹配特定的通知类型。允许的值:AlarmNotification、AlarmClearedNotification、AlarmListRebuiltNotification

    >faultyResourceTypes

    FaultyResourceType

    0..N

    匹配具有有故障的资源类型的 VNF 告警。COMPUTE、STORAGE、NETWORK

    >perceivedSeverities

    PerceivedSeverityType

    0..N

    匹配具有感知严重程度的 VNF 告警。CRITICAL、MAJOR、MINOR、WARNING、INDETERMINATE、CLEARED

    >eventTypes

    EventType

    0..N

    匹配具有事件类型的 VNF 告警。COMMUNICATIONS_ALARM、PROCESSING_ERROR_ALARM、ENVIRONMENTAL_ALARM、QOS_ALARM、EQUIPMENT_ALARM

    >probableCauses

    字符串

    0..N

    匹配具有此属性中列出的可能原因的 VNF 告警。

    callbackUri

    Uri

    1

    将通知发送到的端点的 URI。

    _links

    结构 (内联)

    1

    此资源的链接。

    >self

    链接

    1

    此资源的 URI。

  • 名称:获取订阅
    描述:获取 Tacker 中的订阅
    方法类型: GET
    资源的 URL:/vnffm/v1/subscriptions/{subscriptionId}
    请求:

    数据类型

    基数

    描述

    n/a

    响应:

    数据类型

    基数

    响应代码

    描述

    FmSubscription

    1

    成功: 200

    当已成功读取单个订阅的信息时,应返回此响应。

    ProblemDetails

    请参阅 [5] 的 6.4 条

    错误: 4xx/5xx

    除了上述响应代码外,ETSI GS NFV-SOL 013 [5] 的 6.4 条中定义的任何常见错误响应代码也可能返回。

    属性名称 (FmSubscription)

    数据类型

    基数

    描述

    id

    标识符

    1

    此“单个订阅”资源的标识符。

    filter

    FmNotificationsFilter

    0..1

    此订阅的筛选设置,用于定义此订阅相关的通知子集。如果筛选条件匹配或没有筛选条件,则将通知发送给订阅者。

    >vnfInstanceSubscriptionFilter

    VnfInstanceSubscriptionFilter

    0..1

    筛选标准,用于选择要通知的 VNF 实例。

    >>vnfdIds

    标识符

    0..N

    如果存在,则匹配基于此属性中列出的 vnfdId 值创建的 VNF 实例。请参阅注释 1。

    >>vnfProductsFromProviders

    结构 (内联)

    0..N

    如果存在,则匹配属于某些提供商的 VNF 产品的 VNF 实例。请参阅注释 1。

    >>>vnfProvider

    字符串

    1

    要匹配的 VNF 提供商的名称。

    >>>vnfProducts

    结构 (内联)

    0..N

    如果存在,则匹配属于来自特定提供商的具有特定产品名称的 VNF 产品的 VNF 实例。

    >>>>vnfProductName

    字符串

    1

    要匹配的 VNF 产品名称。

    >>>>versions

    结构 (内联)

    0..N

    如果存在,则匹配属于来自特定提供商的具有特定版本和特定产品名称的 VNF 产品的 VNF 实例。

    >>>>>vnfSoftwareVersion

    版本

    1

    要匹配的软件版本。

    >>>>>vnfdVersions

    版本

    0..N

    如果存在,则匹配属于来自特定提供商的具有特定 VNFD 版本、特定软件版本和特定产品名称的 VNF 产品的 VNF 实例。

    >>vnfInstanceIds

    标识符

    0..N

    如果存在,则匹配具有此属性中列出的实例标识符的 VNF 实例。

    >>vnfInstanceNames

    字符串

    0..N

    如果存在,则匹配具有此属性中列出的 VNF 实例名称的 VNF 实例。

    >notificationTypes

    Enum (内联)

    0..N

    匹配特定的通知类型。允许的值:AlarmNotification、AlarmClearedNotification、AlarmListRebuiltNotification

    >faultyResourceTypes

    FaultyResourceType

    0..N

    匹配具有有故障的资源类型的 VNF 告警。COMPUTE、STORAGE、NETWORK

    >perceivedSeverities

    PerceivedSeverityType

    0..N

    匹配具有感知严重程度的 VNF 告警。CRITICAL、MAJOR、MINOR、WARNING、INDETERMINATE、CLEARED

    >eventTypes

    EventType

    0..N

    匹配具有事件类型的 VNF 告警。COMMUNICATIONS_ALARM、PROCESSING_ERROR_ALARM、ENVIRONMENTAL_ALARM、QOS_ALARM、EQUIPMENT_ALARM

    >probableCauses

    字符串

    0..N

    匹配具有此属性中列出的可能原因的 VNF 告警。

    callbackUri

    Uri

    1

    将通知发送到的端点的 URI。

    _links

    结构 (内联)

    1

    此资源的链接。

    >self

    链接

    1

    此资源的 URI。

  • 名称:删除订阅
    描述:删除 Tacker 中的订阅
    方法类型:DELETE
    资源的 URL:/vnffm/v1/subscriptions/{subscriptionId}
    请求:

    数据类型

    基数

    描述

    n/a

    响应:

    数据类型

    基数

    响应代码

    描述

    n/a

    成功:204

    当已成功删除“单个订阅”资源时,应返回此响应。

    ProblemDetails

    请参阅 [5] 的 6.4 条

    错误: 4xx/5xx

    除了上述响应代码外,ETSI GS NFV-SOL 013 [5] 的 6.4 条中定义的任何常见错误响应代码也可能返回。

  • 名称:通知 VNF 警报
    描述:通知客户端 Tacker 收到警报
    方法类型: POST
    资源的 URL:<订阅中的客户端 URI>
    请求:

    数据类型

    基数

    描述

    AlarmNotification

    1

    VNF 警报信息

    AlarmClearedNotification

    1

    VNF 警报清除信息

    属性名称 (AlarmNotification)

    数据类型

    基数

    描述

    id

    标识符

    1

    此通知的标识符。如果由于多个订阅而多次发送通知,所有这些通知的“id”属性应具有相同的值。

    notificationType

    字符串

    1

    不同通知类型的区分符。对于此通知类型,应设置为“AlarmNotification”。

    subscriptionId

    标识符

    1

    此通知相关的订阅的标识符。

    timeStamp

    DateTime

    1

    生成通知的日期和时间。

    alarm

    告警

    1

    关于警报的信息,包括 AlarmId、受影响的 VNF 标识符和 FaultDetails。

    >id

    标识符

    1

    此告警信息元素的标识符。

    >managedObjectId

    标识符

    1

    受影响的 VNF 实例的标识符。

    >vnfcInstanceIds

    IdentifierInVnf

    0..N

    受影响的 VNFC 实例的标识符。

    >rootCauseFaultyResource

    FaultyResourceInfo

    0..1

    导致 VNF 故障的虚拟化资源。如果告警影响虚拟化资源,则应存在此信息。

    >>faultyResource

    ResourceHandle

    1

    识别有故障的资源实例及其管理实体的相关信息。

    >>>vimConnectionId

    标识符

    0..1

    管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持和存在此属性。引用的“VimConnectionInfo”结构可以通过“VnfInstance”结构中的“vimConnectionInfo”属性获得。

    >>>resourceProviderId

    标识符

    0..1

    负责资源管理的实体的标识符。仅当间接模式下的 VNF 相关资源管理适用时,才应支持和存在此属性。标识方案超出本文档的范围。

    >>>resourceId

    IdentifierInVim

    1

    在 VIM 或资源提供商的范围内资源的标识符。

    >>>vimLevelResourceType

    字符串

    0..1

    在 VIM 或资源提供商的范围内资源的类型。请参阅注释。

    >>faultyResourceType

    FaultyResourceType

    1

    有故障的资源的类型。COMPUTE、STORAGE、NETWORK

    >alarmRaisedTime

    DateTime

    1

    指示由受管对象引发告警的时间戳。

    >alarmChangedTime

    DateTime

    0..1

    指示上次更新告警的时间戳。如果已更新告警,则应存在此时间戳。

    >alarmClearedTime

    DateTime

    0..1

    指示清除告警的时间戳。如果已清除告警,则应存在此时间戳。

    >alarmAcknowledgedTime

    DateTime

    0..1

    指示确认告警的时间戳。如果已确认告警,则应存在此时间戳。

    >ackState

    Enum

    1

    告警的确认状态。允许的值:UNACKNOWLEDGED、ACKNOWLEDGED。

    >perceivedSeverity

    PerceivedSeverityType

    1

    受管对象故障的感知严重程度。CRITICAL、MAJOR、MINOR、WARNING、INDETERMINATE、CLEARED

    >eventTime

    DateTime

    1

    指示观察到故障的时间戳。

    >eventType

    EventType

    1

    事件类型。

    >faultType

    字符串

    0..1

    澄清故障类型以提供更多信息。

    >probableCause

    字符串

    1

    有关故障的可能原因的信息。

    >isRootCause

    布尔值

    1

    属性,指示此故障是否是其他相关告警的根本原因。如果为 true,则“correlatedAlarmIds”属性中列出的告警是由此故障引起的。

    >correlatedAlarmIds

    标识符

    0..N

    与此故障相关的其他告警的标识符列表。

    >faultDetails

    字符串

    0..N

    提供有关故障的更多信息。

    >_links

    结构 (内联)

    1

    此资源的链接。

    >>self

    链接

    1

    此资源的 URI。

    >>objectInstance

    链接

    0..1

    链接到表示与通知的告警相关的 VNF 实例的资源。如果 VNF 实例信息可以作为资源访问,则应存在此链接。

    _links

    结构 (内联)

    1

    与此通知相关的资源的链接。

    >subscription

    NotificationLink

    1

    指向相关订阅的链接。

    属性名称 (AlarmClearedNotification)

    数据类型

    基数

    描述

    id

    标识符

    1

    此通知的标识符。如果由于多个订阅而多次发送通知,所有这些通知的“id”属性应具有相同的值。

    notificationType

    字符串

    1

    不同通知类型的区分符。对于此通知类型,应设置为“AlarmClearedNotification”。

    subscriptionId

    标识符

    1

    此通知相关的订阅的标识符。

    timeStamp

    DateTime

    1

    生成通知的日期和时间。

    alarmId

    标识符

    1

    警报标识符。

    alarmClearedTime

    DateTime

    1

    指示警报清除时间的的时间戳。

    _links

    结构 (内联)

    1

    与此通知相关的资源的链接。

    >subscription

    NotificationLink

    1

    指向相关订阅的链接。

    >alarm

    NotificationLink

    1

    指向表示相关警报的资源的链接。

    响应:

    数据类型

    基数

    响应代码

    描述

    n/a

    成功:204

    当通知已成功传递时,应返回此响应。

    ProblemDetails

    请参阅 [5] 的 6.4 条

    错误: 4xx/5xx

    除了上述响应代码外,ETSI GS NFV-SOL 013 [5] 的 6.4 条中定义的任何常见错误响应代码也可能返回。

  • 名称:测试通知端点
    描述:确认客户端的 URI 是否正确。
    方法类型: GET
    资源的 URL:<订阅中的客户端 URI>
    请求:

    数据类型

    基数

    描述

    n/a

    响应:

    数据类型

    基数

    响应代码

    描述

    n/a

    成功:204

    应返回此响应,以指示已成功测试通知端点。

    ProblemDetails

    请参阅 [5] 的 6.4 条

    错误: 4xx/5xx

    除了上述响应代码外,ETSI GS NFV-SOL 013 [5] 的 6.4 条中定义的任何常见错误响应代码也可能返回。

  • 名称:创建 PM 作业
    描述:创建 PM 作业。PM 作业将性能收集和报告信息的详细信息分组
    方法类型: POST
    资源的 URL:/vnfpm/v2/pm_jobs
    请求:

    数据类型

    基数

    描述

    CreatePmJobRequest

    1

    PM 作业创建请求

    属性名称 (CreatePmJobRequest)

    数据类型

    基数

    描述

    objectType

    字符串

    1

    所测对象的类型。测量的适用对象类型在 ETSI GS NFV-IFA 027 的 7.2 条中定义 [6]

    objectInstanceIds

    标识符

    1..N

    请求收集性能信息的所测对象实例的标识符。

    subObjectInstanceIds

    IdentifierInVnf

    0..N

    在结构化所测对象的情况下,所测对象实例的标识符。

    criteria

    PmJobCriteria

    1

    收集性能信息的标准。

    >performanceMetric

    字符串

    0..N

    这定义了指定对象实例的性能指标类型。有效值在 ETSI GS NFV-IFA 027 的 7.2 条中指定为“测量名称”值 [6]。至少应存在两个属性(性能指标或组)中的一个。

    >performanceMetricGroup

    字符串

    0..N

    性能指标组。指标组是预定义的指标列表,API 生产者知道它可以将其分解为单个指标。有效值在 ETSI GS NFV-IFA 027 的 7.2 条中指定为“测量组”值 [6]。至少应存在两个属性(性能指标或组)中的一个。

    >collectionPeriod

    UnsignedInt

    1

    指定 API 生产者将收集性能信息的周期。单位应为秒。

    >reportingPeriod

    UnsignedInt

    1

    指定 API 生产者将向 API 消费者报告性能信息的周期。单位应为秒。reportingPeriod 应等于或为 collectionPeriod 的倍数。

    >reportingBoundary

    DateTime

    0..1

    标识一个时间边界,在此之后将停止报告。边界应允许单个报告以及直到边界的周期性报告。

    callbackUri

    Uri

    1

    将通知发送到的端点的 URI。

    authentication

    SubscriptionAuthentication

    0..1

    用于配置发送与此订阅相关的通知时使用授权的身份验证参数。请参阅 ETSI GS NFV-SOL 013 的 8.3.4 条 [5]

    响应:

    数据类型

    基数

    响应代码

    描述

    PmJob

    1

    成功: 201

    当 PM 作业已成功创建时,应返回此响应。

    ProblemDetails

    1

    错误: 422

    有效负载体的内容类型受支持,并且请求的有效负载体包含语法上正确的数据,但无法处理该数据。

    ProblemDetails

    请参阅 [5] 的 6.4 条

    错误: 4xx/5xx

    除了上述响应代码外,ETSI GS NFV-SOL 013 [5] 的 6.4 条中定义的任何常见错误响应代码也可能返回。

    属性名称 (PmJob)

    数据类型

    基数

    描述

    id

    标识符

    1

    此 PM 作业的标识符。

    objectType

    字符串

    1

    所测对象的类型。测量的适用对象类型在 ETSI GS NFV-IFA 027 的 7.2 条中定义 [6]

    objectInstanceIds

    标识符

    1..N

    请求收集性能信息的所测对象实例的标识符。

    subObjectInstanceIds

    IdentifierInVnf

    0..N

    在结构化所测对象的情况下,所测对象实例的标识符。

    criteria

    PmJobCriteria

    1

    收集性能信息的标准。

    >performanceMetric

    字符串

    0..N

    这定义了指定对象实例的性能指标类型。有效值在 ETSI GS NFV-IFA 027 的 7.2 条中指定为“测量名称”值 [6]。至少应存在两个属性(性能指标或组)中的一个。

    >performanceMetricGroup

    字符串

    0..N

    性能指标组。指标组是预定义的指标列表,API 生产者知道它可以将其分解为单个指标。有效值在 ETSI GS NFV-IFA 027 的 7.2 条中指定为“测量组”值 [6]。至少应存在两个属性(性能指标或组)中的一个。

    >collectionPeriod

    UnsignedInt

    1

    指定 API 生产者将收集性能信息的周期。单位应为秒。

    >reportingPeriod

    UnsignedInt

    1

    指定 API 生产者将向 API 消费者报告性能信息的周期。单位应为秒。reportingPeriod 应等于或为 collectionPeriod 的倍数。

    >reportingBoundary

    DateTime

    0..1

    标识一个时间边界,在此之后将停止报告。边界应允许单个报告以及直到边界的周期性报告。

    callbackUri

    Uri

    1

    将通知发送到的端点的 URI。

    reports

    结构 (内联)

    0..N

    此 PM 作业收集的可用报告信息。

    >href

    Uri

    1

    可以获取报告的 URI。

    >readyTime

    DateTime

    1

    报告可用时间。

    >expiryTime

    DateTime

    0..1

    报告将过期的时间。

    >fileSize

    UnsignedInt

    0..1

    如果已知,报告文件的大小(以字节为单位)。

    _links

    结构 (内联)

    1

    此资源的链接。

    >self

    链接

    1

    此资源的 URI。

    >objects

    链接

    0..N

    链接到表示收集性能信息的所测对象实例的资源。如果所测对象实例信息可以作为资源访问,则应存在。

  • 名称:获取 PM 作业
    描述:允许用户根据请求查询参数过滤 PM 作业
    方法类型: GET
    资源的 URL:/vnfpm/v2/pm_jobs
    查询参数:

    名称

    基数

    描述

    filter

    0..1

    基于属性的过滤表达式。根据 ETSI GS NFV-SOL 013 的 5.2 条 [5]

    例如,以下 URI 查询参数将匹配 objectType=VNFC 的 PM 作业。

    GET /vnfpm/v2/pm_jobs?filter=(eq,objectType,VNFC)
    

    all_fields

    0..1

    在响应中包含所有复杂属性。有关详细信息,请参阅 ETSI GS NFV-SOL 013 的 5.3 条 [5]

    fields

    0..1

    要包含在响应中的复杂属性。有关详细信息,请参阅 ETSI GS NFV-SOL 013 的 5.3 条 [5]

    exclude_fields

    0..1

    要从响应中排除的复杂属性。有关详细信息,请参阅 ETSI GS NFV-SOL 013 的 5.3 条 [5]

    exclude_default

    0..1

    指示从响应中排除以下复杂属性。有关详细信息,请参阅 ETSI GS NFV-SOL 013 的 5.3 条 [5]

    请求:

    数据类型

    基数

    描述

    n/a

    响应:

    数据类型

    基数

    响应代码

    描述

    PmJob

    0..N

    成功: 200

    当已成功查询零个或多个 PM 作业的信息时,应返回此响应。

    ProblemDetails

    1

    错误: 400

    无效的基于属性的过滤表达式。响应体应包含 ProblemDetails 结构,其中“detail”属性应传达有关错误的更多信息。

    ProblemDetails

    1

    错误: 400

    无效的属性选择器。响应体应包含 ProblemDetails 结构,其中“detail”属性应传达有关错误的更多信息。

    ProblemDetails

    1

    错误: 400

    响应过大。

    ProblemDetails

    请参阅 [5] 的 6.4 条

    错误: 4xx/5xx

    除了上述响应代码外,ETSI GS NFV-SOL 013 [5] 的 6.4 条中定义的任何常见错误响应代码也可能返回。

    属性名称 (PmJob)

    数据类型

    基数

    描述

    id

    标识符

    1

    此 PM 作业的标识符。

    objectType

    字符串

    1

    所测对象的类型。测量的适用对象类型在 ETSI GS NFV-IFA 027 的 7.2 条中定义 [6]

    objectInstanceIds

    标识符

    1..N

    请求收集性能信息的所测对象实例的标识符。

    subObjectInstanceIds

    IdentifierInVnf

    0..N

    在结构化所测对象的情况下,所测对象实例的标识符。

    criteria

    PmJobCriteria

    1

    收集性能信息的标准。

    >performanceMetric

    字符串

    0..N

    这定义了指定对象实例的性能指标类型。有效值在 ETSI GS NFV-IFA 027 的 7.2 条中指定为“测量名称”值 [6]。至少应存在两个属性(性能指标或组)中的一个。

    >performanceMetricGroup

    字符串

    0..N

    性能指标组。指标组是预定义的指标列表,API 生产者知道它可以将其分解为单个指标。有效值在 ETSI GS NFV-IFA 027 的 7.2 条中指定为“测量组”值 [6]。至少应存在两个属性(性能指标或组)中的一个。

    >collectionPeriod

    UnsignedInt

    1

    指定 API 生产者将收集性能信息的周期。单位应为秒。

    >reportingPeriod

    UnsignedInt

    1

    指定 API 生产者将向 API 消费者报告性能信息的周期。单位应为秒。reportingPeriod 应等于或为 collectionPeriod 的倍数。

    >reportingBoundary

    DateTime

    0..1

    标识一个时间边界,在此之后将停止报告。边界应允许单个报告以及直到边界的周期性报告。

    callbackUri

    Uri

    1

    将通知发送到的端点的 URI。

    reports

    结构 (内联)

    0..N

    此 PM 作业收集的可用报告信息。

    >href

    Uri

    1

    可以获取报告的 URI。

    >readyTime

    DateTime

    1

    报告可用时间。

    >expiryTime

    DateTime

    0..1

    报告将过期的时间。

    >fileSize

    UnsignedInt

    0..1

    如果已知,报告文件的大小(以字节为单位)。

    _links

    结构 (内联)

    1

    此资源的链接。

    >self

    链接

    1

    此资源的 URI。

    >objects

    链接

    0..N

    链接到表示收集性能信息的所测对象实例的资源。如果所测对象实例信息可以作为资源访问,则应存在。

  • 名称:获取 PM 作业
    描述:获取单个 PM 作业
    方法类型: GET
    资源的 URL:/vnfpm/v2/pm_jobs/{pmJobId}
    请求:

    数据类型

    基数

    描述

    n/a

    响应:

    数据类型

    基数

    响应代码

    描述

    PmJob

    1

    成功: 200

    当已成功读取单个 PM 作业的信息时,应返回此响应。

    ProblemDetails

    请参阅 [5] 的 6.4 条

    错误: 4xx/5xx

    除了上述响应代码外,ETSI GS NFV-SOL 013 [5] 的 6.4 条中定义的任何常见错误响应代码也可能返回。

    属性名称 (PmJob)

    数据类型

    基数

    描述

    id

    标识符

    1

    此 PM 作业的标识符。

    objectType

    字符串

    1

    所测对象的类型。测量的适用对象类型在 ETSI GS NFV-IFA 027 的 7.2 条中定义 [6]

    objectInstanceIds

    标识符

    1..N

    请求收集性能信息的所测对象实例的标识符。

    subObjectInstanceIds

    IdentifierInVnf

    0..N

    在结构化所测对象的情况下,所测对象实例的标识符。

    criteria

    PmJobCriteria

    1

    收集性能信息的标准。

    >performanceMetric

    字符串

    0..N

    这定义了指定对象实例的性能指标类型。有效值在 ETSI GS NFV-IFA 027 的 7.2 条中指定为“测量名称”值 [6]。至少应存在两个属性(性能指标或组)中的一个。

    >performanceMetricGroup

    字符串

    0..N

    性能指标组。指标组是预定义的指标列表,API 生产者知道它可以将其分解为单个指标。有效值在 ETSI GS NFV-IFA 027 的 7.2 条中指定为“测量组”值 [6]。至少应存在两个属性(性能指标或组)中的一个。

    >collectionPeriod

    UnsignedInt

    1

    指定 API 生产者将收集性能信息的周期。单位应为秒。

    >reportingPeriod

    UnsignedInt

    1

    指定 API 生产者将向 API 消费者报告性能信息的周期。单位应为秒。reportingPeriod 应等于或为 collectionPeriod 的倍数。

    >reportingBoundary

    DateTime

    0..1

    标识一个时间边界,在此之后将停止报告。边界应允许单个报告以及直到边界的周期性报告。

    callbackUri

    Uri

    1

    将通知发送到的端点的 URI。

    reports

    结构 (内联)

    0..N

    此 PM 作业收集的可用报告信息。

    >href

    Uri

    1

    可以获取报告的 URI。

    >readyTime

    DateTime

    1

    报告可用时间。

    >expiryTime

    DateTime

    0..1

    报告将过期的时间。

    >fileSize

    UnsignedInt

    0..1

    如果已知,报告文件的大小(以字节为单位)。

    _links

    结构 (内联)

    1

    此资源的链接。

    >self

    链接

    1

    此资源的 URI。

    >objects

    链接

    0..N

    链接到表示收集性能信息的所测对象实例的资源。如果所测对象实例信息可以作为资源访问,则应存在。

  • 名称:修改 PM 作业
    描述:修改单个 PM 作业的资源
    方法类型: PATCH
    资源的 URL:/vnfpm/v2/pm_jobs/{pmJobId}
    Content-Type: application/mergepatch+json
    请求:

    数据类型

    基数

    描述

    PmJobModifications

    1

    PM 作业修改参数。

    属性名称 (PmJobModifications)

    数据类型

    基数

    描述

    callbackUri

    Uri

    0..1

    “callbackUri”属性的新值。不允许使用值“null”。

    authentication

    SubscriptionAuthentication

    0..1

    “authentication”属性的新值,或“null”以删除该属性。如果存在于请求体中,这些修改应根据 JSON Merge Patch 的规则应用。

    响应:

    数据类型

    基数

    响应代码

    描述

    PmJobModifications

    1

    成功: 200

    当请求已成功处理时,应返回此响应。

    ProblemDetails

    1

    422

    有效负载体的内容类型受支持,并且请求的有效负载体包含语法上正确的数据,但无法处理该数据。

    ProblemDetails

    请参阅 [5] 的 6.4 条

    错误: 4xx/5xx

    除了上述响应代码外,ETSI GS NFV-SOL 013 [5] 的 6.4 条中定义的任何常见错误响应代码也可能返回。

    注意

    由于当前的 Tacker 不支持 http Etag,因此不支持错误代码:412 前置条件失败。根据 ETSI NFV SOL 文档,尚未定义 Etag 的 API 请求/响应规范,并且使用 Etag 的事务未由标准化定义。在 ETSI NFV 规范定义相关事务后,Tacker 将支持 Etag。

    属性名称 (PmJobModifications)

    数据类型

    基数

    描述

    callbackUri

    Uri

    0..1

    “callbackUri”属性的新值。不允许使用值“null”。

    身份验证参数不应存在于响应体中。

  • 名称:删除 PM 作业
    描述:删除 Tacker 中的 PM 作业
    方法类型:DELETE
    资源的 URL:/vnfpm/v2/pm_jobs/{pmJobId}
    请求:

    数据类型

    基数

    描述

    n/a

    响应:

    数据类型

    基数

    响应代码

    描述

    n/a

    成功:204

    当 PM 作业成功删除时返回。

    ProblemDetails

    请参阅 [5] 的 6.4 条。

    错误: 4xx/5xx

    除了上述响应代码外,ETSI GS NFV-SOL 013 的 6.4 条中定义的任何常见错误响应代码 [5] 也可能被返回。

  • 名称:获取单个性能报告
    描述:获取一个单独的性能报告
    方法类型: GET
    资源的 URL:/vnfpm/v2/pm_jobs/{pmJobId}/reports/{reportId}
    请求:

    数据类型

    基数

    描述

    n/a

    响应:

    数据类型

    基数

    响应代码

    描述

    PerformanceReport

    1

    成功: 200

    当成功读取单个性能报告的信息时返回。

    ProblemDetails

    请参阅 [5] 的 6.4 条。

    错误: 4xx/5xx

    除了上述响应代码外,ETSI GS NFV-SOL 013 的 6.4 条中定义的任何常见错误响应代码 [5] 也可能被返回。

    属性名称 (PerformanceReport)

    数据类型

    基数

    描述

    entries

    结构 (内联)

    1..N

    性能信息条目的列表。

    >objectType

    字符串

    1

    被测对象的类型。 测量的适用对象类型定义在 ETSI GS NFV-IFA 027 的 7.2 条 [6] 中。

    >objectInstanceId

    标识符

    1

    报告性能指标的被测对象实例的标识符。

    >subObjectInstanceId

    IdentifierInVnf

    0..1

    报告性能指标的被测对象实例的子对象实例的标识符。 如果 ETSI GS NFV-IFA 027 的 6.2 条 [6] 要求,则必须存在此项。

    >performanceMetric

    字符串

    1

    收集的指标名称。 此属性应包含 ETSI GS NFV-IFA 027 的 7.2 条 [6] 中定义的“测量名称”值。

    >performanceValues

    结构 (内联)

    1..N

    带有相关时间戳的性能值列表。

    >>timeStamp

    DateTime

    1

    指示收集数据的时间戳。

    >>value

    (任何类型)

    1

    收集的指标值。 此属性的类型应与 ETSI GS NFV-IFA 027 的 7.2 条 [6] 中定义的“测量单位”相关联。

    >>context

    KeyValuePairs

    0..1

    与测量值相关的测量上下文信息。 适用的键集是 ETSI GS NFV-IFA 027 的 7.2 条中相关“测量上下文”中定义的 [6]

  • 名称:通知 VNF 性能管理事件
    描述:传递有关性能管理事件的通知
    方法类型: POST
    资源的 URL:<Client URI for notifications>
    请求:

    数据类型

    基数

    描述

    PerformanceInformationAvailableNotification

    1

    关于性能信息可用性的通知

    属性名称 (PerformanceInformationAvailableNotification)

    数据类型

    基数

    描述

    id

    标识符

    1

    此通知的标识符。如果由于多个订阅而多次发送通知,所有这些通知的“id”属性应具有相同的值。

    notificationType

    字符串

    1

    不同通知类型的区分符。 对于此通知类型,应设置为“PerformanceInformationAvailableNotification”。

    timeStamp

    DateTime

    1

    生成通知的日期和时间。

    pmJobId

    标识符

    1

    可用性能信息的 PM 作业的标识符。

    objectType

    字符串

    1

    被测对象的类型。 测量的适用对象类型定义在 ETSI GS NFV-IFA 027 的 7.2 条 [6] 中。

    objectInstanceId

    标识符

    1

    根据 ETSI GS NFV-IFA 027 的 6.2 条 [6] 报告性能指标的被测对象实例的标识符。

    subObjectInstanceIds

    IdentifierInVnf

    0..N

    对被测对象实例的子对象实例的标识符,这些子对象实例的测量已完成。 如果相关的 PM 作业设置为仅测量被测对象实例的所有子对象实例的子集,并且 ETSI GS NFV-IFA 027 的 6.2 条 [6] 为相关的被测对象类型定义了子对象,则必须存在此项。 否则,应不存在此项。

    _links

    结构 (内联)

    1

    与此通知相关的资源的链接。

    >objectInstance

    NotificationLink

    0..1

    指向表示应用通知的被测对象实例的资源的链接。 如果被测对象实例信息可以作为资源访问,则必须存在此项。

    >pmJob

    NotificationLink

    1

    指向表示可用性能信息的 PM 作业的资源的链接。

    >performanceReport

    NotificationLink

    1

    一个链接,可以从中获取数据类型为“PerformanceReport”的可用性能信息。 此链接应指向“单个性能报告”资源。

    响应:

    数据类型

    基数

    响应代码

    描述

    n/a

    成功:204

    当通知已成功传递时,应返回此响应。

    ProblemDetails

    请参阅 [5] 的 6.4 条。

    错误: 4xx/5xx

    除了上述响应代码外,ETSI GS NFV-SOL 013 的 6.4 条中定义的任何常见错误响应代码 [5] 也可能被返回。

  • 名称:测试通知端点
    描述:确认客户端的 URI 是否正确。
    方法类型: GET
    资源的 URL:<Client URI for notifications>
    请求:

    数据类型

    基数

    描述

    n/a

    响应:

    数据类型

    基数

    响应代码

    描述

    n/a

    成功:204

    应返回此响应,以指示已成功测试通知端点。

    ProblemDetails

    请参阅 [5] 的 6.4 条。

    错误: 4xx/5xx

    除了上述响应代码外,ETSI GS NFV-SOL 013 的 6.4 条中定义的任何常见错误响应代码 [5] 也可能被返回。

以下 RESTful API 是 Tacker 特定的接口,用于 Fault Management 在 Tacker 和外部监控工具之间。

  • 名称:发送警报事件
    描述:接收来自外部监控工具发送的警报
    方法类型: POST
    资源的 URL:/alert
    请求:

    数据类型

    基数

    描述

    AlertEvent

    1

    来自外部监控工具的警报

    属性名称 (AlertEvent)

    数据类型

    基数

    描述

    receiver

    字符串

    1

    定义将发送通知的接收者的名称。

    status

    字符串

    1

    如果至少有一个警报正在触发,则定义为 firing,否则为 resolved。

    alerts

    结构(内联)

    1..N

    此组中所有警报对象的列表。

    >status

    字符串

    1

    定义警报是 resolved 还是当前 firing。

    >labels

    结构(内联)

    1

    要附加到警报的一组标签。

    >>receiver_type

    字符串

    1

    接收器类型:tacker

    >>function_type

    字符串

    1

    功能类型:vnffm

    >>vnf_instance_id

    标识符

    1

    VNF 实例的标识符。

    >>node

    字符串

    0..1

    节点名称。

    >>perceived_severity

    字符串

    1

    受管对象故障的感知严重程度。CRITICAL、MAJOR、MINOR、WARNING、INDETERMINATE、CLEARED

    >>event_type

    字符串

    1

    事件类型。COMMUNICATIONS_ALARM、PROCESSING_ERROR_ALARM、ENVIRONMENTAL_ALARM、QOS_ALARM、EQUIPMENT_ALARM

    >annotations

    结构(内联)

    1

    警报的一组注释。

    >>fault_type

    字符串

    0..1

    澄清故障类型以提供更多信息。

    >>probable_cause

    字符串

    1

    有关故障的可能原因的信息。

    >>fault_details

    字符串

    0..1

    提供有关故障的更多信息。

    >startsAt

    DateTime

    1

    警报开始触发的时间。

    >endsAt

    DateTime

    1

    警报的结束时间。

    >generatorURL

    字符串

    1

    一个反向链接,用于标识此警报的触发实体。

    >fingerprint

    字符串

    1

    可用于标识警报的指纹。

    groupLabels

    KeyValuePairs

    1

    这些警报分组的标签。

    commonLabels

    KeyValuePairs

    1

    所有警报通用的标签。

    commonAnnotations

    KeyValuePairs

    1

    所有警报通用的注释集。 用于更长的附加信息字符串。

    externalURL

    字符串

    1

    指向发送通知的 Alertmanager 的反向链接。

    version

    字符串

    1

    groupKey

    字符串

    1

    响应:

    数据类型

    基数

    响应代码

    描述

    n/a

    成功:204

    当请求成功读取时返回。

    ProblemDetails

    请参阅 [5] 的 6.4 条。

    错误: 4xx/5xx

    除了上述响应代码外,ETSI GS NFV-SOL 013 的 6.4 条中定义的任何常见错误响应代码 [5] 也可能被返回。

以下 RESTful API 是 Tacker 特定的接口,用于 Performance Management 在 Tacker 和外部监控工具之间。

  • 名称:发送 PM 事件
    描述:接收来自外部监控工具发送的 PM 事件
    方法类型: POST
    资源的 URL:/pm_event
    请求:

    数据类型

    基数

    描述

    PerformanceEvent

    1

    来自外部监控工具的 PM 事件

    属性名称 (PerformanceEvent)

    数据类型

    基数

    描述

    receiver

    字符串

    1

    定义将发送通知的接收者的名称。

    status

    字符串

    1

    如果至少有一个警报正在触发,则定义为 firing,否则为 resolved。 在 PM 的情况下,Tacker 不会参考此属性。

    alerts

    结构(内联)

    1..N

    此组中所有警报对象的列表。

    >status

    字符串

    1

    定义警报是 resolved 还是当前 firing。

    >labels

    结构(内联)

    1

    要附加到警报的一组标签。

    >>receiver_type

    字符串

    1

    接收器类型:tacker

    >>function_type

    字符串

    1

    功能类型:vnfpm

    >>job_id

    标识符

    1

    PM 作业的标识符

    >>object_instance_id

    标识符

    1

    报告性能指标的被测对象实例的标识符。

    >>sub_object_instance_id

    标识符

    0..1

    报告性能指标的被测对象子实例的标识符。

    >annotations

    结构(内联)

    1

    警报的一组注释。

    >>value

    (任何类型)

    0..1

    收集的指标值。

    >startsAt

    DateTime

    1

    警报开始触发的时间。

    >endsAt

    DateTime

    1

    警报的结束时间。

    >generatorURL

    字符串

    1

    一个反向链接,用于标识此警报的触发实体。

    >fingerprint

    字符串

    1

    可用于标识警报的指纹。

    groupLabels

    KeyValuePairs

    1

    这些警报分组的标签。

    commonLabels

    KeyValuePairs

    1

    所有警报通用的标签。

    commonAnnotations

    KeyValuePairs

    1

    所有警报通用的注释集。 用于更长的附加信息字符串。

    externalURL

    字符串

    1

    指向发送通知的 Alertmanager 的反向链接。

    version

    字符串

    1

    groupKey

    字符串

    1

    响应:

    数据类型

    基数

    响应代码

    描述

    n/a

    成功:204

    当请求成功读取时返回。

    ProblemDetails

    请参阅 [5] 的 6.4 条。

    错误: 4xx/5xx

    除了上述响应代码外,ETSI GS NFV-SOL 013 的 6.4 条中定义的任何常见错误响应代码 [5] 也可能被返回。

安全影响

通知影响

故障管理
  • Tacker 发送 POST <Client URI from subscriptions> 到 NFVO 或 EM,以通知 Client Tacker 收到警报。

  • Tacker 发送 GET <Client URI from subscriptions> 到 NFVO 或 EM,以确认 Client 的 URI 正确。

性能管理
  • Tacker 发送 POST <Client URI for notifications> 到 NFVO 或 EM,以通知 Client Tacker 收到与 PM 相关的事件。

  • Tacker 发送 GET <Client URI for notifications> 到 NFVO 或 EM,以确认 Client 的 URI 正确。

  • Tacker 发送 GET/POST /api/v1/alerts 到外部监控工具,以设置 PM 作业。

  • Tacker 发送 GET/POST /api/v1/query 到外部监控工具,以获取与 PM 事件相关的数据。

其他最终用户影响

性能影响

其他部署者影响

开发人员影响

实现

负责人

主要负责人

Masaki Ueno <masaki.ueno.up@hco.ntt.co.jp>

其他贡献者

Koji Shimizu <shimizu.koji@fujitsu.com>

Yoshiyuki Katada <katada.yoshiyuk@fujitsu.com>

Ayumu Ueha <ueha.ayumu@fujitsu.com>

新見雄介 <niimi.yusuke@fujitsu.com>

工作项

  • 实现 Tacker 以支持

    • 故障管理接口

      • 添加新的 Rest API GET /vnffm/v1/alarms 以获取所有警报。

      • 添加新的 Rest API GET /vnffm/v1/alarms/{alarmId} 以获取指定的警报。

      • 添加新的 Rest API PATCH /vnffm/v1/alarms/{alarmId} 以将目标警报更改为 confirmed。

      • 添加新的 Rest API POST /vnffm/v1/subscriptions 以创建新的订阅。

      • 添加新的 Rest API GET /vnffm/v1/subscriptions 以获取所有订阅。

      • 添加新的 Rest API GET /vnffm/v1/subscriptions/{subscriptionId} 以获取指定的订阅。

      • 添加新的 Rest API DELETE /vnffm/v1/subscriptions/{subscriptionId} 以删除指定的订阅。

      • 添加新的请求 POST <Client URI from subscriptions> 以通知 Client Tacker 收到警报。

      • 添加新的请求 GET <Client URI from subscriptions> 以确认 Client 的 URI 正确。

    • 性能管理接口

      • 添加新的 Rest API POST /vnfpm/v2/pm_jobs 以创建 PM 作业。

      • 添加新的 Rest API GET /vnfpm/v2/pm_jobs 以获取所有 PM 作业。

      • 添加新的 Rest API GET /vnfpm/v2/pm_jobs/{pmJobId} 以获取指定的 PM 作业。

      • 添加新的 Rest API PATCH /vnfpm/v2/pm_jobs/{pmJobId} 以更改目标 PM 作业。

      • 添加新的 Rest API DELETE /vnfpm/v2/pm_jobs/{pmJobId} 以删除指定的 PM 作业。

      • 添加新的 Rest API GET /vnfpm/v2/pm_jobs/{pmJobId}/reports/{reportId} 以获取指定的 PM 报告。

      • 添加新的请求 POST <Client URI for notifications> 以通知 Client Tacker 收到警报。

      • 添加新的请求 GET <Client URI for notifications> 以确认 Client 的 URI 正确。

    • 外部监控接口

      • 添加新的 Rest API POST /alert 以接收来自外部监控工具发送的 FM 警报。

      • 添加新的 Rest API POST /pm_event 以接收来自外部监控工具发送的 PM 事件。

  • 添加新的单元和功能测试。

依赖项

无。

测试

将添加单元和功能测试,以涵盖规范所需的用例。

文档影响

  • 将添加完整的用户指南,以说明如何通过外部监控工具进行监控。

  • 更新 API 文档,以说明 REST API 影响 中提到的 API 添加项。

参考资料