华为北向网管NCE开发教程8(性能数据)

2024-06-18 23:44

本文主要是介绍华为北向网管NCE开发教程8(性能数据),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1接口说明

通过北向网管获取性能数据的接口,主要用PerformanceManagementMgr_I。
获取当前:getAllCurrentPMData
获取历史:getHistoryPMData

Common_IHolder commonHolder = new Common_IHolder();
emsSession.getManager("PerformanceManagement", commonHolder);
PerformanceManagementMgr_I pmMgr = PerformanceManagementMgr_IHelper.narrow(commonHolder.value);//当前
pmMgr.getAllCurrentPMData(pmTPSelectList, pmParameters, 100, pmDataList, pmIt);//历史
pmMgr.getHistoryPMData(destination, userName, password, pmTPSelectList, pmParameters, startTime, endTime, forceUpload);

2当前性能getAllCurrentPMData

void getAllCurrentPMData(mtnm.tmforum.org.performance.PMTPSelect_T[] pmTPSelectList, java.lang.String[] pmParameters, int how_many, mtnm.tmforum.org.performance.PMDataList_THolder pmDataList, mtnm.tmforum.org.performance.PMDataIterator_IHolder pmIt
) throws mtnm.tmforum.org.globaldefs.ProcessingFailureException;

在这里插入图片描述
可以看到请求参数中,可能有疑问的就是pmTPSelectList和pmParameters了。

2.1pmTPSelectList

在这里插入图片描述

下面是一个例子,指定managedElement,按照15分钟的频率获取当前性能

//性能监视对象名称,不可以为空
NameAndStringValue_T kVFirst = new NameAndStringValue_T("EMS", "Huawei/NCE");
NameAndStringValue_T kVSecond = new NameAndStringValue_T("ManagedElement", managedElement);
NameAndStringValue_T[] name = {kVFirst, kVSecond};//周期列表(为空表示查所有支持的周期);BITS仅支持15min。
//String[] granularityList = new String[0];//为空
//String[] granularityList = {"24h"};
//String[] granularityList = {"15min","24h"};
String[] granularityList = {"15min"};//层速率列表,可以为空
short[] layerRateList = new short[0];//性能监视位置列表,可以为空
String[] pMLocationList = new String[0];
PMTPSelect_T pmtpTemp = new PMTPSelect_T(name, layerRateList, pMLocationList, granularityList); 
PMTPSelect_T[] pmTPSelectList = {pmtpTemp};

2.2pmParameters

改参数指定监视哪些性能,该参数,可以为空
例如如下监控这部分性能

//String[] pmParameters = new String[0];//为空
String[] pmParameters = new String[8];
pmParameters[0] = "PMP_SM_EB";
pmParameters[1] = "PMP_SHDSL_LINEATTN";
pmParameters[2] = "PMP_RPL_MAX";
pmParameters[3] = "PMP_RPL_MIN";
pmParameters[4] = "PMP_RPL";
pmParameters[5] = "PMP_TPL_MAX";
pmParameters[6] = "PMP_TPL_MIN";
pmParameters[7] = "PMP_TPL";

具体想知道这个pmParameters 能支持哪些参数,具体见如下这个文件
在这里插入图片描述
拉到底,看到所支持的性能,大概有2400种,这里我就不挨个列出来了
在这里插入图片描述

2.3pmDataList

查询返回的对象,这个没啥好解释的,加上@Data注解,就可以打印或者get了,转json什么的
在这里插入图片描述

3历史性能getHistoryPMData

3.1ftp参数

