Lenteur d'ouvertures de meta alarmes

Lorsque la corrélation est activée sur un bac à alarme, lorsqu’on veut déplier une méta alarme (petit icône brun) et en cliquant sur le petit « v » à gauche, il faut attendre environ 30 secondes pour que ça s’ouvre. Si corrélation pas activé, c’est instantané. Ce temps nous parait un peu lent pour être utilisé en production.

Bonjour

Cela n’est en effet pas envisageable.
Peux tu fournir le morceau de log mongodb au moment où tu déplies la méta alarme ?
Avec cela on pourra déjà voir si les index sont positionnés correctement

Oui bien sure. J’ai pris le log entre le moment où je clique sur la méta alarm. il se passe environ 21 secondes environ avant que l’alarme s’ouvre.

Extrait du log mongo (j’ai volontairement remplacé les adresses IP) :

2020-12-14T08:33:51.572+0100 I ACCESS [conn79] Successfully authenticated as principal cpsmongo on canopsis from client XX.XXX.X.XXX:51586
2020-12-14T08:34:01.582+0100 I ACCESS [conn79] Successfully authenticated as principal cpsmongo on canopsis from client XX.XXX.X.XXX:51586
2020-12-14T08:34:02.662+0100 I COMMAND [conn16523] command canopsis.periodical_alarm command: aggregate { aggregate: « periodical_alarm », pipeline: [ { $addFields: { lastComment: { $reduce: { input: { $slice: [ { $filter: { input: { $reverseArray: « $v.steps » }, as: « steps », cond: { $eq: [ « $$steps.t", « comment » ] } } }, 1 ] }, initialValue: {}, in: { $mergeObjects: [ {}, « $$this » ] } } } } }, { $project: { v: 1, lastComment: { $cond: { then: null, else: « $lastComment », if: { $eq: [ {}, « $lastComment » ] } } }, t: 1, infos_array: 1, d: 1 } }, { $addFields: { v.lastComment: « $lastComment » } }, { $project: { lastComment: false } }, { $project: { v.steps: false } }, { $lookup: { foreignField: « id", as: « entity », from: « default_entities », localField: « d » } }, { $unwind: { path: « $entity », preserveNullAndEmptyArrays: true } }, { $match: { $or: [ { entity.enabled: true }, { entity: { $exists: false } } ] } }, { $match: { $or: [ { v.parents: { $in: [ null, [] ] } }, { v.children: { $nin: [ null, [] ] } } ] } }, { $graphLookup: { restrictSearchWithMatch: { $or: [ { $and: [ { $and: [ { v.connector: { $regex: "^bem MEDIADSL » } } ] }, {} ] } ] }, connectFromField: « v.children », from: « periodical_alarm », startWith: « $v.children », as: « children », connectToField: « d » } }, { $match: { $and: [ { $or: [ { $and: [ { v.connector: { $regex: "^bem MEDIADSL » } } ] }, { children: { $ne: [] } } ] }, { t: { $lte: 1607931242, $gte: 1607326442 }, v.resolved: null } ] } }, { $addFields: { consequences: { $cond: [ { $not: [ « $v.meta » ] }, {}, { total: { $size: « $v.children » } } ] }, rule: « $v.meta », metaalarm: { $cond: [ { $not: [ « $v.meta » ] }, « 0 », « 1 » ] } } }, { $project: { metaalarm: 1, t: 1, consequences: { $cond: { then: « $$REMOVE », else: « $consequences », if: { $eq: [ {}, « $consequences » ] } } }, v: 1, filtered: « $children._id », entity: 1, rule: 1, d: 1 } }, { $sort: { v.last_event_date: -1 } }, { $lookup: { foreignField: « eids », as: « pbehaviors », from: « default_pbehavior », localField: « d » } }, { $project: { pbehaviors: { $filter: { input: « $pbehaviors », as: « pbh », cond: { $and: [ { $eq: [ « $$pbh.enabled », true ] } ] } } }, d: 1, consequences: 1, v: 1, entity: 1, filtered: 1, _id: 1, rule: 1, metaalarm: 1, t: 1 } }, { $count: « count » } ], cursor: {}, allowDiskUse: true, lsid: { id: UUID(« 4f342b6d-d519-4128-9490-30fce969c9dc ») }, $readPreference: { mode: « secondaryPreferred » }, $db: « canopsis » } planSummary: IXSCAN { t: -1 } keysExamined:18197 docsExamined:18197 hasSortStage:1 cursorExhausted:1 numYields:155 nreturned:1 reslen:132 locks:{ Global: { acquireCount: { r: 10364 } }, Database: { acquireCount: { r: 5182 } }, Collection: { acquireCount: { r: 5181 } } } protocol:op_query 491ms
2020-12-14T08:34:03.220+0100 I COMMAND [conn17202] command canopsis.periodical_alarm command: aggregate { aggregate: « periodical_alarm », pipeline: [ { $match: { v.meta: { $nin: [ «  », null ] } } }, { $project: { children: « $v.children », rule: « $v.meta » } }, { $unwind: « $children » }, { $group: { _id: { children: « $children » }, rule: { $addToSet: « $rule » } } }, { $project: { _id: « $_id.children », rule: « $rule » } } ], cursor: {}, lsid: { id: UUID(« 4f342b6d-d519-4128-9490-30fce969c9dc ») }, $readPreference: { mode: « secondaryPreferred » }, $db: « canopsis » } planSummary: COLLSCAN cursorid:6362627098884438795 keysExamined:0 docsExamined:710135 numYields:5547 nreturned:101 reslen:11914 locks:{ Global: { acquireCount: { r: 11098 } }, Database: { acquireCount: { r: 5549 } }, Collection: { acquireCount: { r: 5549 } } } protocol:op_query 557ms
2020-12-14T08:34:03.720+0100 I COMMAND [conn17199] command canopsis.periodical_alarm command: aggregate { aggregate: « periodical_alarm », pipeline: [ { $addFields: { lastComment: { $reduce: { input: { $slice: [ { $filter: { input: { $reverseArray: « $v.steps » }, as: « steps », cond: { $eq: [ « $$steps.t", « comment » ] } } }, 1 ] }, initialValue: {}, in: { $mergeObjects: [ {}, « $$this » ] } } } } }, { $project: { v: 1, lastComment: { $cond: { then: null, else: « $lastComment », if: { $eq: [ {}, « $lastComment » ] } } }, t: 1, infos_array: 1, d: 1 } }, { $addFields: { v.lastComment: « $lastComment » } }, { $project: { lastComment: false } }, { $project: { v.steps: false } }, { $lookup: { foreignField: « id", as: « entity », from: « default_entities », localField: « d » } }, { $unwind: { path: « $entity », preserveNullAndEmptyArrays: true } }, { $match: { $or: [ { entity.enabled: true }, { entity: { $exists: false } } ] } }, { $match: { $or: [ { v.parents: { $in: [ null, [] ] } }, { v.children: { $nin: [ null, [] ] } } ] } }, { $graphLookup: { restrictSearchWithMatch: { $or: [ { $and: [ { $and: [ { v.connector: { $regex: "^bem MEDIADSL » } } ] }, {} ] } ] }, connectFromField: « v.children », from: « periodical_alarm », startWith: « $v.children », as: « children », connectToField: « d » } }, { $match: { $and: [ { $or: [ { $and: [ { v.connector: { $regex: "^bem MEDIADSL » } } ] }, { children: { $ne: [] } } ] }, { t: { $lte: 1607931242, $gte: 1607326442 }, v.resolved: null } ] } }, { $addFields: { consequences: { $cond: [ { $not: [ « $v.meta » ] }, {}, { total: { $size: « $v.children » } } ] }, rule: « $v.meta », metaalarm: { $cond: [ { $not: [ « $v.meta » ] }, « 0 », « 1 » ] } } }, { $project: { metaalarm: 1, t: 1, consequences: { $cond: { then: « $$REMOVE », else: « $consequences », if: { $eq: [ {}, « $consequences » ] } } }, v: 1, filtered: « $children._id », entity: 1, rule: 1, d: 1 } }, { $sort: { v.last_event_date: -1 } }, { $lookup: { foreignField: « eids », as: « pbehaviors », from: « default_pbehavior », localField: « d » } }, { $project: { pbehaviors: { $filter: { input: « $pbehaviors », as: « pbh », cond: { $and: [ { $eq: [ « $$pbh.enabled », true ] } ] } } }, d: 1, consequences: 1, v: 1, entity: 1, filtered: 1, _id: 1, rule: 1, metaalarm: 1, t: 1 } }, { $skip: 0 }, { $limit: 20 } ], cursor: {}, allowDiskUse: true, lsid: { id: UUID(« 4f342b6d-d519-4128-9490-30fce969c9dc ») }, $readPreference: { mode: « secondaryPreferred » }, $db: « canopsis » } planSummary: IXSCAN { t: -1 } keysExamined:18197 docsExamined:18197 hasSortStage:1 cursorExhausted:1 numYields:155 nreturned:20 reslen:273581 locks:{ Global: { acquireCount: { r: 8292 } }, Database: { acquireCount: { r: 4146 } }, Collection: { acquireCount: { r: 4145 } } } protocol:op_query 481ms
2020-12-14T08:34:06.098+0100 I ACCESS [conn79] Successfully authenticated as principal cpsmongo on canopsis from client XX.XXX.X.XXX:51586
2020-12-14T08:34:17.901+0100 I COMMAND [conn17202] command canopsis.periodical_alarm command: aggregate { aggregate: « periodical_alarm », pipeline: [ { $addFields: { lastComment: { $reduce: { input: { $slice: [ { $filter: { input: { $reverseArray: « $v.steps » }, as: « steps », cond: { $eq: [ « $$steps._t », « comment » ] } } }, 1 ] }, initialValue: {}, in: { $mergeObjects: [ {}, « $$this » ] } } } } }, { $project: { v: 1, lastComment: { $cond: { then: null, else: « $lastComment », if: { $eq: [ {}, « $lastComment » ] } } }, t: 1, infos_array: 1, d: 1 } }, { $addFields: { v.lastComment: « $lastComment » } }, { $project: { lastComment: false } }, { $lookup: { foreignField: « _id », as: « entity », from: « default_entities », localField: « d » } }, { $unwind: { path: « $entity », preserveNullAndEmptyArrays: true } }, { $match: { $or: [ { entity.enabled: true }, { entity: { $exists: false } } ] } }, { $match: { $or: [ { v.parents: { $in: [ null, [] ] } }, { v.children: { $nin: [ null, [] ] } } ] } }, { $graphLookup: { restrictSearchWithMatch: { $or: [ { $and: [ { _id: « d7a26988-22b1-412c-8bce-5cc803c9d9a4 » }, {} ] } ] }, connectFromField: « v.children », from: « periodical_alarm », startWith: « $v.children », as: « children », connectToField: « d » } }, { $match: { $and: [ { $or: [ { _id: « d7a26988-22b1-412c-8bce-5cc803c9d9a4 » }, { children: { $ne: [] } } ] }, { v.resolved: null } ] } }, { $addFields: { consequences: { $cond: [ { $not: [ « $v.meta » ] }, {}, { total: { $size: « $v.children » }, data: « $v.children » } ] }, rule: « $v.meta », metaalarm: { $cond: [ { $not: [ « $v.meta » ] }, « 0 », « 1 » ] } } }, { $project: { metaalarm: 1, t: 1, consequences: { $cond: { then: « $$REMOVE », else: « $consequences », if: { $eq: [ {}, « $consequences » ] } } }, v: 1, filtered: « $children._id », entity: 1, rule: 1, d: 1 } }, { $sort: { t: -1 } }, { $lookup: { foreignField: « eids », as: « pbehaviors », from: « default_pbehavior », localField: « d » } }, { $project: { pbehaviors: { $filter: { input: « $pbehaviors », as: « pbh », cond: { $and: [ { $eq: [ « $$pbh.enabled », true ] } ] } } }, d: 1, consequences: 1, v: 1, entity: 1, filtered: 1, _id: 1, rule: 1, metaalarm: 1, t: 1 } }, { $count: « count » } ], cursor: {}, allowDiskUse: true, lsid: { id: UUID(« 4f342b6d-d519-4128-9490-30fce969c9dc ») }, $readPreference: { mode: « secondaryPreferred » }, $db: « canopsis » } planSummary: COLLSCAN keysExamined:0 docsExamined:710135 hasSortStage:1 cursorExhausted:1 numYields:5581 nreturned:1 reslen:132 locks:{ Global: { acquireCount: { r: 353606 } }, Database: { acquireCount: { r: 176803 } }, Collection: { acquireCount: { r: 176802 } } } protocol:op_query 7561ms
2020-12-14T08:34:21.679+0100 I NETWORK [listener] connection accepted from XX.XXX.X.XXX:41698 #20717 (125 connections now open)
2020-12-14T08:34:21.679+0100 I NETWORK [conn20717] received client metadata from XX.XXX.X.XXX:41698 conn20717: { os: { type: « linux », architecture: « amd64 » }, driver: { name: « mgo », version: « globalsign » } }
2020-12-14T08:34:21.688+0100 I ACCESS [conn20717] Successfully authenticated as principal cpsmongo on canopsis from client XX.XXX.X.XXX:41698
2020-12-14T08:34:21.689+0100 I NETWORK [conn20717] end connection XX.XXX.X.XXX:41698 (124 connections now open)
2020-12-14T08:34:25.368+0100 I COMMAND [conn17200] command canopsis.periodical_alarm command: aggregate { aggregate: « periodical_alarm », pipeline: [ { $addFields: { lastComment: { $reduce: { input: { $slice: [ { $filter: { input: { $reverseArray: « $v.steps » }, as: « steps », cond: { $eq: [ « $$steps._t », « comment » ] } } }, 1 ] }, initialValue: {}, in: { $mergeObjects: [ {}, « $$this » ] } } } } }, { $project: { v: 1, lastComment: { $cond: { then: null, else: « $lastComment », if: { $eq: [ {}, « $lastComment » ] } } }, t: 1, infos_array: 1, d: 1 } }, { $addFields: { v.lastComment: « $lastComment » } }, { $project: { lastComment: false } }, { $lookup: { foreignField: « _id », as: « entity », from: « default_entities », localField: « d » } }, { $unwind: { path: « $entity », preserveNullAndEmptyArrays: true } }, { $match: { $or: [ { entity.enabled: true }, { entity: { $exists: false } } ] } }, { $match: { $or: [ { v.parents: { $in: [ null, [] ] } }, { v.children: { $nin: [ null, [] ] } } ] } }, { $graphLookup: { restrictSearchWithMatch: { $or: [ { $and: [ { _id: « d7a26988-22b1-412c-8bce-5cc803c9d9a4 » }, {} ] } ] }, connectFromField: « v.children », from: « periodical_alarm », startWith: « $v.children », as: « children », connectToField: « d » } }, { $match: { $and: [ { $or: [ { _id: « d7a26988-22b1-412c-8bce-5cc803c9d9a4 » }, { children: { $ne: [] } } ] }, { v.resolved: null } ] } }, { $addFields: { consequences: { $cond: [ { $not: [ « $v.meta » ] }, {}, { total: { $size: « $v.children » }, data: « $v.children » } ] }, rule: « $v.meta », metaalarm: { $cond: [ { $not: [ « $v.meta » ] }, « 0 », « 1 » ] } } }, { $project: { metaalarm: 1, t: 1, consequences: { $cond: { then: « $$REMOVE », else: « $consequences », if: { $eq: [ {}, « $consequences » ] } } }, v: 1, filtered: « $children._id », entity: 1, rule: 1, d: 1 } }, { $sort: { t: -1 } }, { $lookup: { foreignField: « eids », as: « pbehaviors », from: « default_pbehavior », localField: « d » } }, { $project: { pbehaviors: { $filter: { input: « $pbehaviors », as: « pbh », cond: { $and: [ { $eq: [ « $$pbh.enabled », true ] } ] } } }, d: 1, consequences: 1, v: 1, entity: 1, filtered: 1, _id: 1, rule: 1, metaalarm: 1, t: 1 } }, { $skip: 0 }, { $limit: 1 } ], cursor: {}, allowDiskUse: true, lsid: { id: UUID(« 4f342b6d-d519-4128-9490-30fce969c9dc ») }, $readPreference: { mode: « secondaryPreferred » }, $db: « canopsis » } planSummary: COLLSCAN keysExamined:0 docsExamined:710135 hasSortStage:1 cursorExhausted:1 numYields:5582 nreturned:1 reslen:2317 locks:{ Global: { acquireCount: { r: 353608 } }, Database: { acquireCount: { r: 176804 } }, Collection: { acquireCount: { r: 176803 } } } protocol:op_query 7464ms
2020-12-14T08:34:25.947+0100 I COMMAND [conn16527] command canopsis.periodical_alarm command: aggregate { aggregate: « periodical_alarm », pipeline: [ { $match: { v.meta: { $nin: [ «  », null ] } } }, { $project: { children: « $v.children », rule: « $v.meta » } }, { $unwind: « $children » }, { $group: { _id: { children: « $children » }, rule: { $addToSet: « $rule » } } }, { $project: { _id: « $_id.children », rule: « $rule » } } ], cursor: {}, lsid: { id: UUID(« 4f342b6d-d519-4128-9490-30fce969c9dc ») }, $readPreference: { mode: « secondaryPreferred » }, $db: « canopsis » } planSummary: COLLSCAN cursorid:6527251448529503663 keysExamined:0 docsExamined:710135 numYields:5547 nreturned:101 reslen:11914 locks:{ Global: { acquireCount: { r: 11098 } }, Database: { acquireCount: { r: 5549 } }, Collection: { acquireCount: { r: 5549 } } } protocol:op_query 555ms

Peux tu renvoyer le résultat de quelques commandes mongodb car je vois que certaines requêtes n’utilisent pas d’index.

db.default_entities.getIndices()
db.periodical_alarm.getIndices()

Merci

db.default_entities.getIndices()
/* 1 */
[
{
« v » : 2,
« key » : {
« _id » : 1
},
« name » : « id »,
« ns » : « canopsis.default_entities »
},
{
« v » : 2,
« key » : {
« id » : 1
},
« name » : « id_1 »,
« ns » : « canopsis.default_entities »
}
]

db.periodical_alarm.getIndices()
/* 1 */
[
{
« v » : 2,
« key » : {
« id" : 1
},
« name » : « id »,
« ns » : « canopsis.periodical_alarm »
},
{
« v » : 2,
« key » : {
« id » : 1
},
« name » : « id_1 »,
« ns » : « canopsis.periodical_alarm »
},
{
« v » : 2,
« key » : {
« d » : 1,
« t » : -1
},
« name » : "d_1_t
-1 »,
« ns » : « canopsis.periodical_alarm »
},
{
« v » : 2,
« key » : {
« t » : -1
},
« name » : « t_-1 »,
« ns » : « canopsis.periodical_alarm »
}
]

En complément, nous constatons également que, si on prend une métalarme que l’on déplie, et puis, on clique sur alarmes liées, on voit par exemple quelques alarmes liées. Seulement, si un refresh du bac à lieu à ce moment là, on constate alors que les alarmes liées disparaissent et réapparaissent seulement au bout d’une vingtaine de secondes. Ce problème est sans doute fort lié au problème de lenteur de dépliement de la métalarme.

Cela semble « logique ».
Lorsque la page est rafraîchie, le contenu des onglets est rafraîchi dans le même temps.
Si la page a mis 20s au départ, elle mettra 20s au refresh également.
C’est en cours d’analyse

D’accord, merci (je me doutais que c’était lié…)