【已评审】persistence组件新增控制可观测功能使能状态开关

ISSUE链接

新增可观测使能开关-mdb_interface-GitCode

背景

可观测功能由客户端和服务端组成。客户端使用开源软件opentelemetry采集组件的日志,追踪,度量数据,上报给服务端,服务端由Observaibility组件提供,支持将客户端数据发送到可视化工具。当前可观测功能开关由上层组件Observability组件提供,客户端无法感知开关,导致可观测服务关闭状态下,客户端仍然会一直上报观测数据,达不到真正关闭的作用。需要将开关下沉到persistence组件,由persistence组件提供属性开关,客户端监听属性开关,判断是否发送数据

整体方案

当前可观测功能开关由上层组件Observability组件提供,客户端无法直接监听,需要由持久化提供属性开关。有以下两种实现方式
方案一:保留原有Observability组件提供的可观测功能开关,persistence服务提供开观测使能开关,Observablility属性变化则同步到persistence服务使能开关,以达到通知客户端的目的

方案二:由persistence组件提供可观测使能属性,Observability服务端以及客户端均通过监听该开关感知是否开启观测功能

新增资源协作接口信息如下

path: /bmc/kepler/Dashboard
interface: bmc.kepler.Dashboard.Observability
property: Enabled
变化类型:新增资源树接口
应用场景:可观测功能使能开关
持久化类型:掉电持久化
操作权限:r:ReadOnly;w:DiagnoseMgmt

属性名称 变化类型 签名 读写&权限 持久化 变化通知 接口说明 接口约束
Enabled 新增属性 bool r:ReadOnly;w:DiagnoseMgmt PoweroffPer 可观测功能使能开关

决策点

  1. 可观测功能开关实现方案
  2. persistence组件新增bmc.kepler.Dashboard.Observability资源协作路径,接口,属性

评审结论

  1. 采用方案一,可观测功能的使能由Observability组件控制,即北向接口的设置请求由Observability组件处理,Observability组件再调用persistence组件的资源协作接口控制内部各个客户端的使能状态,opentelemetry客户端监听persistence组件的资源协作接口属性控制可观测功能使能状态
  2. 同意新增如下可观测功能的资源协作路径,接口,属性
    path: /bmc/kepler/Dashboard
    interface: bmc.kepler.Dashboard.Observability
    属性: Enabled
    表示可观测功能使能状态,签名为b,读写, 读权限:ReadOnly,写权限:DiagnoseMgmt,发送变更通知事件

1、标题加上待评审,新增全局可观测使能状态评审
2、按模板要求,补充Issue链接

已修改

  1. 使用方案1,框架尽量不直接对接北向
  2. 接口需要增加一个全局字段
    /bmc/kepler/Dashboard
    bmc.kepler.Dashboard.Observability
  3. 权限使用r ReadOnly, w DiagnoseMgmt