)]}'
{"specs/rocky/approved/alarm-merge-rule.rst":[{"author":{"_account_id":21414,"name":"Yujun Zhang","email":"zhang.yujunz@zte.com.cn","username":"yujunz"},"change_message_id":"f0cf0c5653f725c5569b8fd81c3e5388378ab8b2","unresolved":false,"context_lines":[{"line_number":152,"context_line":".. figure:: ./alarm_merge/alarm_merge_t4.png\r"},{"line_number":153,"context_line":"   :scale: 100 %\r"},{"line_number":154,"context_line":"   :align: center\r"},{"line_number":155,"context_line":"   :alt: alternate text\r"},{"line_number":156,"context_line":"\r"},{"line_number":157,"context_line":"\r"},{"line_number":158,"context_line":"The final merge result is closely related to merge rules. Except from taking alarm source as a \r"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa0c359_3ae7a3ae","line":155,"updated":"2018-02-26 10:34:37.000000000","message":"What happens after the merge? Do we still have three status, i.e. merged, current and new? Or we shall replace the current status with merged status and drop the current and new as temporary data?","commit_id":"0efb3fc259189f63f4e1e07ce9c5c461b5b4618d"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"2f8a3e5b57de9c2decad89c231b220005f05d17d","unresolved":false,"context_lines":[{"line_number":43,"context_line":"scenarios will include merging between monitored alarms, deduced alarms and monitored\r"},{"line_number":44,"context_line":"alarm with deduced alarm.\r"},{"line_number":45,"context_line":"\r"},{"line_number":46,"context_line":"(1) merging monitored alarms: the alarm with newer timestamp has a higher priority,\r"},{"line_number":47,"context_line":"as what has been achieved;\r"},{"line_number":48,"context_line":"\r"},{"line_number":49,"context_line":"(2) merging deduced alarms: the alarm with higher severity has a higher priority, as\r"},{"line_number":50,"context_line":"what has been achieved by scores;\r"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1f9dbf25_1c3388ad","line":47,"range":{"start_line":46,"start_character":4,"end_line":47,"end_character":26},"updated":"2018-03-01 12:12:21.000000000","message":"I don\u0027t think this is the right approach. I doubt if we really want to merge Zabbix and Nagios alarms. I suggest to say here that it\u0027s not supported at the moment or TBD.","commit_id":"123b5ebf1b861ae2c270af576755220fd319e11f"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"2f8a3e5b57de9c2decad89c231b220005f05d17d","unresolved":false,"context_lines":[{"line_number":76,"context_line":"   |     4      | None       | Deduce(F)  | Deduce(F)  |\r"},{"line_number":77,"context_line":"   |     5      | Report(T)  | Deduce(T)  | Report(T)  |\r"},{"line_number":78,"context_line":"   |     6      | Report(T)  | Deduce(F)  | Report(T)  |\r"},{"line_number":79,"context_line":"   |     7      | Report(F)  | Deduce(T)  | Report(F)  |\r"},{"line_number":80,"context_line":"   |     8      | Report(F)  | Deduce(F)  | Report(F)  |\r"},{"line_number":81,"context_line":"   |     9      | Deduce(T)  | Report(T)  | Report(T)  |\r"},{"line_number":82,"context_line":"   |     10     | Deduce(T)  | Report(F)  | Report(F)  |\r"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1f9dbf25_1c0aa8d1","line":79,"range":{"start_line":79,"start_character":9,"end_line":79,"end_character":53},"updated":"2018-03-01 12:12:21.000000000","message":"Why? if the monitor reported that the alarm is cleared, and then later on there was a deduced alarm - most chances are, IMO, that the monitor in out of date and soon it will also report true.\nSo I expect the final to be Deduce(T)","commit_id":"123b5ebf1b861ae2c270af576755220fd319e11f"},{"author":{"_account_id":24667,"name":"Jia Peiyuan","email":"jia.peiyuan@zte.com.cn","username":"jiapeiyuan"},"change_message_id":"9c2a60a35821a2fa8cc2fd9aefe53f880d129bf8","unresolved":false,"context_lines":[{"line_number":76,"context_line":"   |     4      | None       | Deduce(F)  | Deduce(F)  |\r"},{"line_number":77,"context_line":"   |     5      | Report(T)  | Deduce(T)  | Report(T)  |\r"},{"line_number":78,"context_line":"   |     6      | Report(T)  | Deduce(F)  | Report(T)  |\r"},{"line_number":79,"context_line":"   |     7      | Report(F)  | Deduce(T)  | Report(F)  |\r"},{"line_number":80,"context_line":"   |     8      | Report(F)  | Deduce(F)  | Report(F)  |\r"},{"line_number":81,"context_line":"   |     9      | Deduce(T)  | Report(T)  | Report(T)  |\r"},{"line_number":82,"context_line":"   |     10     | Deduce(T)  | Report(F)  | Report(F)  |\r"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1f9dbf25_b081394d","line":79,"range":{"start_line":79,"start_character":9,"end_line":79,"end_character":53},"in_reply_to":"1f9dbf25_1c0aa8d1","updated":"2018-03-03 10:03:01.000000000","message":"Of course, \u0027Final\u0027 will be updated to report(T) as soon as report(T) comes.\nBut, before report(*) comes, it should keep False though deduce(T) comes, because of the \u0027doctor-example\u0027 philosophy(we trust monitor more than experience)\nHowever, that\u0027s not mean we accept the conflict, it will trigger an diagnose action in background, we expect the new diagnose result will  come soon","commit_id":"123b5ebf1b861ae2c270af576755220fd319e11f"},{"author":{"_account_id":25301,"name":"xupeipei","email":"xu.peipei1@zte.com.cn","username":"xupeipei"},"change_message_id":"48e033fdf47145973ff85189ec9609ce9e23856b","unresolved":false,"context_lines":[{"line_number":76,"context_line":"   |     4      | None       | Deduce(F)  | Deduce(F)  |\r"},{"line_number":77,"context_line":"   |     5      | Report(T)  | Deduce(T)  | Report(T)  |\r"},{"line_number":78,"context_line":"   |     6      | Report(T)  | Deduce(F)  | Report(T)  |\r"},{"line_number":79,"context_line":"   |     7      | Report(F)  | Deduce(T)  | Report(F)  |\r"},{"line_number":80,"context_line":"   |     8      | Report(F)  | Deduce(F)  | Report(F)  |\r"},{"line_number":81,"context_line":"   |     9      | Deduce(T)  | Report(T)  | Report(T)  |\r"},{"line_number":82,"context_line":"   |     10     | Deduce(T)  | Report(F)  | Report(F)  |\r"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ff6b8bd7_29e679ea","line":79,"range":{"start_line":79,"start_character":9,"end_line":79,"end_character":53},"in_reply_to":"1f9dbf25_b081394d","updated":"2018-03-05 12:18:09.000000000","message":"Same as above. If the monitor report the alarm as true later, Report(F) will be a temporary state.\nThe rule will be a combine of \u0027monitored or deduced\u0027 and \u0027which alarm is newer\u0027 if the final is Deduce(T). I think we can review our rule if Report(F) can\u0027t be accepted in practical.","commit_id":"123b5ebf1b861ae2c270af576755220fd319e11f"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"2f8a3e5b57de9c2decad89c231b220005f05d17d","unresolved":false,"context_lines":[{"line_number":176,"context_line":"Work Items\r"},{"line_number":177,"context_line":"----------\r"},{"line_number":178,"context_line":"\r"},{"line_number":179,"context_line":"See dependent blueprints.\r"},{"line_number":180,"context_line":"\r"},{"line_number":181,"context_line":"\r"},{"line_number":182,"context_line":"Dependencies\r"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1f9dbf25_3cc9a477","line":179,"range":{"start_line":179,"start_character":0,"end_line":179,"end_character":25},"updated":"2018-03-01 12:12:21.000000000","message":"What are the dependent blueprints? (here and below)","commit_id":"123b5ebf1b861ae2c270af576755220fd319e11f"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"f6a4319128f7b3350b286a45420d9bef778f2526","unresolved":false,"context_lines":[{"line_number":179,"context_line":"       name: high_cpu\r"},{"line_number":180,"context_line":"       template_id: id_high_cpu\r"},{"line_number":181,"context_line":"       type: zabbix\r"},{"line_number":182,"context_line":"       rule: alarm source credibility\r"},{"line_number":183,"context_line":"       bind:\r"},{"line_number":184,"context_line":"        - item:\r"},{"line_number":185,"context_line":"           type: zabbix\r"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_bd358cdc","line":182,"range":{"start_line":182,"start_character":13,"end_line":182,"end_character":37},"updated":"2018-03-11 08:21:38.000000000","message":"Where do you determine which is more credible? Zabbix vs. Vitrage is easy, but what if you are binding Zabbix and Nagios?","commit_id":"9a520e8611381ee68a932fed55f7e6655dab84c5"},{"author":{"_account_id":25301,"name":"xupeipei","email":"xu.peipei1@zte.com.cn","username":"xupeipei"},"change_message_id":"78916182d62c8789368a1e74d359312cdcf00c5c","unresolved":false,"context_lines":[{"line_number":179,"context_line":"       name: high_cpu\r"},{"line_number":180,"context_line":"       template_id: id_high_cpu\r"},{"line_number":181,"context_line":"       type: zabbix\r"},{"line_number":182,"context_line":"       rule: alarm source credibility\r"},{"line_number":183,"context_line":"       bind:\r"},{"line_number":184,"context_line":"        - item:\r"},{"line_number":185,"context_line":"           type: zabbix\r"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_5daafd70","line":182,"range":{"start_line":182,"start_character":13,"end_line":182,"end_character":37},"in_reply_to":"df7087c5_0b60e031","updated":"2018-03-13 12:04:34.000000000","message":"Ok, I agree with you.","commit_id":"9a520e8611381ee68a932fed55f7e6655dab84c5"},{"author":{"_account_id":25301,"name":"xupeipei","email":"xu.peipei1@zte.com.cn","username":"xupeipei"},"change_message_id":"08fe1dc844eac376d15cd27c3078f297ffe62415","unresolved":false,"context_lines":[{"line_number":179,"context_line":"       name: high_cpu\r"},{"line_number":180,"context_line":"       template_id: id_high_cpu\r"},{"line_number":181,"context_line":"       type: zabbix\r"},{"line_number":182,"context_line":"       rule: alarm source credibility\r"},{"line_number":183,"context_line":"       bind:\r"},{"line_number":184,"context_line":"        - item:\r"},{"line_number":185,"context_line":"           type: zabbix\r"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_c6098731","line":182,"range":{"start_line":182,"start_character":13,"end_line":182,"end_character":37},"in_reply_to":"df7087c5_bd358cdc","updated":"2018-03-12 08:50:39.000000000","message":"I suggest that we can add the \u0027credibility\u0027 in \u0027bind\u0027. Besides, we can regard the monitored alarms have the same credibility and merge alarm by time if users don\u0027t define it.\nWe don\u0027t have many rules for now, and I\u0027ll remove \u0027rule\u0027 element here.","commit_id":"9a520e8611381ee68a932fed55f7e6655dab84c5"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"e2c853a58fcda8d2141a234595191eeef7031dc1","unresolved":false,"context_lines":[{"line_number":179,"context_line":"       name: high_cpu\r"},{"line_number":180,"context_line":"       template_id: id_high_cpu\r"},{"line_number":181,"context_line":"       type: zabbix\r"},{"line_number":182,"context_line":"       rule: alarm source credibility\r"},{"line_number":183,"context_line":"       bind:\r"},{"line_number":184,"context_line":"        - item:\r"},{"line_number":185,"context_line":"           type: zabbix\r"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_0b60e031","line":182,"range":{"start_line":182,"start_character":13,"end_line":182,"end_character":37},"in_reply_to":"df7087c5_c6098731","updated":"2018-03-12 12:49:45.000000000","message":"If we want to add \u0027credibility\u0027, I think we can add it once per datasource. No need to add it again for every alarm.","commit_id":"9a520e8611381ee68a932fed55f7e6655dab84c5"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"f6a4319128f7b3350b286a45420d9bef778f2526","unresolved":false,"context_lines":[{"line_number":180,"context_line":"       template_id: id_high_cpu\r"},{"line_number":181,"context_line":"       type: zabbix\r"},{"line_number":182,"context_line":"       rule: alarm source credibility\r"},{"line_number":183,"context_line":"       bind:\r"},{"line_number":184,"context_line":"        - item:\r"},{"line_number":185,"context_line":"           type: zabbix\r"},{"line_number":186,"context_line":"           name: high_cpu\r"},{"line_number":187,"context_line":"        - item:\r"},{"line_number":188,"context_line":"           type: vitrage\r"},{"line_number":189,"context_line":"           name: deduced_high_cpu\r"},{"line_number":190,"context_line":"\r"},{"line_number":191,"context_line":"  scenarios:\r"},{"line_number":192,"context_line":"   - scenario:\r"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_fd40e437","line":189,"range":{"start_line":183,"start_character":7,"end_line":189,"end_character":33},"updated":"2018-03-11 08:21:38.000000000","message":"This binding seems ok for alarms, but for resources it is not enough (e.g. we want to bind K8s instance with externalID X to Nova instance with uuid X. And of course we don\u0027t know in the template what X is). \n\nI\u0027ll think of a more detailed syntax for my resource equivalence blueprint. \n\nAnyway - do you intend to use this binding instead of the existing equivalence template?","commit_id":"9a520e8611381ee68a932fed55f7e6655dab84c5"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"ead2c5ae2189d7a7aa8bae02ce36aa663a489550","unresolved":false,"context_lines":[{"line_number":180,"context_line":"       template_id: id_high_cpu\r"},{"line_number":181,"context_line":"       type: zabbix\r"},{"line_number":182,"context_line":"       rule: alarm source credibility\r"},{"line_number":183,"context_line":"       bind:\r"},{"line_number":184,"context_line":"        - item:\r"},{"line_number":185,"context_line":"           type: zabbix\r"},{"line_number":186,"context_line":"           name: high_cpu\r"},{"line_number":187,"context_line":"        - item:\r"},{"line_number":188,"context_line":"           type: vitrage\r"},{"line_number":189,"context_line":"           name: deduced_high_cpu\r"},{"line_number":190,"context_line":"\r"},{"line_number":191,"context_line":"  scenarios:\r"},{"line_number":192,"context_line":"   - scenario:\r"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_c06b821b","line":189,"range":{"start_line":183,"start_character":7,"end_line":189,"end_character":33},"in_reply_to":"df7087c5_3d9ce90d","updated":"2018-03-13 12:30:56.000000000","message":"Yes. If I\u0027m not mistaken, then nova.list() returns entities with \u0027id\u0027 and a notification about Nova instance creation has an \u0027instance_id\u0027 property. In Vitrage we always call it \u0027id\u0027.\n\nI didn\u0027t fully understand your comment about binding. What I have in mind is to merge the Nova instance with the k8s instance. And the problem I see is that unlike the alarms example, we cannot write in the template:\n\n  id: 12345\n\nBecause we don\u0027t know the id in advance. Instead, we should write something like:\n\nequals(get_attr(nova_instance, \u0027id\u0027), get_attr(k8s_instance, \u0027externalID\u0027))\n\nOr use a nicer syntax that says the same.","commit_id":"9a520e8611381ee68a932fed55f7e6655dab84c5"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"e2c853a58fcda8d2141a234595191eeef7031dc1","unresolved":false,"context_lines":[{"line_number":180,"context_line":"       template_id: id_high_cpu\r"},{"line_number":181,"context_line":"       type: zabbix\r"},{"line_number":182,"context_line":"       rule: alarm source credibility\r"},{"line_number":183,"context_line":"       bind:\r"},{"line_number":184,"context_line":"        - item:\r"},{"line_number":185,"context_line":"           type: zabbix\r"},{"line_number":186,"context_line":"           name: high_cpu\r"},{"line_number":187,"context_line":"        - item:\r"},{"line_number":188,"context_line":"           type: vitrage\r"},{"line_number":189,"context_line":"           name: deduced_high_cpu\r"},{"line_number":190,"context_line":"\r"},{"line_number":191,"context_line":"  scenarios:\r"},{"line_number":192,"context_line":"   - scenario:\r"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_cbd668c4","line":189,"range":{"start_line":183,"start_character":7,"end_line":189,"end_character":33},"in_reply_to":"df7087c5_694bac58","updated":"2018-03-12 12:49:45.000000000","message":"It should be the same X.\n\nWhen K8s is running on top of OpenStack, it returns for each vm the externalID which is the Nova UUID. We should map a vm with externalID\u003d\u00271234\u0027 to a vm with Nova UUID \u00271234\u0027. This is easy to understand, but not so easy to express as a generic rule.","commit_id":"9a520e8611381ee68a932fed55f7e6655dab84c5"},{"author":{"_account_id":25301,"name":"xupeipei","email":"xu.peipei1@zte.com.cn","username":"xupeipei"},"change_message_id":"4475425928d4d2a25a1f439bb914ec2c720d8ba2","unresolved":false,"context_lines":[{"line_number":180,"context_line":"       template_id: id_high_cpu\r"},{"line_number":181,"context_line":"       type: zabbix\r"},{"line_number":182,"context_line":"       rule: alarm source credibility\r"},{"line_number":183,"context_line":"       bind:\r"},{"line_number":184,"context_line":"        - item:\r"},{"line_number":185,"context_line":"           type: zabbix\r"},{"line_number":186,"context_line":"           name: high_cpu\r"},{"line_number":187,"context_line":"        - item:\r"},{"line_number":188,"context_line":"           type: vitrage\r"},{"line_number":189,"context_line":"           name: deduced_high_cpu\r"},{"line_number":190,"context_line":"\r"},{"line_number":191,"context_line":"  scenarios:\r"},{"line_number":192,"context_line":"   - scenario:\r"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_bf51bbdb","line":189,"range":{"start_line":183,"start_character":7,"end_line":189,"end_character":33},"in_reply_to":"df7087c5_c06b821b","updated":"2018-03-14 00:59:54.000000000","message":"If nova instance use \u0027id\u0027 and k8s use \u0027externalID\u0027 to build entity_key, vertex_id for nova instance and k8s vm will be like \u0027RESOURCE:nova.instance:12345\u0027 and \u0027RESOURCE:k8s_vm:12345\u0027.\nIf we can bind nova.instance and k8s_vm before hash vertex_id to uuid, processor will update them like one resource node.\nBut I\u0027m not sure that properties to build vertex_id and identify same resource are the same property.","commit_id":"9a520e8611381ee68a932fed55f7e6655dab84c5"},{"author":{"_account_id":25301,"name":"xupeipei","email":"xu.peipei1@zte.com.cn","username":"xupeipei"},"change_message_id":"78916182d62c8789368a1e74d359312cdcf00c5c","unresolved":false,"context_lines":[{"line_number":180,"context_line":"       template_id: id_high_cpu\r"},{"line_number":181,"context_line":"       type: zabbix\r"},{"line_number":182,"context_line":"       rule: alarm source credibility\r"},{"line_number":183,"context_line":"       bind:\r"},{"line_number":184,"context_line":"        - item:\r"},{"line_number":185,"context_line":"           type: zabbix\r"},{"line_number":186,"context_line":"           name: high_cpu\r"},{"line_number":187,"context_line":"        - item:\r"},{"line_number":188,"context_line":"           type: vitrage\r"},{"line_number":189,"context_line":"           name: deduced_high_cpu\r"},{"line_number":190,"context_line":"\r"},{"line_number":191,"context_line":"  scenarios:\r"},{"line_number":192,"context_line":"   - scenario:\r"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_3d9ce90d","line":189,"range":{"start_line":183,"start_character":7,"end_line":189,"end_character":33},"in_reply_to":"df7087c5_cbd668c4","updated":"2018-03-13 12:04:34.000000000","message":"Is the Nova UUID same with \u0027instance_id\u0027 of nova.instance? If we use vm externalId or Nova UUID to build entity_key for resource vertex, we can also use \u0027bind\u0027 to bind different resource types.\n\nIf the property vitrage uses to build entity_key and property to identify same resource are different, it\u0027ll be a little thorny to merge them by binding.","commit_id":"9a520e8611381ee68a932fed55f7e6655dab84c5"},{"author":{"_account_id":25301,"name":"xupeipei","email":"xu.peipei1@zte.com.cn","username":"xupeipei"},"change_message_id":"08fe1dc844eac376d15cd27c3078f297ffe62415","unresolved":false,"context_lines":[{"line_number":180,"context_line":"       template_id: id_high_cpu\r"},{"line_number":181,"context_line":"       type: zabbix\r"},{"line_number":182,"context_line":"       rule: alarm source credibility\r"},{"line_number":183,"context_line":"       bind:\r"},{"line_number":184,"context_line":"        - item:\r"},{"line_number":185,"context_line":"           type: zabbix\r"},{"line_number":186,"context_line":"           name: high_cpu\r"},{"line_number":187,"context_line":"        - item:\r"},{"line_number":188,"context_line":"           type: vitrage\r"},{"line_number":189,"context_line":"           name: deduced_high_cpu\r"},{"line_number":190,"context_line":"\r"},{"line_number":191,"context_line":"  scenarios:\r"},{"line_number":192,"context_line":"   - scenario:\r"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_694bac58","line":189,"range":{"start_line":183,"start_character":7,"end_line":189,"end_character":33},"in_reply_to":"df7087c5_fd40e437","updated":"2018-03-12 08:50:39.000000000","message":"Is \u0027X\u0027 in externalID X and uuid X the same X? If not, how do we identify the resources as the same resource?\nAnd yes, the equivalence template is a little complex to understand and we want to replace it with binding.","commit_id":"9a520e8611381ee68a932fed55f7e6655dab84c5"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"a3ec9ac86e73c788dcb82859452dd778d74cb889","unresolved":false,"context_lines":[{"line_number":172,"context_line":"\r"},{"line_number":173,"context_line":"  ::\r"},{"line_number":174,"context_line":"\r"},{"line_number":175,"context_line":"  metadata:\r"},{"line_number":176,"context_line":"   name: alarm_equivalence\r"},{"line_number":177,"context_line":"   credibility:\r"},{"line_number":178,"context_line":"     zabbix: 3\r"},{"line_number":179,"context_line":"     nagios: 2\r"},{"line_number":180,"context_line":"     vitrage:1\r"},{"line_number":181,"context_line":"   strategy: credibility\r"},{"line_number":182,"context_line":"  definitions:\r"},{"line_number":183,"context_line":"   entities:\r"},{"line_number":184,"context_line":"    - entity:\r"}],"source_content_type":"text/x-rst","patch_set":8,"id":"df7087c5_d1fbdf44","line":181,"range":{"start_line":175,"start_character":0,"end_line":181,"end_character":24},"updated":"2018-03-18 08:25:31.000000000","message":"I think the credibility should be defined as an option of each datasource, with a default (low for Vitrage, medium/high for the others). e.g. in /etc/vitrage/vitrage.conf you could set (to override the default setting):\n\n[nagios]\ncredibility \u003d high\n\n\nRegarding the strategy, I think it should also be defined in vitrage.conf, and it better be called merge_strategy or something similar","commit_id":"6671a812d15a71e516fc40ce0cf6369d17d6b629"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"a3ec9ac86e73c788dcb82859452dd778d74cb889","unresolved":false,"context_lines":[{"line_number":185,"context_line":"       category: ALARM\r"},{"line_number":186,"context_line":"       name: high_cpu\r"},{"line_number":187,"context_line":"       template_id: id_high_cpu\r"},{"line_number":188,"context_line":"       bind:\r"},{"line_number":189,"context_line":"        - item:\r"},{"line_number":190,"context_line":"           type: zabbix\r"},{"line_number":191,"context_line":"           name: high_cpu\r"},{"line_number":192,"context_line":"        - item:\r"},{"line_number":193,"context_line":"           type: nagios\r"},{"line_number":194,"context_line":"           name: HIGH_CPU\r"},{"line_number":195,"context_line":"        - item:\r"},{"line_number":196,"context_line":"           type: vitrage\r"},{"line_number":197,"context_line":"           name: deduced_high_cpu\r"},{"line_number":198,"context_line":"\r"},{"line_number":199,"context_line":"  scenarios:\r"},{"line_number":200,"context_line":"   - scenario:\r"}],"source_content_type":"text/x-rst","patch_set":8,"id":"df7087c5_ac028e08","line":197,"range":{"start_line":188,"start_character":0,"end_line":197,"end_character":33},"updated":"2018-03-18 08:25:31.000000000","message":"I see several problems regarding the \u0027bind\u0027 in the entity section, as opposed to the existing equivalence definitions:\n\n1. It may create overlaps. What if the same entity is defined in several templates (which happens quite often)? a user that looks at one template will not understand that somewhere else his entity is bind to another entity. There may also be transitive binding without the user notices it.\n\n2. How can a user remove the binding? one problem is that he deletes one item from one template, but forgets to delete it from the other templates, so nothing happens. And even if he does that right - how will Vitrage know that an item was removed? we currently don\u0027t have a mechanism for comparing templates and identifying the changes.\n\n3. The entity actually \u0027hides\u0027 a scenario behavior. The meaning of this definition is \u0027if there are two entities which are the same then do something\u0027. This is fundamentally different than the existing entities definitions. \n\n4. Maybe this is the most important: you said that the current equivalence mechanism creates an overhead on the evaluator. But this new definition creates exactly the same overhead, and its meaning is that you *have* to duplicate scenarios. \n\nAssume the following use case:\n\n* you have an entity with zabbix and nagios bind\n* only zabbix alarm is raised\n* you want the scenario to be executed\n\nIt is clear that this can happen only if you have a condition that is \"zabbix-\u003einstance\". \n\nBut then, you can also have a use case where only nagios alarm is raised. So you must also have a condition that is \"nagios-\u003einstance\". \n\nThis is exactly the current behavior with the existing equivalence mechanism. The scenarios are duplicated. The only difference is the syntax.","commit_id":"6671a812d15a71e516fc40ce0cf6369d17d6b629"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"a3ec9ac86e73c788dcb82859452dd778d74cb889","unresolved":false,"context_lines":[{"line_number":244,"context_line":"      condition: id_zabbix_high_cpu or id_nagios_high_cpu or id_deduced_high_cpu\r"},{"line_number":245,"context_line":"      actions:\r"},{"line_number":246,"context_line":"       - action:\r"},{"line_number":247,"context_line":"        action_type: bind\r"},{"line_number":248,"context_line":"        target: id_virtual_high_cpu\r"},{"line_number":249,"context_line":"\r"},{"line_number":250,"context_line":"New action type ``bind`` supports users to add equivalence definitions(still not support deleting).\r"}],"source_content_type":"text/x-rst","patch_set":8,"id":"df7087c5_f18dc3d3","line":247,"range":{"start_line":247,"start_character":8,"end_line":247,"end_character":25},"updated":"2018-03-18 08:25:31.000000000","message":"I think this syntax is too complex for a normal user to understand and write correctly...","commit_id":"6671a812d15a71e516fc40ce0cf6369d17d6b629"}]}
