• weblogic监控


    connect('user', 'password', 't3://xx.xx.xx.xx:7001')
    
    def report_format(code, name, result, alert=0, children=None):
        _report_ = {'code': code, 'name': name, 'result': result, 'alert': alert}
        if children:
            _report_['children'] = children
        return _report_
    
    # 获取所有server
    def get_all_server():
        serverConfig()
        return cmo.getServers()
    
    # 获取所有运行中的server
    def get_run_servers():
        print dir(domainRuntimeService)
        return domainRuntimeService.getServerRuntimes()
    
    def get_server_state(server_name):
        alert = 0
        domainRuntime()
        state = cmo.lookupServerLifeCycleRuntime(server_name).getState()
        if state != 'RUNNING':
            alert = 1
        return report_format('服务状态', state, alert)
    
    def get_thread(run_server):
        threadRuntime = run_server.getThreadPoolRuntime()
    
        # 执行线程总数
        ETTC = threadRuntime.getExecuteThreadTotalCount()
        # 空闲执行线程
        ETIC = threadRuntime.getExecuteThreadIdleCount()
        # 独占线程
        HTC = threadRuntime.getHoggingThreadCount()
        # 备用线程
        STC = threadRuntime.getStandbyThreadCount()
    
        BTC = (ETTC - STC - ETIC - 1)
        return report_format('服务端口连接数', BTC,0)
    
    def get_current_thread(run_server):
        threadRuntime = run_server.getThreadPoolRuntime()
        # 空闲执行线程
        ETIC = threadRuntime.getExecuteThreadIdleCount()
        return report_format('空闲线程数', ETIC,0)
    <!-- 
    def get_max_thread(run_server):
        threadRuntime = domainRuntimeService.getJRockitRuntime()
        print dir(threadRuntime)
    
    
    def get_min_thread(run_server):
        threadRuntime = run_server.getThreadPoolRuntime()
        ETIC = threadRuntime.getExecuteThreadPoolSizeMin()
        return report_format('最小线程数', ETIC,0)
     -->
    def get_current_heap(run_server):
        jvmRuntime = run_server.getJVMRuntime()
        # 返回当前JVM堆中内存数,单位时字节
        current_heap = jvmRuntime.getHeapSizeCurrent()
        return report_format('堆大小', current_heap,0)
    
    def get_current_heap(run_server):
        jvmRuntime = run_server.getJVMRuntime()
        # 返回当前JVM堆中内存数,单位时字节
        current_heap = jvmRuntime.getHeapSizeMax()
        return report_format('最大堆', current_heap,0)
    
    
    
    def get_jdbc(run_server):
        datasources = run_server.getJDBCServiceRuntime().getJDBCDataSourceRuntimeMBeans()
        result = ''
        if len(datasources) != 0:
            for ds in datasources:
                ds_name = ds.getName()
                ds_state = ds.getState()
                ActiveConnections = ds.getActiveConnectionsCurrentCount()
                result += '%s: %s: %s' % (ds_name, ds_state, ActiveConnections)
        else:
            result = 'NULL'
        return report_format('服务JDBC当前连接数', result, 0)
    
    def get_queue(run_server):
        threadRuntime = run_server.getThreadPoolRuntime()
        # 队列大小
        ETIC = threadRuntime.getQueueLength()
        return report_format('队列长度', ETIC,0)
    
    # 获取每个server的属性
    def check_server(server, run_server_dict):
        server_report = []
        name = server.getName()
        run_server = run_server_dict.get(name)
        listen_address = server.getListenAddress()
        listen_port = server.getListenPort()
        machine = server.getMachine()
        if machine:
            machine = machine.getName()
        cluster = server.getCluster()
        if cluster:
            cluster = cluster.getName()
    
        server_report.append(report_format('集群', cluster, 0))
        server_report.append(report_format('服务名称', name, 0))
        server_report.append(report_format('监听IP', listen_address, 0))
        server_report.append(report_format('监听端口', listen_port, 0))
        server_report.append(report_format('计算机', machine, 0))
        server_report.append(get_server_state(name))
        if run_server:
            server_report.append(get_thread(run_server))
            server_report.append(get_jdbc(run_server))
            server_report.append(get_current_thread(run_server))
            server_report.append(get_max_thread(run_server))
            server_report.append(get_min_thread(run_server))
            server_report.append(get_current_heap(run_server))
        return server_report
    
    # 获取完整的domain属性
    def get_domain():
        # 获取domain_name
        domain_name = cmo.getName()
    
        # 获取所有运行中的server字典
        run_server_dict = {}
        for i in get_run_servers():
            run_server_dict[i.getName()] = i
    
        # 获取所有server状态
        children = []
        for s in get_all_server():
            children.append(check_server(s, run_server_dict))
        return report_format('domain', '单元节点', domain_name, 0, children)
    
    # 开始执行
    reports = get_domain()
    
    print "==data=="
    print reports
    print "==data=="
    

      

  • 相关阅读:
    .NET.GC 浅谈.net托管程序中的资源释放问题 (转帖)
    VB 中实现 For Each
    创建 ODBC 数据源以连接到 Windows CE 设备上的Sybase数据库
    VB 调用水晶报表2
    VC数据类型
    对.Net 垃圾回收Finalize 和Dispose的理解
    C# 播放器
    [转载]帮助C#菜鸟进入GDI+开发
    线程间操作无效: 从不是创建控件 的线程访问它
    VB.Net 中 WithEvents、AddHandler
  • 原文地址:https://www.cnblogs.com/slqt/p/10905955.html
Copyright © 2020-2023  润新知