Tag: monitoring

Curl Based Management & Monitoring in JBossAS7 with HTTP-JSON APIs

Trust me None other Application Server provides this kind of amazing feature, except JBossAS7. JBoss AS7 is one of the bestest application available in the Middleware World, As it provides much more facilities to the Administrators in order to manage/configure and monitor various resources. As we are already familier with a utility called as “$JBOSS_HOME/bin/jboss-cli.sh” is one of the most powerful and easiest utility which can be used to manage and monitor JBossAS7.

In this demonstration we will see that JBoss AS7 provides another best feature, which allows us to easily access & monitor & management the JBoss AS7 using OS level utilities like “curl”. Yes, JBoss AS7 provides HTTP-JSON based APIs which can be used to achieve the same. So lets see some of it’s features…

So lets start JBossAS7 like following:

    ./standalone.sh -c standalone-full.xml 

NOTE: In all the following operations we will assume that you have created a ManagementRealm User with username “admin” and password as “admin123” (you can create any user name/password based on your requirement), Then change the username & password in the mentioned demo URLs like “http://admin:admin123@localhost:9990/management/”

NOTE: Curl is a free utility for non-interactive download of files from the Web.

So Open a Terminal (command prompt) and start testing the following Curl command on your JBossAS7

Checking Server State

curl --digest -L -D - http://admin:admin123@localhost:9990/management --header "Content-Type: application/json" -d '{"operation":"read-attribute","name":"server-state","json.pretty":1}'


HTTP/1.1 401 Unauthorized
Content-length: 0
Www-authenticate: Digest realm="ManagementRealm",nonce="07d65fc8e028df9ed577145c8e973c64"
Date: Sun, 23 Sep 2012 15:18:59 GMT

HTTP/1.1 200 OK
Transfer-encoding: chunked
Content-type: application/json
Date: Sun, 23 Sep 2012 15:18:59 GMT

{
    "outcome" : "success",
    "result" : "running"
}


Editing “max-pool-size” attribute of ExampleDS DataSource

curl --digest -L -D - http://admin:admin123@localhost:9990/management/ -d '{"operation":"write-attribute","address":[{"subsystem":"datasources"},{"data-source":"ExampleDS"}],"name":"max-pool-size","value":10}' -HContent-Type:application/json



HTTP/1.1 401 Unauthorized
Content-length: 0
Www-authenticate: Digest realm="ManagementRealm",nonce="57d99ff484d2b950ecfde2bcd8c7b55c"
Date: Sun, 23 Sep 2012 15:27:32 GMT

HTTP/1.1 200 OK
Transfer-encoding: chunked
Content-type: application/json
Date: Sun, 23 Sep 2012 15:27:32 GMT

Editing “min-pool-size” attribute of ExampleDS DataSource

curl --digest -L -D - http://admin:admin123@localhost:9990/management/ -d '{"operation":"write-attribute","address":[{"subsystem":"datasources"},{"data-source":"ExampleDS"}],"name":"min-pool-size","value":5}' -HContent-Type:application/json



HTTP/1.1 401 Unauthorized
Content-length: 0
Www-authenticate: Digest realm="ManagementRealm",nonce="662bd288e4949b0093b8d1c5db704a6a"
Date: Sun, 23 Sep 2012 15:33:37 GMT

HTTP/1.1 200 OK
Transfer-encoding: chunked
Content-type: application/json
Date: Sun, 23 Sep 2012 15:33:37 GMT

Changing console-handler “CONSOLE” logging level to “WARN”


curl --digest -L -D - http://admin:admin123@localhost:9990/management/ -d '{"operation":"write-attribute","address":[{"subsystem":"logging"},{"console-handler":"CONSOLE"}],"name":"level","value":"WARN", "json.pretty":1}' -HContent-Type:application/json


HTTP/1.1 401 Unauthorized
Content-length: 0
Www-authenticate: Digest realm="ManagementRealm",nonce="8ad3a0fd0b5f393c8cf9ac757d8395d3"
Date: Sun, 23 Sep 2012 20:00:07 GMT

HTTP/1.1 200 OK
Transfer-encoding: chunked
Content-type: application/json
Date: Sun, 23 Sep 2012 20:00:07 GMT

{"outcome" : "success"}

Testing ExampleDS datasource connections

curl --digest -L -D - http://admin:admin123@localhost:9990/management/ -d '{"operation":"test-connection-in-pool","address":[{"subsystem":"datasources"},{"data-source":"ExampleDS"}]}' -HContent-Type:application/json


HTTP/1.1 401 Unauthorized
Content-length: 0
Www-authenticate: Digest realm="ManagementRealm",nonce="2feecad0028c0122ed04c2bf344fdde3"
Date: Sun, 23 Sep 2012 16:47:29 GMT

HTTP/1.1 200 OK
Transfer-encoding: chunked
Content-type: application/json
Date: Sun, 23 Sep 2012 16:47:30 GMT

{"outcome" : "success", "result" : [true]}

Getting JVM Memory & Runtime Details

curl --digest -D - http://admin:admin123@localhost:9990/management/ -d '{"operation":"read-resource", "include-runtime":"true", "address":[{"core-service":"platform-mbean"},{"type":"memory"}], "json.pretty":1}' -HContent-Type:application/json


HTTP/1.1 401 Unauthorized
Content-length: 0
Www-authenticate: Digest realm="ManagementRealm",nonce="86d37639bcc651b1cea47a91bef0be14"
Date: Sun, 23 Sep 2012 19:44:19 GMT

HTTP/1.1 200 OK
Transfer-encoding: chunked
Content-type: application/json
Date: Sun, 23 Sep 2012 19:44:19 GMT

{
    "outcome" : "success",
    "result" : {
        "heap-memory-usage" : {
            "init" : 1366294528,
            "used" : 161655864,
            "committed" : 1324351488,
            "max" : 1324351488
        },
        "non-heap-memory-usage" : {
            "init" : 24313856,
            "used" : 61050320,
            "committed" : 61210624,
            "max" : 318767104
        },
        "object-name" : "java.lang:type=Memory",
        "object-pending-finalization-count" : 0,
        "verbose" : false
    }
}

Getting JBoss Runtime Details

curl --digest -D - http://admin:admin123@localhost:9990/management/ -d '{"operation":"read-resource", "include-rutime":"true", "address":[{"core-service":"platform-mbean"},{"type":"runtime"}], "json.pretty":1}' -HContent-Type:application/json


HTTP/1.1 401 Unauthorized
Content-length: 0
Www-authenticate: Digest realm="ManagementRealm",nonce="b2d05e49490da200cdd74bd7f848998e"
Date: Sun, 23 Sep 2012 19:45:22 GMT

HTTP/1.1 200 OK
Transfer-encoding: chunked
Content-type: application/json
Date: Sun, 23 Sep 2012 19:45:22 GMT

