HM Interface

HM provides API for external data access in the format below:

http://ip:port/hm/cache/q

HM interface allows query of cached profile data, monitoring data and iplink data. The default exposed query port is 8765. Below are instances to query the specifized types of data.

1. Profile Data

  • Query all profile data
      POST localhost:8765/hm/cache/q
      {
          "intent":"profile",
          "request":{    
           }
      }
    

    Returned result

      Below is the format of the result returned: 
      {rs: "{"UAV@http://127.0.0.1:8080/apphub/…{}}}\..."}"}
    
      Below is the format of detalied contents in rs, wherein the key, composed of {appgroup}@{appurl}, is the unique identifier of each instance and the value is the profile data of the instance
      {
          UAV@http://127.0.0.1:8080/:"{...}"
          UAV@http://127.0.0.1:8080/apphub/:"{...}"
          UAV@http://127.0.0.1:10101/:"{...}"
          UAV@http://127.0.0.1:10102/:"{...}"
          UAV@jse://127.0.0.1/com.alibaba.rocketmq.broker.BrokerStartup-2144:"{...}"
          UAV@jse://127.0.0.1/com.alibaba.rocketmq.namesrv.NamesrvStartup-3980:"{...}"
          UAV@jse://127.0.0.1/org.elasticsearch.bootstrap.Elasticsearch-13424:"{...}"
      }
    
      Below is the format of the profile data
      {
          appdes:""
          appgroup:"UAV"
          appid:"ROOT"
          appmetrics:"{"M24hr_UsrLog":{}}"
          appurl:"http://127.0.0.1/"
          cpt.clients:"[]"
          cpt.filters:"{"org.apache.tomcat.websocket.server.WsFilter":{"dyn":{"servletNames":[],"urlPatterns":["/*"],"filterName":"Tomcat WebSocket (JSR356) Filter"}}}"
          cpt.listeners:"{"org.apache.tomcat.websocket.server.WsContextListener":{"dyn":{}},"org.apache.tomcat.websocket.server.WsSessionListener":{"dyn":{}}}"
          cpt.services:"{}"
          host:"DESKTOP-84FNUC2"
          ip:"127.0.0.1"
          jars.lib:"@LAZY"
          logs.log4j:"{}"
          mofmeta:"{"NetCardIndex":"0","NetCardName":""}"
          state:"1"
          svrid:"E:/UAVIDE/tomcat/apache-tomcat-7.0.65---E:/UAVIDE/defaultworkspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0"
          time:1512455925270
          webapproot:"E:/UAVIDE/defaultworkspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/ROOT"
      }
    
  • Query the profile data of a specifized appgroup

    The instance below queries all the profile data of UAV

      POST localhost:8765/hm/cache/q
      {
          "intent":"profile",
          "request":{
             "fkey":"appgroup",
             "fvalue":"UAV"
          }
      }
    

    Returned result
    The format is identical with that when all profile data is queried. But the result only includes the profile data of a specifized appgroup.

  • Query the profile data of a specifized appurl

    The instance below queries the profile data of all instances of the appurl http://127.0.0.1:8080/apphub/

      POST localhost:8765/hm/cache/q
      {
          "intent":"profile",
          "request":{
              "fkey":"appurl",
              "fvalue":"http://127.0.0.1:8080/apphub/"
          }
      }
    

    Returned result
    The format is identical with that when all profile data is queried. But the result only includes the profile data of a specifized appurl.

  • Query the lib data of an application instance in a specifized user group

    The instance below queries the jar package data under lib of an application instance with the appurl as http://127.0.0.1:8080/apphub/ and the appgroup as UAV

        POST localhost:8765/hm/cache/q
        {
            "intent":"profile.detail",
            "request":{
                "target":"profile.info.jarlib",
                "field":"UAV@http://127.0.0.1:8080/apphub/"
            }
        }
    

    Returned result

        Below is the format of the result returned
        {rs: "{"UAV@http://127.0.0.1:8080/apphub/…reditease.uav.hook.httpclients-1.0-sync3.jar\"}"}"}
    
        Below is the format of detalied contents in rs, wherein the key is the application identifier and the value is the jar package data of the application instance
        {UAV@http://127.0.0.1:8080/apphub/: "{"com.creditease.uav.logging-1.0.jar":"file:/E:/UA…m.creditease.uav.hook.httpclients-1.0-sync3.jar"}"}
    
        Below is the detailed content of jar package data, wherein the key is the name of jar package and the value is the absolute path of jar package
        {
            aopalliance-repackaged-2.4.0-b31.jar:"file:/E:/UAVIDE/defaultworkspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/com.creditease.uav.console/WEB-INF/lib/aopalliance-repackaged-2.4.0-b31.jar"
            aredis-api-1.4.jar:"file:/E:/UAVIDE/defaultworkspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/com.creditease.uav.console/WEB-INF/lib/aredis-api-1.4.jar"
            com.creditease.uav.base-1.0.jar:"file:/E:/UAVIDE/defaultworkspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/com.creditease.uav.console/WEB-INF/lib/com.creditease.uav.base-1.0.jar"
            com.creditease.uav.cache.redis-1.0.jar:"file:/E:/UAVIDE/defaultworkspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/com.creditease.uav.console/WEB-INF/lib/com.creditease.uav.cache.redis-1.0.jar"
            com.creditease.uav.fastjson-1.2.6.jar:"file:/E:/UAVIDE/defaultworkspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/com.creditease.uav.console/WEB-INF/lib/com.creditease.uav.fastjson-1.2.6.jar"
            com.creditease.uav.helper-1.0.jar:"file:/E:/UAVIDE/defaultworkspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/com.creditease.uav.console/WEB-INF/lib/com.creditease.uav.helper-1.0.jar"
            com.creditease.uav.hook.httpclients-1.0-async.jar:"file:/E:/UAVCode/uavGitLab/ce-datamonitorsystem/com.creditease.uav.monitorframework.buildComponent/target/build/com.creditease.uav.appfrk/com.creditease.uav.hook.httpclients-1.0-async.jar"
            com.creditease.uav.hook.httpclients-1.0-sync3.jar:"file:/E:/UAVCode/uavGitLab/ce-datamonitorsystem/com.creditease.uav.monitorframework.buildComponent/target/build/com.creditease.uav.appfrk/com.creditease.uav.hook.httpclients-1.0-sync3.jar"
            ....
        }
    
  • Query the data of client components of all application instances
      POST localhost:8765/hm/cache/q
      {
        "intent":"clients",
        "request":{
        }
      }
    

    Returned result

        Below is the format of the result returned
        {rs: "{"C@UAV@http://127.0.0.1:10102/":"[{\"values\"…lasticsearch.bootstrap.Elasticsearch-13424":"[]"}"}
    
        Below is the format of detailed contents in rs, wherein the key is the application identifier and the value is the client-side data included in the instance
        {
          C@UAV@http://127.0.0.1:8080/:"[...]"
          C@UAV@http://127.0.0.1:8080/apphub/:"[...]"
          C@UAV@http://127.0.0.1:10101/:"[...]"    
          C@UAV@http://127.0.0.1:10102/:"[...]"
          C@UAV@jse://127.0.0.1/com.alibaba.rocketmq.broker.BrokerStartup-2144:"[...]"
          C@UAV@jse://127.0.0.1/com.alibaba.rocketmq.namesrv.NamesrvStartup-3980:"[...]"
          C@UAV@jse://127.0.0.1/org.elasticsearch.bootstrap.Elasticsearch-13424:"[...]"
        }
    
        Below is the detailed content of the client data of an instance
        [
            {"values":{"urls":{"/ah/app":{"ACpost":1512455355327,"ts":1512455355327},"/ah/group":{"ACpost":1512455355321,"ts":1512455355321}},"type":"apache.http.AsyncClient","ts":1512455355327,"state":"-1"},"id":"http://127.0.0.1:8011"},
            {"values":{"urls":{"ap":{"ACauth":1512455530875,"ACget":1512458763341,"ACconfig":1512455530875,"AChmget":1512455528761,"AChmset":1512455355384,"AChgetall":1512455528756,"ts":1512458763341}},"type":"redis.client.Aredis","svr":"redis","ts":1512458763341,"state":"1"},"id":"redis://127.0.0.1:6379"},
            {"values":{"urls":{"/hm/cache/q":{"ACpost":1512458763356,"ts":1512458763356}},"type":"apache.http.AsyncClient","ts":1512458763356,"state":"1"},"id":"http://127.0.0.1:8765"}
        ]
    

2. Monitoring Data

The example below queried the err and RC data of the application http://127.0.0.1:8080/com.creditease.uav.console with the IP as 127.0.0.1. The time range queried is between 1512450873892 and 1512450933892. It also supports the query of such metrics as appResp.warn, appResp.EXT, appResp.tmax, appResp.tsum, appResp.tavg, appResp.tmin and appResp.count.

    POST localhost:8765/hm/cache/q
    {
        "intent":"monitor",
        "request":{
            "cache.query.json":"{
                \"start\":1512450873892,
                \"end\":1512450933892,
                \"queries\":[
                    {
                        \"aggregator\":\"avg\",
                        \"metric\":\"appResp.err\",
                        \"tags\":{
                                \"ip\":\"127.0.0.1\",
                                \"pgid\":\"E/u003a/UAVIDE/tomcat/apache-tomcat-7.0.65---E/u003a/UAVIDE/defaultworkspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0\",
                                \"instid\":\"http/u003a//127.0.0.1/u003a8080/apphub---apphub\"
                        }
                     }, 
                     {
                         \"aggregator\":\"avg\",
                         \"metric\":\"appResp.RC\",
                         \"tags\":{
                             \"ip\":\"127.0.0.1\",
                             \"pgid\":\"E/u003a/UAVIDE/tomcat/apache-tomcat-7.0.65---E/u003a/UAVIDE/defaultworkspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0\",
                             \"instid\":\"http/u003a//127.0.0.1/u003a8080/apphub---apphub\",
                             \"ptag\":\"*\"
                         }
                     }
                 ]
             }"
         }
     }

Returned result

  Below is the format of the result returned
  {rs: "[{"metric":"appResp.RC200","tags":{"ip":"127.0.0.1…}]"}

  Below is the format of the detailed content in rs
  [
      {metric: "appResp.RC200", tags: {…}, dps: {…}}
      {metric: "appResp.RC304", tags: {…}, dps: {…}}
      {metric: "appResp.RC302", tags: {…}, dps: {…}}
      {metric: "appResp.err", tags: {…}, dps: {…}}
  ]

  Tags are basically identical with those in the request parameter. The difference lies in the fact that if there is ptag: "*” in the request parameter, then the result returned shall be further classified. Take appResp.RC as an example. The result returned shall be classified based on RC200, RC304 and RC302.

  Below is the format of the detailed content in dps
  {
      1512460980270:347
      1512460995260:349
      1512461010270:353
      1512461025270:353
  }
    POST localhost:8765/hm/cache/q

    {
        "intent":"iplnk",
        "request":{
            "appgpids":"[
                \"UAV@http://127.0.0.1:8080/apphub/\",
                \"UAV@jse://127.0.0.1/org.elasticsearch.bootstrap.Elasticsearch-13424\"
            ]"
        }
    }

Returned result

  Below is the format of the result returned
  {rs: "{"UAV@jse://127.0.0.1/org.elasticsearch.bootst…56.1\":1512462439074},\"ts\":1512462439074}"}}"}

  Below is the format of detailed contents in rs, wherein the key is the application identifier and the value is the iplink data
  {
      UAV@http://127.0.0.1:8080/apphub/:{...}
      UAV@jse://127.0.0.1/org.elasticsearch.bootstrap.Elasticsearch-13424:{}
  }

  Below is the format of the detailed content of iplink data
  {
      browser://127.0.0.1:8080/apphub:"{"urls":{"/rs/gui/loadTemp":1512455530051,"/rs/godeye/profile/q/iplink":1512462406887,"/uavapp_godeye/appmonitor/main.html":1512462378880,"/rs/godeye/profile/q/cache":1512462439074,"/rs/godeye/monitor/q/hm":1512462406898,"/rs/gui/login":1512455528725,"/rs/gui/loadMainMenu":1512455528745,"/rs/gui/jumpAppPage":1512455529989,"/rs/gui/loadUserManageInfo":1512455528765},"clients":{"user://192.168.56.1":1512462439074},"ts":1512462439074}"
      browser://127.0.0.1:8080/apphub-ts:"1512462439074"
  }

http://ip:port/ivc/q

Users are allowed to query the lightweight invocation chain data via this interface, with the default query port being 7799

1. Instance of Query for the Invocation Chain Data

    POST localhost:7799/ivc/q
    {
        "intent":"qApp",
        "request":{
            "appuuid":"http://127.0.0.1:8080/apphub---apphub",
            "stime":"1512377369878",
            "etime":"1512463769878",
            indexdate:"2017-12-7",//The date when the invocation chain is generated. Optional if logs generated within the current week are to be queried
            "eptype":"E,S",
            "from":"0",
            "size":"100",
            "sort":"cost=DESC"
        }
    }

Returned result

  Below is the format of the result returned, wherein rs is the invocation chain data and count is the total number of data

  {
     rs:[{"traceid":"127.0.0.1_8080_1512463713021_56_6….console","state":"200"    ,"class":"","eptype":"E"}]",
     count: "25"
  }

  Below is the format of the detailed content in rs
  [
        {traceid: "127.0.0.1_8080_1512463713021_56_6", appuuid: "http://127.0.0.1:8080/apphub---apphub", cost: 835, ipport: "127.0.0.1:8080", method: "loadTemp", …}
        {traceid: "127.0.0.1_8080_1512463713886_53_7", appuuid: "http://127.0.0.1:8080/apphub---apphub", cost: 180, ipport: "127.0.0.1:8080", method: "createValidataCode", …}
        {traceid: "127.0.0.1_8080_1512463740450_55_11", appuuid: "http://127.0.0.1:8080/apphub---apphub", cost: 28, ipport: "127.0.0.1:8080", method: "loadUserManageInfo", …}
        {traceid: "127.0.0.1_8080_1512463740398_54_8", appuuid: "http://127.0.0.1:8080/apphub---apphub", cost: 20, ipport: "127.0.0.1:8080", method: "login", …}
        {traceid: "127.0.0.1_8080_1512463743000_56_17", appuuid: "http://127.0.0.1:8080/apphub---apphub", cost: 14, ipport: "127.0.0.1:8080", method: "getMonitorData", …}
        ...
  }

  Below is the format of the detailed content of each invocation chain
  {
        appgroup:"UAV"
        appid:"com.creditease.uav.console"
        appuuid:"http://127.0.0.1/apphub---apphub"
        class:"com.creditease.uav.apphub.rest.GUIService"
        cost:835
        epinfo:"http.service,mtd=GET,src=10.10.168.155"
        eptype:"E"
        ipport:"127.0.0.1:8080"
        method:"loadTemp"
        parentid:"N"
        spanid:"1"
        state:"200"
        stime:1512463713021
        traceid:"127.0.0.1_8080_1512463713021_56_6"
        url:"http://localhost:8080/apphub/rs/gui/loadTemp"
  }

2. Instance of Query for Invocation Chain Details

  POST localhost:7799/ivc/q
  {
      "intent":"qTrace",
      "request":{
          "traceid":"127.0.0.1_8080_1512463713021_56_6",
          "from":"0",
          "size":"1000",
          "sort":"spanid=ASC,stime=ASC,epinfo=ASC"
      }
  }

Returned result

  Below is the format of the result returned, wherein rs is the invocation chain details and count is the total number of data
  {
       rs: "[{"traceid":"127.0.0.1_8080_1512463713021_56_6...ase.uav.httpasync.HttpAsyncClient","eptype":"C"}]",
       count: "8"
  }

  Below is the format of the detailed content in rs
  [
       {traceid: "127.0.0.1_8080_1512463713021_56_6", appuuid: "http://127.0.0.1:8080/apphub---aphub", cost: 835, ipport: "127.0.0.1:8080", method: "loadTemp", …}
       {traceid: "127.0.0.1_8080_1512463713021_56_6", appuuid: "http://127.0.0.1:8080/apphub---aphub", cost: 100, ipport: "127.0.0.1:8080", method: "doHttpOutboundAsyncInternal", …}
       {traceid: "127.0.0.1_8080_1512463713021_56_6", appuuid: "http://127.0.0.1:8080/apphub---aphub", cost: 75, ipport: "127.0.0.1:8080", method: "doHttpOutboundAsyncInternal", …}
       {traceid: "127.0.0.1_8080_1512463713021_56_6", appuuid: "http://127.0.0.1:8080/apphub---aphub", cost: 73, ipport: "127.0.0.1:8080", method: "doHttpOutboundAsyncInternal", …}
       {traceid: "127.0.0.1_8080_1512463713021_56_6", appuuid: "http://127.0.0.1:8080/apphub---aphub", cost: 59, ipport: "127.0.0.1:8080", method: "doHttpOutboundAsyncInternal", …}
       {traceid: "127.0.0.1_8080_1512463713021_56_6", appuuid: "http://127.0.0.1:8080/apphub---aphub", cost: 58, ipport: "127.0.0.1:8080", method: "doHttpOutboundAsyncInternal", …}
       {traceid: "127.0.0.1_8080_1512463713021_56_6", appuuid: "http://127.0.0.1:8080/apphub---aphub", cost: 96, ipport: "127.0.0.1:8080", method: "doHttpOutboundAsyncInternal", …}
       {traceid: "127.0.0.1_8080_1512463713021_56_6", appuuid: "http://127.0.0.1:8080/apphub---aphub", cost: 18, ipport: "127.0.0.1:8080", method: "doHttpOutboundAsyncInternal", …}
  ]

  The format of the detailed content for each log is identical with the content structure of the invocation chain data

http://ip:port/slw/q

Users are allowed query the heavyweight invocation chain data via this interface, with the default query port being 7799

  POST localhost:7799/slw/q
  {
      "intent":"qParams",
      "request":{
          "traceid":"127.0.0.1_8080_1512528400374_94_10",
          "spanid":"1.1",
          "epinfo":"apache.http.AsyncClient",
          "appid":"apphub"
      }
  }

Returned result

  Below is the format of the result returned, wherein rs is the heavyweight invocation chain data and count is the total number of data
  {
      rs: "[{"traceid":"127.0.0.1_8080_1512528400374_94_1...values\\":{\\\\\\\\\\\\\\\"urls\\"}]",
      count: "1"
  }

  Below is the format of the detailed content in rs
  [
      {
          appgroup:"UAV"
          appid:"apphub"
          appuuid:"http://127.0.0.1:8080/apphub---apphub"
          epinfo:"apache.http.AsyncClient"
          rpc_req_body:"{"intent":"profile","request":{},"responseAsJsonString":"{}"}"
          rpc_req_head:"{"param.http.head.span":"127.0.0.1_8080_1512528400374_94_10&1.1&1&","UAV-Client-Src":"http://127.0.0.1:8080/apphub"}{}"
          rpc_rsp_body:"{"rs":"{\"UAV@jse://127.0.0.1/edu.umd.cs.findb....":{\\\\\\\"urls\"
          rpc_rsp_head:"{"Content-length":"113376","Date":"Wed, 06 Dec 2017 02:46:40 GMT"}"
          spanid:"1.1"
          traceid:"127.0.0.1_8080_1512528400374_94_10"
      }
  ]

http://ip:port/jta/q

Users are allowed to query the thread analysis data via this interface, with the default query port being 5566

1. Instance of Query for the Thread Analysis Data

  POST localhost:5566/jta/q
  {
      "intent":"qDistinct",
      "request":{"ipport":"127.0.0.1:8080"}
  }

Returned result

    Below is the format of the result returned, wherein rs is the thread analysis data and count is the total number of data
    {
        rs: "[{"threadcount":120,"time":"1512537011959","user":…ount":120,"time":"1512531600647","user":"admin"}]",
        count: "3"
    }

    Below is the format of the detailed content in rs
    [
        {threadcount: 120, time: "1512537011959", user: "admin"}
        {threadcount: 120, time: "1512536880350", user: "admin"}
        {threadcount: 120, time: "1512531600647", user: "admin"}
    ]

2. Instance of Query for Thread Analysis Details

  POST localhost:5566/jta/q
  {
      "intent":"qField",
      "request":{
          "stime":"1512537011959",
          "etime":"1512537011959",
          "ipport":"127.0.0.1:8080",
          "from":"0",
          "size":"5000",
          "sort":
          "percpu=DESC"
      }
  }

Returned result

   Below is the format of the result returned, wherein rs is the detailed data of each thread analysis and count is the total number of data

  {
      rs: "[{"ipport":"127.0.0.1:8080","appgroup":"UNKNO…9a501b9000 nid=0x2309 waiting on condition\r\n"}]", 
      count: "120"
  }

  Below is the format of the detailed content in rs
  [
      {ipport: "127.0.0.1:8080", appgroup: "UNKNOWN", pname: "", percpu: 6.699999809265137, pid: "", …}
      {ipport: "127.0.0.1:8080", appgroup: "UNKNOWN", pname: "", percpu: 0, pid: "", …}
      {ipport: "127.0.0.1:8080", appgroup: "UNKNOWN", pname: "", percpu: 0, pid: "", …}
      {ipport: "127.0.0.1:8080", appgroup: "UNKNOWN", pname: "", percpu: 0, pid: "", …}
      {ipport: "127.0.0.1:8080", appgroup: "UNKNOWN", pname: "", percpu: 0, pid: "", …}
      {ipport: "127.0.0.1:8080", appgroup: "UNKNOWN", pname: "", percpu: 0, pid: "", …}
      ...
  ]

  Below is the format of the content of each thread information
  {
      appgroup:"UNKNOWN"
      info:""ContainerBackgroundProcessor[StandardEngine[Catalina]]" #53 daemon prio=5 os_prio=0 tid=0x00007f9a50705800 nid=0x256e waiting on condition [0x00007f99f8ad8000]
              ↵java.lang.Thread.State: TIMED_WAITING (sleeping)
              ↵at java.lang.Thread.sleep(Native Method)
              ↵at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1355)
              ↵at java.lang.Thread.run(Thread.java:745)
          ↵"
      ipport:"127.0.0.1:8080"
      percpu:6.699999809265137
      permem:11
      pid:""
      pname:""
      state:"TIMED_WAITING (sleeping)"
      tid:"9582"
      time:1512537011959
      timeadd:"0:56.37"
      user:"admin"
  }

http://ip:port/hm/query

HM interface allows users to query the history monitoring data and nodeInfo. The default exposed query port is 8765. Below is a instance to query a specifized type of data.

  • Query nodeInfo data

The example below is to query process metrics.

  POST localhost:8765/hm/query
  {
  "request": {
    "opentsdb.query.json":"{
        \"start\":1512544020000,
        \"end\":1512544140000,
        \"queries\":[{
            \"aggregator\":\"sum\",
            \"downsample\":\"1m-avg\",
            \"metric\":\"procState.conn\",
            \"tags\":{
                \"instid\":\"127.0.0.0.1_org.elasticsearch.bootstrap.Elasticsearch_10508\"
            }
        }]
    }",
    "datastore.name": "MT_Monitor"
  }
  }
  wherein “start” and “end” denote the starting time and the ending time , “queries” denote the query conditions, “metric” denotes the name of a performance metric and “tags” denote the query conditions of a specific process

Returned result
Below is the format of the data returned:

  {
  "rs": "[{
      "metric":"procState.conn",
      "tags":{
          "pgid":"org.elasticsearch.bootstrap.Elasticsearch",
          "instid":"127.0.0.1_org.elasticsearch.bootstrap.Elasticsearch_10508",
          "ip":"127.0.0.1"
      },
      "aggregateTags":[],
      "dps":{
          "1512544020":14.0,
          "1512544080":14.0,
          "1512544140":14.0
      }
  }]"
  }
  wherein, “metric” denotes the name of a performance metric, “tags” denote the query conditions and “dps” denotes the history data returned

http://ip:port/hb/query

This interface allows users to query the cached nodeInfo. The default exposed query port is 8020. Below are instances to query specifized types of data.

1. Query the Heartbeat Data of All Containers

  POST localhost:8020/hb/query
  {
  "intent":"node",
  "request":{
   }
  }

Returned result
Below is the format of the data returned:

  {  
  "rs": "{
    "938300339801718784":"{  
      "clientTimestamp": 1512546163627,  
      "group": "",  
      "host": "DESKTOP-KDVH36F",  
      "id": "938300339801718784",  
      "info": {  
          "os.io.disk": "{"  
              E: ":{
                "disk\_read":"0.00",
                "total":"46079996",
                "use":"18136596",
                "useRate":"39%",  
                "free":"27943400",
                "disk\_write":"0.00"
              },  
              "D: ":{
                "disk\_read":"0.00",
                "total":"77163516",
                "use":"14794732",
                "useRate":"19%",
                "free":"62368784",
                "disk\_write":"0.00"
              },  
              "C: ":{
                "disk\_read":"0.00",
                "total":"125576188",
                "use":"53220416",
                "useRate":"42%",
                "free":"72355772",
                "disk\_write":"0.00"
               }
            }",  
        "node.pid": "15412",  
        "node.hbserver": "127.0.0.1:8010",  
        "os.cpu.maxmem": "17058336768",  
        "os.arch": "amd64",  
        "node.services": "{  
              "nodeoperagent-NodeOperHttpServer-/node/ctrl":"http: //localhost: 10101/node/ctrl"}",  
              "node.state": "1",  
              "os.type": "Windows 10",  
              "os.java.vm": "Java HotSpot\(TM\) 64-Bit Server VM",  
              "node.feature": "{"hbclientagent":\["HeartBeatClientAgent"\],  
              "procscan":\["ProcDetectAgent"\],  
              "nodeoperagent":\["NodeOperAgent"\],  
              "threadanalysis":\["ThreadAnalysisAgent"\],  
              "collectclient":\["CollectDataAgent"\],  
              "logagent":\["LogAgent"\],  
              "procwatch":\["ProcWatchAgent"\],  
              "notifyagent":\["GlobalNotificationAgent"\],  
              "monitoragent":\["MonitorAgent"\]}",  
              "node.profile": "agent",  
              "os.mac": "F4:96:34:86:B9:EC",  
              "os.cpu.number": "8",  
              "os.java.ver": "1.8.0\_131",  
              "node.tags": "Elasticsearch, UAV.AppHub, Monitor Agent, jar, BrokerStartup, NamesrvStartup, Health Manager,",  
              "os.cpu.load": "9",  
              "node.version": "1.0",  
              "node.procs": "{......}",  
              "os.java.home": "D:\java\jdk1.8.0\_131\jre",  
              "os.conn.cur": "-1",  
              "os.cpu.freemem": "8731549696",  
              "node.root": "D:\GITStoreXinJian\ce-datamonitorsystem\com.creditease.uav.agent.buildComponent\target\build",  
              "os.cpu.avgload": "-100"  
        },  
      "ip": "localhost",  
      "name": "Monitor Agent",  
      "serverTimestamp": 1512546163630  
    }",  
    "938300359816974336":"{.....}"  
  }"  
  }

Below is the content of node.procs:

  "{"12464":{
      "name":"java","pid":"12464","ports":\[\],
      "tags":{
          "main":"com.creditease.mscp.boot.MSCPBoot",
          "jargs":"-agentlib: jdwp=transport=dt\_socket,suspend=y,
                     address=localhost: 55338-javaagent: 
                     D: \GITStoreXinJian\ce-datamonitorsystem\com.creditease.uav.monitorframework.buildComponent\target\build\com.creditease.uav.agent\com.creditease.uav.monitorframework.agent-1.0-agent.jar-Dfile.encoding=UTF-8",
          "jflags":"",
          "watch":"false",
          "conn\_8765":"0",
          "conn":"3",
          "memRate":"7.88",
          "mem":"1312536",
          "conn\_10102":"0",
          "conn\_55639":"1",
          "cpu":"22.78"
          ,"conn\_8020":"0",
          "conn\_8010":"2",
          "conn\_8011":"0",
          "conn\_9000":"0",
          "conn\_5566":"0",
          "disk\_read":"0.27","disk\_write":"55.96"
       }
     },
  "15412":{
      "name":"java","pid":"15412","ports":\[\],
      "tags":{
          "main":"com.creditease.mscp.boot.MSCPBoot",
          "jargs":"-agentlib: jdwp=transport=dt\_socket,suspend=y,
               address=localhost: 55182-javaagent:
                D: \GITStoreXinJian\ce-datamonitorsystem\com.creditease.uav.monitorframework.buildComponent\target\build\com.creditease.uav.agent\com.creditease.uav.monitorframework.agent-1.0-agent.jar-Dfile.encoding=UTF-8",
          "jflags":"",
          "watch":"false",
          "conn":"1",
          "memRate":"1.68",
          "mem":"280076",
          "conn\_10101":"0",
          "cpu":"11.39",
          "conn\_55263":"1",
          "disk\_read":"20.36",
          "disk\_write":"33.41"
        }
    },
  "16292":{.......},
  "4484":{.......},
  "17272":{......},
  "10508":{......}
  }"

2. Query the Heartbeat Data of Containers with a Specifized IP

  POST localhost:8020/hb/query
  {
   "intent":"node",
   "request":{
      "fkey":"ip",
      "fvalue":"127.0.0.1"
   }
  }

The structure of the data returned is identical with that when the heartbeat data of all containers is queried. But the result only includes the heatbeat data of the container with the specifized IP.

3. Query the Heartbeat Data of Containers in a Specifized Group

Take UAV as an example (separate the names of multiple groups with comma)

  POST localhost:8020/hb/query
  {
  "intent":"node",
  "request":{
      "fkey":"group",
      "fvalue":"UAV"
  }
  }

The structure of the data returned is identical with that when the heartbeat data of all containers is queried. But the result only includes the heatbeat data of the container in the specifized group.

4. Query the Heartbeat Data of the Registered Server in a Container

Take nodeoperagent-NodeOperHttpServer-/node/ctrl as an example

  POST localhost:8020/hb/query
  {
  "intent":"services",
  "request":{
      "service":"nodeoperagent-NodeOperHttpServer-/node/ctrl"
  }
  }

Below is the format of the data returned:

  {
  "rs":"[\"http://127.0.0.1/node/ctrl\"]"
  }

results matching ""

    No results matching ""