5.5.2. AppState

Описание

Информация о зонде: описание, текущее состояние, потребление системных ресурсов.

Запрос

{
  "user_id":(number),
  "methods":[
    {
      "method":"AppState",
      "params":{
        "project_id":(number),
        "app_ids":' id1 | [id1,id2] | "*" '
      }
    }
  ]
}
  • user_id - целое число, идентификатор пользователя;

  • project_id - целое число, идентификатор проекта пользователя;

  • app_ids - идентификаторы зондов, поле может задаваться в одном из следующих форматов:
    id1 - целое число, идентификатор зонда;
    [id1,id2] - массив целых чисел, идентификаторы зондов;
    "*" - строка, символ «звездочки», запрос информации для всех запущенных зондов.

Ответ

{
  "reply":[
    {
      "method":"AppState",
      "result":[
        {
          "app_id":(number),
          "name":(string),
          "version":(string),
          "status":(string),
          "hostname":(string),
          "hostOS": (string),
          "cpu":[
            {
              "number":(string),
              "usedPercent":(number)
            }
          ],
          "memoryUsage":{
            "totalPhys":(number),
            "usedPhys":(number),
            "usedPercent":(number),
            "availPhys":(number)
          },
          "disk":{
            "total":(number),
            "available":(number)
          }
          "interfaces":[
            {
              "iface_name":(string),
              "iface_description":(string),,
              "iface_friendly_name":(string),
              "iface_index":(number),
              "iface_v6_index":(number),
              "ip":(string),
              "ipv6":(string),
              "mask":(string),
              "speed":(number)
            }
          ]
          "net_usage": [
            {
              "name":(string),
              "RX": (number),
              "TX": (number)
            }
          ]
        }
      ]
    }
  ]
}
  • app_id - целое число, идентификатор зонда;

  • name - строка, имя зонда;

  • version - версия зонда;

  • status - строка, состояние зонда:
    active - зонд запущен;
    not started - зонд не запущен.
  • hostname - строка, имя хоста, ярлык устройства в сети;

  • hostOS - строка, информация об операционной системе на которой запускается зонд;

  • cpu - объект, нагрузка на каждое логическое ядро CPU и средняя загрузка по всем ядрам. Данные о нагрузке запрашиваются зондом у операционной системы. Состоит из следующих полей:
    • number - строка, идентификатор логического ядра CPU или значение Total для средней загрузки по всем ядрам;

    • usedPercent - вещественное число, загрузка логического ядра или средняя загрузка в процентах.

  • memoryUsage - объект, состояние оперативной памяти RAM. Состоит из следующих полей:
    • totalPhys - целое число, объем оперативной памяти, установленной на сервере, в мегабайтах;

    • usedPhys - целое число, объем памяти, использованный всеми приложениями и ОС, в мегабайтах;

    • usedPercent - вещественное число, объем использованной памяти, в процентах;

    • availPhys - целое число, оценка объема памяти, доступной для запуска новых приложений без «swapping».

  • disk - объект, состояние раздела жесткого диска HDD, на котором установлен зонд. Состоит из следующих полей:
    • total - целое число, объем раздела на котором установлен зонд, в мегабайтах;

    • available - целое число, объем свободного пространства в разделе на котором установлен зонд, в мегабайтах.

  • interfaces - объект, описание сетевых интерфейсов, доступных операционной системе. Состоит из следующих полей:
    • iface_name - строка, имя сетевого интерфейса;

    • iface_description - строка, описание сетевого интерфейса, используется в Windows;

    • iface_friendly_name - строка, дружественное имя сетевого интерфейса, используется в Windows;

    • iface_index - целое число, индекс сетевого интерфейса для IPv4 протокола, используется в Windows;

    • iface_v6_index - целое число, индекс сетевого интерфейса для IPv6 протокола, используется в Windows;

    • ip - строка, IPv4 адрес сетевого интерфейса;

    • ipv6 - строка, IPv6 адрес сетевого интерфейса;

    • mask - целое число, маска подсети в CIDR нотации;

    • speed - целое число, скорость сетевого интерфейса в Мбит/с.

  • interfaces - объект, утилизация сетевых интерфейсов, доступных операционной системе. Состоит из следующих полей:
    • name - строка, имя сетевого интерфейса;

    • RX - вещественное число, объем принятых данных за 1 секунду, в Кбит/с;

    • TX - вещественное число, объем отправленных данных за 1 секунду, в Кбит/с.

Пример

Запрос утилитой cURL
#1. Запрос информации для одного зонда
curl http://172.16.11.111/ctrl_api/v1/json \
   -H "Content-Type: application/json" \
   --data '{"user_id":4,"methods":[{"method":"AppState","params":{"project_id":23,"app_ids":702}}]}'

#2. Запрос информации для нескольких зондов
curl http://172.16.11.111/ctrl_api/v1/json \
   -H "Content-Type: application/json" \
   --data '{"user_id":4,"methods":[{"method":"AppState","params":{"project_id":23,"app_ids":[702,703]}}]}'

#3. Запрос информации для всех запущенных зондов
curl http://172.16.11.111/ctrl_api/v1/json \
   -H "Content-Type: application/json" \
   --data '{"user_id":4,"methods":[{"method":"AppState","params":{"project_id":23,"app_ids":"*"}}]}'
Ответ на запрос информации для одного зонда
 {
   "reply":[
     {
       "method":"AppState",
       "result":[
         {
           "app_id":702,
           "name":"Development probe",
           "version":"1.07-dev (2020.01.21 06:53:25 UTC)",
           "status":"active",
           "hostname":"WorkMashine",
           "hostOS":"Linux 4.15.0-88-generic (x86_64), #88-Ubuntu SMP Tue Feb 11 20:11:34 UTC 2020",
           "cpu":[
             {
               "number":"0",
               "usedPercent":"53.1"
             },
             {
               "number":"1",
               "usedPercent":"29.9"
             },
             {
               "number":"2",
               "usedPercent":"32.0"
             },
             {
               "number":"3",
               "usedPercent":"28.0"
             },
             {
               "number":"Total",
               "usedPercent":"36.3"
             }
           ],
           "memoryUsage":{
             "totalPhys":15937,
             "usedPhys":6078,
             "usedPercent":39,
             "availPhys":8765
           },
           "disk":{
             "total":222522,
             "available":200430
           }
           "interfaces":[
             {
               "iface_name":"{EE5A8772-AEDC-4387-A643-AC1827642969}",
               "iface_description":"Intel(R) 82574L Gigabit #4",
               "iface_friendly_name":"Ethernet 4",
               "iface_index":6,
               "iface_v6_index":6,
               "ip":"10.10.30.203",
               "ipv6":"fe80::3dc8:a7ae:1e79:e4fd%6",
               "mask":24,
               "speed":1000
             },
             {
               "iface_name":"localhost",
               "ip":"127.0.0.1",
               "ipv6":"::1"
               "mask":8
             }
           ]
           "net_usage": [
             {
               "name":"{EE5A8772-AEDC-4387-A643-AC1827642969}",
               "RX": 631.9,
               "TX": 1412.0
             },
             {
               "name": "localhost",
               "RX": 17871.0,
               "TX": 2.89
             }
           ]
         }
       ]
     }
   ]
 }