{
    "outcome" : "success",
    "result" : {
        "name" : "24028@localhost.localdomain",
        "vm-name" : "Java HotSpot(TM) 64-Bit Server VM",
        "vm-vendor" : "Oracle Corporation",
        "vm-version" : "23.1-b03",
        "spec-name" : "Java Virtual Machine Specification",
        "spec-vendor" : "Oracle Corporation",
        "spec-version" : "1.7",
        "management-spec-version" : "1.2",
        "class-path" : "/home/userone/jboss-as-7.1.2/jboss-modules.jar",
        "library-path" : "/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib",
        "boot-class-path-supported" : true,
        "boot-class-path" : "/home/userone/jdk1.7.0_05/jre/lib/resources.jar:/home/userone/jdk1.7.0_05/jre/lib/rt.jar:/home/userone/jdk1.7.0_05/jre/lib/sunrsasign.jar:/home/userone/jdk1.7.0_05/jre/lib/jsse.jar:/home/userone/jdk1.7.0_05/jre/lib/jce.jar:/home/userone/jdk1.7.0_05/jre/lib/charsets.jar:/home/userone/jdk1.7.0_05/jre/lib/jfr.jar:/home/userone/jdk1.7.0_05/jre/classes",
        "input-arguments" : [
            "-D[Standalone]",
            "-XX:+UseCompressedOops",
            "-Xms1303m",
            "-Xmx1303m",
            "-XX:MaxPermSize=256m",
            "-Djava.net.preferIPv4Stack=true",
            "-Dorg.jboss.resolver.warning=true",
            "-Dsun.rmi.dgc.client.gcInterval=3600000",
            "-Dsun.rmi.dgc.server.gcInterval=3600000",
            "-Djboss.modules.system.pkgs=org.jboss.byteman",
            "-Djava.awt.headless=true",
            "-Djboss.server.default.config=standalone.xml",
            "-Dorg.jboss.boot.log.file=/home/userone/jboss-as-7.1.2/standalone/log/boot.log",
            "-Dlogging.configuration=file:/home/userone/jboss-as-7.1.2/standalone/configuration/logging.properties"
        ],
        "start-time" : 1348315286154,
        "system-properties" : {
            "[Standalone]" : "",
            "awt.toolkit" : "sun.awt.X11.XToolkit",
            "catalina.home" : "/home/userone/jboss-as-7.1.2/standalone/tmp",
            "ddddd" : "eeeee",
            "file.encoding" : "UTF-8",
            "file.encoding.pkg" : "sun.io",
            "file.separator" : "/",
            "java.awt.graphicsenv" : "sun.awt.X11GraphicsEnvironment",
            "java.awt.headless" : "true",
            "java.awt.printerjob" : "sun.print.PSPrinterJob",
            "java.class.path" : "/home/userone/jboss-as-7.1.2/jboss-modules.jar",
            "java.class.version" : "51.0",
            "java.endorsed.dirs" : "/home/userone/jdk1.7.0_05/jre/lib/endorsed",
            "java.ext.dirs" : "/home/userone/jdk1.7.0_05/jre/lib/ext:/usr/java/packages/lib/ext",
            "java.home" : "/home/userone/jdk1.7.0_05/jre",
            "java.io.tmpdir" : "/tmp",
            "java.library.path" : "/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib",
            "java.naming.factory.url.pkgs" : "org.jboss.as.naming.interfaces:org.jboss.ejb.client.naming",
            "java.net.preferIPv4Stack" : "true",
            "java.protocol.handler.pkgs" : "org.jboss.net.protocol|org.jboss.vfs.protocol",
            "java.runtime.name" : "Java(TM) SE Runtime Environment",
            "java.runtime.version" : "1.7.0_05-b05",
            "java.specification.name" : "Java Platform API Specification",
            "java.specification.vendor" : "Oracle Corporation",
            "java.specification.version" : "1.7",
            "java.util.logging.manager" : "org.jboss.logmanager.LogManager",
            "java.vendor" : "Oracle Corporation",
            "java.vendor.url" : "http://java.oracle.com/",
            "java.vendor.url.bug" : "http://bugreport.sun.com/bugreport/",
            "java.version" : "1.7.0_05",
            "java.vm.info" : "mixed mode",
            "java.vm.name" : "Java HotSpot(TM) 64-Bit Server VM",
            "java.vm.specification.name" : "Java Virtual Machine Specification",
            "java.vm.specification.vendor" : "Oracle Corporation",
            "java.vm.specification.version" : "1.7",
            "java.vm.vendor" : "Oracle Corporation",
            "java.vm.version" : "23.1-b03",
            "javax.management.builder.initial" : "org.jboss.as.jmx.PluggableMBeanServerBuilder",
            "javax.xml.datatype.DatatypeFactory" : "__redirected.__DatatypeFactory",
            "javax.xml.parsers.DocumentBuilderFactory" : "__redirected.__DocumentBuilderFactory",
            "javax.xml.parsers.SAXParserFactory" : "__redirected.__SAXParserFactory",
            "javax.xml.stream.XMLEventFactory" : "__redirected.__XMLEventFactory",
            "javax.xml.stream.XMLInputFactory" : "__redirected.__XMLInputFactory",
            "javax.xml.stream.XMLOutputFactory" : "__redirected.__XMLOutputFactory",
            "javax.xml.transform.TransformerFactory" : "__redirected.__TransformerFactory",
            "javax.xml.validation.SchemaFactory:http://www.w3.org/2001/XMLSchema" : "__redirected.__SchemaFactory",
            "javax.xml.xpath.XPathFactory:http://java.sun.com/jaxp/xpath/dom" : "__redirected.__XPathFactory",
            "jboss.home.dir" : "/home/userone/jboss-as-7.1.2",
            "jboss.host.name" : "localhost",
            "jboss.modules.dir" : "/home/userone/jboss-as-7.1.2/modules",
            "jboss.modules.system.pkgs" : "org.jboss.byteman",
            "jboss.node.name" : "localhost",
            "jboss.qualified.host.name" : "localhost.localdomain",
            "jboss.server.base.dir" : "/home/userone/jboss-as-7.1.2/standalone",
            "jboss.server.config.dir" : "/home/userone/jboss-as-7.1.2/standalone/configuration",
            "jboss.server.data.dir" : "/home/userone/jboss-as-7.1.2/standalone/data",
            "jboss.server.default.config" : "standalone.xml",
            "jboss.server.deploy.dir" : "/home/userone/jboss-as-7.1.2/standalone/data/content",
            "jboss.server.log.dir" : "/home/userone/jboss-as-7.1.2/standalone/log",
            "jboss.server.name" : "localhost",
            "jboss.server.temp.dir" : "/home/userone/jboss-as-7.1.2/standalone/tmp",
            "line.separator" : "n",
            "logging.configuration" : "file:/home/userone/jboss-as-7.1.2/standalone/configuration/logging.properties",
            "module.path" : "/home/userone/jboss-as-7.1.2/modules",
            "org.apache.coyote.http11.Http11Protocol.COMPRESSION" : "on",
            "org.apache.coyote.http11.Http11Protocol.COMPRESSION_MIME_TYPES" : "text/javascript,text/css,text/html",
            "org.apache.coyote.http11.Http11Protocol.COMPRESSION_MIN_SIZE" : "5",
            "org.jboss.as.logging.per-deployment" : "false",
            "org.jboss.boot.log.file" : "/home/userone/jboss-as-7.1.2/standalone/log/boot.log",
            "org.jboss.com.sun.CORBA.ORBUseDynamicStub" : "true",
            "org.jboss.resolver.warning" : "true",
            "org.jboss.security.context.ThreadLocal" : "true",
            "org.omg.CORBA.ORBClass" : "org.jacorb.orb.ORB",
            "org.omg.CORBA.ORBSingletonClass" : "org.jacorb.orb.ORBSingleton",
            "org.osgi.vendor.framework" : "org.jboss.osgi.framework",
            "org.xml.sax.driver" : "__redirected.__XMLReaderFactory",
            "os.arch" : "amd64",
            "os.name" : "Linux",
            "os.version" : "3.4.9-2.fc16.x86_64",
            "path.separator" : ":",
            "sun.arch.data.model" : "64",
            "sun.boot.class.path" : "/home/userone/jdk1.7.0_05/jre/lib/resources.jar:/home/userone/jdk1.7.0_05/jre/lib/rt.jar:/home/userone/jdk1.7.0_05/jre/lib/sunrsasign.jar:/home/userone/jdk1.7.0_05/jre/lib/jsse.jar:/home/userone/jdk1.7.0_05/jre/lib/jce.jar:/home/userone/jdk1.7.0_05/jre/lib/charsets.jar:/home/userone/jdk1.7.0_05/jre/lib/jfr.jar:/home/userone/jdk1.7.0_05/jre/classes",
            "sun.boot.library.path" : "/home/userone/jdk1.7.0_05/jre/lib/amd64",
            "sun.cpu.endian" : "little",
            "sun.cpu.isalist" : "",
            "sun.desktop" : "gnome",
            "sun.io.unicode.encoding" : "UnicodeLittle",
            "sun.java.command" : "/home/userone/jboss-as-7.1.2/jboss-modules.jar -mp /home/userone/jboss-as-7.1.2/modules -jaxpmodule javax.xml.jaxp-provider org.jboss.as.standalone -Djboss.home.dir=/home/userone/jboss-as-7.1.2 -Djboss.server.base.dir=/home/userone/jboss-as-7.1.2/standalone -c standalone-full.xml -Dorg.jboss.as.logging.per-deployment=false",
            "sun.java.launcher" : "SUN_STANDARD",
            "sun.jnu.encoding" : "UTF-8",
            "sun.management.compiler" : "HotSpot 64-Bit Tiered Compilers",
            "sun.os.patch.level" : "unknown",
            "sun.rmi.dgc.client.gcInterval" : "3600000",
            "sun.rmi.dgc.server.gcInterval" : "3600000",
            "user.country" : "US",
            "user.dir" : "/home/userone/jboss-as-7.1.2/bin",
            "user.home" : "/home/jsenshar",
            "user.language" : "en",
            "user.name" : "jsenshar",
            "user.timezone" : "Asia/Calcutta"
        },
        "uptime" : 114236761,
        "object-name" : "java.lang:type=Runtime"
    }
}

Getting Server Environment Details

curl --digest -D - http://admin:admin123@localhost:9990/management/ -d '{"operation":"read-resource", "include-runtime":"true", "address":[{"core-service":"server-environment"}], "json.pretty":1}' -HContent-Type:application/json


HTTP/1.1 401 Unauthorized
Content-length: 0
Www-authenticate: Digest realm="ManagementRealm",nonce="39385b83b7b9b2abbd722a3bdb4d7173"
Date: Sun, 23 Sep 2012 19:47:56 GMT

HTTP/1.1 200 OK
Transfer-encoding: chunked
Content-type: application/json
Date: Sun, 23 Sep 2012 19:47:56 GMT

{
    "outcome" : "success",
    "result" : {
        "base-dir" : "/home/userone/jboss-as-7.1.2/standalone",
        "config-dir" : "/home/userone/jboss-as-7.1.2/standalone/configuration",
        "config-file" : "/home/userone/jboss-as-7.1.2/standalone/configuration/standalone-full.xml",
        "content-dir" : "/home/userone/jboss-as-7.1.2/standalone/data/content",
        "data-dir" : "/home/userone/jboss-as-7.1.2/standalone/data",
        "deploy-dir" : "/home/userone/jboss-as-7.1.2/standalone/data/content",
        "ext-dirs" : [
            "/home/userone/jdk1.7.0_05/jre/lib/ext",
            "/usr/java/packages/lib/ext"
        ],
        "home-dir" : "/home/userone/jboss-as-7.1.2",
        "host-name" : "localhost",
        "initial-running-mode" : "NORMAL",
        "launch-type" : "STANDALONE",
        "log-dir" : "/home/userone/jboss-as-7.1.2/standalone/log",
        "modules-dir" : "/home/userone/jboss-as-7.1.2/modules",
        "node-name" : "localhost",
        "qualified-host-name" : "localhost.localdomain",
        "server-name" : "localhost",
        "temp-dir" : "/home/userone/jboss-as-7.1.2/standalone/tmp"
    }
}

Getting Runtime Statistics of Http Connector of web subsystem

curl --digest -D - http://admin:admin123@localhost:9990/management/ -d '{"operation":"read-resource", "include-runtime":"true", "address":[{"subsystem":"web"},{"connector":"http"}], "json.pretty":1}' -HContent-Type:application/json


HTTP/1.1 401 Unauthorized
Content-length: 0
Www-authenticate: Digest realm="ManagementRealm",nonce="37b5ee0cb0dde6f3963e7660a4439862"
Date: Sun, 23 Sep 2012 19:51:16 GMT

