From c33b36c46a763f6a3fa6b3ff0fad5213074b27e9 Mon Sep 17 00:00:00 2001 From: lresende Date: Mon, 2 Apr 2012 17:58:17 +0000 Subject: Enhancing management capability to allow setting warning, critical and unavailable tresholds git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1308444 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/tuscany/sca/node/manager/Status.java | 12 ++--- .../impl/DomainAssetManagerResourceImpl.java | 51 +++++++++++++++++++--- .../resources/node-asset-manager-test.composite | 10 ++--- 3 files changed, 56 insertions(+), 17 deletions(-) diff --git a/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/Status.java b/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/Status.java index f20f5e1b33..75d25734d8 100644 --- a/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/Status.java +++ b/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/Status.java @@ -20,12 +20,14 @@ package org.apache.tuscany.sca.node.manager; public class Status { - public static int SUCCESS = 0; - public static int FAILURE = 1; + public static String OK ="ok"; + public static String WARNING = "warning"; + public static String CRITICAL = "critical"; + public static String UNAVAILABLE = "unavailable"; private String name; private String uri; - private int status; + private String status; private String statusMessage; private long execution; @@ -45,11 +47,11 @@ public class Status { this.uri = uri; } - public int getStatus() { + public String getStatus() { return status; } - public void setStatus(int status) { + public void setStatus(String status) { this.status = status; } diff --git a/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/impl/DomainAssetManagerResourceImpl.java b/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/impl/DomainAssetManagerResourceImpl.java index 3b045b8d1b..46cbab0656 100644 --- a/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/impl/DomainAssetManagerResourceImpl.java +++ b/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/impl/DomainAssetManagerResourceImpl.java @@ -52,12 +52,24 @@ import org.apache.tuscany.sca.node.manager.ManageableResource; import org.apache.tuscany.sca.node.manager.ManageableService; import org.apache.tuscany.sca.node.manager.Status; import org.oasisopen.sca.annotation.Init; +import org.oasisopen.sca.annotation.Property; +import org.oasisopen.sca.annotation.Scope; -public class DomainAssetManagerResourceImpl implements NodeActivator, DomainAssetManagerResource { +@Scope("COMPOSITE") +public class DomainAssetManagerResourceImpl implements NodeActivator, DomainAssetManagerResource { private static Map nodeMap = new ConcurrentHashMap(); private HttpClientFactory httpClientFactory; - + + @Property + private int warningTreshold; + + @Property + private int criticalTreshold; + + @Property + private int unavailableTreshold; + public void nodeStarted(Node node) { NodeExtension nodeExtension = (NodeExtension) node; nodeMap.put(nodeExtension.getDomainURI(), nodeExtension); @@ -70,6 +82,11 @@ public class DomainAssetManagerResourceImpl implements NodeActivator, DomainAsse @Init public void init() { + System.out.println("Initializing Domain Asset Manager"); + System.out.println(" - Warning threshold : " + warningTreshold + " ms" ); + System.out.println(" - Critical threshold : " + criticalTreshold + " ms"); + System.out.println(" - Unavailable threshold : " + unavailableTreshold + " ms"); + NodeExtension node = (NodeExtension) nodeMap.values().iterator().next(); if(node != null) { ExtensionPointRegistry extensionPoints = node.getExtensionPointRegistry(); @@ -103,9 +120,21 @@ public class DomainAssetManagerResourceImpl implements NodeActivator, DomainAsse Timer t = new Timer(); status = testResource(status); status.setExecution(t.elapsed(TimeUnit.MILLISECONDS)); - status.setStatus(Status.SUCCESS); + + if(status.getExecution() < warningTreshold) { + status.setStatus(status.OK); + }else if(status.getExecution() > warningTreshold) { + status.setStatus(Status.WARNING); + }else if(status.getExecution() > criticalTreshold) { + status.setStatus(Status.CRITICAL); + } else { + status.setStatus(Status.UNAVAILABLE); + } + + System.out.println(">>> Execution : " + status.getExecution() + " ms -- " + status.getStatus()); + } catch (Exception e) { - status.setStatus(Status.FAILURE); + status.setStatus(Status.UNAVAILABLE); status.setStatusMessage(e.getMessage()); } @@ -138,14 +167,22 @@ public class DomainAssetManagerResourceImpl implements NodeActivator, DomainAsse status.setUri(service.getBindings().get(0).getURI()); try { - String serviceName = component.getName() +"/" + service.getName(); ManageableService serviceInstance = node.getService(ManageableService.class, component.getName()); Timer t = new Timer(); serviceInstance.isAlive(); status.setExecution(t.elapsed(TimeUnit.MILLISECONDS)); - status.setStatus(Status.SUCCESS); + + if(status.getExecution() < warningTreshold) { + status.setStatus(status.OK); + }else if(status.getExecution() > warningTreshold) { + status.setStatus(Status.WARNING); + }else if(status.getExecution() > criticalTreshold) { + status.setStatus(Status.CRITICAL); + } else { + status.setStatus(Status.UNAVAILABLE); + } } catch (Exception e) { - status.setStatus(Status.FAILURE); + status.setStatus(Status.UNAVAILABLE); status.setStatusMessage(e.getMessage()); } diff --git a/sca-java-2.x/trunk/modules/node-manager/src/test/resources/node-asset-manager-test.composite b/sca-java-2.x/trunk/modules/node-manager/src/test/resources/node-asset-manager-test.composite index c3eeba8149..f76a979864 100644 --- a/sca-java-2.x/trunk/modules/node-manager/src/test/resources/node-asset-manager-test.composite +++ b/sca-java-2.x/trunk/modules/node-manager/src/test/resources/node-asset-manager-test.composite @@ -27,6 +27,9 @@ + 1000 + 30000 + 60000 @@ -36,15 +39,12 @@ - - - + + - - -- cgit v1.2.3