Авария

Событие, которое срабатывает, когда в авария системе была создана, изменена или перемещена в историю.

Имя события

incidents

Запрос

  • Подписка

  • Отписка

cn.emit('add-topics', 'incidents', '{"parentFilter":""}')
cn.emit('remove-topics', 'incidents')

Filter incidents

Можно фильтровать аварии на сервере, передавая Фильтр аварий при подписке на событие.

Аварии, которые не походят под критерии фильтра получаются клиентом, но у них флаг filtered равен true. Пример аварии, которая была отфильтрована:

{
    "changeType":2,
    "filtered":true,
    "payload":{
        "id":"64cb2c803b831ede6562e155"
    }
}
let filter = {
    "filter":[
        "$and",
        [
            [
                "classId","34"
            ],
            [
                "$or",
                [
                    [
                        "severity",[1]
                    ],
                    [
                        "tags","628fd2aa3587da6522d8e963"
                    ]
                ]
            ]
        ]
    ],
    "parentFilter":""
}

cn.emit('add-topics', 'incidents', filter)

Также, можно фильтровать аварии по родительскому объекту. Для этого нужно указать ID родительского объекта в поле parentFilter.

filter = {
    "parentFilter":"62fc3d840b04be66c9ce4dbd"
}

cn.emit('add-topics', 'incidents', filter)

Ответ

Ответ содержит следующие поля:

Поле Тип Описание

changeType

Integer

Тип события аварии. 1 – авария создана, 2 – изменена, 3 – перемещена в историю.

payload

Авария

Информация об аварии. Зависит от того, была ли она отфильтрована серевром. Если авария подходит под критерии фильтра, то сервер отправляет все доступные поля. Если авария не подошла, то поле в поле payload записано только ID аварии.

Пример

Запрос

const comet = require('socket.io-client');

// Comet settings
const COMET_CONNECT_TIMEOUT = 5000;
const sessionId = "..."
const conf = {
    cometHost: 'https://example.com',
    cometPort: '1234',
};

const url = `${conf.cometHost}` + (conf.cometPort ? `:${conf.cometPort}` : '');
const cn = comet.connect(url, {
    query: { forceNew: true, sessionId },
    timeout: COMET_CONNECT_TIMEOUT,
});

let filter = {
    "filter":[
        "$and",
        [
            [
                "classId","34"
            ],
            [
                "$or",
                [
                    [
                        "severity",[1]
                    ],
                    [
                        "tags","628fd2aa3587da6522d8e963"
                    ]
                ]
            ]
        ]
    ],
    "parentFilter":"62fc3d840b04be66c9ce4dbd"
}

cn.emit('add-topics', 'incidents');

cn.on('incidents', msg => {
    console.log(msg);
});

Ответ

{
    "changeType": 2,
    "payload": {
        "id": "63625653cc277a5f1af2ad5c",
        "branchId": "63511e7ef441703c22796920",
        "entityId": "634023d414d3e37c5d8c865b",
        "entityType": 1,
        "type": 2,
        "data": "{\"packetsTransmitted\":5,\"packetsReceived\":5,\"packetLossPercentile\":0,\"numberOfErrors\":0,\"numberOfDuplicates\":0,\"roundTripMinimal\":15.397,\"roundTripAverage\":15.511,\"roundTripMaximum\":15.928,\"exitCode\":0}",
        "lastState": 1,
        "localTimestamp": 1667389011294,
        "parentChainId": "634023d414d3e37c5d8c865b",
        "state": 1,
        "text": "",
        "timestamp": 1667389011293,
        "clearTimestamp": 1667389071672,
        "owner": {
            "parent_id": [
                "62fc3d840b04be66c9ce4dbd"
            ],
            "client_data": "{\"headlinePropIds\":[],\"custom_style\":{\"zIndex\":25,\"left\":\"155px\",\"top\":\"0px\",\"width\":\"300px\",\"height\":\"200px\"},\"widgets\":[{\"id\":\"4d908135-0bf7-4842-9569-8ac21f3d0f03\",\"type\":\"counter\",\"parameters\":{\"metric\":\"packetsTransmitted\"}}],\"collapseSections\":{\"numberOfErrors\":true,\"roundTripAverage\":true}}",
            "object_groups": [],
            "name": "Info",
            "class_id": 34,
            "geoposition": [],
            "geopositionRadius": 0,
            "tags": [
                "628fd2aa3587da6522d8e963"
            ],
            "operations": [
                {
                    "name": "Hello World",
                    "description": "",
                    "popupResult": true,
                    "type": 2,
                    "parameters": {
                        "type": "scriptText",
                        "text": "echo 'Hello World!'"
                    },
                    "id": "634ed7b7f441703c2279540a"
                }
            ],
            "owner_id": "633c2b259ebf31086056225c",
            "updated": 1667388967996,
            "properties": [
                {
                    "type_id": 8,
                    "name": "AgentId",
                    "value": "625439c60db03e3f4504b548",
                    "id": "634023db14d3e37c5d8c8664"
                },
                {
                    "type_id": 8,
                    "name": "TaskType",
                    "value": "ping",
                    "id": "634023de14d3e37c5d8c8666",
                    "owner_id": "634023d414d3e37c5d8c865b",
                    "owner_type": 1
                },
                {
                    "type_id": 8,
                    "name": "PingTimeout",
                    "value": "30",
                    "id": "634023de14d3e37c5d8c8668",
                    "owner_id": "634023d414d3e37c5d8c865b",
                    "owner_type": 1
                },
                {
                    "type_id": 8,
                    "name": "PingPacketsCount",
                    "value": "5",
                    "id": "634023de14d3e37c5d8c866a",
                    "owner_id": "634023d414d3e37c5d8c865b",
                    "owner_type": 1
                },
                {
                    "type_id": 8,
                    "name": "PingHost",
                    "value": "example.com",
                    "id": "634023e214d3e37c5d8c866c",
                    "owner_id": "634023d414d3e37c5d8c865b",
                    "owner_type": 1
                },
                {
                    "type_id": 8,
                    "name": "TaskPeriodValue",
                    "value": "1",
                    "id": "634e57d6f441703c227951c8"
                },
                {
                    "type_id": 8,
                    "name": "TaskPeriodUnit",
                    "value": "seconds",
                    "id": "634e57d69b9c923a47c52e0c"
                },
                {
                    "type_id": 1,
                    "name": "alarm_group",
                    "value": "135",
                    "id": "635696f6028e5c2ba71c6fcc",
                    "owner_id": "634023d414d3e37c5d8c865b",
                    "owner_type": 1
                },
                {
                    "type_id": 1,
                    "name": "rca_probability",
                    "value": "0.99",
                    "id": "635696f7028e5c2ba71c6fd0",
                    "owner_id": "634023d414d3e37c5d8c865b",
                    "owner_type": 1
                },
                {
                    "type_id": 1,
                    "name": "rca_time_calc",
                    "value": "1667281935.2799296",
                    "id": "635696f7028e5c2ba71c6fd4",
                    "owner_id": "634023d414d3e37c5d8c865b",
                    "owner_type": 1
                }
            ],
            "state_id": 4,
            "created": 1665147860002,
            "last_state_update": 1667388967996,
            "weight": 1,
            "child_ids": [],
            "child_link_ids": [],
            "child_ref_ids": [],
            "manual_state": {
                "stateId": 4,
                "reason": "test",
                "until": 1667389861870,
                "by": "633c2b259ebf31086056225c"
            },
            "id": "634023d414d3e37c5d8c865b"
        }
    }
}