HTTP/1.1 200 OK
Transfer-encoding: chunked
Content-type: application/json
Date: Sun, 23 Sep 2012 19:51:16 GMT

{
    "outcome" : "success",
    "result" : {
        "bytesReceived" : "0",
        "bytesSent" : "0",
        "enable-lookups" : false,
        "enabled" : true,
        "errorCount" : "0",
        "executor" : null,
        "max-connections" : 20,
        "max-post-size" : 2097152,
        "max-save-post-size" : 4096,
        "maxTime" : "0",
        "name" : "http",
        "processingTime" : "0",
        "protocol" : "HTTP/1.1",
        "proxy-name" : null,
        "proxy-port" : null,
        "redirect-port" : 8433,
        "requestCount" : "0",
        "scheme" : "http",
        "secure" : false,
        "socket-binding" : "http",
        "ssl" : null,
        "virtual-server" : null
    }
}

Shutting down JBoss Standalone Server

curl --digest -D - http://admin:admin123@localhost:9990/management/ -d '{"operation":"shutdown" , "json.pretty":1}' -HContent-Type:application/json


HTTP/1.1 401 Unauthorized
Content-length: 0
Www-authenticate: Digest realm="ManagementRealm",nonce="dd74ab565fbf5345ebb015cbd337ffea"
Date: Sun, 23 Sep 2012 20:08:02 GMT

HTTP/1.1 200 OK
Transfer-encoding: chunked
Content-type: application/json
Date: Sun, 23 Sep 2012 20:08:02 GMT

{"outcome" : "success"}

Getting Application “TestLogging.ear” Details

curl --digest -D - http://admin:admin123@localhost:9990/management --header "Content-Type: application/json" -d '{"operation":"read-resource", "address":["deployment","TestLogging.ear"], "json.pretty":1}' 


HTTP/1.1 401 Unauthorized
Content-length: 0
Www-authenticate: Digest realm="ManagementRealm",nonce="486aa728c5bd526ab1bf1b96941252e2"
Date: Sat, 22 Sep 2012 11:07:38 GMT

HTTP/1.1 200 OK
Transfer-encoding: chunked
Content-type: application/json
Date: Sat, 22 Sep 2012 11:07:38 GMT

{
    "outcome" : "success",
    "result" : {
        "content" : [{
            "path" : "deployments/TestLogging.ear",
            "relative-to" : "jboss.server.base.dir",
            "archive" : false
        }],
        "enabled" : true,
        "name" : "TestLogging.ear",
        "persistent" : false,
        "runtime-name" : "TestLogging.ear",
        "subsystem" : null,
        "subdeployment" : {
            "Log4jDemoOne.war" : null,
            "Log4jDemoTwo.war" : null
        }
    }
}

Getting Runtime Statistics of “Test_EAR.ear” application (session/request monitoring)

curl --digest -D - http://admin:admin123@localhost:9990/management --header "Content-Type: application/json" -d '{"operation":"read-resource","recursive":"true", "include-runtime":"true", "address":["deployment","Test_EAR.ear"], "json.pretty":1}'


HTTP/1.1 401 Unauthorized
Content-length: 0
Www-authenticate: Digest realm="ManagementRealm",nonce="80f9f113cda3ea0430c0a1474ac9b736"
Date: Sun, 23 Sep 2012 20:20:29 GMT

HTTP/1.1 200 OK
Transfer-encoding: chunked
Content-type: application/json
Date: Sun, 23 Sep 2012 20:20:29 GMT

{
    "outcome" : "success",
    "result" : {
        "content" : [{"hash" : {
            "BYTES_VALUE" : "mSLytFVBop/W+VqanbNUztt7DRY="
        }}],
        "enabled" : true,
        "name" : "Test_EAR.ear",
        "persistent" : true,
        "runtime-name" : "test_trn.ear",
        "status" : "no metrics available",
        "subsystem" : null,
        "subdeployment" : {"Test_WAR.war" : {"subsystem" : {"web" : {
            "active-sessions" : 1,
            "context-root" : "/Test_WAR",
            "duplicated-session-ids" : 0,
            "expired-sessions" : 0,
            "max-active-sessions" : 1,
            "rejected-sessions" : 0,
            "servlet" : null,
            "session-avg-alive-time" : 0,
            "session-max-alive-time" : 0,
            "sessions-created" : 1,
            "virtual-host" : "default-host"
        }}}}
    }
}

Getting JNDI view details (list Jndi) / (jndi-view)

curl --digest -D - http://admin:admin123@localhost:9990/management --header "Content-Type: application/json" -d '{"operation":"jndi-view", "address":["subsystem","naming"], "json.pretty":1}'



HTTP/1.1 401 Unauthorized
Content-length: 0
Www-authenticate: Digest realm="ManagementRealm",nonce="e92a46c2e34810ed0084542cc59ca38f"
Date: Sat, 22 Sep 2012 11:13:29 GMT

HTTP/1.1 200 OK
Transfer-encoding: chunked
Content-type: application/json
Date: Sat, 22 Sep 2012 11:13:29 GMT

{
    "outcome" : "success",
    "result" : {
        "java: contexts" : {
            "java:" : {
                "ConnectionFactory" : {
                    "class-name" : "org.hornetq.jms.client.HornetQJMSConnectionFactory",
                    "value" : "HornetQConnectionFactory [serverLocator=ServerLocatorImpl [initialConnectors=[org-hornetq-core-remoting-impl-invm-InVMConnectorFactory?server-id=0], discoveryGroupConfiguration=null], clientID=null, dupsOKBatchSize=1048576, transactionBatchSize=1048576, readOnly=false]"
                },
                "JmsXA" : {
                    "class-name" : "org.hornetq.ra.HornetQRAConnectionFactoryImpl",
                    "value" : "org.hornetq.ra.HornetQRAConnectionFactoryImpl@59ffb3fa"
                },
                "TransactionManager" : {
                    "class-name" : "com.arjuna.ats.jbossatx.jta.TransactionManagerDelegate",
                    "value" : "com.arjuna.ats.jbossatx.jta.TransactionManagerDelegate@13190ef8"
                },
                "ejb" : {
                    "class-name" : "javax.naming.Context",
                    "children" : {"mgmt" : {
                        "class-name" : "javax.naming.Context",
                        "children" : null
                    }}
                },
                "jboss" : {
                    "class-name" : "javax.naming.Context",
                    "value" : "org.jboss.as.naming.WritableServiceBasedNamingStore@6ab0fa3b"
                }
            },
            "java:jboss" : {
                "ORB" : {
                    "class-name" : "org.jacorb.orb.ORB",
                    "value" : "org.jacorb.orb.ORB@274fb2cf"
                },
                "TransactionManager" : {
                    "class-name" : "com.arjuna.ats.jbossatx.jta.TransactionManagerDelegate",
                    "value" : "com.arjuna.ats.jbossatx.jta.TransactionManagerDelegate@13190ef8"
                },
                "TransactionSynchronizationRegistry" : {
                    "class-name" : "com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionSynchronizationRegistryImple",
                    "value" : "com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionSynchronizationRegistryImple@61644832"
                },
                "UserTransaction" : {
                    "class-name" : "org.jboss.tm.usertx.client.ServerVMClientUserTransaction",
                    "value" : "org.jboss.tm.usertx.client.ServerVMClientUserTransaction@5e6d855c"
                },
                "corbanaming" : {
                    "class-name" : "org.omg.CosNaming._NamingContextExtStub",
                    "value" : "IOR:000000000000002B49444C3A6F6D672E6F72672F436F734E616D696E672F4E616D696E67436F6E746578744578743A312E3000000000000100000000000000B0000102000000000A3132372E302E302E31000DC8000000114A426F73732F4E616D696E672F726F6F74000000000000040000000000000008000000004A4143000000000100000020000000000501000100000001000100010001010900000002050100010001010000000014000000080000001A00000DC90000002100000030000000000000000100000000000000220000000000000000000000000000000000000000000000000000000000000000"
                },
                "irpoa" : {
                    "class-name" : "org.jacorb.poa.POA",
                    "value" : "org.jacorb.poa.POA@7ebffc91"
                },
                "jaas" : {
                    "class-name" : "$Proxy13",
                    "children" : {
                        "jboss-ejb-policy" : {
                            "class-name" : "org.jboss.as.security.plugins.SecurityDomainContext",
                            "value" : "org.jboss.security.authentication.JBossCachedAuthenticationManager@7c1e7bee"
                        },
                        "other" : {
                            "class-name" : "org.jboss.as.security.plugins.SecurityDomainContext",
                            "value" : "org.jboss.security.authentication.JBossCachedAuthenticationManager@355a85eb"
                        },
                        "jboss-web-policy" : {
                            "class-name" : "org.jboss.as.security.plugins.SecurityDomainContext",
                            "value" : "org.jboss.security.authentication.JBossCachedAuthenticationManager@4a0e22aa"
                        }
                    }
                },
                "poa" : {
                    "class-name" : "org.jacorb.poa.POA",
                    "value" : "org.jacorb.poa.POA@6605ece1"
                },
                "mail" : {
                    "class-name" : "javax.naming.Context",
                    "children" : {"Default" : {
                        "class-name" : "javax.mail.Session",
                        "value" : "javax.mail.Session@3e475bbb"
                    }}
                },
                "datasources" : {
                    "class-name" : "javax.naming.Context",
                    "children" : {"ExampleDS" : {
                        "class-name" : "org.jboss.jca.adapters.jdbc.WrapperDataSource",
                        "value" : "org.jboss.jca.adapters.jdbc.WrapperDataSource@9b534aa"
                    }}
                },
                "exported" : {
                    "class-name" : "javax.naming.Context",
                    "value" : "org.jboss.as.naming.WritableServiceBasedNamingStore@579489e0"
                }
            },
            "java:global" : null
        },
        "applications" : {"TestLogging.ear" : {
            "java:app" : {
                "AppName" : {
                    "class-name" : "java.lang.String",
                    "value" : "TestLogging"
                },
                "env" : {
                    "class-name" : "org.jboss.as.naming.NamingContext",
                    "children" : null
                }
            },
            "modules" : null
        }}
    }
}


