Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * (C) 2007-2012 Alibaba Group Holding Limited.
   * 
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   * 
   *      http://www.apache.org/licenses/LICENSE-2.0
   * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  * Authors:
  *   wuhua <wq163@163.com> , boyan <killme2008@gmail.com>
  */
 package com.taobao.metamorphosis.tools.monitor;
 
 import java.util.Map;
 
 

Author(s):
�޻�
Since:
2011-5-27 ����03:28:14
 
 // TODO �ȼ�������.�Ժ���Խ�һ���������prober������߼�
 public class ProberManager {
 
     private static Logger logger = Logger.getLogger(ProberManager.class);
 
     private final Map<Class<? extends Prober>, Proberprobers = new HashMap<Class<? extends Prober>, Prober>();
     private MonitorConfig monitorConfig;
     private final AtomicBoolean isInited = new AtomicBoolean(false);
     private final AtomicBoolean isStarted = new AtomicBoolean(false);
 
 
     void register(Prober prober) {
         this..put(prober.getClass(), prober);
     }
 
 
     public void initProbers(CoreManager coreManagerthrows InitException {
         if (this..compareAndSet(falsetrue)) {
             try {
                 this. = coreManager.getMonitorConfig();
                 this.register(new MsgProber(coreManager));
                 this.register(new RealTimeStatsProber(coreManager));
 //                this.register(new OffsetProber(coreManager));
                 this.register(new OffsetCompareProber(coreManager));
                 this.register(new CPULoadProber(coreManager));
                 this.register(new DiskUsedProber(coreManager));
                 this.register(new NetWorkUsedProber(coreManager));
                 this.register(new JvmMemoryProber(coreManager));
                 this.register(new ZKConnProber(coreManager));
                 this.register(new MetaConnProber(coreManager));
                 this.register(new PreparedTransactionProber(coreManager));
 
                 for (Prober prober : this..values()) {
                     prober.init();
                     .info(prober.getClass().getSimpleName() + " init success!");
                 }
 
                 .info("all probers init success!");
 
             }
             catch (Throwable e) {
                 throw new InitException(e);
             }
         }
     }
 
 
     public void setHookToAllSystemMonitor(ProcessResultHook hook) {
         if (!this..get()) {
             throw new IllegalStateException("not inited");
        }
        for (Prober prober : this..values()) {
            if (prober instanceof SystemProber) {
                ((SystemProberprober).setProcessResultHook(hook);
            }
        }
    }
    public void initProbers(String sourcethrows InitException {
        this. = new MonitorConfig();
        try {
            this..loadInis(StringUtils.isBlank(source) ? . : source);
        }
        catch (IOException e) {
            throw new InitException(e);
        }
        this.initProbers(CoreManager.getInstance(this.this..getMetaServerList().size()
                * this..size()));
    }
    public void startProb() throws Exception {
        if (this..get()) {
            for (Prober prober : this..values()) {
                prober.prob();
            }
            this..set(true);
        }
        else {
            throw new InitException("has not inited yet");
        }
    }
    public void stopProb() throws Exception {
        if (this..get()) {
            for (Prober prober : this..values()) {
                prober.stopProb();
            }
            this..set(false);
        }
        else {
            throw new InitException("has not inited yet");
        }
    }
        return this.;
    }
    public static Logger getLogger() {
        return ;
    }
    public boolean isStarted() {
        return this..get();
    }
New to GrepCode? Check out our FAQ X