Issue #1580 - Implementation of Stats/Event framework.
Change-Id: I45a5a855f81c975a8a13d73f18ab9de3ddecf7cd Former-commit-id: ca2f288876b80fe5e491f335fb6b22b20a468fca
This commit is contained in:
parent
efaa83d708
commit
b9f317bbd0
16 changed files with 506 additions and 24 deletions
|
@ -8,6 +8,10 @@ Bundle-Vendor: RAYTHEON
|
||||||
Require-Bundle: org.eclipse.core.runtime,
|
Require-Bundle: org.eclipse.core.runtime,
|
||||||
com.raytheon.uf.common.event;bundle-version="1.0.0",
|
com.raytheon.uf.common.event;bundle-version="1.0.0",
|
||||||
com.raytheon.uf.common.serialization.comm;bundle-version="1.12.1174",
|
com.raytheon.uf.common.serialization.comm;bundle-version="1.12.1174",
|
||||||
com.raytheon.uf.common.status;bundle-version="1.12.1174"
|
com.raytheon.uf.common.status;bundle-version="1.12.1174",
|
||||||
|
org.eclipse.ui;bundle-version="3.6.1"
|
||||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
|
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
|
||||||
Bundle-ActivationPolicy: lazy
|
Bundle-ActivationPolicy: lazy
|
||||||
|
Export-Package: com.raytheon.uf.viz.event
|
||||||
|
Eclipse-BuddyPolicy: ext, registered, global
|
||||||
|
Eclipse-RegisterBuddy: com.raytheon.uf.common.event
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
com.raytheon.uf.viz.event.CaveEventBusHandler
|
com.raytheon.uf.viz.event.CaveEventBusHandler
|
||||||
|
|
|
@ -0,0 +1,83 @@
|
||||||
|
/**
|
||||||
|
* This software was developed and / or modified by Raytheon Company,
|
||||||
|
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||||
|
*
|
||||||
|
* U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||||
|
* This software product contains export-restricted data whose
|
||||||
|
* export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||||
|
* to non-U.S. persons whether in the United States or abroad requires
|
||||||
|
* an export license or other authorization.
|
||||||
|
*
|
||||||
|
* Contractor Name: Raytheon Company
|
||||||
|
* Contractor Address: 6825 Pine Street, Suite 340
|
||||||
|
* Mail Stop B8
|
||||||
|
* Omaha, NE 68106
|
||||||
|
* 402.291.0100
|
||||||
|
*
|
||||||
|
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||||
|
* further licensing information.
|
||||||
|
**/
|
||||||
|
package com.raytheon.uf.viz.event;
|
||||||
|
|
||||||
|
import org.eclipse.ui.plugin.AbstractUIPlugin;
|
||||||
|
import org.osgi.framework.BundleContext;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The activator class controls the plug-in life cycle
|
||||||
|
*/
|
||||||
|
public class Activator extends AbstractUIPlugin {
|
||||||
|
|
||||||
|
// The plug-in ID
|
||||||
|
public static final String PLUGIN_ID = "com.raytheon.uf.viz.event";
|
||||||
|
|
||||||
|
// The shared instance
|
||||||
|
private static Activator plugin;
|
||||||
|
|
||||||
|
private BundleContext ctx;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The constructor
|
||||||
|
*/
|
||||||
|
public Activator() {
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
|
* @see
|
||||||
|
* org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext
|
||||||
|
* )
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void start(BundleContext context) throws Exception {
|
||||||
|
super.start(context);
|
||||||
|
this.ctx = context;
|
||||||
|
plugin = this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BundleContext getContext() {
|
||||||
|
return ctx;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
|
* @see
|
||||||
|
* org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext
|
||||||
|
* )
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void stop(BundleContext context) throws Exception {
|
||||||
|
plugin = null;
|
||||||
|
super.stop(context);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the shared instance
|
||||||
|
*
|
||||||
|
* @return the shared instance
|
||||||
|
*/
|
||||||
|
public static Activator getDefault() {
|
||||||
|
return plugin;
|
||||||
|
}
|
||||||
|
}
|
|
@ -19,13 +19,14 @@
|
||||||
**/
|
**/
|
||||||
package com.raytheon.uf.viz.event;
|
package com.raytheon.uf.viz.event;
|
||||||
|
|
||||||
|
import java.util.concurrent.ArrayBlockingQueue;
|
||||||
|
import java.util.concurrent.ThreadPoolExecutor;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import com.raytheon.uf.common.event.Event;
|
import com.raytheon.uf.common.event.Event;
|
||||||
import com.raytheon.uf.common.event.EventPublishRequest;
|
import com.raytheon.uf.common.event.EventPublishRequest;
|
||||||
import com.raytheon.uf.common.event.IEventBusHandler;
|
import com.raytheon.uf.common.event.IEventBusHandler;
|
||||||
import com.raytheon.uf.common.serialization.comm.RequestRouter;
|
import com.raytheon.uf.common.serialization.comm.RequestRouter;
|
||||||
import com.raytheon.uf.common.status.IUFStatusHandler;
|
|
||||||
import com.raytheon.uf.common.status.UFStatus;
|
|
||||||
import com.raytheon.uf.common.status.UFStatus.Priority;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Cave implementation of the {@link IEventBusHandler}
|
* Cave implementation of the {@link IEventBusHandler}
|
||||||
|
@ -45,24 +46,47 @@ import com.raytheon.uf.common.status.UFStatus.Priority;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class CaveEventBusHandler implements IEventBusHandler {
|
public class CaveEventBusHandler implements IEventBusHandler {
|
||||||
private static final IUFStatusHandler statusHandler = UFStatus
|
/** Core pool size */
|
||||||
.getHandler(CaveEventBusHandler.class);
|
private final int corePoolSize = 1;
|
||||||
|
|
||||||
|
/** Max pool size */
|
||||||
|
private final int maxPoolSize = 3;
|
||||||
|
|
||||||
|
/** Time for threads to live */
|
||||||
|
private final int keepAliveTime = 1;
|
||||||
|
|
||||||
|
/** Max queue size */
|
||||||
|
private final int maxQueueSize = 10;
|
||||||
|
|
||||||
|
/** Thread pool executor */
|
||||||
|
private final ThreadPoolExecutor executor = new ThreadPoolExecutor(
|
||||||
|
corePoolSize, maxPoolSize, keepAliveTime, TimeUnit.MINUTES,
|
||||||
|
new ArrayBlockingQueue<Runnable>(maxQueueSize));
|
||||||
|
{
|
||||||
|
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void publish(Event event) {
|
public void publish(final Event event) {
|
||||||
EventPublishRequest request = new EventPublishRequest(event);
|
executor.execute(new Runnable() {
|
||||||
try {
|
@Override
|
||||||
RequestRouter.route(request);
|
public void run() {
|
||||||
} catch (Exception e) {
|
EventPublishRequest request = new EventPublishRequest(event);
|
||||||
statusHandler.handle(Priority.PROBLEM, "Error sending Event", e);
|
try {
|
||||||
}
|
RequestRouter.route(request);
|
||||||
|
} catch (Exception e) {
|
||||||
|
// ignore failed
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritDoc}
|
* This method is not supported in CAVE and will throw and
|
||||||
|
* UnsupportedOperationException.
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void register(Object subscriber) {
|
public void register(Object subscriber) {
|
||||||
|
@ -70,11 +94,11 @@ public class CaveEventBusHandler implements IEventBusHandler {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritDoc}
|
* This method is not supported in CAVE and will throw and
|
||||||
|
* UnsupportedOperationException.
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void unregister(Object subscriber) {
|
public void unregister(Object subscriber) {
|
||||||
throw new UnsupportedOperationException();
|
throw new UnsupportedOperationException();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,7 +20,10 @@ Require-Bundle: org.eclipse.ui,
|
||||||
com.raytheon.uf.viz.localization,
|
com.raytheon.uf.viz.localization,
|
||||||
javax.measure;bundle-version="1.0.0",
|
javax.measure;bundle-version="1.0.0",
|
||||||
com.raytheon.uf.common.ohd;bundle-version="1.12.1174",
|
com.raytheon.uf.common.ohd;bundle-version="1.12.1174",
|
||||||
com.raytheon.uf.common.cache;bundle-version="1.12.1174"
|
com.raytheon.uf.common.cache;bundle-version="1.12.1174",
|
||||||
|
com.raytheon.uf.common.stats;bundle-version="1.0.0",
|
||||||
|
com.raytheon.uf.viz.stats;bundle-version="1.0.0",
|
||||||
|
com.raytheon.uf.common.event;bundle-version="1.0.0"
|
||||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
|
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
|
||||||
Bundle-ActivationPolicy: lazy
|
Bundle-ActivationPolicy: lazy
|
||||||
Import-Package: com.raytheon.uf.common.colormap,
|
Import-Package: com.raytheon.uf.common.colormap,
|
||||||
|
|
|
@ -17,4 +17,5 @@ Require-Bundle: org.eclipse.ui,
|
||||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
|
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
|
||||||
Bundle-ActivationPolicy: lazy
|
Bundle-ActivationPolicy: lazy
|
||||||
Export-Package: com.raytheon.uf.viz.stats,
|
Export-Package: com.raytheon.uf.viz.stats,
|
||||||
com.raytheon.uf.viz.stats.ui
|
com.raytheon.uf.viz.stats.ui,
|
||||||
|
com.raytheon.uf.viz.stats.utils
|
||||||
|
|
|
@ -0,0 +1,110 @@
|
||||||
|
/**
|
||||||
|
* This software was developed and / or modified by Raytheon Company,
|
||||||
|
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||||
|
*
|
||||||
|
* U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||||
|
* This software product contains export-restricted data whose
|
||||||
|
* export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||||
|
* to non-U.S. persons whether in the United States or abroad requires
|
||||||
|
* an export license or other authorization.
|
||||||
|
*
|
||||||
|
* Contractor Name: Raytheon Company
|
||||||
|
* Contractor Address: 6825 Pine Street, Suite 340
|
||||||
|
* Mail Stop B8
|
||||||
|
* Omaha, NE 68106
|
||||||
|
* 402.291.0100
|
||||||
|
*
|
||||||
|
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||||
|
* further licensing information.
|
||||||
|
**/
|
||||||
|
package com.raytheon.uf.viz.stats.utils;
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
|
import java.net.InetAddress;
|
||||||
|
import java.net.UnknownHostException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TODO Add Description
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
*
|
||||||
|
* SOFTWARE HISTORY
|
||||||
|
*
|
||||||
|
* Date Ticket# Engineer Description
|
||||||
|
* ------------ ---------- ----------- --------------------------
|
||||||
|
* Feb 6, 2013 1584 mpduff Initial creation
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @author mpduff
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class StatsConstants {
|
||||||
|
/**
|
||||||
|
* Hostname of the workstation running CAVE.
|
||||||
|
*/
|
||||||
|
private static final String hostname = defineHostName();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* CAVE version.
|
||||||
|
*/
|
||||||
|
private static final String release = defineRelease();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return Hostname of the workstation running CAVE
|
||||||
|
*/
|
||||||
|
public static String getHostname() {
|
||||||
|
return hostname;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String defineHostName() {
|
||||||
|
String hn = null;
|
||||||
|
InetAddress addr;
|
||||||
|
try {
|
||||||
|
addr = InetAddress.getLocalHost();
|
||||||
|
hn = addr.getHostName();
|
||||||
|
} catch (UnknownHostException e) {
|
||||||
|
// Nothing we can do
|
||||||
|
}
|
||||||
|
|
||||||
|
return hn;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String defineRelease() {
|
||||||
|
String release = null;
|
||||||
|
BufferedReader in = null;
|
||||||
|
try {
|
||||||
|
Process p = Runtime.getRuntime().exec(
|
||||||
|
"rpm -q --queryformat '%{VERSION}\n' awips2");
|
||||||
|
in = new BufferedReader(new InputStreamReader(p.getInputStream()));
|
||||||
|
String line = null;
|
||||||
|
while ((line = in.readLine()) != null) {
|
||||||
|
if (!line.contains("not installed")) {
|
||||||
|
release = line;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
// do nothing
|
||||||
|
} finally {
|
||||||
|
if (in != null) {
|
||||||
|
try {
|
||||||
|
in.close();
|
||||||
|
} catch (IOException ioe) {
|
||||||
|
// do nothing
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return release;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return CAVE version
|
||||||
|
*/
|
||||||
|
public static String getRelease() {
|
||||||
|
return release;
|
||||||
|
}
|
||||||
|
}
|
|
@ -12,3 +12,4 @@ Require-Bundle: com.raytheon.uf.common.serialization;bundle-version="1.12.1174",
|
||||||
com.google.guava;bundle-version="1.0.0",
|
com.google.guava;bundle-version="1.0.0",
|
||||||
com.raytheon.uf.common.status;bundle-version="1.12.1174"
|
com.raytheon.uf.common.status;bundle-version="1.12.1174"
|
||||||
Export-Package: com.raytheon.uf.common.event
|
Export-Package: com.raytheon.uf.common.event
|
||||||
|
Eclipse-BuddyPolicy: ext, registered, global
|
||||||
|
|
|
@ -0,0 +1,194 @@
|
||||||
|
/**
|
||||||
|
* This software was developed and / or modified by Raytheon Company,
|
||||||
|
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||||
|
*
|
||||||
|
* U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||||
|
* This software product contains export-restricted data whose
|
||||||
|
* export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||||
|
* to non-U.S. persons whether in the United States or abroad requires
|
||||||
|
* an export license or other authorization.
|
||||||
|
*
|
||||||
|
* Contractor Name: Raytheon Company
|
||||||
|
* Contractor Address: 6825 Pine Street, Suite 340
|
||||||
|
* Mail Stop B8
|
||||||
|
* Omaha, NE 68106
|
||||||
|
* 402.291.0100
|
||||||
|
*
|
||||||
|
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||||
|
* further licensing information.
|
||||||
|
**/
|
||||||
|
package com.raytheon.uf.common.stats;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import com.raytheon.uf.common.serialization.annotations.DynamicSerialize;
|
||||||
|
import com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load event to track dialog/table/data load times.
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
*
|
||||||
|
* SOFTWARE HISTORY
|
||||||
|
*
|
||||||
|
* Date Ticket# Engineer Description
|
||||||
|
* ------------ ---------- ----------- --------------------------
|
||||||
|
* Feb 5, 2013 1584 mpduff Initial creation.
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @author mpduff
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
@DynamicSerialize
|
||||||
|
public class LoadEvent extends StatisticsEvent {
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private static final Map<String, String> FIELD_UNIT_MAP;
|
||||||
|
static {
|
||||||
|
Map<String, String> m = new HashMap<String, String>();
|
||||||
|
m.put("loadTime", "ms");
|
||||||
|
FIELD_UNIT_MAP = Collections.unmodifiableMap(m);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The plugin name
|
||||||
|
*/
|
||||||
|
@DynamicSerializeElement
|
||||||
|
private String pluginName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The workstation id
|
||||||
|
*/
|
||||||
|
@DynamicSerializeElement
|
||||||
|
private String workstation;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The type of object that is having its load time tracked
|
||||||
|
*/
|
||||||
|
@DynamicSerializeElement
|
||||||
|
private String type;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The version of CAVE
|
||||||
|
*/
|
||||||
|
@DynamicSerializeElement
|
||||||
|
private String caveVersion;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The load time in ms
|
||||||
|
*/
|
||||||
|
@DynamicSerializeElement
|
||||||
|
private long loadTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Message
|
||||||
|
*/
|
||||||
|
@DynamicSerializeElement
|
||||||
|
private String message;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Map<String, String> getFieldUnitMap() {
|
||||||
|
return FIELD_UNIT_MAP;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the pluginName
|
||||||
|
*/
|
||||||
|
public String getPluginName() {
|
||||||
|
return pluginName;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param pluginName
|
||||||
|
* the pluginName to set
|
||||||
|
*/
|
||||||
|
public void setPluginName(String pluginName) {
|
||||||
|
this.pluginName = pluginName;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the workstation
|
||||||
|
*/
|
||||||
|
public String getWorkstation() {
|
||||||
|
return workstation;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param workstation
|
||||||
|
* the workstation to set
|
||||||
|
*/
|
||||||
|
public void setWorkstation(String workstation) {
|
||||||
|
this.workstation = workstation;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the type
|
||||||
|
*/
|
||||||
|
public String getType() {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param type
|
||||||
|
* the type to set
|
||||||
|
*/
|
||||||
|
public void setType(String type) {
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the loadTime
|
||||||
|
*/
|
||||||
|
public long getLoadTime() {
|
||||||
|
return loadTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param loadTime
|
||||||
|
* the loadTime to set
|
||||||
|
*/
|
||||||
|
public void setLoadTime(long loadTime) {
|
||||||
|
this.loadTime = loadTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the message
|
||||||
|
*/
|
||||||
|
public String getMessage() {
|
||||||
|
return message;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param message
|
||||||
|
* the message to set
|
||||||
|
*/
|
||||||
|
public void setMessage(String message) {
|
||||||
|
this.message = message;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the caveVersion
|
||||||
|
*/
|
||||||
|
public String getCaveVersion() {
|
||||||
|
return caveVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param caveVersion
|
||||||
|
* the caveVersion to set
|
||||||
|
*/
|
||||||
|
public void setCaveVersion(String caveVersion) {
|
||||||
|
this.caveVersion = caveVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritDoc}
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return super.toString() + " : " + getMessage();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,29 @@
|
||||||
|
<statisticsConfig>
|
||||||
|
<!-- Event Type should be fully qualified name of stat event -->
|
||||||
|
<statisticsEvent type="com.raytheon.uf.common.datadelivery.event.retrieval.SubscriptionRetrievalEvent"
|
||||||
|
displayName="Subscription Retrieval" category="Data Delivery">
|
||||||
|
<statisticsGroup name="plugin" displayName="Data Type" />
|
||||||
|
<statisticsGroup name="provider" displayName="Data Provider" />
|
||||||
|
<statisticsGroup name="owner" displayName="Owner" />
|
||||||
|
<statisticsGroup name="network" displayName="Network Route" />
|
||||||
|
<statisticsGroup name="subscriptionType" displayName="Subscription Type" />
|
||||||
|
<statisticsAggregate field="numFailed"
|
||||||
|
displayName="Number of Failed Subscriptions" displayUnit="Count" />
|
||||||
|
<statisticsAggregate field="numComplete"
|
||||||
|
displayName="Number of Completed Subscriptions" displayUnit="Count" />
|
||||||
|
</statisticsEvent>
|
||||||
|
<statisticsEvent type="com.raytheon.uf.common.datadelivery.event.retrieval.DataRetrievalEvent"
|
||||||
|
displayName="Data Retrieval" category="Data Delivery">
|
||||||
|
<statisticsGroup name="plugin" displayName="Data Type" />
|
||||||
|
<statisticsGroup name="provider" displayName="Data Provider" />
|
||||||
|
<statisticsGroup name="owner" displayName="Owner" />
|
||||||
|
<statisticsGroup name="network" displayName="Network Route" />
|
||||||
|
<!--
|
||||||
|
Display unit options are bytes, KB, MB, GB
|
||||||
|
-->
|
||||||
|
<statisticsAggregate field="bytes"
|
||||||
|
displayName="Amount of Data Downloaded" displayUnit="MB" />
|
||||||
|
<statisticsAggregate field="numRecords"
|
||||||
|
displayName="Number of Records Downloaded" displayUnit="Count" />
|
||||||
|
</statisticsEvent>
|
||||||
|
</statisticsConfig>
|
|
@ -8,4 +8,8 @@
|
||||||
<bean id="logHandler" class="com.raytheon.uf.edex.event.handler.LogHandler"/>
|
<bean id="logHandler" class="com.raytheon.uf.edex.event.handler.LogHandler"/>
|
||||||
|
|
||||||
<bean id="eventPublishHandler" class="com.raytheon.uf.edex.event.handler.EventPublishHandler"/>
|
<bean id="eventPublishHandler" class="com.raytheon.uf.edex.event.handler.EventPublishHandler"/>
|
||||||
|
<bean factory-bean="handlerRegistry" factory-method="register">
|
||||||
|
<constructor-arg value="com.raytheon.uf.common.event.EventPublishRequest"/>
|
||||||
|
<constructor-arg ref="eventPublishHandler"/>
|
||||||
|
</bean>
|
||||||
</beans>
|
</beans>
|
|
@ -24,7 +24,7 @@ import com.raytheon.uf.common.event.EventPublishRequest;
|
||||||
import com.raytheon.uf.common.serialization.comm.IRequestHandler;
|
import com.raytheon.uf.common.serialization.comm.IRequestHandler;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Stats handler bean.
|
* Event handler bean.
|
||||||
*
|
*
|
||||||
* <pre>
|
* <pre>
|
||||||
*
|
*
|
||||||
|
@ -49,5 +49,4 @@ public class EventPublishHandler implements
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
<statisticsConfig>
|
||||||
|
<!-- Event Type should be fully qualified name of stat event -->
|
||||||
|
<statisticsEvent type="com.raytheon.uf.common.registry.event.RegistryStatisticsEvent"
|
||||||
|
displayName="Registry Statistics" category="Registry">
|
||||||
|
<statisticsGroup name="owner" displayName="Transaction Owner" />
|
||||||
|
<statisticsGroup name="status" displayName="Transaction Status" />
|
||||||
|
<statisticsGroup name="type" displayName="Transaction Type" />
|
||||||
|
<!--
|
||||||
|
Display unit options are ms, Seconds, Minutes, Hours
|
||||||
|
-->
|
||||||
|
<statisticsAggregate field="duration"
|
||||||
|
displayName="Total Registry Duration" displayUnit="Minutes" />
|
||||||
|
</statisticsEvent>
|
||||||
|
</statisticsConfig>
|
|
@ -5,9 +5,9 @@
|
||||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
|
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
|
||||||
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
|
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
|
||||||
|
|
||||||
<bean id="statsHandler" class="com.raytheon.uf.edex.stats.handler.GraphDataHandler"/>
|
<bean id="statsGraphDataHandler" class="com.raytheon.uf.edex.stats.handler.GraphDataHandler"/>
|
||||||
<bean factory-bean="handlerRegistry" factory-method="register">
|
<bean factory-bean="handlerRegistry" factory-method="register">
|
||||||
<constructor-arg value="com.raytheon.uf.common.stats.GraphDataRequest"/>
|
<constructor-arg value="com.raytheon.uf.common.stats.GraphDataRequest"/>
|
||||||
<constructor-arg ref="statsHandler"/>
|
<constructor-arg ref="statsGraphDataHandler"/>
|
||||||
</bean>
|
</bean>
|
||||||
</beans>
|
</beans>
|
||||||
|
|
|
@ -115,10 +115,13 @@ public class ConfigLoader {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Loads the StatisticsConfig files in the STATS_DIR directory.
|
* Loads the StatisticsConfig files in the STATS_DIR directory.
|
||||||
|
*
|
||||||
|
* @throws Exception
|
||||||
|
* Exception
|
||||||
*/
|
*/
|
||||||
public void load() throws Exception {
|
public void load() throws Exception {
|
||||||
LocalizationContext[] searchContext = pm
|
LocalizationContext[] searchContext = pm
|
||||||
.getLocalSearchHierarchy(LocalizationType.EDEX_STATIC);
|
.getLocalSearchHierarchy(LocalizationType.COMMON_STATIC);
|
||||||
Map<String, LocalizationFile> statConfs = new HashMap<String, LocalizationFile>();
|
Map<String, LocalizationFile> statConfs = new HashMap<String, LocalizationFile>();
|
||||||
|
|
||||||
// grab all stats from contexts, allowing overwrite by name
|
// grab all stats from contexts, allowing overwrite by name
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
<statisticsConfig>
|
||||||
|
<!-- Event Type should be fully qualified name of stat event -->
|
||||||
|
<statisticsEvent type="com.raytheon.uf.common.stats.ProcessEvent"
|
||||||
|
displayName="Processing Events" category="Data Ingest Events">
|
||||||
|
<statisticsGroup name="pluginName" displayName="Data Type" />
|
||||||
|
<!-- Processing time available display units:
|
||||||
|
ms, Seconds, Minutes, Hours -->
|
||||||
|
<statisticsAggregate field="processingTime"
|
||||||
|
displayName="Processing Time" displayUnit="ms" />
|
||||||
|
<statisticsAggregate field="processingLatency"
|
||||||
|
displayName="Processing Latency" displayUnit="ms" />
|
||||||
|
</statisticsEvent>
|
||||||
|
</statisticsConfig>
|
Loading…
Add table
Reference in a new issue