Dumping JBoss Services which are active

curl --digest -D - http://admin:admin123@localhost:9990/management --header "Content-Type: application/json" -d '{"operation":"dump-services", "address":["core-service","service-container"], "json.pretty":1}'

.
.
Thanks 🙂
MiddlewareMagic Team


Managing JBossAS7 with HTTP-JSON APIs using wget

Hi,

JBoss AS7 is one of the bestest application available in the Middleware World, As it provides much more facilities to the Administrators in order to manage/configure and monitor various resources. As we are already familier with a utility called as “$JBOSS_HOME/bin/jboss-cli.sh” is one of the most powerful and easiest utility which can be used to manage and monitor JBossAS7.

In this demonstration we will see that JBoss AS7 provides another best feature, which allows us to easily access & monitor the JBoss AS7 using OS level utilities like “curl” or “wget”. Yes, JBoss AS7 provides HTTP-JSON based APIs which can be used to achieve the same. So lets see some of it’s features…

So lets start JBossAS7 like following:

    ./standalone.sh -c standalone-full.xml 

NOTE: In all the following operations we will assume that you have created a ManagementRealm User with username “admin” and password as “admin123” (you can create any user name/password based on your requirement), Then change the username & password in the mentioned demo URLs like “http://admin:admin123@localhost:9990/management/

NOTE: Wget is a free utility for non-interactive download of files from the Web. It supports HTTP, HTTPS, and FTP protocols, as well as retrieval through HTTP proxies.
Wget can follow links in HTML pages and create local versions of remote web sites, fully recreating the directory structure of the original site. This is sometimes referred to as “recursive downloading.” While doing that, Wget respects the Robot Exclusion Standard (/robots.txt). Wget can be instructed to convert the links in downloaded HTML files to the local files for offline viewing.
More informations about “wget” utility can be found in the following link: http://en.wikipedia.org/wiki/Wget

Http Connector’s Runtime statistics

wget -O out.txt "http://admin:admin123@localhost:9990/management/subsystem/web/connector/http?operation=resource&include-runtime=true&recursive&json.pretty"


{
    "bytesReceived" : "0",
    "bytesSent" : "0",
    "enable-lookups" : false,
    "enabled" : true,
    "errorCount" : "0",
    "executor" : null,
    "max-connections" : 20,
    "max-post-size" : 2097152,
    "max-save-post-size" : 4096,
    "maxTime" : "124",
    "name" : "http",
    "processingTime" : "255",
    "protocol" : "HTTP/1.1",
    "proxy-name" : null,
    "proxy-port" : null,
    "redirect-port" : 8433,
    "requestCount" : "21",
    "scheme" : "http",
    "secure" : false,
    "socket-binding" : "http",
    "ssl" : null,
    "virtual-server" : null
}

Accessing the “jsp-configuration” of JBoss Web Container

wget -O out.txt "http://admin:admin123@localhost:9990/management/subsystem/web/configuration/jsp-configuration?operation=resource&recursive&json.pretty"

{
    "check-interval" : 0,
    "development" : false,
    "disabled" : false,
    "display-source-fragment" : true,
    "dump-smap" : false,
    "error-on-use-bean-invalid-class-attribute" : false,
    "generate-strings-as-char-arrays" : false,
    "java-encoding" : "UTF8",
    "keep-generated" : true,
    "mapped-file" : true,
    "modification-test-interval" : 4,
    "recompile-on-fail" : false,
    "scratch-dir" : null,
    "smap" : true,
    "source-vm" : "1.5",
    "tag-pooling" : true,
    "target-vm" : "1.5",
    "trim-spaces" : false,
    "x-powered-by" : true
}

Accessing Deployment Details

wget -O out.txt "http://admin:admin123@localhost:9990/management/deployment/TestLogging.ear/subdeployment/Log4jDemoOne.war?operation=resource&include-runtime&recursive&json.pretty"

Suppose you have deployed an EAP application with name “TestLogging.ear” which contains a sunmodule with name “Log4jDemoOne.war” then you can get it’s runtime information using the above command, the outputwill be something like following:


{"subsystem" : {"web" : {
    "active-sessions" : 0,
    "context-root" : "/Log4jDemoOne",
    "duplicated-session-ids" : 0,
    "expired-sessions" : 2,
    "max-active-sessions" : 2,
    "rejected-sessions" : 0,
    "servlet" : null,
    "session-avg-alive-time" : 1851,
    "session-max-alive-time" : 1852,
    "sessions-created" : 2,
    "virtual-host" : "default-host"
}}}

In order to get the EAR depployment details you can use the following command:

wget -O out.txt "http://admin:admin123@localhost:9990/management/deployment/TestLogging.ear?operation=resource&recursive&json.pretty"



{
    "content" : [{
        "path" : "deployments/TestLogging.ear",
        "relative-to" : "jboss.server.base.dir",
        "archive" : false
    }],
    "enabled" : true,
    "name" : "TestLogging.ear",
    "persistent" : false,
    "runtime-name" : "TestLogging.ear",
    "subsystem" : null,
    "subdeployment" : {
        "Log4jDemoOne.war" : {"subsystem" : {"web" : {
            "context-root" : "/Log4jDemoOne",
            "servlet" : null,
            "virtual-host" : "default-host"
        }}},
        "Log4jDemoTwo.war" : {"subsystem" : {"web" : {
            "context-root" : "/Log4jDemoTwo",
            "servlet" : null,
            "virtual-host" : "default-host"
        }}}
    }
}

Getting Management Interface Details

wget -O out.txt "http://admin:admin123@localhost:9990/management/interface/public?operation=resource&recursive&json.pretty"


{
    "any" : null,
    "any-address" : null,
    "any-ipv4-address" : null,
    "any-ipv6-address" : null,
    "inet-address" : {
        "EXPRESSION_VALUE" : "${jboss.bind.address:127.0.0.1}"
    },
    "link-local-address" : null,
    "loopback" : null,
    "loopback-address" : null,
    "multicast" : null,
    "name" : "public",
    "nic" : null,
    "nic-match" : null,
    "not" : null,
    "point-to-point" : null,
    "public-address" : null,
    "site-local-address" : null,
    "subnet-match" : null,
    "up" : null,
    "virtual" : null
}

DataSource Configuration & Runtime Details

wget -O out.txt "http://admin:admin123@localhost:9990/management/subsystem/datasources/data-source/ExampleDS/statistics/pool?read-resource&include-runtime=true&recursive&json.pretty"



{
    "ActiveCount" : "0",
    "AvailableCount" : "20",
    "AverageBlockingTime" : "0",
    "AverageCreationTime" : "0",
    "CreatedCount" : "0",
    "DestroyedCount" : "0",
    "MaxCreationTime" : "0",
    "MaxUsedCount" : "0",
    "MaxWaitTime" : "0",
    "TimedOut" : "0",
    "TotalBlockingTime" : "0",
    "TotalCreationTime" : "0"
}

Geting Jdbc Statictics:

wget -O out.txt "http://admin:admin123@localhost:9990/management/subsystem/datasources/data-source/ExampleDS/statistics/jdbc?read-resource&include-runtime=true&recursive&json.pretty"

{
    "PreparedStatementCacheAccessCount" : "0",
    "PreparedStatementCacheAddCount" : "0",
    "PreparedStatementCacheCurrentSize" : "0",
    "PreparedStatementCacheDeleteCount" : "0",
    "PreparedStatementCacheHitCount" : "0",
    "PreparedStatementCacheMissCount" : "0"
}

Getting all the informations related to DataSource at once:


wget -O out.txt "http://admin:admin123@localhost:9990/management/subsystem/datasources/data-source/ExampleDS/statistics?read-resource&include-runtime=true&recursive&json.pretty"



{
    "allocation-retry" : null,
    "allocation-retry-wait-millis" : null,
    "allow-multiple-users" : null,
    "background-validation" : null,
    "background-validation-millis" : null,
    "blocking-timeout-wait-millis" : null,
    "check-valid-connection-sql" : null,
    "connection-properties" : null,
    "connection-url" : "jdbc:h2:mem:test;DB_CLOSE_DELAY=-1",
    "datasource-class" : null,
    "driver-class" : null,
    "driver-name" : "h2",
    "enabled" : true,
    "exception-sorter-class-name" : null,
    "exception-sorter-properties" : null,
    "flush-strategy" : null,
    "idle-timeout-minutes" : null,
    "jndi-name" : "java:jboss/datasources/ExampleDS",
    "jta" : true,
    "max-pool-size" : null,
    "min-pool-size" : null,
    "new-connection-sql" : null,
    "password" : "sa",
    "pool-prefill" : null,
    "pool-use-strict-min" : null,
    "prepared-statements-cache-size" : null,
    "query-timeout" : null,
    "reauth-plugin-class-name" : null,
    "reauth-plugin-properties" : null,
    "security-domain" : null,
    "set-tx-query-timeout" : false,
    "share-prepared-statements" : false,
    "spy" : false,
    "stale-connection-checker-class-name" : null,
    "stale-connection-checker-properties" : null,
    "track-statements" : "NOWARN",
    "transaction-isolation" : null,
    "url-delimiter" : null,
    "url-selector-strategy-class-name" : null,
    "use-ccm" : true,
    "use-fast-fail" : false,
    "use-java-context" : true,
    "use-try-lock" : null,
    "user-name" : "sa",
    "valid-connection-checker-class-name" : null,
    "valid-connection-checker-properties" : null,
    "validate-on-match" : false,
    "statistics" : {
        "jdbc" : {
            "PreparedStatementCacheAccessCount" : "0",
            "PreparedStatementCacheAddCount" : "0",
            "PreparedStatementCacheCurrentSize" : "0",
            "PreparedStatementCacheDeleteCount" : "0",
            "PreparedStatementCacheHitCount" : "0",
            "PreparedStatementCacheMissCount" : "0"
        },
        "pool" : {
            "ActiveCount" : "0",
            "AvailableCount" : "20",
            "AverageBlockingTime" : "0",
            "AverageCreationTime" : "0",
            "CreatedCount" : "0",
            "DestroyedCount" : "0",
            "MaxCreationTime" : "0",
            "MaxUsedCount" : "0",
            "MaxWaitTime" : "0",
            "TimedOut" : "0",
            "TotalBlockingTime" : "0",
            "TotalCreationTime" : "0"
        }
    }
}

