)]}'
{"doc/source/dev/plugin/scoring-engine-plugin.rst":[{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"ff84ac02ab8ea27fbb9f7505737a1604dc988e76","unresolved":false,"context_lines":[{"line_number":148,"context_line":"Add a new entry point"},{"line_number":149,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"In order for the Watcher Decision Engine to load your new scoring enginey, the"},{"line_number":152,"context_line":"scoring engine must be registered as a named entry point under the"},{"line_number":153,"context_line":"``watcher_scoring_engines`` entry point of your ``setup.py`` file. If you are"},{"line_number":154,"context_line":"using pbr_, this entry point should be placed in your ``setup.cfg`` file."}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa7ab95a_8373784d","line":151,"range":{"start_line":151,"start_character":66,"end_line":151,"end_character":73},"updated":"2016-09-02 10:16:51.000000000","message":"s/enginey/engine","commit_id":"645d1df0b27a5961aa37a3b584ac83e00e76b51f"},{"author":{"_account_id":20515,"name":"Tomasz Kaczynski","email":"tomasz.kaczynski@intel.com","username":"tkaczynski"},"change_message_id":"7a36abf1b27ea596ab4eeda165d13c87030bd2d0","unresolved":false,"context_lines":[{"line_number":148,"context_line":"Add a new entry point"},{"line_number":149,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"In order for the Watcher Decision Engine to load your new scoring enginey, the"},{"line_number":152,"context_line":"scoring engine must be registered as a named entry point under the"},{"line_number":153,"context_line":"``watcher_scoring_engines`` entry point of your ``setup.py`` file. If you are"},{"line_number":154,"context_line":"using pbr_, this entry point should be placed in your ``setup.cfg`` file."}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa7ab95a_09b226e5","line":151,"range":{"start_line":151,"start_character":66,"end_line":151,"end_character":73},"in_reply_to":"fa7ab95a_8373784d","updated":"2016-09-02 11:43:48.000000000","message":"Done","commit_id":"645d1df0b27a5961aa37a3b584ac83e00e76b51f"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"ff84ac02ab8ea27fbb9f7505737a1604dc988e76","unresolved":false,"context_lines":[{"line_number":204,"context_line":"restarting the :ref:`Watcher Decision Engine"},{"line_number":205,"context_line":"\u003cwatcher_decision_engine_definition\u003e`."},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"In addition, ``watcher-sync`` tool can be used to trigged `Watcher Database"},{"line_number":208,"context_line":"\u003cwatcher_database_definition\u003e` synchronization. This might be used for"},{"line_number":209,"context_line":"\"dynamic\" scoring containers, which can return different scoring engines"},{"line_number":210,"context_line":"based on some external configuration (if they support that)."}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa7ab95a_88e2b79e","line":207,"range":{"start_line":207,"start_character":50,"end_line":207,"end_character":57},"updated":"2016-09-02 10:16:51.000000000","message":"s/trigged/trigger","commit_id":"645d1df0b27a5961aa37a3b584ac83e00e76b51f"},{"author":{"_account_id":20515,"name":"Tomasz Kaczynski","email":"tomasz.kaczynski@intel.com","username":"tkaczynski"},"change_message_id":"7a36abf1b27ea596ab4eeda165d13c87030bd2d0","unresolved":false,"context_lines":[{"line_number":204,"context_line":"restarting the :ref:`Watcher Decision Engine"},{"line_number":205,"context_line":"\u003cwatcher_decision_engine_definition\u003e`."},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"In addition, ``watcher-sync`` tool can be used to trigged `Watcher Database"},{"line_number":208,"context_line":"\u003cwatcher_database_definition\u003e` synchronization. This might be used for"},{"line_number":209,"context_line":"\"dynamic\" scoring containers, which can return different scoring engines"},{"line_number":210,"context_line":"based on some external configuration (if they support that)."}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa7ab95a_69d8121f","line":207,"range":{"start_line":207,"start_character":50,"end_line":207,"end_character":57},"in_reply_to":"fa7ab95a_88e2b79e","updated":"2016-09-02 11:43:48.000000000","message":"Done","commit_id":"645d1df0b27a5961aa37a3b584ac83e00e76b51f"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"633956dc5df999f4059db9e42d39c4f0fb887704","unresolved":false,"context_lines":[{"line_number":99,"context_line":"Database \u003cwatcher_database_definition\u003e` using the ``watcher-sync`` command line"},{"line_number":100,"context_line":"tool."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Below is a sample implementation using some scoring engine implementation being"},{"line_number":103,"context_line":"simply a client to a real scoring engine deployed as a web service on some"},{"line_number":104,"context_line":"external servers:"},{"line_number":105,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a89bdaa_c15d947a","line":102,"range":{"start_line":102,"start_character":11,"end_line":102,"end_character":32},"updated":"2016-09-07 07:35:16.000000000","message":"did you mean \"simple implementation\" or \"implementation sample\" ?","commit_id":"d51283a6fd49a80574548412f1945d16dd4d8f7a"},{"author":{"_account_id":20515,"name":"Tomasz Kaczynski","email":"tomasz.kaczynski@intel.com","username":"tkaczynski"},"change_message_id":"195fbb1d891148225f3bfd7331d6f110d58989a4","unresolved":false,"context_lines":[{"line_number":99,"context_line":"Database \u003cwatcher_database_definition\u003e` using the ``watcher-sync`` command line"},{"line_number":100,"context_line":"tool."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Below is a sample implementation using some scoring engine implementation being"},{"line_number":103,"context_line":"simply a client to a real scoring engine deployed as a web service on some"},{"line_number":104,"context_line":"external servers:"},{"line_number":105,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a89bdaa_6a1add7e","line":102,"range":{"start_line":102,"start_character":11,"end_line":102,"end_character":32},"in_reply_to":"9a89bdaa_c15d947a","updated":"2016-09-07 08:26:00.000000000","message":"Rephrased the whole paragraph, hope it\u0027s clearer now :)","commit_id":"d51283a6fd49a80574548412f1945d16dd4d8f7a"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"633956dc5df999f4059db9e42d39c4f0fb887704","unresolved":false,"context_lines":[{"line_number":99,"context_line":"Database \u003cwatcher_database_definition\u003e` using the ``watcher-sync`` command line"},{"line_number":100,"context_line":"tool."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Below is a sample implementation using some scoring engine implementation being"},{"line_number":103,"context_line":"simply a client to a real scoring engine deployed as a web service on some"},{"line_number":104,"context_line":"external servers:"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":".. code-block:: python"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a89bdaa_01777cd3","line":103,"range":{"start_line":102,"start_character":74,"end_line":103,"end_character":20},"updated":"2016-09-07 07:35:16.000000000","message":"How about rephrasing this as:\n\nthat is simply made of a client responsible for communicating with a [...]","commit_id":"d51283a6fd49a80574548412f1945d16dd4d8f7a"},{"author":{"_account_id":20515,"name":"Tomasz Kaczynski","email":"tomasz.kaczynski@intel.com","username":"tkaczynski"},"change_message_id":"195fbb1d891148225f3bfd7331d6f110d58989a4","unresolved":false,"context_lines":[{"line_number":99,"context_line":"Database \u003cwatcher_database_definition\u003e` using the ``watcher-sync`` command line"},{"line_number":100,"context_line":"tool."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Below is a sample implementation using some scoring engine implementation being"},{"line_number":103,"context_line":"simply a client to a real scoring engine deployed as a web service on some"},{"line_number":104,"context_line":"external servers:"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":".. code-block:: python"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a89bdaa_aa10655a","line":103,"range":{"start_line":102,"start_character":74,"end_line":103,"end_character":20},"in_reply_to":"9a89bdaa_01777cd3","updated":"2016-09-07 08:26:00.000000000","message":"Done","commit_id":"d51283a6fd49a80574548412f1945d16dd4d8f7a"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"633956dc5df999f4059db9e42d39c4f0fb887704","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"To get a better understanding on how to implement a more advanced scoring"},{"line_number":170,"context_line":"engine, have a look at the :py:class:`~.DummyScorer` class. This implementation"},{"line_number":171,"context_line":"is not really using machine learning, but other that that it contains all the"},{"line_number":172,"context_line":"pieces which the \"real\" implementation would have."},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"In addition, for some use cases there is a need to register a list (possibly"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a89bdaa_4102640c","line":171,"range":{"start_line":171,"start_character":48,"end_line":171,"end_character":52},"updated":"2016-09-07 07:35:16.000000000","message":"s/that/than","commit_id":"d51283a6fd49a80574548412f1945d16dd4d8f7a"},{"author":{"_account_id":20515,"name":"Tomasz Kaczynski","email":"tomasz.kaczynski@intel.com","username":"tkaczynski"},"change_message_id":"195fbb1d891148225f3bfd7331d6f110d58989a4","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"To get a better understanding on how to implement a more advanced scoring"},{"line_number":170,"context_line":"engine, have a look at the :py:class:`~.DummyScorer` class. This implementation"},{"line_number":171,"context_line":"is not really using machine learning, but other that that it contains all the"},{"line_number":172,"context_line":"pieces which the \"real\" implementation would have."},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"In addition, for some use cases there is a need to register a list (possibly"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a89bdaa_ca15a949","line":171,"range":{"start_line":171,"start_character":48,"end_line":171,"end_character":52},"in_reply_to":"9a89bdaa_4102640c","updated":"2016-09-07 08:26:00.000000000","message":"Done","commit_id":"d51283a6fd49a80574548412f1945d16dd4d8f7a"},{"author":{"_account_id":11750,"name":"Antoine Cabot","email":"antoine.cabot@b-com.com","username":"antoinecabot"},"change_message_id":"0be699f013daa5b8d424400fee70a9b79772c13b","unresolved":false,"context_lines":[{"line_number":173,"context_line":""},{"line_number":174,"context_line":"In addition, for some use cases there is a need to register a list (possibly"},{"line_number":175,"context_line":"dynamic, depending on the implementation and configuration) of scoring engines"},{"line_number":176,"context_line":"in a single plugin, so there is no need to restart `Watcher Decision Engine"},{"line_number":177,"context_line":"\u003cwatcher_decision_engine_definition\u003e` every time such list changes. For these"},{"line_number":178,"context_line":"cases, an additional ``watcher_scoring_engine_containers`` entry point can be"},{"line_number":179,"context_line":"used."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a89bdaa_81546cff","line":176,"updated":"2016-09-07 07:15:50.000000000","message":"missing \":ref:\"","commit_id":"d51283a6fd49a80574548412f1945d16dd4d8f7a"},{"author":{"_account_id":20515,"name":"Tomasz Kaczynski","email":"tomasz.kaczynski@intel.com","username":"tkaczynski"},"change_message_id":"195fbb1d891148225f3bfd7331d6f110d58989a4","unresolved":false,"context_lines":[{"line_number":173,"context_line":""},{"line_number":174,"context_line":"In addition, for some use cases there is a need to register a list (possibly"},{"line_number":175,"context_line":"dynamic, depending on the implementation and configuration) of scoring engines"},{"line_number":176,"context_line":"in a single plugin, so there is no need to restart `Watcher Decision Engine"},{"line_number":177,"context_line":"\u003cwatcher_decision_engine_definition\u003e` every time such list changes. For these"},{"line_number":178,"context_line":"cases, an additional ``watcher_scoring_engine_containers`` entry point can be"},{"line_number":179,"context_line":"used."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a89bdaa_0a0cf13f","line":176,"in_reply_to":"9a89bdaa_81546cff","updated":"2016-09-07 08:26:00.000000000","message":"Done","commit_id":"d51283a6fd49a80574548412f1945d16dd4d8f7a"},{"author":{"_account_id":11750,"name":"Antoine Cabot","email":"antoine.cabot@b-com.com","username":"antoinecabot"},"change_message_id":"0be699f013daa5b8d424400fee70a9b79772c13b","unresolved":false,"context_lines":[{"line_number":200,"context_line":"make that plugin available for use."},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"At this point, Watcher will scan and register inside the :ref:`Watcher Database"},{"line_number":203,"context_line":"\u003cwatcher_database_definition\u003e` all the coring engines you implemented upon"},{"line_number":204,"context_line":"restarting the :ref:`Watcher Decision Engine"},{"line_number":205,"context_line":"\u003cwatcher_decision_engine_definition\u003e`."},{"line_number":206,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a89bdaa_01af7ce2","line":203,"range":{"start_line":203,"start_character":39,"end_line":203,"end_character":46},"updated":"2016-09-07 07:15:50.000000000","message":"s/coring/scoring","commit_id":"d51283a6fd49a80574548412f1945d16dd4d8f7a"},{"author":{"_account_id":20515,"name":"Tomasz Kaczynski","email":"tomasz.kaczynski@intel.com","username":"tkaczynski"},"change_message_id":"195fbb1d891148225f3bfd7331d6f110d58989a4","unresolved":false,"context_lines":[{"line_number":200,"context_line":"make that plugin available for use."},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"At this point, Watcher will scan and register inside the :ref:`Watcher Database"},{"line_number":203,"context_line":"\u003cwatcher_database_definition\u003e` all the coring engines you implemented upon"},{"line_number":204,"context_line":"restarting the :ref:`Watcher Decision Engine"},{"line_number":205,"context_line":"\u003cwatcher_decision_engine_definition\u003e`."},{"line_number":206,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a89bdaa_2a053513","line":203,"range":{"start_line":203,"start_character":39,"end_line":203,"end_character":46},"in_reply_to":"9a89bdaa_01af7ce2","updated":"2016-09-07 08:26:00.000000000","message":"Done","commit_id":"d51283a6fd49a80574548412f1945d16dd4d8f7a"},{"author":{"_account_id":11750,"name":"Antoine Cabot","email":"antoine.cabot@b-com.com","username":"antoinecabot"},"change_message_id":"0be699f013daa5b8d424400fee70a9b79772c13b","unresolved":false,"context_lines":[{"line_number":204,"context_line":"restarting the :ref:`Watcher Decision Engine"},{"line_number":205,"context_line":"\u003cwatcher_decision_engine_definition\u003e`."},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"In addition, ``watcher-sync`` tool can be used to trigger `Watcher Database"},{"line_number":208,"context_line":"\u003cwatcher_database_definition\u003e` synchronization. This might be used for"},{"line_number":209,"context_line":"\"dynamic\" scoring containers, which can return different scoring engines"},{"line_number":210,"context_line":"based on some external configuration (if they support that)."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a89bdaa_817b8c8b","line":207,"updated":"2016-09-07 07:15:50.000000000","message":"missing \":ref:\"","commit_id":"d51283a6fd49a80574548412f1945d16dd4d8f7a"},{"author":{"_account_id":20515,"name":"Tomasz Kaczynski","email":"tomasz.kaczynski@intel.com","username":"tkaczynski"},"change_message_id":"195fbb1d891148225f3bfd7331d6f110d58989a4","unresolved":false,"context_lines":[{"line_number":204,"context_line":"restarting the :ref:`Watcher Decision Engine"},{"line_number":205,"context_line":"\u003cwatcher_decision_engine_definition\u003e`."},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"In addition, ``watcher-sync`` tool can be used to trigger `Watcher Database"},{"line_number":208,"context_line":"\u003cwatcher_database_definition\u003e` synchronization. This might be used for"},{"line_number":209,"context_line":"\"dynamic\" scoring containers, which can return different scoring engines"},{"line_number":210,"context_line":"based on some external configuration (if they support that)."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a89bdaa_4a02790c","line":207,"in_reply_to":"9a89bdaa_817b8c8b","updated":"2016-09-07 08:26:00.000000000","message":"Done","commit_id":"d51283a6fd49a80574548412f1945d16dd4d8f7a"}],"watcher/decision_engine/scoring/dummy_scorer.py":[{"author":{"_account_id":11750,"name":"Antoine Cabot","email":"antoine.cabot@b-com.com","username":"antoinecabot"},"change_message_id":"0be699f013daa5b8d424400fee70a9b79772c13b","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    Typically a scoring engine would be implemented using machine learning"},{"line_number":33,"context_line":"    techniques. For example, for workload classification problem the solution"},{"line_number":34,"context_line":"    could consist of the following steps:"},{"line_number":35,"context_line":"    1. Define a problem to solve: we want to detect the workload on the"},{"line_number":36,"context_line":"       machine based on the collected metrics like power consumption,"},{"line_number":37,"context_line":"       temperature, CPU load, memory usage, disk usage, network usage, etc."}],"source_content_type":"text/x-python","patch_set":2,"id":"9a89bdaa_fde31aa2","line":34,"updated":"2016-09-07 07:15:50.000000000","message":"you should add an empty line here for a better HTML rendering","commit_id":"d51283a6fd49a80574548412f1945d16dd4d8f7a"},{"author":{"_account_id":20515,"name":"Tomasz Kaczynski","email":"tomasz.kaczynski@intel.com","username":"tkaczynski"},"change_message_id":"195fbb1d891148225f3bfd7331d6f110d58989a4","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    Typically a scoring engine would be implemented using machine learning"},{"line_number":33,"context_line":"    techniques. For example, for workload classification problem the solution"},{"line_number":34,"context_line":"    could consist of the following steps:"},{"line_number":35,"context_line":"    1. Define a problem to solve: we want to detect the workload on the"},{"line_number":36,"context_line":"       machine based on the collected metrics like power consumption,"},{"line_number":37,"context_line":"       temperature, CPU load, memory usage, disk usage, network usage, etc."}],"source_content_type":"text/x-python","patch_set":2,"id":"9a89bdaa_b52366a6","line":34,"in_reply_to":"9a89bdaa_fde31aa2","updated":"2016-09-07 08:26:00.000000000","message":"Done","commit_id":"d51283a6fd49a80574548412f1945d16dd4d8f7a"}]}
