4.3.13. 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":[
{
"loopback":(boolean),
"iface_name":(string),
"MAC":(string),
"iface_description":(string),
"iface_friendly_name":(string),
"iface_index":(number),
"speed":(number),
"ip":[
{
"addr":(string),
"mask":(number)
}
]
"ipv6":[
{
"addr":(string),
"mask":(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— целое число, оценка объема памяти, доступной для запуска новых приложений без применения SWAP-памяти.
disk— объект, состояние раздела жесткого диска (HDD), на котором установлен зонд. Состоит из следующих полей:total— целое число, объем раздела, на котором установлен зонд, в мегабайтах,available— целое число, объем свободного пространства в разделе, на котором установлен зонд, в мегабайтах.
interfaces— объект, описание сетевых интерфейсов, доступных операционной системе. Состоит из следующих полей:loopback— логический тип, указывающий, что он является локальным. Пакеты, отправленные через такой интерфейс, возвращаются обратно в систему, не покидая устройство.,iface_name— строка, имя сетевого интерфейса,MAC— строка, уникальный аппаратный идентификатор сетевой карты или сетевого интерфейса,iface_description— строка, описание сетевого интерфейса, используется в Windows,iface_friendly_name— строка, дружественное имя сетевого интерфейса, используется в Windows,iface_index— целое число, индекс сетевого интерфейса для протокола IPv4,iface_v6_index— целое число, индекс сетевого интерфейса для протокола IPv6,speed— целое число, скорость сетевого интерфейса в Мбит/с,ip— массив интерфейсов IPv4. Состоит из следующих полей:addr— строка, адрес сетевого интерфейса,mask— целое число, маска подсети.
ipv6— массив интерфейсов IPv6. Состоит из следующих полей:addr— строка, адрес сетевого интерфейса,mask— целое число, маска подсети.
interfaces— объект, утилизация сетевых интерфейсов, доступных операционной системе. Состоит из следующих полей:name— строка, имя сетевого интерфейса,RX— вещественное число, объем принятых данных за 1 секунду, в Кбит/с,TX— вещественное число, объем отправленных данных за 1 секунду, в Кбит/с.
Пример¶
cURL¶#1. Запрос информации для одного зонда
curl http://172.16.1.41/ctrl_api/v1/json \
-H "Content-Type: application/json" \
--data '{"user_id":1,"methods":[{"method":"AppState","params":{"project_id":2,"app_ids":1}}]}'
#2. Запрос информации для нескольких зондов
curl http://172.16.1.41/ctrl_api/v1/json \
-H "Content-Type: application/json" \
--data '{"user_id":1,"methods":[{"method":"AppState","params":{"project_id":2,"app_ids":[1,2]}}]}'
#3. Запрос информации для всех запущенных зондов
curl http://172.16.1.41/ctrl_api/v1/json \
-H "Content-Type: application/json" \
--data '{"user_id":1,"methods":[{"method":"AppState","params":{"project_id":2,"app_ids":"*"}}]}'
{
"reply": [
{
"method": "AppState",
"result": [
{
"app_id": 1,
"name": "Probe Ubuntu 20",
"version": "1.1.0-dev (2025.08.05 06:07:13 UTC)",
"status": "active",
"hostname": "Test-P55-UD3L",
"hostOS": "Linux 5.4.0-198-generic (x86_64), #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024",
"cpu": [
{
"number": "0",
"usedPercent": 3.92
},
{
"number": "1",
"usedPercent": 2.02
},
{
"number": "2",
"usedPercent": 0
},
{
"number": "3",
"usedPercent": 0
},
{
"number": "4",
"usedPercent": 0
},
{
"number": "5",
"usedPercent": 2
},
{
"number": "6",
"usedPercent": 1.98
},
{
"number": "7",
"usedPercent": 6.67
},
{
"number": "Total",
"usedPercent": 2.12
}
],
"memoryUsage": {
"totalPhys": 7936,
"usedPhys": 1473,
"usedPercent": 19,
"availPhys": 6463
},
"disk": {
"total": 226487,
"available": 73805
},
"interfaces": [
{
"loopback": false,
"iface_name": "enp4s0",
"MAC": "1c:6f:65:8c:d7:85",
"iface_index": 2,
"speed": 1000,
"ipv6": [
{
"addr": "fe80::1e6f:65ff:fe8c:d785%enp4s0",
"mask": 64
}
]
},
{
"loopback": false,
"iface_name": "enp4s0.100",
"MAC": "0e:1b:65:8c:d7:85",
"iface_index": 2,
"speed": 1000,
"ip": [
{
"addr": "172.16.1.198",
"mask": 20
}
],
"ipv6": [
{
"addr": "fe80::c1d:65ff:fe8c:d785%enp4s0.100",
"mask": 64
}
]
},
{
"loopback": false,
"iface_name": "enp4s0.101",
"MAC": "1c:6d:65:8c:d7:85",
"iface_index": 4,
"speed": 1000,
"ip": [
{
"addr": "10.10.30.150",
"mask": 24
}
],
"ipv6": [
{
"addr": "fe80::1e6c:65ff:fe8c:d785%enp4s0.101",
"mask": 64
}
]
},
{
"loopback": true,
"iface_name": "lo",
"MAC": "00:00:00:00:00:00",
"iface_index": 1,
"ip": [
{
"addr": "127.0.0.1",
"mask": 8
}
],
"ipv6": [
{
"addr": "::1",
"mask": 128
}
]
}
]
}
]
}
]
}