Getting the <connection-url> attribute details of DataSource:

wget -O out.txt "http://admin:admin123@localhost:9990/management/subsystem/datasources/data-source/ExampleDS?operation=attribute&name=connection-url"


"jdbc:h2:mem:test;DB_CLOSE_DELAY=-1"

Getting “set-tx-query-timeout” attribute information of DataSource

wget -O out.txt "http://admin:admin123@localhost:9990/management/subsystem/datasources/data-source/ExampleDS?operation=attribute&name=set-tx-query-timeout"


false

Getting DataSource’s Comlete Configuration related information

wget -O out.txt "http://admin:admin123@localhost:9990/management/subsystem/datasources/data-source/ExampleDS?operation=resource&recursive&json.pretty"



{
    "allocation-retry" : null,
    "allocation-retry-wait-millis" : null,
    "allow-multiple-users" : null,
    "background-validation" : null,
    "background-validation-millis" : null,
    "blocking-timeout-wait-millis" : null,
    "check-valid-connection-sql" : null,
    "connection-properties" : null,
    "connection-url" : "jdbc:h2:mem:test;DB_CLOSE_DELAY=-1",
    "datasource-class" : null,
    "driver-class" : null,
    "driver-name" : "h2",
    "enabled" : true,
    "exception-sorter-class-name" : null,
    "exception-sorter-properties" : null,
    "flush-strategy" : null,
    "idle-timeout-minutes" : null,
    "jndi-name" : "java:jboss/datasources/ExampleDS",
    "jta" : true,
    "max-pool-size" : null,
    "min-pool-size" : null,
    "new-connection-sql" : null,
    "password" : "sa",
    "pool-prefill" : null,
    "pool-use-strict-min" : null,
    "prepared-statements-cache-size" : null,
    "query-timeout" : null,
    "reauth-plugin-class-name" : null,
    "reauth-plugin-properties" : null,
    "security-domain" : null,
    "set-tx-query-timeout" : false,
    "share-prepared-statements" : false,
    "spy" : false,
    "stale-connection-checker-class-name" : null,
    "stale-connection-checker-properties" : null,
    "track-statements" : "NOWARN",
    "transaction-isolation" : null,
    "url-delimiter" : null,
    "url-selector-strategy-class-name" : null,
    "use-ccm" : true,
    "use-fast-fail" : false,
    "use-java-context" : true,
    "use-try-lock" : null,
    "user-name" : "sa",
    "valid-connection-checker-class-name" : null,
    "valid-connection-checker-properties" : null,
    "validate-on-match" : false,
    "statistics" : {
        "jdbc" : null,
        "pool" : null
    }
}

Getting Memory & Thread & Runtime Details with server properties

 wget -O out.txt "http://admin:admin123@localhost:9990/management/core-service/platform-mbean?operation=resource&type=runtime&recursive&json.pretty"


{"type" : {
    "garbage-collector" : {"name" : {
        "PS_Scavenge" : {},
        "PS_MarkSweep" : {}
    }},
    "runtime" : {
        "name" : "24028@localhost.localdomain",
        "vm-name" : "Java HotSpot(TM) 64-Bit Server VM",
        "vm-vendor" : "Oracle Corporation",
        "vm-version" : "23.1-b03",
        "spec-name" : "Java Virtual Machine Specification",
        "spec-vendor" : "Oracle Corporation",
        "spec-version" : "1.7",
        "management-spec-version" : "1.2",
        "class-path" : "/home/userone/jboss-as-7.1.2/jboss-modules.jar",
        "library-path" : "/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib",
        "boot-class-path-supported" : true,
        "boot-class-path" : "/home/userone/jdk1.7.0_05/jre/lib/resources.jar:/home/userone/jdk1.7.0_05/jre/lib/rt.jar:/home/userone/jdk1.7.0_05/jre/lib/sunrsasign.jar:/home/userone/jdk1.7.0_05/jre/lib/jsse.jar:/home/userone/jdk1.7.0_05/jre/lib/jce.jar:/home/userone/jdk1.7.0_05/jre/lib/charsets.jar:/home/userone/jdk1.7.0_05/jre/lib/jfr.jar:/home/userone/jdk1.7.0_05/jre/classes",
        "input-arguments" : [
            "-D[Standalone]",
            "-XX:+UseCompressedOops",
            "-Xms1303m",
            "-Xmx1303m",
            "-XX:MaxPermSize=256m",
            "-Djava.net.preferIPv4Stack=true",
            "-Dorg.jboss.resolver.warning=true",
            "-Dsun.rmi.dgc.client.gcInterval=3600000",
            "-Dsun.rmi.dgc.server.gcInterval=3600000",
            "-Djboss.modules.system.pkgs=org.jboss.byteman",
            "-Djava.awt.headless=true",
            "-Djboss.server.default.config=standalone.xml",
            "-Dorg.jboss.boot.log.file=/home/userone/jboss-as-7.1.2/standalone/log/boot.log",
            "-Dlogging.configuration=file:/home/userone/jboss-as-7.1.2/standalone/configuration/logging.properties"
        ],
        "start-time" : 1348315286154,
        "system-properties" : {
            "[Standalone]" : "",
            "awt.toolkit" : "sun.awt.X11.XToolkit",
            "catalina.home" : "/home/userone/jboss-as-7.1.2/standalone/tmp",
            "file.encoding" : "UTF-8",
            "file.encoding.pkg" : "sun.io",
            "file.separator" : "/",
            "java.awt.graphicsenv" : "sun.awt.X11GraphicsEnvironment",
            "java.awt.headless" : "true",
            "java.awt.printerjob" : "sun.print.PSPrinterJob",
            "java.class.path" : "/home/userone/jboss-as-7.1.2/jboss-modules.jar",
            "java.class.version" : "51.0",
            "java.endorsed.dirs" : "/home/userone/jdk1.7.0_05/jre/lib/endorsed",
            "java.ext.dirs" : "/home/userone/jdk1.7.0_05/jre/lib/ext:/usr/java/packages/lib/ext",
            "java.home" : "/home/userone/jdk1.7.0_05/jre",
            "java.io.tmpdir" : "/tmp",
            "java.library.path" : "/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib",
            "java.naming.factory.url.pkgs" : "org.jboss.as.naming.interfaces:org.jboss.ejb.client.naming",
            "java.net.preferIPv4Stack" : "true",
            "java.protocol.handler.pkgs" : "org.jboss.net.protocol|org.jboss.vfs.protocol",
            "java.runtime.name" : "Java(TM) SE Runtime Environment",
            "java.runtime.version" : "1.7.0_05-b05",
            "java.specification.name" : "Java Platform API Specification",
            "java.specification.vendor" : "Oracle Corporation",
            "java.specification.version" : "1.7",
            "java.util.logging.manager" : "org.jboss.logmanager.LogManager",
            "java.vendor" : "Oracle Corporation",
            "java.vendor.url" : "http://java.oracle.com/",
            "java.vendor.url.bug" : "http://bugreport.sun.com/bugreport/",
            "java.version" : "1.7.0_05",
            "java.vm.info" : "mixed mode",
            "java.vm.name" : "Java HotSpot(TM) 64-Bit Server VM",
            "java.vm.specification.name" : "Java Virtual Machine Specification",
            "java.vm.specification.vendor" : "Oracle Corporation",
            "java.vm.specification.version" : "1.7",
            "java.vm.vendor" : "Oracle Corporation",
            "java.vm.version" : "23.1-b03",
            "javax.management.builder.initial" : "org.jboss.as.jmx.PluggableMBeanServerBuilder",
            "javax.xml.datatype.DatatypeFactory" : "__redirected.__DatatypeFactory",
            "javax.xml.parsers.DocumentBuilderFactory" : "__redirected.__DocumentBuilderFactory",
            "javax.xml.parsers.SAXParserFactory" : "__redirected.__SAXParserFactory",
            "javax.xml.stream.XMLEventFactory" : "__redirected.__XMLEventFactory",
            "javax.xml.stream.XMLInputFactory" : "__redirected.__XMLInputFactory",
            "javax.xml.stream.XMLOutputFactory" : "__redirected.__XMLOutputFactory",
            "javax.xml.transform.TransformerFactory" : "__redirected.__TransformerFactory",
            "javax.xml.validation.SchemaFactory:http://www.w3.org/2001/XMLSchema" : "__redirected.__SchemaFactory",
            "javax.xml.xpath.XPathFactory:http://java.sun.com/jaxp/xpath/dom" : "__redirected.__XPathFactory",
            "jboss.home.dir" : "/home/userone/jboss-as-7.1.2",
            "jboss.host.name" : "localhost",
            "jboss.modules.dir" : "/home/userone/jboss-as-7.1.2/modules",
            "jboss.modules.system.pkgs" : "org.jboss.byteman",
            "jboss.node.name" : "localhost",
            "jboss.qualified.host.name" : "localhost.localdomain",
            "jboss.server.base.dir" : "/home/userone/jboss-as-7.1.2/standalone",
            "jboss.server.config.dir" : "/home/userone/jboss-as-7.1.2/standalone/configuration",
            "jboss.server.data.dir" : "/home/userone/jboss-as-7.1.2/standalone/data",
            "jboss.server.default.config" : "standalone.xml",
            "jboss.server.deploy.dir" : "/home/userone/jboss-as-7.1.2/standalone/data/content",
            "jboss.server.log.dir" : "/home/userone/jboss-as-7.1.2/standalone/log",
            "jboss.server.name" : "localhost",
            "jboss.server.temp.dir" : "/home/userone/jboss-as-7.1.2/standalone/tmp",
            "line.separator" : "n",
            "logging.configuration" : "file:/home/userone/jboss-as-7.1.2/standalone/configuration/logging.properties",
            "module.path" : "/home/userone/jboss-as-7.1.2/modules",
            "org.apache.coyote.http11.Http11Protocol.COMPRESSION" : "on",
            "org.apache.coyote.http11.Http11Protocol.COMPRESSION_MIME_TYPES" : "text/javascript,text/css,text/html",
            "org.apache.coyote.http11.Http11Protocol.COMPRESSION_MIN_SIZE" : "5",
            "org.jboss.as.logging.per-deployment" : "false",
            "org.jboss.boot.log.file" : "/home/userone/jboss-as-7.1.2/standalone/log/boot.log",
            "org.jboss.com.sun.CORBA.ORBUseDynamicStub" : "true",
            "org.jboss.resolver.warning" : "true",
            "org.jboss.security.context.ThreadLocal" : "true",
            "org.omg.CORBA.ORBClass" : "org.jacorb.orb.ORB",
            "org.omg.CORBA.ORBSingletonClass" : "org.jacorb.orb.ORBSingleton",
            "org.osgi.vendor.framework" : "org.jboss.osgi.framework",
            "org.xml.sax.driver" : "__redirected.__XMLReaderFactory",
            "os.arch" : "amd64",
            "os.name" : "Linux",
            "os.version" : "3.4.9-2.fc16.x86_64",
            "path.separator" : ":",
            "sun.arch.data.model" : "64",
            "sun.boot.class.path" : "/home/userone/jdk1.7.0_05/jre/lib/resources.jar:/home/userone/jdk1.7.0_05/jre/lib/rt.jar:/home/userone/jdk1.7.0_05/jre/lib/sunrsasign.jar:/home/userone/jdk1.7.0_05/jre/lib/jsse.jar:/home/userone/jdk1.7.0_05/jre/lib/jce.jar:/home/userone/jdk1.7.0_05/jre/lib/charsets.jar:/home/userone/jdk1.7.0_05/jre/lib/jfr.jar:/home/userone/jdk1.7.0_05/jre/classes",
            "sun.boot.library.path" : "/home/userone/jdk1.7.0_05/jre/lib/amd64",
            "sun.cpu.endian" : "little",
            "sun.cpu.isalist" : "",
            "sun.desktop" : "gnome",
            "sun.io.unicode.encoding" : "UnicodeLittle",
            "sun.java.command" : "/home/userone/jboss-as-7.1.2/jboss-modules.jar -mp /home/userone/jboss-as-7.1.2/modules -jaxpmodule javax.xml.jaxp-provider org.jboss.as.standalone -Djboss.home.dir=/home/userone/jboss-as-7.1.2 -Djboss.server.base.dir=/home/userone/jboss-as-7.1.2/standalone -c standalone-full.xml -Dorg.jboss.as.logging.per-deployment=false",
            "sun.java.launcher" : "SUN_STANDARD",
            "sun.jnu.encoding" : "UTF-8",
            "sun.management.compiler" : "HotSpot 64-Bit Tiered Compilers",
            "sun.os.patch.level" : "unknown",
            "sun.rmi.dgc.client.gcInterval" : "3600000",
            "sun.rmi.dgc.server.gcInterval" : "3600000",
            "user.country" : "US",
            "user.dir" : "/home/userone/jboss-as-7.1.2/bin",
            "user.home" : "/home/jsenshar",
            "user.language" : "en",
            "user.name" : "jsenshar",
            "user.timezone" : "Asia/Calcutta"
        },
        "uptime" : 14530013,
        "object-name" : "java.lang:type=Runtime"
    },
    "memory-manager" : {"name" : {
        "PS_Scavenge" : {},
        "CodeCacheManager" : {},
        "PS_MarkSweep" : {}
    }},
    "threading" : {
        "all-thread-ids" : [
            150,
            142,
            140,
            139,
            138,
            137,
            136,
            135,
            134,
            132,
            131,
            130,
            129,
            127,
            126,
            125,
            124,
            123,
            122,
            121,
            120,
            117,
            116,
            115,
            114,
            113,
            112,
            111,
            110,
            109,
            108,
            106,
            105,
            103,
            102,
            101,
            100,
            98,
            97,
            96,
            93,
            95,
            94,
            92,
            91,
            90,
            88,
            87,
            86,
            85,
            80,
            79,
            53,
            52,
            51,
            20,
            18,
            17,
            16,
            15,
            14,
            13,
            12,
            11,
            8,
            4,
            3,
            2
        ],
        "thread-contention-monitoring-supported" : true,
        "thread-cpu-time-supported" : true,
        "current-thread-cpu-time-supported" : true,
        "object-monitor-usage-supported" : true,
        "synchronizer-usage-supported" : true,
        "thread-contention-monitoring-enabled" : false,
        "thread-cpu-time-enabled" : true,
        "thread-count" : 68,
        "peak-thread-count" : 118,
        "total-started-thread-count" : 144,
        "daemon-thread-count" : 31,
        "current-thread-cpu-time" : 528324157,
        "current-thread-user-time" : 170000000,
        "object-name" : "java.lang:type=Threading"
    },
    "buffer-pool" : {"name" : {
        "mapped" : {},
        "direct" : {}
    }},
    "memory-pool" : {"name" : {
        "PS_Eden_Space" : {
            "name" : "PS_Eden_Space",
            "type" : "HEAP",
            "valid" : true,
            "memory-manager-names" : [
                "PS_MarkSweep",
                "PS_Scavenge"
            ],
            "usage-threshold-supported" : false,
            "collection-usage-threshold-supported" : true,
            "usage-threshold" : null,
            "collection-usage-threshold" : 0,
            "usage" : {
                "init" : 341639168,
                "used" : 154096440,
                "committed" : 341966848,
                "max" : 341966848
            },
            "peak-usage" : {
                "init" : 341639168,
                "used" : 341639168,
                "committed" : 341966848,
                "max" : 341966848
            },
            "usage-threshold-exceeded" : null,
            "usage-threshold-count" : null,
            "collection-usage-threshold-exceeded" : false,
            "collection-usage-threshold-count" : 0,
            "collection-usage" : {
                "init" : 341639168,
                "used" : 0,
                "committed" : 341966848,
                "max" : 341966848
            },
            "object-name" : "java.lang:type=MemoryPool,name="PS Eden Space""
        },
        "PS_Old_Gen" : {
            "name" : "PS_Old_Gen",
            "type" : "HEAP",
            "valid" : true,
            "memory-manager-names" : ["PS_MarkSweep"],
            "usage-threshold-supported" : true,
            "collection-usage-threshold-supported" : true,
            "usage-threshold" : 0,
            "collection-usage-threshold" : 0,
            "usage" : {
                "init" : 910884864,
                "used" : 81936,
                "committed" : 910884864,
                "max" : 911605760
            },
            "peak-usage" : {
                "init" : 910884864,
                "used" : 81936,
                "committed" : 910884864,
                "max" : 911605760
            },
            "usage-threshold-exceeded" : false,
            "usage-threshold-count" : 0,
            "collection-usage-threshold-exceeded" : false,
            "collection-usage-threshold-count" : 0,
            "collection-usage" : {
                "init" : 910884864,
                "used" : 0,
                "committed" : 0,
                "max" : 911605760
            },
            "object-name" : "java.lang:type=MemoryPool,name="PS Old Gen""
        },
        "PS_Survivor_Space" : {
            "name" : "PS_Survivor_Space",
            "type" : "HEAP",
            "valid" : true,
            "memory-manager-names" : [
                "PS_MarkSweep",
                "PS_Scavenge"
            ],
            "usage-threshold-supported" : false,
            "collection-usage-threshold-supported" : true,
            "usage-threshold" : null,
            "collection-usage-threshold" : 0,
            "usage" : {
                "init" : 56885248,
                "used" : 44903304,
                "committed" : 56885248,
                "max" : 56885248
            },
            "peak-usage" : {
                "init" : 56885248,
                "used" : 44903304,
                "committed" : 56885248,
                "max" : 56885248
            },
            "usage-threshold-exceeded" : null,
            "usage-threshold-count" : null,
            "collection-usage-threshold-exceeded" : false,
            "collection-usage-threshold-count" : 0,
            "collection-usage" : {
                "init" : 56885248,
                "used" : 44903304,
                "committed" : 56885248,
                "max" : 56885248
            },
            "object-name" : "java.lang:type=MemoryPool,name="PS Survivor Space""
        },
        "PS_Perm_Gen" : {
            "name" : "PS_Perm_Gen",
            "type" : "NON_HEAP",
            "valid" : true,
            "memory-manager-names" : ["PS_MarkSweep"],
            "usage-threshold-supported" : true,
            "collection-usage-threshold-supported" : true,
            "usage-threshold" : 0,
            "collection-usage-threshold" : 0,
            "usage" : {
                "init" : 21757952,
                "used" : 53906776,
                "committed" : 54001664,
                "max" : 268435456
            },
            "peak-usage" : {
                "init" : 21757952,
                "used" : 53906776,
                "committed" : 54001664,
                "max" : 268435456
            },
            "usage-threshold-exceeded" : false,
            "usage-threshold-count" : 0,
            "collection-usage-threshold-exceeded" : false,
            "collection-usage-threshold-count" : 0,
            "collection-usage" : {
                "init" : 21757952,
                "used" : 0,
                "committed" : 0,
                "max" : 268435456
            },
            "object-name" : "java.lang:type=MemoryPool,name="PS Perm Gen""
        },
        "Code_Cache" : {
            "name" : "Code_Cache",
            "type" : "NON_HEAP",
            "valid" : true,
            "memory-manager-names" : ["CodeCacheManager"],
            "usage-threshold-supported" : true,
            "collection-usage-threshold-supported" : false,
            "usage-threshold" : 0,
            "collection-usage-threshold" : null,
            "usage" : {
                "init" : 2555904,
                "used" : 1969024,
                "committed" : 2555904,
                "max" : 50331648
            },
            "peak-usage" : {
                "init" : 2555904,
                "used" : 1979776,
                "committed" : 2555904,
                "max" : 50331648
            },
            "usage-threshold-exceeded" : false,
            "usage-threshold-count" : 0,
            "collection-usage-threshold-exceeded" : null,
            "collection-usage-threshold-count" : null,
            "collection-usage" : null,
            "object-name" : "java.lang:type=MemoryPool,name="Code Cache""
        }
    }},
    "compilation" : {
        "name" : "HotSpot 64-Bit Tiered Compilers",
        "compilation-time-monitoring-supported" : true,
        "total-compilation-time" : 7407,
        "object-name" : "java.lang:type=Compilation"
    },
    "memory" : {},
    "class-loading" : {},
    "operating-system" : {
        "name" : "Linux",
        "arch" : "amd64",
        "version" : "3.4.9-2.fc16.x86_64",
        "available-processors" : 4,
        "system-load-average" : 0.13,
        "object-name" : "java.lang:type=OperatingSystem"
    }
}}

Messaging & HornetQ subsystem related Details

wget -O out.txt "http://admin:admin123@localhost:9990/management/subsystem/messaging/hornetq-server/default?operation=resource&recursive&json.pretty"



{
    "acceptor" : null,
    "allow-failback" : true,
    "async-connection-execution-enabled" : true,
    "backup" : false,
    "bridge" : null,
    "broadcast-group" : null,
    "cluster-connection" : null,
    "cluster-password" : "CHANGE ME!!",
    "cluster-user" : "HORNETQ.CLUSTER.ADMIN.USER",
    "clustered" : false,
    "connection-ttl-override" : -1,
    "connector" : null,
    "connector-service" : null,
    "core-address" : null,
    "create-bindings-dir" : true,
    "create-journal-dir" : true,
    "discovery-group" : null,
    "divert" : null,
    "failback-delay" : 5000,
    "failover-on-shutdown" : false,
    "grouping-handler" : null,
    "id-cache-size" : 2000,
    "jms-queue" : null,
    "jms-topic" : null,
    "jmx-domain" : "org.hornetq",
    "jmx-management-enabled" : false,
    "journal-buffer-size" : null,
    "journal-buffer-timeout" : null,
    "journal-compact-min-files" : 10,
    "journal-compact-percentage" : 30,
    "journal-file-size" : 102400,
    "journal-max-io" : null,
    "journal-min-files" : 2,
    "journal-sync-non-transactional" : true,
    "journal-sync-transactional" : true,
    "journal-type" : "ASYNCIO",
    "live-connector-ref" : null,
    "log-journal-write-rate" : false,
    "management-address" : "jms.queue.hornetq.management",
    "management-notification-address" : "hornetq.notifications",
    "memory-measure-interval" : -1,
    "memory-warning-threshold" : 25,
    "message-counter-enabled" : false,
    "message-counter-max-day-history" : 10,
    "message-counter-sample-period" : 10000,
    "message-expiry-scan-period" : 30000,
    "message-expiry-thread-priority" : 3,
    "page-max-concurrent-io" : 5,
    "path" : null,
    "perf-blast-pages" : -1,
    "persist-delivery-count-before-delivery" : false,
    "persist-id-cache" : true,
    "persistence-enabled" : true,
    "queue" : null,
    "remoting-interceptors" : null,
    "run-sync-speed-test" : false,
    "scheduled-thread-pool-max-size" : 5,
    "security-domain" : "other",
    "security-enabled" : true,
    "security-invalidation-interval" : 10000,
    "server-dump-interval" : -1,
    "shared-store" : true,
    "thread-pool-max-size" : 30,
    "transaction-timeout" : 300000,
    "transaction-timeout-scan-period" : 1000,
    "wild-card-routing-enabled" : true,
    "address-setting" : {"#" : {
        "address-full-policy" : "BLOCK",
        "dead-letter-address" : "jms.queue.DLQ",
        "expiry-address" : "jms.queue.ExpiryQueue",
        "last-value-queue" : false,
        "max-delivery-attempts" : 10,
        "max-size-bytes" : 10485760,
        "message-counter-history-day-limit" : 10,
        "page-max-cache-size" : 5,
        "page-size-bytes" : 10485760,
        "redelivery-delay" : 0,
        "redistribution-delay" : -1,
        "send-to-dla-on-no-route" : false
    }},
    "connection-factory" : {
        "InVmConnectionFactory" : {
            "auto-group" : false,
            "block-on-acknowledge" : false,
            "block-on-durable-send" : true,
            "block-on-non-durable-send" : false,
            "cache-large-message-client" : false,
            "call-timeout" : 30000,
            "client-failure-check-period" : 30000,
            "client-id" : null,
            "compress-large-messages" : false,
            "confirmation-window-size" : -1,
            "connection-load-balancing-policy-class-name" : "org.hornetq.api.core.client.loadbalance.RoundRobinConnectionLoadBalancingPolicy",
            "connection-ttl" : 60000,
            "connector" : {"in-vm" : null},
            "consumer-max-rate" : -1,
            "consumer-window-size" : 1048576,
            "discovery-group-name" : null,
            "discovery-initial-wait-timeout" : null,
            "dups-ok-batch-size" : 1048576,
            "entries" : ["java:/ConnectionFactory"],
            "factory-type" : null,
            "failover-on-initial-connection" : false,
            "failover-on-server-shutdown" : null,
            "group-id" : null,
            "ha" : false,
            "max-retry-interval" : 2000,
            "min-large-message-size" : 102400,
            "pre-acknowledge" : false,
            "producer-max-rate" : -1,
            "producer-window-size" : 65536,
            "reconnect-attempts" : 0,
            "retry-interval" : 2000,
            "retry-interval-multiplier" : 1.0,
            "scheduled-thread-pool-max-size" : 5,
            "thread-pool-max-size" : 30,
            "transaction-batch-size" : 1048576,
            "use-global-pools" : true
        },
        "RemoteConnectionFactory" : {
            "auto-group" : false,
            "block-on-acknowledge" : false,
            "block-on-durable-send" : true,
            "block-on-non-durable-send" : false,
            "cache-large-message-client" : false,
            "call-timeout" : 30000,
            "client-failure-check-period" : 30000,
            "client-id" : null,
            "compress-large-messages" : false,
            "confirmation-window-size" : -1,
            "connection-load-balancing-policy-class-name" : "org.hornetq.api.core.client.loadbalance.RoundRobinConnectionLoadBalancingPolicy",
            "connection-ttl" : 60000,
            "connector" : {"netty" : null},
            "consumer-max-rate" : -1,
            "consumer-window-size" : 1048576,
            "discovery-group-name" : null,
            "discovery-initial-wait-timeout" : null,
            "dups-ok-batch-size" : 1048576,
            "entries" : ["java:jboss/exported/jms/RemoteConnectionFactory"],
            "factory-type" : null,
            "failover-on-initial-connection" : false,
            "failover-on-server-shutdown" : null,
            "group-id" : null,
            "ha" : false,
            "max-retry-interval" : 2000,
            "min-large-message-size" : 102400,
            "pre-acknowledge" : false,
            "producer-max-rate" : -1,
            "producer-window-size" : 65536,
            "reconnect-attempts" : 0,
            "retry-interval" : 2000,
            "retry-interval-multiplier" : 1.0,
            "scheduled-thread-pool-max-size" : 5,
            "thread-pool-max-size" : 30,
            "transaction-batch-size" : 1048576,
            "use-global-pools" : true
        }
    },
    "in-vm-acceptor" : {"in-vm" : {
        "param" : null,
        "server-id" : 0
    }},
    "in-vm-connector" : {"in-vm" : {
        "param" : null,
        "server-id" : 0
    }},
    "pooled-connection-factory" : {"hornetq-ra" : {
        "auto-group" : false,
        "block-on-acknowledge" : false,
        "block-on-durable-send" : true,
        "block-on-non-durable-send" : false,
        "cache-large-message-client" : false,
        "call-timeout" : 30000,
        "client-failure-check-period" : 30000,
        "client-id" : null,
        "confirmation-window-size" : -1,
        "connection-load-balancing-policy-class-name" : "org.hornetq.api.core.client.loadbalance.RoundRobinConnectionLoadBalancingPolicy",
        "connection-ttl" : 60000,
        "connector" : {"in-vm" : null},
        "consumer-max-rate" : -1,
        "consumer-window-size" : 1048576,
        "discovery-group-name" : null,
        "discovery-initial-wait-timeout" : null,
        "dups-ok-batch-size" : 1048576,
        "entries" : ["java:/JmsXA"],
        "failover-on-initial-connection" : false,
        "failover-on-server-shutdown" : null,
        "group-id" : null,
        "ha" : false,
        "jndi-params" : null,
        "max-pool-size" : -1,
        "max-retry-interval" : 2000,
        "min-large-message-size" : 102400,
        "min-pool-size" : -1,
        "password" : null,
        "pre-acknowledge" : false,
        "producer-max-rate" : -1,
        "producer-window-size" : 65536,
        "reconnect-attempts" : 0,
        "retry-interval" : 2000,
        "retry-interval-multiplier" : 1.0,
        "scheduled-thread-pool-max-size" : 5,
        "setup-attempts" : null,
        "setup-interval" : null,
        "thread-pool-max-size" : 30,
        "transaction" : "xa",
        "transaction-batch-size" : 1048576,
        "use-global-pools" : true,
        "use-jndi" : null,
        "use-local-tx" : null,
        "user" : null
    }},
    "remote-acceptor" : {
        "netty" : {
            "param" : null,
            "socket-binding" : "messaging"
        },
        "netty-throughput" : {
            "socket-binding" : "messaging-throughput",
            "param" : {
                "batch-delay" : {"value" : "50"},
                "direct-deliver" : {"value" : "false"}
            }
        }
    },
    "remote-connector" : {
        "netty" : {
            "param" : null,
            "socket-binding" : "messaging"
        },
        "netty-throughput" : {
            "socket-binding" : "messaging-throughput",
            "param" : {"batch-delay" : {"value" : "50"}}
        }
    },
    "security-setting" : {"#" : {"role" : {"guest" : {
        "consume" : true,
        "create-durable-queue" : false,
        "create-non-durable-queue" : true,
        "delete-durable-queue" : false,
        "delete-non-durable-queue" : true,
        "manage" : false,
        "send" : true
    }}}}
}

Getting “cluster-user” attribute details of HornetQ server:

wget -O out.txt "http://admin:admin123@localhost:9990/management/subsystem/messaging/hornetq-server/default?operation=attribute&name=cluster-user"


"HORNETQ.CLUSTER.ADMIN.USER"

Loggign Subsystem Related Informations

Getting “console-handler” CONSOLE logger level information

wget -O out.txt "http://admin:admin123@localhost:9990/management/subsystem/logging/console-handler/CONSOLE?operation=attribute&name=level"


"INFO"

Getting “console-handler” CONSOLE logger “autoflush” information

wget -O out.txt "http://admin:admin123@localhost:9990/management/subsystem/logging/console-handler/CONSOLE?operation=attribute&name=autoflush"


true

Getting console-handler’s complete config informations

wget -O out.txt "http://admin:admin123@localhost:9990/management/subsystem/logging/console-handler/CONSOLE?operation=resource&recursive&json.pretty"


{
    "autoflush" : true,
    "encoding" : null,
    "filter" : null,
    "formatter" : "%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n",
    "level" : "INFO",
    "target" : "System.out"
}

Getting articular logger’s like”org.apache.tomcat.util.modeler” information:

wget -O out.txt "http://admin:admin123@localhost:9990/management/subsystem/logging/logger/org.apache.tomcat.util.modeler?operation=resource&recursive&json.pretty"


{
    "filter" : null,
    "handlers" : null,
    "level" : "WARN",
    "use-parent-handlers" : true
}

Getting “periodic-rotating-file-handler” formatter information:

wget -O out.txt "http://admin:admin123@localhost:9990/management/subsystem/logging/periodic-rotating-file-handler/FILE?operation=attribute&name=formatter"


"%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"

Getting “” suffix information:

wget -O out.txt "http://admin:admin123@localhost:9990/management/subsystem/logging/periodic-rotating-file-handler/FILE?operation=attribute&name=suffix"

".yyyy-MM-dd"

Getting “” complete config infromations

wget -O out.txt "http://admin:admin123@localhost:9990/management/subsystem/logging/periodic-rotating-file-handler/FILE?operation=resource&recursive&json.pretty"


{
    "append" : true,
    "autoflush" : true,
    "encoding" : null,
    "file" : {
        "relative-to" : "jboss.server.log.dir",
        "path" : "server.log"
    },
    "filter" : null,
    "formatter" : "%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n",
    "level" : null,
    "suffix" : ".yyyy-MM-dd"
}

Getting “root-logger” logging level information:

wget -O out.txt "http://admin:admin123@localhost:9990/management/subsystem/logging/root-logger/ROOT?operation=attribute&name=level"


"INFO"

.
.
Thanks 🙂
MiddlewareMagic Team


Application Monitoring using MongoDB Monitoring Service (MMS) on Openshift

Hi,

In this article we will discuss about monitoring the appliation which are deployed over Openshift. We will use MongoDB Monitoring Service (MMS) to achieve this. Application monitoring is very important for developers before and after deploying the applications in production, let that be performance measurement, some tuning or random health checks.

The MongoDB Monitoring Service (MMS) is a cloud-based monitoring service, designed by 10gen, to monitor the health of MongoDB deployments. MMS provides an agent that runs on MongoDB servers, and this agent reports information such as opcounters, memory information, number of connections, network I/O, database storage size, and more. All of this information is available in customizable charts that are displayed in your web browser.

Openshift provides us a cartridge that can be used for monitoring the MongoDB apps. Ofcourse you would need to add a MongoDB cartridge as well, but this doesn’t mean that you can not use any other databse. 🙂

I tried a sample app that uses mysql database and I was still able to get the monitoring set up for that. 🙂

Below are the steps that you need to follow to have MMS setup :

Step-1: Create a test application (in this example a java app) :

$ rhc app create -a monitoringDemo -t jbossas-7

Step-2 : Add MongoDB cartridge to above application :

$ rhc app cartridge add -a monitoringDemo -c mongodb-2.0

Step-3 : Login to https://mms.10gen.com and create an account.

Step-4 : Once done download the mms agent by clicking on “download the agent” link on the Hosts page. Extract the zip file, you will get a dir as “mms-agent”.

Step-5 : Open a terminal and navigate to your project directory, from where you executed Step-1.

Step-6 : You will see a directory created as “monitoringDemo”, move upto “.openshift” inside it :

..
[userone@userone monitoringDemo]$ ls -ltra
total 44
-rw-rw-r--.  1 userone userone    7 Jul 25 18:58 .gitignore
drwxrwxr-x.  3 userone userone 4096 Jul 25 18:58 src
-rw-rw-r--.  1 userone userone 1695 Jul 25 18:58 pom.xml
-rw-rw-r--.  1 userone userone   56 Jul 25 19:01 README.md
-rwxrwxr-x.  1 userone userone    0 Jul 25 19:09 .gitkeep
-rwxrwxr-x.  1 userone userone    0 Jul 25 19:09 mysql-connector-java-5.1.13-bin.jar.dodeploy
-rw-rw-r--.  1 userone userone 7629 Jul 25 19:09 README
drwxrwxr-x.  4 userone userone 4096 Jul 25 19:10 deployments
drwxr-xr-x.  6 userone userone 4096 Jul 25 19:10 .
drwxrwxrwx. 24 userone userone 4096 Aug  2 19:41 ..
drwxrwxr-x.  7 userone userone 4096 Aug  7 14:54 .openshift
drwxrwxr-x.  8 userone userone 4096 Aug  7 14:56 .git
[userone@userone monitoringDemo]$ pwd
/myProjDir/monitoringDemo
[userone@userone monitoringDemo]$ cd .openshift/
..

Step-7 : Create a new directory as “mms” :

..
[userone@userone .openshift]$ mkdir mms
[userone@userone .openshift]$ ls -ltra
total 28
drwxrwxr-x. 7 userone userone 4096 Jul 25 18:58 cron
drwxrwxr-x. 3 userone userone 4096 Jul 25 18:58 config
drwxrwxr-x. 2 userone userone 4096 Jul 25 18:58 action_hooks
drwxrwxr-x. 2 userone userone 4096 Jul 25 18:58 markers
drwxr-xr-x. 6 userone userone 4096 Jul 25 19:10 ..
drwxrwxr-x. 7 userone userone 4096 Aug  7 14:54 .
drwxrwxr-x. 2 userone userone 4096 Aug  7 14:55 mms
[userone@userone monitoringDemo]$ pwd
/myProjDir/monitoringDemo/.openshift
..

Step-8 : After step-4 you would have got a directory as “mms-agent” navigate inside it and copy “settings.py” file to “/myProjDir/monitoringDemo/.openshift/mms”

Note : Make sure you do that, or else MMS won’t work.

Step-9 : Navigate back to project directory add the changes to git repo, commit those changes and then push:

$ cd /myProjDir/monitoringDemo/

$ git add .openshift/mms/

$ git commit -a -m “some commit message”

$ git push

Step-10 : Now add the MMS agent cartridge to your application :

$ rhc app cartridge add -a monitoringDemo -c 10gen-mms-agent-0.1

Phewww setup is almost done, now lets make it work 🙂

Step-11 : ssh to your application :

$ ssh UUID@applicationname-namespace.rhcloud.com

for eg :

ssh 90497856323c4122a11602485445c7b2@monitoringDemo-userone.rhcloud.com

and run below command :

..
$ echo $OPENSHIFT_NOSQL_DB_URL
mongodb://admin:ABCD8YrgQth2@10.10.10.10:27017/
..

here:

* admin = MongoDB username
* ABCD8YrgQth = password
* 10.10.10.10 = IP address of your MongoDB host/node

Step-12 : Navigate to https://mms.10gen.com and click the Hosts + button at the top of the page and add all the details from the output of Step-11.

Step-13 : Click the name of the host that you want to monitor to view the available data collection streams. First time it will take some time as it needs to schedule the checks.

This is not over yet, you can also configure multiple alerts and can can customize your view according to your requirement. Pretty simple,easy, open-source monitoring 🙂

Regards,
Middlewaremagic Team


Copyright © 2010-2012 Middleware Magic. All rights reserved. |