You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by or...@apache.org on 2017/10/18 13:52:53 UTC

[3/4] qpid-broker-j git commit: QPID-7799: [Java Broker] Modify broker and virtual host store upgraders to add statistics related context variables and logging rules

QPID-7799: [Java Broker] Modify broker and virtual host store upgraders to add statistics related context variables and logging rules


Project: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/commit/d253bea1
Tree: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/tree/d253bea1
Diff: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/diff/d253bea1

Branch: refs/heads/master
Commit: d253bea18fb976ec7868e12e1867698211a51afb
Parents: 06a3072
Author: Alex Rudyy <or...@apache.org>
Authored: Wed Oct 18 13:41:45 2017 +0100
Committer: Alex Rudyy <or...@apache.org>
Committed: Wed Oct 18 14:52:42 2017 +0100

----------------------------------------------------------------------
 .../store/BrokerStoreUpgraderAndRecoverer.java  | 36 ++++++++++++++++++++
 .../VirtualHostStoreUpgraderAndRecoverer.java   | 34 +++++++++++++++++-
 ...irtualHostStoreUpgraderAndRecovererTest.java |  5 +++
 3 files changed, 74 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/d253bea1/broker-core/src/main/java/org/apache/qpid/server/store/BrokerStoreUpgraderAndRecoverer.java
----------------------------------------------------------------------
diff --git a/broker-core/src/main/java/org/apache/qpid/server/store/BrokerStoreUpgraderAndRecoverer.java b/broker-core/src/main/java/org/apache/qpid/server/store/BrokerStoreUpgraderAndRecoverer.java
index 3c04785..e69fe77 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/store/BrokerStoreUpgraderAndRecoverer.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/store/BrokerStoreUpgraderAndRecoverer.java
@@ -569,6 +569,7 @@ public class BrokerStoreUpgraderAndRecoverer extends AbstractConfigurationStoreU
         {
             if (record.getType().equals("Broker"))
             {
+                boolean rebuildRecord = false;
                 Map<String, Object> attributes = new HashMap<>(record.getAttributes());
                 Map<String, String> additionalContext = new HashMap<>();
                 for (String attributeName : BROKER_ATTRIBUTES_MOVED_INTO_CONTEXT.keySet())
@@ -581,6 +582,20 @@ public class BrokerStoreUpgraderAndRecoverer extends AbstractConfigurationStoreU
                     }
                 }
 
+                if (attributes.containsKey("statisticsReportingResetEnabled"))
+                {
+                    attributes.remove("statisticsReportingResetEnabled");
+                    rebuildRecord = true;
+                }
+
+                if (attributes.containsKey("statisticsReportingPeriod")
+                    && Integer.parseInt(String.valueOf(attributes.get("statisticsReportingPeriod"))) > 0)
+                {
+                    additionalContext.put("qpid.broker.statisticsReportPattern", "messagesIn=${messagesIn}, bytesIn=${bytesIn:byteunit}, messagesOut=${messagesOut}, bytesOut=${bytesOut:byteunit}");
+
+                    rebuildRecord = true;
+                }
+
                 if (!additionalContext.isEmpty())
                 {
                     Map<String, String> newContext = new HashMap<>();
@@ -591,6 +606,11 @@ public class BrokerStoreUpgraderAndRecoverer extends AbstractConfigurationStoreU
                     newContext.putAll(additionalContext);
                     attributes.put("context", newContext);
 
+                    rebuildRecord = true;
+                }
+
+                if (rebuildRecord)
+                {
                     record = new ConfiguredObjectRecordImpl(record.getId(),
                                                             record.getType(),
                                                             attributes,
@@ -610,6 +630,22 @@ public class BrokerStoreUpgraderAndRecoverer extends AbstractConfigurationStoreU
                     upgradeHttpPortIfRequired(record);
                 }
             }
+            else if (record.getType().equals("BrokerLogger"))
+            {
+                Map<String,Object> attributes = new HashMap<>();
+                attributes.put("name", "statistics-" + record.getAttributes().get("name"));
+                attributes.put("level", "INFO");
+                attributes.put("loggerName", "qpid.statistics.*");
+                attributes.put("type", "NameAndLevel");
+
+
+                final ConfiguredObjectRecord filterRecord = new ConfiguredObjectRecordImpl(UUID.randomUUID(),
+                                                                                           "BrokerLogInclusionRule",
+                                                                                           attributes,
+                                                                                           Collections.singletonMap("BrokerLogger",
+                                                                                                                    record.getId()));
+                getUpdateMap().put(filterRecord.getId(), filterRecord);
+            }
         }
 
         private void upgradeHttpPortIfRequired(final ConfiguredObjectRecord record)

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/d253bea1/broker-core/src/main/java/org/apache/qpid/server/store/VirtualHostStoreUpgraderAndRecoverer.java
----------------------------------------------------------------------
diff --git a/broker-core/src/main/java/org/apache/qpid/server/store/VirtualHostStoreUpgraderAndRecoverer.java b/broker-core/src/main/java/org/apache/qpid/server/store/VirtualHostStoreUpgraderAndRecoverer.java
index 62fc386..0bf0aef 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/store/VirtualHostStoreUpgraderAndRecoverer.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/store/VirtualHostStoreUpgraderAndRecoverer.java
@@ -38,6 +38,7 @@ import org.apache.qpid.server.filter.FilterSupport;
 import org.apache.qpid.server.model.AbstractConfigurationChangeListener;
 import org.apache.qpid.server.model.AbstractConfiguredObject;
 import org.apache.qpid.server.model.Binding;