下述的destination、userName、password、startTime、endTime这里不在重复说明,这几个参数和历史告警一样的写法。
华为北向网管NCE开发教程(7)历史告警采集
区别于,destination支持文件格式,这里我使用txt文件
支持文件:.pfm/.txt/.dat/.log/.xlsx/.csv/.xls/.xml/*.zip 中的一种

3.2pmTPSelectList、pmParameters

pmTPSelectList和pmParameters和上述的当前性能一样写法,这里也不在重复说明。

需要注意forceUpload
在这里插入图片描述
文档中说,0从NEC查询,1从网元查询,1:true,0:false。这里我们使用ture,网元的数据只有上传NCE以后,才能从NCE查询到,因此如果从NCE,不一定查询到数据

void getHistoryPMData(java.lang.String destination, java.lang.String userName, java.lang.String password, mtnm.tmforum.org.performance.PMTPSelect_T[] pmTPSelectList, java.lang.String[] pmParameters, java.lang.String startTime, java.lang.String endTime, boolean forceUpload
) throws mtnm.tmforum.org.globaldefs.ProcessingFailureException;

3.3文件传输订阅

这里参考订阅通知,没有订阅通知也不影响,主要就是没有订阅通知,不知道报错与否,也不知道什么时候生成文件。
华为北向网管NCE开发教程(6)消息订阅

4注意事项

4.1生成文件是无内容

生成在FTP的文件,只有列名,无实际数据
在这里插入图片描述
我当时遇到的时因为时间问题造成的,时间间隔长,就会出现,因此我后来实现,就是每次获取历史数据,只获取一天或者两天以内的,只要时间一拉长,就会出现空文件夹,我猜测,可能时间间隔太长,数据量太多,导致北向网管写数据的时候可能有些问题吧,因此就写了个空文件。

比如下面这个,我从22年6月5到24年6月5,全都是空内容

//String startTime = "20220605000000.0";
//String endTime =   "20240606000000.0";

比如下面这个,我从24年1月1到24年6月5,大部分都是空,偶尔几个文件存在点数据

//String startTime = "20240101000000.0";
//String endTime =   "20240606000000.0";

比如下面这个,我从24年6月5到24年6月6,就都有数据了

//String startTime = "20220605000000.0";
//String endTime =   "20240606000000.0";

5解析性能数据,txt为例

这是txt的内容
在这里插入图片描述
这是文档给的xlsx示例
在这里插入图片描述
上述两种文件格式,其实都是一样解析思路,下面是我的解析思路
1、读取行
txt. \n切割为行
xlsx:读取excel行
2、读取列
txt. \t切割为列
xlsx:读取excel列
3、合并相同
txt.某个\t到\t合并
xlsx:某列到某列合并
简单一点说,就是把这个文件的内容读取出来,当然了,你要是偷懒,也可以不合并,顶多就是每一行的数据,前面的这一大串是一样的。
在这里插入图片描述

在这里插入图片描述

这篇关于华为北向网管NCE开发教程8(性能数据)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1073397

相关文章

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

定价129元!支持双频 Wi-Fi 5的华为AX1路由器发布

《定价129元!支持双频Wi-Fi5的华为AX1路由器发布》华为上周推出了其最新的入门级Wi-Fi5路由器——华为路由AX1,建议零售价129元,这款路由器配置如何?详细请看下文介... 华为 Wi-Fi 5 路由 AX1 已正式开售,新品支持双频 1200 兆、配有四个千兆网口、提供可视化智能诊断功能,建

Ubuntu固定虚拟机ip地址的方法教程

《Ubuntu固定虚拟机ip地址的方法教程》本文详细介绍了如何在Ubuntu虚拟机中固定IP地址,包括检查和编辑`/etc/apt/sources.list`文件、更新网络配置文件以及使用Networ... 1、由于虚拟机网络是桥接,所以ip地址会不停地变化,接下来我们就讲述ip如何固定 2、如果apt安

PyCharm 接入 DeepSeek最新完整教程

《PyCharm接入DeepSeek最新完整教程》文章介绍了DeepSeek-V3模型的性能提升以及如何在PyCharm中接入和使用DeepSeek进行代码开发,本文通过图文并茂的形式给大家介绍的... 目录DeepSeek-V3效果演示创建API Key在PyCharm中下载Continue插件配置Con

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

Spring Boot整合log4j2日志配置的详细教程

《SpringBoot整合log4j2日志配置的详细教程》:本文主要介绍SpringBoot项目中整合Log4j2日志框架的步骤和配置,包括常用日志框架的比较、配置参数介绍、Log4j2配置详解... 目录前言一、常用日志框架二、配置参数介绍1. 日志级别2. 输出形式3. 日志格式3.1 PatternL

Redis的数据过期策略和数据淘汰策略

《Redis的数据过期策略和数据淘汰策略》本文主要介绍了Redis的数据过期策略和数据淘汰策略,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录一、数据过期策略1、惰性删除2、定期删除二、数据淘汰策略1、数据淘汰策略概念2、8种数据淘汰策略

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE