使用Jyhon脚本和PMI模块监控WAS性能数据的优点有:

1、可以使用非交互的方式远程获取数据

2、不需要图形化模块支持

3、对各种was版本的兼容性较高

4、使用方便,官方自带

缺点也有很多:

1、官方文档不全,需要自己摸索

2、不同版本和设置环境不同时,可能会引起抛错

3、代码纠错功能很低,调试代码费时

每个jython脚本执行前最好都设置一下辅助参数,比如换行参数

lineSeparator = java.lang.System.getProperty('line.separator')

  一、获取性能前,需要明确监控对象。这里的示例方法会在部分环境中取不到数据,最好还是用遍历node或sever的方法获取到perfOName 这个监控对象。

perfName = AdminControl.completeObjectName ('type=Perf,process={server},node={node},cell={cell},*')
perfOName = AdminControl.makeObjectName (perfName)
print perfOName
print "Invoke getStatisticSet operation "

 二、明确监控对象以后,需要设定PMI监控范围和颗粒度。

staticSetType=AdminControl.invoke(perfName, 'getStatisticSet')#获取监控对象当前的性能监控范围
if staticSetType not in ('all','custom'):
pmi_server = AdminConfig.getid('/Cell:{cell}/Node:{node}/Server:{server}/')
print pmi_server
pmi = AdminConfig.list('PMIService', pmi_server)
print pmi
AdminConfig.modify(pmi, '[[synchronizedUpdate false] [enable true] [statisticSet custom]]')#修改监控范围并保存
AdminConfig.save()
#AdminNodeManagement.syncNode(node)#同步到所有节点,不建议使用,很可能引起系统报错
staticSetType='custom' if staticSetType=='custom':#设定指定的自定义监控对象
params = ['extended']
sigs = ['java.lang.String']
AdminControl.invoke_jmx (perfOName, 'setStatisticSet', params, sigs)

  三、获取监控数据

jvmName = AdminControl.completeObjectName ('type=JVM,process={server},node={node},cell={cell},*')#设定一个jvm监控对象
params = [AdminControl.makeObjectName(jvmName)]
sigs = ['javax.management.ObjectName']
configs= AdminControl.invoke_jmx(perfOName, 'getConfig', params, sigs)
print "Invoke getCustomSetString operation"
types=['UsedMemory','ProcessCpuUsage','HeapSize','GCTime','GCIntervalTime'] #选择jvm监控对象的监控指标
type_datas=[]
for type in types:
type_datas.append(configs.getDataId(type))#在日志文件里,监控指标只有一个数字代表,所以需要先用这个步骤把指标的文字名称转换为数字标号 print "Invoke setCustomSetString operation"
params = ['jvmRuntimeModule='+','.join(str(type_datas)), java.lang.Boolean ('false')]
sigs = ['java.lang.String', 'java.lang.Boolean']
AdminControl.invoke_jmx(perfOName, 'setCustomSetString', params, sigs)#给最初选定的监控对象设置选定的监控指标
print "Invoke getStatsObject operation" jvmName = AdminControl.completeObjectName ('type=JVM,process={server},node={node},cell={cell},*')
params = [AdminControl.makeObjectName (jvmName), java.lang.Boolean ('false')]
sigs = ['javax.management.ObjectName', 'java.lang.Boolean']
datas=AdminControl.invoke_jmx(perfOName, 'getStatsObject', params, sigs)#对已设定监控指标的监控对象开启监控操作,这步执行后就会开始生成新的监控日志

  

脚本调错和使用的一些小Tips:

was5.1不具备admintask命令

查看指定节点的一些JVM参数:AdminTask.showJVMProperties('[-nodeName myNode12 -serverName server1]')

列出服务器端口:AdminTask.listServerPorts('server1', '[-nodeName myNode01 -portName WC_adminhost]')

获取指定对象的id:server1 = AdminConfig.getid('/Cluster:Cluster_1/Member:myserver1/')

查看某对象类型的属性:AdminConfig.attributes('Server')  或AdminConfig.show('Server')#was5.1版本比较特殊

查看某对象类型的关联对象表:AdminConfig.defaults('Server')

列出某对象的下级属性关联对象,比如cell下面的各对象:AdminConfig.list("Cell"),上级对象是AdminConfig.parents('Node')

查看某对象的属性方法:print dir(AdminConfig)

获取对象完整名称(获取路径):print AdminConfig.getObjectName(server1)

获取帮助文档:AdminConfig.help()

获取某属性内容:memberList = AdminConfig.showAttribute(cluster, "name")

AdminServerManagement的特有方法:AdminServerManagement.showServerInfo("myNode01", "myServer1")  以及  AdminServerManagement.queryMBeans("myNode01", "myserver1", "SessionStats")

补充对象名称:server = AdminControl.completeObjectName('type=Server,*')

获取对象实例:serverOI = AdminControl.getObjectInstance(server)

官方文档参考地址:https://www.ibm.com/support/knowledgecenter/zh/SSEQTP_8.5.5/com.ibm.websphere.base.doc/ae/tprf_command.html

参考地址2:https://www.ibm.com/support/knowledgecenter/zh/SSEQTP_8.5.5/com.ibm.websphere.base.iseries.doc/ae/rxml_7libserver2.html?pos=2

使用Jyhon脚本和PMI模块监控WAS性能数据的更多相关文章

  1. nGrinder二次开发之监控机器性能数据

    转载:https://blog.csdn.net/neven7/article/details/53909256 1.背景 做性能测试时,统计性能数据分为被压系统的数据和被压系统所在机器的数据,被压系 ...

  2. Python监控进程性能数据并画图保存为PDF文档

    引言 利用psutil模块(https://pypi.python.org/pypi/psutil/),可以很方便的监控系统的CPU.内存.磁盘IO.网络带宽等性能參数,下面是否代码为监控某个特定程序 ...

  3. 通过python脚本和zabbix配合监控zookeeper的节点数

    通过python脚本和zabbix配合监控zookeeper的节点数 需求描述: 在日常zabbix监控zookeeper的时候,无法通过shell来获取zookeeper的具体节点信息,没有开放具体 ...

  4. linux基础 -nginx和nfs代理 开发脚本自动部署及监控

    开发脚本自动部署及监控 1.编写脚本自动部署反向代理.web.nfs: (1).部署nginx反向代理三个web服务,调度算法使用加权轮询:  (2).所有web服务使用共享存储nfs,保证所有web ...

  5. linux开发脚本自动部署及监控

    linux开发脚本自动部署及监控 开发脚本自动部署及监控一.编写脚本自动部署反向代理.web.nfs:要求:1.部署nginx反向代理三个web服务,调度算法使用加权轮询: #!/bin/sh ngx ...

  6. 使用 Auditbeat 模块监控 shell 命令

    使用 Auditbeat 模块监控 shell 命令 Auditbeat Audited 模块可以用来监控所有用户在系统上执行的 shell 命令.在终端用户偶尔才会登录的服务器上,通常需要进行监控. ...

  7. 优化系统资源ulimit《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》

    优化系统资源ulimit<高性能Linux服务器构建实战:运维监控.性能调优与集群应用> 假设有这样一种情况,一台Linux 主机上同时登录了10个用户,在没有限制系统资源的情况下,这10 ...

  8. 分布式数据存储 - Zabbix监控MySQL性能

    Zabbix如何监控mysql性能,我们可以使用mysql自带的模板,可以监控如下内容:OPS(增删改查).mysql请求流量带宽,mysql响应流量带宽,最后会附上相应的监控图! 编写check_m ...

  9. JS脚本加载与执行对性能的影响

    高性能JavaScript-JS脚本加载与执行对性能的影响 在web产品优化准则中,很重要的一条是针对js脚本的加载和执行方式的优化.本篇文章简单描述一下其中的优化准则. 1. 脚本加载优化 1.1 ...

随机推荐

  1. 洛谷 P3297 [SDOI2013]逃考 解题报告

    P3297 [SDOI2013]逃考 题意 给一个平面矩形,里面有一些有标号点,有一个是人物点,人物点会被最近的其他点控制,人物点要走出矩形,求人物点最少被几个点控制过. 保证一开始只被一个点控制,没 ...

  2. A1047. Student List for Course

    Zhejiang University has 40000 students and provides 2500 courses. Now given the registered course li ...

  3. A1054. The Dominant Color

    Behind the scenes in the computer's memory, color is always talked about as a series of 24 bits of i ...

  4. 解决FLASH遮住层的问题 IE,Firefox都适用!

    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://down ...

  5. babel与ES6环境的搭建

    我们知道浏览器环境下直接运行ES6是存在一些兼容性问题的.那么把ES6变成ES5不就行了吗? 那如何将ES6转换成ES5呢?我们来搭建它的转换环境吧~ 第一步:初始化项目,建立写注意事项的README ...

  6. zookeeper配置

    原文链接:https://www.cnblogs.com/yuyijq/p/3438829.html 前面两篇文章介绍了Zookeeper是什么和可以干什么,那么接下来我们就实际的接触一下Zookee ...

  7. Winform下载文件并显示进度条

    本来是要研究怎样判断下载完成,结果找到这个方法,可以在这个方法完成之后提示下载完成. 代码如下: using System; using System.Collections.Generic; usi ...

  8. pymysql 解决 sql 注入问题

    1. SQL 注入 SQL 注入是非常常见的一种网络攻击方式,主要是通过参数来让 mysql 执行 sql 语句时进行预期之外的操作. 即:因为传入的参数改变SQL的语义,变成了其他命令,从而操作了数 ...

  9. how to calculate the best fit to a plane in 3D, and how to find the corresponding statistical parameters

    sklearn实战-乳腺癌细胞数据挖掘(博客主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005269003&a ...

  10. CentOS6.8下安装redis并配置开机自启动

    参考资料:http://www.bubuko.com/infodetail-1006383.html   http://www.cnblogs.com/skyessay/p/6433349.html ...