+import org.apache.qpid.server.model.Broker;
 import org.apache.qpid.server.model.ConfiguredObject;
 import org.apache.qpid.server.model.Exchange;
 import org.apache.qpid.server.model.Queue;
@@ -631,9 +632,10 @@ public class VirtualHostStoreUpgraderAndRecoverer extends AbstractConfigurationS
                 Map<String, Object> attributes = new HashMap<>(record.getAttributes());
                 boolean modified = attributes.remove("queue_deadLetterQueueEnabled") != null;
                 Object context = attributes.get("context");
+                Map<String,Object> contextMap = null;
                 if(context instanceof Map)
                 {
-                    Map<String,Object> contextMap = new HashMap<>((Map<String,Object>) context);
+                    contextMap = new HashMap<>((Map<String,Object>) context);
                     modified |= contextMap.remove("queue.deadLetterQueueEnabled") != null;
                     if (modified)
                     {
@@ -641,6 +643,20 @@ public class VirtualHostStoreUpgraderAndRecoverer extends AbstractConfigurationS
                     }
                 }
 
+                int brokerStatisticsReportingPeriod = ((Broker) _virtualHostNode.getParent()).getStatisticsReportingPeriod();
+                if (brokerStatisticsReportingPeriod > 0)
+                {
+                    attributes.put("statisticsReportingPeriod", brokerStatisticsReportingPeriod);
+                    if (contextMap == null)
+                    {
+                        contextMap = new HashMap<>();
+                    }
+
+                    contextMap.put("qpid.virtualhost.statisticsReportPattern", "${ancestor:virtualhost:name}: messagesIn=${messagesIn}, bytesIn=${bytesIn:byteunit}, messagesOut=${messagesOut}, bytesOut=${bytesOut:byteunit}");
+                    attributes.put("context", contextMap);
+                    modified = true;
+                }
+
                 if (modified)
                 {
                     record = new ConfiguredObjectRecordImpl(record.getId(), record.getType(), attributes, record.getParents());
@@ -780,6 +796,22 @@ public class VirtualHostStoreUpgraderAndRecoverer extends AbstractConfigurationS
                                                                       record.getParents()));
                 }
             }
+            else if (record.getType().equals("VirtualHostLogger"))
+            {
+                Map<String,Object> attributes = new HashMap<>();
+                attributes.put("name", "statistics-" + record.getAttributes().get("name"));
+                attributes.put("level", "INFO");
+                attributes.put("loggerName", "qpid.statistics.*");
+                attributes.put("type", "NameAndLevel");
+
+
+                final ConfiguredObjectRecord filterRecord = new ConfiguredObjectRecordImpl(UUID.randomUUID(),
+                                                                                           "VirtualHostLogInclusionRule",
+                                                                                           attributes,
+                                                                                           Collections.singletonMap("VirtualHostLogger",
+                                                                                                                    record.getId()));
+                getUpdateMap().put(filterRecord.getId(), filterRecord);
+            }
         }
 
         private long convertAttributeValueToLong(final String attributeName,

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/d253bea1/broker-core/src/test/java/org/apache/qpid/server/store/VirtualHostStoreUpgraderAndRecovererTest.java
----------------------------------------------------------------------
diff --git a/broker-core/src/test/java/org/apache/qpid/server/store/VirtualHostStoreUpgraderAndRecovererTest.java b/broker-core/src/test/java/org/apache/qpid/server/store/VirtualHostStoreUpgraderAndRecovererTest.java
index cbfa362..40c11ee 100644
--- a/broker-core/src/test/java/org/apache/qpid/server/store/VirtualHostStoreUpgraderAndRecovererTest.java
+++ b/broker-core/src/test/java/org/apache/qpid/server/store/VirtualHostStoreUpgraderAndRecovererTest.java
@@ -21,6 +21,7 @@ package org.apache.qpid.server.store;
 
 
 import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
 import java.util.Arrays;
 import java.util.Collections;
@@ -29,6 +30,8 @@ import java.util.List;
 import java.util.Map;
 import java.util.UUID;
 
+import org.apache.qpid.server.model.Broker;
+import org.apache.qpid.server.model.ConfiguredObject;
 import org.apache.qpid.server.model.OverflowPolicy;
 import org.apache.qpid.server.model.VirtualHostNode;
 import org.apache.qpid.test.utils.QpidTestCase;
@@ -44,7 +47,9 @@ public class VirtualHostStoreUpgraderAndRecovererTest extends QpidTestCase
     {
         super.setUp();
 
+        final Broker broker = mock(Broker.class);
         _virtualHostNode = mock(VirtualHostNode.class);
+        when(_virtualHostNode.getParent()).thenReturn(broker);
         _store = mock(DurableConfigurationStore.class);
         _upgraderAndRecoverer = new VirtualHostStoreUpgraderAndRecoverer(_virtualHostNode);
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org