You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@helix.apache.org by lx...@apache.org on 2017/02/08 17:59:58 UTC
[23/38] helix git commit: Rename ParticipantMonitor class
Rename ParticipantMonitor class
Project: http://git-wip-us.apache.org/repos/asf/helix/repo
Commit: http://git-wip-us.apache.org/repos/asf/helix/commit/6a375071
Tree: http://git-wip-us.apache.org/repos/asf/helix/tree/6a375071
Diff: http://git-wip-us.apache.org/repos/asf/helix/diff/6a375071
Branch: refs/heads/helix-0.6.x
Commit: 6a3750715a140e4da406a8707c1e41a1bb4b7427
Parents: 7245d19
Author: Boyan Li <bo...@linkedin.com>
Authored: Wed Sep 14 10:48:23 2016 -0700
Committer: Lei Xia <lx...@linkedin.com>
Committed: Wed Feb 8 09:52:30 2017 -0800
----------------------------------------------------------------------
.../messaging/handling/HelixTaskExecutor.java | 8 +-
.../helix/monitoring/ParticipantMonitor.java | 111 -------------------
.../monitoring/ParticipantStatusMonitor.java | 111 +++++++++++++++++++
.../monitoring/TestParticipantMonitor.java | 4 +-
4 files changed, 117 insertions(+), 117 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/helix/blob/6a375071/helix-core/src/main/java/org/apache/helix/messaging/handling/HelixTaskExecutor.java
----------------------------------------------------------------------
diff --git a/helix-core/src/main/java/org/apache/helix/messaging/handling/HelixTaskExecutor.java b/helix-core/src/main/java/org/apache/helix/messaging/handling/HelixTaskExecutor.java
index 7a1210f..188992b 100644
--- a/helix-core/src/main/java/org/apache/helix/messaging/handling/HelixTaskExecutor.java
+++ b/helix-core/src/main/java/org/apache/helix/messaging/handling/HelixTaskExecutor.java
@@ -57,7 +57,7 @@ import org.apache.helix.model.Message;
import org.apache.helix.model.Message.MessageState;
import org.apache.helix.model.Message.MessageType;
import org.apache.helix.model.builder.HelixConfigScopeBuilder;
-import org.apache.helix.monitoring.ParticipantMonitor;
+import org.apache.helix.monitoring.ParticipantStatusMonitor;
import org.apache.helix.monitoring.mbeans.MessageQueueMonitor;
import org.apache.helix.participant.HelixStateMachineEngine;
import org.apache.helix.participant.statemachine.StateModel;
@@ -105,7 +105,7 @@ public class HelixTaskExecutor implements MessageListener, TaskExecutor {
protected final Map<String, MessageTaskInfo> _taskMap;
private final Object _lock;
private final StatusUpdateUtil _statusUpdateUtil;
- private final ParticipantMonitor _monitor;
+ private final ParticipantStatusMonitor _monitor;
public static final String MAX_THREADS = "maxThreads";
private MessageQueueMonitor _messageQueueMonitor;
@@ -137,7 +137,7 @@ public class HelixTaskExecutor implements MessageListener, TaskExecutor {
_lock = new Object();
_statusUpdateUtil = new StatusUpdateUtil();
- _monitor = new ParticipantMonitor();
+ _monitor = new ParticipantStatusMonitor();
_timer = new Timer(true); // created as a daemon timer thread to handle task timeout
@@ -188,7 +188,7 @@ public class HelixTaskExecutor implements MessageListener, TaskExecutor {
_controller = controller;
}
- public ParticipantMonitor getParticipantMonitor() {
+ public ParticipantStatusMonitor getParticipantMonitor() {
return _monitor;
}
http://git-wip-us.apache.org/repos/asf/helix/blob/6a375071/helix-core/src/main/java/org/apache/helix/monitoring/ParticipantMonitor.java
----------------------------------------------------------------------
diff --git a/helix-core/src/main/java/org/apache/helix/monitoring/ParticipantMonitor.java b/helix-core/src/main/java/org/apache/helix/monitoring/ParticipantMonitor.java
deleted file mode 100644
index 01b43cd..0000000
--- a/helix-core/src/main/java/org/apache/helix/monitoring/ParticipantMonitor.java
+++ /dev/null
@@ -1,111 +0,0 @@
-package org.apache.helix.monitoring;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.
- */
-
-import java.lang.management.ManagementFactory;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.TimeUnit;
-
-import javax.management.MBeanServer;
-import javax.management.MalformedObjectNameException;
-import javax.management.ObjectName;
-
-import org.apache.helix.monitoring.mbeans.StateTransitionStatMonitor;
-import org.apache.log4j.Logger;
-
-public class ParticipantMonitor {
- private final ConcurrentHashMap<StateTransitionContext, StateTransitionStatMonitor> _monitorMap =
- new ConcurrentHashMap<StateTransitionContext, StateTransitionStatMonitor>();
- private static final Logger LOG = Logger.getLogger(ParticipantMonitor.class);
-
- private MBeanServer _beanServer;
-
- public ParticipantMonitor() {
- try {
- _beanServer = ManagementFactory.getPlatformMBeanServer();
- } catch (Exception e) {
- LOG.warn(e);
- e.printStackTrace();
- _beanServer = null;
- }
- }
-
- public void reportTransitionStat(StateTransitionContext cxt, StateTransitionDataPoint data) {
- if (_beanServer == null) {
- LOG.warn("bean server is null, skip reporting");
- return;
- }
- try {
- if (!_monitorMap.containsKey(cxt)) {
- synchronized (this) {
- if (!_monitorMap.containsKey(cxt)) {
- StateTransitionStatMonitor bean =
- new StateTransitionStatMonitor(cxt, TimeUnit.MILLISECONDS);
- _monitorMap.put(cxt, bean);
- String beanName = cxt.toString();
- register(bean, getObjectName(beanName));
- }
- }
- }
- _monitorMap.get(cxt).addDataPoint(data);
- } catch (Exception e) {
- LOG.warn(e);
- e.printStackTrace();
- }
- }
-
- private ObjectName getObjectName(String name) throws MalformedObjectNameException {
- LOG.info("Registering bean: " + name);
- return new ObjectName("CLMParticipantReport:" + name);
- }
-
- private void register(Object bean, ObjectName name) {
- if (_beanServer == null) {
- LOG.warn("bean server is null, skip reporting");
- return;
- }
- try {
- _beanServer.unregisterMBean(name);
- } catch (Exception e1) {
- // Swallow silently
- }
-
- try {
- _beanServer.registerMBean(bean, name);
- } catch (Exception e) {
- LOG.warn("Could not register MBean", e);
- }
- }
-
- public void shutDown() {
- for (StateTransitionContext cxt : _monitorMap.keySet()) {
- try {
- ObjectName name = getObjectName(cxt.toString());
- if (_beanServer.isRegistered(name)) {
- _beanServer.unregisterMBean(name);
- }
- } catch (Exception e) {
- LOG.warn("fail to unregister " + cxt.toString(), e);
- }
- }
- _monitorMap.clear();
-
- }
-}
http://git-wip-us.apache.org/repos/asf/helix/blob/6a375071/helix-core/src/main/java/org/apache/helix/monitoring/ParticipantStatusMonitor.java
----------------------------------------------------------------------
diff --git a/helix-core/src/main/java/org/apache/helix/monitoring/ParticipantStatusMonitor.java b/helix-core/src/main/java/org/apache/helix/monitoring/ParticipantStatusMonitor.java
new file mode 100644
index 0000000..e2e0082
--- /dev/null
+++ b/helix-core/src/main/java/org/apache/helix/monitoring/ParticipantStatusMonitor.java
@@ -0,0 +1,111 @@
+package org.apache.helix.monitoring;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+
+import java.lang.management.ManagementFactory;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.TimeUnit;
+
+import javax.management.MBeanServer;
+import javax.management.MalformedObjectNameException;
+import javax.management.ObjectName;
+
+import org.apache.helix.monitoring.mbeans.StateTransitionStatMonitor;
+import org.apache.log4j.Logger;
+
+public class ParticipantStatusMonitor {
+ private final ConcurrentHashMap<StateTransitionContext, StateTransitionStatMonitor> _monitorMap =
+ new ConcurrentHashMap<StateTransitionContext, StateTransitionStatMonitor>();
+ private static final Logger LOG = Logger.getLogger(ParticipantStatusMonitor.class);
+
+ private MBeanServer _beanServer;
+
+ public ParticipantStatusMonitor() {
+ try {
+ _beanServer = ManagementFactory.getPlatformMBeanServer();
+ } catch (Exception e) {
+ LOG.warn(e);
+ e.printStackTrace();
+ _beanServer = null;
+ }
+ }
+
+ public void reportTransitionStat(StateTransitionContext cxt, StateTransitionDataPoint data) {
+ if (_beanServer == null) {
+ LOG.warn("bean server is null, skip reporting");
+ return;
+ }
+ try {
+ if (!_monitorMap.containsKey(cxt)) {
+ synchronized (this) {
+ if (!_monitorMap.containsKey(cxt)) {
+ StateTransitionStatMonitor bean =
+ new StateTransitionStatMonitor(cxt, TimeUnit.MILLISECONDS);
+ _monitorMap.put(cxt, bean);
+ String beanName = cxt.toString();
+ register(bean, getObjectName(beanName));
+ }
+ }
+ }
+ _monitorMap.get(cxt).addDataPoint(data);
+ } catch (Exception e) {
+ LOG.warn(e);
+ e.printStackTrace();
+ }
+ }
+
+ private ObjectName getObjectName(String name) throws MalformedObjectNameException {
+ LOG.info("Registering bean: " + name);
+ return new ObjectName("CLMParticipantReport:" + name);
+ }
+
+ private void register(Object bean, ObjectName name) {
+ if (_beanServer == null) {
+ LOG.warn("bean server is null, skip reporting");
+ return;
+ }
+ try {
+ _beanServer.unregisterMBean(name);
+ } catch (Exception e1) {
+ // Swallow silently
+ }
+
+ try {
+ _beanServer.registerMBean(bean, name);
+ } catch (Exception e) {
+ LOG.warn("Could not register MBean", e);
+ }
+ }
+
+ public void shutDown() {
+ for (StateTransitionContext cxt : _monitorMap.keySet()) {
+ try {
+ ObjectName name = getObjectName(cxt.toString());
+ if (_beanServer.isRegistered(name)) {
+ _beanServer.unregisterMBean(name);
+ }
+ } catch (Exception e) {
+ LOG.warn("fail to unregister " + cxt.toString(), e);
+ }
+ }
+ _monitorMap.clear();
+
+ }
+}
http://git-wip-us.apache.org/repos/asf/helix/blob/6a375071/helix-core/src/test/java/org/apache/helix/monitoring/TestParticipantMonitor.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/monitoring/TestParticipantMonitor.java b/helix-core/src/test/java/org/apache/helix/monitoring/TestParticipantMonitor.java
index 5f44b36..0191eaa 100644
--- a/helix-core/src/test/java/org/apache/helix/monitoring/TestParticipantMonitor.java
+++ b/helix-core/src/test/java/org/apache/helix/monitoring/TestParticipantMonitor.java
@@ -33,7 +33,7 @@ import javax.management.MalformedObjectNameException;
import javax.management.ObjectInstance;
import javax.management.ObjectName;
-import org.apache.helix.monitoring.ParticipantMonitor;
+import org.apache.helix.monitoring.ParticipantStatusMonitor;
import org.apache.helix.monitoring.StateTransitionContext;
import org.apache.helix.monitoring.StateTransitionDataPoint;
import org.apache.helix.monitoring.mbeans.ClusterMBeanObserver;
@@ -100,7 +100,7 @@ public class TestParticipantMonitor {
public void testReportData() throws InstanceNotFoundException, MalformedObjectNameException,
NullPointerException, IOException, InterruptedException {
System.out.println("START TestParticipantMonitor");
- ParticipantMonitor monitor = new ParticipantMonitor();
+ ParticipantStatusMonitor monitor = new ParticipantStatusMonitor();
int monitorNum = 0;