)]}'
{"specs/ocata/approved/workload-characterization-grammar.rst":[{"author":{"_account_id":11750,"name":"Antoine Cabot","email":"antoine.cabot@b-com.com","username":"antoinecabot"},"change_message_id":"97ac560152a6bd910ad5df22615efb12edf73928","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Use Cases"},{"line_number":33,"context_line":"---------"},{"line_number":34,"context_line":"When applications are deployed in cloud, they compete for"},{"line_number":35,"context_line":"resources and it becomes a challenge for \"cloud operators to"},{"line_number":36,"context_line":"ensure\" and \"tenants to get\" desired performance and quality of"},{"line_number":37,"context_line":"service (QoS) for the workloads."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"The use case is to define a workload characteristic grammar so"},{"line_number":40,"context_line":"that it can be used for workload profiling etc. Audit and"},{"line_number":41,"context_line":"Strategies can use such grammars for workload optimization and"},{"line_number":42,"context_line":"QoS"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Also, from a cloud infrastructure standpoint, these workload"},{"line_number":45,"context_line":"characteristrics can also be used to gauge SLAs and decisions"},{"line_number":46,"context_line":"for killing or rebalancing workloads elsewhere."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Project Priority"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa6399be_f72d29fe","line":46,"range":{"start_line":34,"start_character":0,"end_line":46,"end_character":47},"updated":"2016-10-19 09:57:46.000000000","message":"could you please move all this text in problem description section ?\nIn use cases section, please use sentences like \"As an administrator, I want to be able to characterize my workloads to be able to...\"","commit_id":"8f412556829c1efb37f8b8194f056dc1b86f929d"},{"author":{"_account_id":9392,"name":"Prashanth Hari","email":"hvprash@gmail.com","username":"hvprash"},"change_message_id":"108795432081069a3b1445ef7a2b6307d114ccc2","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Use Cases"},{"line_number":33,"context_line":"---------"},{"line_number":34,"context_line":"When applications are deployed in cloud, they compete for"},{"line_number":35,"context_line":"resources and it becomes a challenge for \"cloud operators to"},{"line_number":36,"context_line":"ensure\" and \"tenants to get\" desired performance and quality of"},{"line_number":37,"context_line":"service (QoS) for the workloads."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"The use case is to define a workload characteristic grammar so"},{"line_number":40,"context_line":"that it can be used for workload profiling etc. Audit and"},{"line_number":41,"context_line":"Strategies can use such grammars for workload optimization and"},{"line_number":42,"context_line":"QoS"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Also, from a cloud infrastructure standpoint, these workload"},{"line_number":45,"context_line":"characteristrics can also be used to gauge SLAs and decisions"},{"line_number":46,"context_line":"for killing or rebalancing workloads elsewhere."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Project Priority"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da6895a0_6258cc57","line":46,"range":{"start_line":34,"start_character":0,"end_line":46,"end_character":47},"in_reply_to":"fa6399be_f72d29fe","updated":"2016-10-20 20:15:13.000000000","message":"Done","commit_id":"8f412556829c1efb37f8b8194f056dc1b86f929d"},{"author":{"_account_id":11750,"name":"Antoine Cabot","email":"antoine.cabot@b-com.com","username":"antoinecabot"},"change_message_id":"97ac560152a6bd910ad5df22615efb12edf73928","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Example of a performance unit:"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"* CPU \u003d 2 Cores"},{"line_number":71,"context_line":"* Latency \u003c 2 ms"},{"line_number":72,"context_line":"* IOPs \u003e 250"},{"line_number":73,"context_line":"* IOPs \u003c 500"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa6399be_17e8dd7b","line":70,"range":{"start_line":70,"start_character":8,"end_line":70,"end_character":15},"updated":"2016-10-19 09:57:46.000000000","message":"shouldn\u0027t we use a cpu utilization rate instead of a number of vCPU ?","commit_id":"8f412556829c1efb37f8b8194f056dc1b86f929d"},{"author":{"_account_id":9392,"name":"Prashanth Hari","email":"hvprash@gmail.com","username":"hvprash"},"change_message_id":"108795432081069a3b1445ef7a2b6307d114ccc2","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Example of a performance unit:"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"* CPU \u003d 2 Cores"},{"line_number":71,"context_line":"* Latency \u003c 2 ms"},{"line_number":72,"context_line":"* IOPs \u003e 250"},{"line_number":73,"context_line":"* IOPs \u003c 500"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da6895a0_cd03890c","line":70,"range":{"start_line":70,"start_character":8,"end_line":70,"end_character":15},"in_reply_to":"fa6399be_17e8dd7b","updated":"2016-10-20 20:15:13.000000000","message":"Yes ! In fact, we could use either/both static resources and expected utilization rates.","commit_id":"8f412556829c1efb37f8b8194f056dc1b86f929d"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"8caff778ded27ee8c6de491bfafa2605fe8ac740","unresolved":false,"context_lines":[{"line_number":136,"context_line":"**Parse and validate workload grammar**"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"Use `JsonLogic`_  module to parse a JSON serialized workload"},{"line_number":140,"context_line":"grammar and validate it by applying values from telemetry"},{"line_number":141,"context_line":"or other metrics."},{"line_number":142,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"ba5da102_0ded818b","line":139,"updated":"2016-10-26 10:50:21.000000000","message":"This library is not part of OpenStack\u0027s global requirements project(see https://github.com/openstack/requirements/blob/master/global-requirements.txt), which means that we should probably make them add it as part of the implementation of this blueprint","commit_id":"40e3d6e8469e00e672df3622e3f943c34e664fa2"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"80191fcebe100c81d235c16e41f9b1e9ce6820b3","unresolved":false,"context_lines":[{"line_number":167,"context_line":""},{"line_number":168,"context_line":"Workbench to test a grammar: http://jsonlogic.com/play.html"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"The grammar should be persisted in DB for `Audit`_  to refer."},{"line_number":171,"context_line":""},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":12,"id":"ba5da102_278984cb","line":170,"updated":"2016-10-26 09:45:48.000000000","message":"Could you please be more specific on how you plan on storing the data for each VM and how you also plan on querying them later on at the strategy level. Is it going to be pulled into the Cluster data model or is it going to be queried straight away withing the strategy?","commit_id":"40e3d6e8469e00e672df3622e3f943c34e664fa2"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"80191fcebe100c81d235c16e41f9b1e9ce6820b3","unresolved":false,"context_lines":[{"line_number":208,"context_line":"  | goal_id           | int(11)     | NO   | MUL | NULL    |                |"},{"line_number":209,"context_line":"  | strategy_id       | int(11)     | YES  | MUL | NULL    |                |"},{"line_number":210,"context_line":"  | host_aggregate    | int(11)     | YES  |     | NULL    |                |"},{"line_number":211,"context_line":"  | grammar_id        | int(11)     | YES  |     | NULL    |                |"},{"line_number":212,"context_line":"  +-------------------+-------------+------+-----+---------+----------------+"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"ba5da102_c7c0c8e3","line":211,"updated":"2016-10-26 09:45:48.000000000","message":"IMHO, this is something that should be applied at the VM level. Therefore, that would be too global to actually set it at the audit level.","commit_id":"40e3d6e8469e00e672df3622e3f943c34e664fa2"},{"author":{"_account_id":6437,"name":"Susanne Balle","email":"sleipnir012@gmail.com","username":"susanne-balle"},"change_message_id":"6b66901ba0dc6fd429814808e39a3bcacb2c26b8","unresolved":false,"context_lines":[{"line_number":61,"context_line":"A workload character will constitute one or more Performance"},{"line_number":62,"context_line":"Units."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"A Performance Unit will have a resource name (Example - vcpus,"},{"line_number":65,"context_line":"cpu_util, memory, memory.usage, disk.device.iops), Value (Number of CPU Cores,"},{"line_number":66,"context_line":"Memory in GB, Number of IOPs), Unit and an Operator (\u003e, \u003c, \u003d)."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Resource name and units should be in compliance with nova"},{"line_number":69,"context_line":"and `ceilometer measurements`_"}],"source_content_type":"text/x-rst","patch_set":15,"id":"7a77a97e_a59fecb2","line":66,"range":{"start_line":64,"start_character":0,"end_line":66,"end_character":62},"updated":"2016-11-16 13:47:34.000000000","message":"we need to add the notion of job priority  so the grammar can extend and be used in case of for example a noisy neighbor situation where the high priority job even though characterized as noisy should continue and the lower priority job moved or killed. I can see us using the meta-data generated by the grammar for more than just job characterization but also to generate he right actions on jobs when we have contention.","commit_id":"31f8c41d2df1a9460ebec2aec34ca6287d2d12fd"},{"author":{"_account_id":9392,"name":"Prashanth Hari","email":"hvprash@gmail.com","username":"hvprash"},"change_message_id":"3f6b87e1227ac277f30914dc219fc9624a7961d4","unresolved":false,"context_lines":[{"line_number":61,"context_line":"A workload character will constitute one or more Performance"},{"line_number":62,"context_line":"Units."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"A Performance Unit will have a resource name (Example - vcpus,"},{"line_number":65,"context_line":"cpu_util, memory, memory.usage, disk.device.iops), Value (Number of CPU Cores,"},{"line_number":66,"context_line":"Memory in GB, Number of IOPs), Unit and an Operator (\u003e, \u003c, \u003d)."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Resource name and units should be in compliance with nova"},{"line_number":69,"context_line":"and `ceilometer measurements`_"}],"source_content_type":"text/x-rst","patch_set":15,"id":"7a77a97e_13c1bf80","line":66,"range":{"start_line":64,"start_character":0,"end_line":66,"end_character":62},"in_reply_to":"7a77a97e_a59fecb2","updated":"2016-11-16 17:09:53.000000000","message":"Done","commit_id":"31f8c41d2df1a9460ebec2aec34ca6287d2d12fd"},{"author":{"_account_id":19483,"name":"Sean Murphy","email":"murp@zhaw.ch","username":"murp"},"change_message_id":"a6fa8d1ffa11aa7e160f1cf67a52f2df4e369498","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Define grammar for workload characterization"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/watcher/+spec/workload-characterization-grammar"}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a77a97e_e24dab9a","line":8,"range":{"start_line":8,"start_character":0,"end_line":8,"end_character":44},"updated":"2016-11-21 13:32:29.000000000","message":"Workload characterization is a little unclear to me - is this somehow a mechanism to define composite metrics for VMs, define operating environments for specific VMs or intrinsic properties of the workload?","commit_id":"7df13708c94bf06a9cfb4ae6be9d132144d8c3a5"},{"author":{"_account_id":9392,"name":"Prashanth Hari","email":"hvprash@gmail.com","username":"hvprash"},"change_message_id":"2d19ee4a8608282820899f5da3da03354e9b95df","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Define grammar for workload characterization"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/watcher/+spec/workload-characterization-grammar"}],"source_content_type":"text/x-rst","patch_set":19,"id":"3a71b18c_e673f54b","line":8,"range":{"start_line":8,"start_character":0,"end_line":8,"end_character":44},"in_reply_to":"7a77a97e_e24dab9a","updated":"2016-12-01 16:13:43.000000000","message":"There are two perspective to this - 1. We characterize the workloads to measure the SLA and 2. We define characterize the workloads for performing optimization and QoS. Think as  a declarative way to place the workloads. Specify the maximum resources required to run the job. You may also refer other solutions like https://www.nomadproject.io/docs/job-specification/index.html","commit_id":"7df13708c94bf06a9cfb4ae6be9d132144d8c3a5"},{"author":{"_account_id":19483,"name":"Sean Murphy","email":"murp@zhaw.ch","username":"murp"},"change_message_id":"a6fa8d1ffa11aa7e160f1cf67a52f2df4e369498","unresolved":false,"context_lines":[{"line_number":18,"context_line":"ensure\" and \"tenants to get\" desired performance and quality of"},{"line_number":19,"context_line":"service (QoS) for the workloads."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"When we run several workloads in cloud, we need to characterize"},{"line_number":22,"context_line":"these workloads as input to watcher for profiling, fingerprinting,"},{"line_number":23,"context_line":"application QoS, placements and consolidation. `Audit`_ can use refer these"},{"line_number":24,"context_line":"grammars and implement QoS `Strategy`_"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a77a97e_822eb7a3","line":22,"range":{"start_line":21,"start_character":51,"end_line":22,"end_character":15},"updated":"2016-11-21 13:32:29.000000000","message":"It\u0027s not clear if this is really more related to define what the VMs require from the cloud infra - the minimum acceptable operating environment?","commit_id":"7df13708c94bf06a9cfb4ae6be9d132144d8c3a5"},{"author":{"_account_id":9392,"name":"Prashanth Hari","email":"hvprash@gmail.com","username":"hvprash"},"change_message_id":"2d19ee4a8608282820899f5da3da03354e9b95df","unresolved":false,"context_lines":[{"line_number":18,"context_line":"ensure\" and \"tenants to get\" desired performance and quality of"},{"line_number":19,"context_line":"service (QoS) for the workloads."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"When we run several workloads in cloud, we need to characterize"},{"line_number":22,"context_line":"these workloads as input to watcher for profiling, fingerprinting,"},{"line_number":23,"context_line":"application QoS, placements and consolidation. `Audit`_ can use refer these"},{"line_number":24,"context_line":"grammars and implement QoS `Strategy`_"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"3a71b18c_669e0558","line":22,"range":{"start_line":21,"start_character":51,"end_line":22,"end_character":15},"in_reply_to":"7a77a97e_822eb7a3","updated":"2016-12-01 16:13:43.000000000","message":"Yes. What is required to \"optimally\" run the workload.","commit_id":"7df13708c94bf06a9cfb4ae6be9d132144d8c3a5"},{"author":{"_account_id":22775,"name":"Prudhvi Rao Shedimbi","email":"prudhvi.rao.shedimbi@intel.com","username":"pshedimb"},"change_message_id":"ff3485e653134881ebedc22ec2e80bb4bc4d6b6a","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"When we run several workloads in cloud, we need to characterize"},{"line_number":22,"context_line":"these workloads as input to watcher for profiling, fingerprinting,"},{"line_number":23,"context_line":"application QoS, placements and consolidation. `Audit`_ can use refer these"},{"line_number":24,"context_line":"grammars and implement QoS `Strategy`_"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Also, from a cloud infrastructure standpoint, these workload"}],"source_content_type":"text/x-rst","patch_set":19,"id":"1a430d35_299018ec","line":23,"range":{"start_line":23,"start_character":56,"end_line":23,"end_character":75},"updated":"2017-02-06 18:05:17.000000000","message":"Did you mean \"Audit can refer these grammars and implement QoS strategy\" ?","commit_id":"7df13708c94bf06a9cfb4ae6be9d132144d8c3a5"},{"author":{"_account_id":19483,"name":"Sean Murphy","email":"murp@zhaw.ch","username":"murp"},"change_message_id":"a6fa8d1ffa11aa7e160f1cf67a52f2df4e369498","unresolved":false,"context_lines":[{"line_number":27,"context_line":"characteristrics can also be used to gauge SLAs and decisions"},{"line_number":28,"context_line":"for killing or rebalancing workloads elsewhere."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"An example of workload characterization is a weighted"},{"line_number":31,"context_line":"combination of CPU, Memory or any other resource attributes"},{"line_number":32,"context_line":"like High IOPs, Network latency etc."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Scope of this blueprint is -"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a77a97e_246df0cc","line":32,"range":{"start_line":30,"start_character":0,"end_line":32,"end_character":36},"updated":"2016-11-21 13:32:29.000000000","message":"This is insufficient imo. Workload can be more general than a single VM - I think this point should be addressed here. Perhaps indicating that in the initial implementation, workload characterization will be limited to a single VM, but in future this will be generalized.","commit_id":"7df13708c94bf06a9cfb4ae6be9d132144d8c3a5"},{"author":{"_account_id":9392,"name":"Prashanth Hari","email":"hvprash@gmail.com","username":"hvprash"},"change_message_id":"2d19ee4a8608282820899f5da3da03354e9b95df","unresolved":false,"context_lines":[{"line_number":27,"context_line":"characteristrics can also be used to gauge SLAs and decisions"},{"line_number":28,"context_line":"for killing or rebalancing workloads elsewhere."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"An example of workload characterization is a weighted"},{"line_number":31,"context_line":"combination of CPU, Memory or any other resource attributes"},{"line_number":32,"context_line":"like High IOPs, Network latency etc."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Scope of this blueprint is -"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"3a71b18c_6611a5ac","line":32,"range":{"start_line":30,"start_character":0,"end_line":32,"end_character":36},"in_reply_to":"7a77a97e_246df0cc","updated":"2016-12-01 16:13:43.000000000","message":"Do you mean a VM dependent on other VMs ?","commit_id":"7df13708c94bf06a9cfb4ae6be9d132144d8c3a5"},{"author":{"_account_id":19483,"name":"Sean Murphy","email":"murp@zhaw.ch","username":"murp"},"change_message_id":"a6fa8d1ffa11aa7e160f1cf67a52f2df4e369498","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Scope of this blueprint is -"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"* A grammar for defining workload character"},{"line_number":37,"context_line":"* Logic to parse a grammar"},{"line_number":38,"context_line":"* Persisting grammar"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a77a97e_24409007","line":36,"range":{"start_line":36,"start_character":2,"end_line":36,"end_character":43},"updated":"2016-11-21 13:32:29.000000000","message":"A definition of a grammar for characterizing workload specifically targetted at composite metrics for a VM","commit_id":"7df13708c94bf06a9cfb4ae6be9d132144d8c3a5"},{"author":{"_account_id":9392,"name":"Prashanth Hari","email":"hvprash@gmail.com","username":"hvprash"},"change_message_id":"2d19ee4a8608282820899f5da3da03354e9b95df","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Scope of this blueprint is -"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"* A grammar for defining workload character"},{"line_number":37,"context_line":"* Logic to parse a grammar"},{"line_number":38,"context_line":"* Persisting grammar"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"3a71b18c_0679d1fc","line":36,"range":{"start_line":36,"start_character":2,"end_line":36,"end_character":43},"in_reply_to":"7a77a97e_24409007","updated":"2016-12-01 16:13:43.000000000","message":"Agree. Will rephrase it.","commit_id":"7df13708c94bf06a9cfb4ae6be9d132144d8c3a5"},{"author":{"_account_id":19483,"name":"Sean Murphy","email":"murp@zhaw.ch","username":"murp"},"change_message_id":"a6fa8d1ffa11aa7e160f1cf67a52f2df4e369498","unresolved":false,"context_lines":[{"line_number":34,"context_line":"Scope of this blueprint is -"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"* A grammar for defining workload character"},{"line_number":37,"context_line":"* Logic to parse a grammar"},{"line_number":38,"context_line":"* Persisting grammar"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a77a97e_6471a877","line":37,"range":{"start_line":37,"start_character":0,"end_line":37,"end_character":26},"updated":"2016-11-21 13:32:29.000000000","message":"A lightweight solution for parsing the defined grammar using the python JSONLogic library.","commit_id":"7df13708c94bf06a9cfb4ae6be9d132144d8c3a5"},{"author":{"_account_id":9392,"name":"Prashanth Hari","email":"hvprash@gmail.com","username":"hvprash"},"change_message_id":"2d19ee4a8608282820899f5da3da03354e9b95df","unresolved":false,"context_lines":[{"line_number":34,"context_line":"Scope of this blueprint is -"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"* A grammar for defining workload character"},{"line_number":37,"context_line":"* Logic to parse a grammar"},{"line_number":38,"context_line":"* Persisting grammar"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"3a71b18c_e674d5fe","line":37,"range":{"start_line":37,"start_character":0,"end_line":37,"end_character":26},"in_reply_to":"7a77a97e_6471a877","updated":"2016-12-01 16:13:43.000000000","message":"Will rephrase it.","commit_id":"7df13708c94bf06a9cfb4ae6be9d132144d8c3a5"},{"author":{"_account_id":19483,"name":"Sean Murphy","email":"murp@zhaw.ch","username":"murp"},"change_message_id":"a6fa8d1ffa11aa7e160f1cf67a52f2df4e369498","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"* A grammar for defining workload character"},{"line_number":37,"context_line":"* Logic to parse a grammar"},{"line_number":38,"context_line":"* Persisting grammar"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a77a97e_84f5e4cc","line":38,"range":{"start_line":38,"start_character":0,"end_line":38,"end_character":20},"updated":"2016-11-21 13:32:29.000000000","message":"A solution for persisting the grammar for VMs leveraging VM metadata.","commit_id":"7df13708c94bf06a9cfb4ae6be9d132144d8c3a5"},{"author":{"_account_id":9392,"name":"Prashanth Hari","email":"hvprash@gmail.com","username":"hvprash"},"change_message_id":"2d19ee4a8608282820899f5da3da03354e9b95df","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"* A grammar for defining workload character"},{"line_number":37,"context_line":"* Logic to parse a grammar"},{"line_number":38,"context_line":"* Persisting grammar"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":19,"id":"3a71b18c_86540155","line":38,"range":{"start_line":38,"start_character":0,"end_line":38,"end_character":20},"in_reply_to":"7a77a97e_84f5e4cc","updated":"2016-12-01 16:13:43.000000000","message":"Will correct it.","commit_id":"7df13708c94bf06a9cfb4ae6be9d132144d8c3a5"},{"author":{"_account_id":19483,"name":"Sean Murphy","email":"murp@zhaw.ch","username":"murp"},"change_message_id":"a6fa8d1ffa11aa7e160f1cf67a52f2df4e369498","unresolved":false,"context_lines":[{"line_number":42,"context_line":"---------"},{"line_number":43,"context_line":"As an administrator or a user, I should be able to create a JSON structured"},{"line_number":44,"context_line":"workload character."},{"line_number":45,"context_line":"As an administrator or a user, I should be able to build an optimization"},{"line_number":46,"context_line":"strategy using the defined workload character grammar."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Project Priority"},{"line_number":49,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a77a97e_04a554b4","line":46,"range":{"start_line":45,"start_character":0,"end_line":46,"end_character":54},"updated":"2016-11-21 13:32:29.000000000","message":"This is not fully addressed here - having a grammar is a prerequisite and that is addressed here; how to use it is not really addressed.","commit_id":"7df13708c94bf06a9cfb4ae6be9d132144d8c3a5"},{"author":{"_account_id":9392,"name":"Prashanth Hari","email":"hvprash@gmail.com","username":"hvprash"},"change_message_id":"2d19ee4a8608282820899f5da3da03354e9b95df","unresolved":false,"context_lines":[{"line_number":42,"context_line":"---------"},{"line_number":43,"context_line":"As an administrator or a user, I should be able to create a JSON structured"},{"line_number":44,"context_line":"workload character."},{"line_number":45,"context_line":"As an administrator or a user, I should be able to build an optimization"},{"line_number":46,"context_line":"strategy using the defined workload character grammar."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Project Priority"},{"line_number":49,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":19,"id":"3a71b18c_2104f713","line":46,"range":{"start_line":45,"start_character":0,"end_line":46,"end_character":54},"in_reply_to":"7a77a97e_04a554b4","updated":"2016-12-01 16:13:43.000000000","message":"Scope of this blueprint is to come up with a structure and library for reading the grammar. How to use it will be part of the strategy which is addressed in https://blueprints.launchpad.net/watcher/+spec/workload-characterization-qos","commit_id":"7df13708c94bf06a9cfb4ae6be9d132144d8c3a5"},{"author":{"_account_id":22775,"name":"Prudhvi Rao Shedimbi","email":"prudhvi.rao.shedimbi@intel.com","username":"pshedimb"},"change_message_id":"ff3485e653134881ebedc22ec2e80bb4bc4d6b6a","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Project Priority"},{"line_number":49,"context_line":"----------------"},{"line_number":50,"context_line":"Ocata-2"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Proposed change"},{"line_number":53,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":19,"id":"1a430d35_a47d0f70","line":50,"range":{"start_line":50,"start_character":0,"end_line":50,"end_character":7},"updated":"2017-02-06 18:05:17.000000000","message":"Need to change to Pike or further","commit_id":"7df13708c94bf06a9cfb4ae6be9d132144d8c3a5"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"7835b86702bc1fb354bace08b4caba1cbeb1f8ce","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Project Priority"},{"line_number":49,"context_line":"----------------"},{"line_number":50,"context_line":"Ocata-2"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Proposed change"},{"line_number":53,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a3c09a3_2a47044c","line":50,"range":{"start_line":50,"start_character":0,"end_line":50,"end_character":7},"updated":"2017-01-17 02:43:50.000000000","message":"expired","commit_id":"7df13708c94bf06a9cfb4ae6be9d132144d8c3a5"},{"author":{"_account_id":11750,"name":"Antoine Cabot","email":"antoine.cabot@b-com.com","username":"antoinecabot"},"change_message_id":"de2e92c7e526ad7f08fe8b9601fdb49e73293446","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Proposed change"},{"line_number":53,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":54,"context_line":"Workload characterization is important for QoS to acheive"},{"line_number":55,"context_line":"performance goals and SLAs. Building optimization strategies or"},{"line_number":56,"context_line":"workload placement based on the defined workload character."},{"line_number":57,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"ba5201f7_c244eeb8","line":54,"range":{"start_line":54,"start_character":50,"end_line":54,"end_character":57},"updated":"2017-01-10 14:52:44.000000000","message":"s/acheive/achieve","commit_id":"7df13708c94bf06a9cfb4ae6be9d132144d8c3a5"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"7835b86702bc1fb354bace08b4caba1cbeb1f8ce","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":"A Performance Unit will have a resource name (Example - vcpus,"},{"line_number":65,"context_line":"cpu_util, memory, memory.usage, disk.device.iops), Value (Number of CPU Cores,"},{"line_number":66,"context_line":"Memory in GB, Number of IOPs), Unit, Weight and an Operator (\u003e, \u003c, \u003d)."},{"line_number":67,"context_line":"Weights can range from -20 to 19 similar to \"nice\". -20 is high priority and"},{"line_number":68,"context_line":"19 being low priority."},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a3c09a3_8aa398ff","line":66,"range":{"start_line":66,"start_character":10,"end_line":66,"end_character":12},"updated":"2017-01-17 02:43:50.000000000","message":"below example the unit is MB","commit_id":"7df13708c94bf06a9cfb4ae6be9d132144d8c3a5"},{"author":{"_account_id":19483,"name":"Sean Murphy","email":"murp@zhaw.ch","username":"murp"},"change_message_id":"a6fa8d1ffa11aa7e160f1cf67a52f2df4e369498","unresolved":false,"context_lines":[{"line_number":61,"context_line":"A workload character will constitute one or more Performance"},{"line_number":62,"context_line":"Units."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"A Performance Unit will have a resource name (Example - vcpus,"},{"line_number":65,"context_line":"cpu_util, memory, memory.usage, disk.device.iops), Value (Number of CPU Cores,"},{"line_number":66,"context_line":"Memory in GB, Number of IOPs), Unit, Weight and an Operator (\u003e, \u003c, \u003d)."},{"line_number":67,"context_line":"Weights can range from -20 to 19 similar to \"nice\". -20 is high priority and"},{"line_number":68,"context_line":"19 being low priority."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Resource name and units should be in compliance with nova"},{"line_number":71,"context_line":"and `ceilometer measurements`_"}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a77a97e_44b4acd0","line":68,"range":{"start_line":64,"start_character":0,"end_line":68,"end_character":22},"updated":"2016-11-21 13:32:29.000000000","message":"I don\u0027t understand this - is it a definition? If so it would be good to give some indicator of what the purpose is, not just what it comprises of.","commit_id":"7df13708c94bf06a9cfb4ae6be9d132144d8c3a5"},{"author":{"_account_id":9392,"name":"Prashanth Hari","email":"hvprash@gmail.com","username":"hvprash"},"change_message_id":"2d19ee4a8608282820899f5da3da03354e9b95df","unresolved":false,"context_lines":[{"line_number":61,"context_line":"A workload character will constitute one or more Performance"},{"line_number":62,"context_line":"Units."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"A Performance Unit will have a resource name (Example - vcpus,"},{"line_number":65,"context_line":"cpu_util, memory, memory.usage, disk.device.iops), Value (Number of CPU Cores,"},{"line_number":66,"context_line":"Memory in GB, Number of IOPs), Unit, Weight and an Operator (\u003e, \u003c, \u003d)."},{"line_number":67,"context_line":"Weights can range from -20 to 19 similar to \"nice\". -20 is high priority and"},{"line_number":68,"context_line":"19 being low priority."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Resource name and units should be in compliance with nova"},{"line_number":71,"context_line":"and `ceilometer measurements`_"}],"source_content_type":"text/x-rst","patch_set":19,"id":"3a71b18c_61e26f05","line":68,"range":{"start_line":64,"start_character":0,"end_line":68,"end_character":22},"in_reply_to":"7a77a97e_44b4acd0","updated":"2016-12-01 16:13:43.000000000","message":"Sorry, I didn\u0027t really understand this comment. Yes, this is a definition of resources and its threshold to optimally run the workload.","commit_id":"7df13708c94bf06a9cfb4ae6be9d132144d8c3a5"},{"author":{"_account_id":19483,"name":"Sean Murphy","email":"murp@zhaw.ch","username":"murp"},"change_message_id":"a6fa8d1ffa11aa7e160f1cf67a52f2df4e369498","unresolved":false,"context_lines":[{"line_number":67,"context_line":"Weights can range from -20 to 19 similar to \"nice\". -20 is high priority and"},{"line_number":68,"context_line":"19 being low priority."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Resource name and units should be in compliance with nova"},{"line_number":71,"context_line":"and `ceilometer measurements`_"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"Example of a performance unit:"}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a77a97e_6401a839","line":71,"range":{"start_line":70,"start_character":0,"end_line":71,"end_character":30},"updated":"2016-11-21 13:32:29.000000000","message":"We mention telemetry below; there is also the issue that ceilometer is somehow being decommission afaik. We probably need to quality this - it does not preclude use with other metric collection frameworks eg Monasca (or Prometheus?)","commit_id":"7df13708c94bf06a9cfb4ae6be9d132144d8c3a5"},{"author":{"_account_id":9392,"name":"Prashanth Hari","email":"hvprash@gmail.com","username":"hvprash"},"change_message_id":"2d19ee4a8608282820899f5da3da03354e9b95df","unresolved":false,"context_lines":[{"line_number":67,"context_line":"Weights can range from -20 to 19 similar to \"nice\". -20 is high priority and"},{"line_number":68,"context_line":"19 being low priority."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Resource name and units should be in compliance with nova"},{"line_number":71,"context_line":"and `ceilometer measurements`_"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"Example of a performance unit:"}],"source_content_type":"text/x-rst","patch_set":19,"id":"3a71b18c_a192c755","line":71,"range":{"start_line":70,"start_character":0,"end_line":71,"end_character":30},"in_reply_to":"7a77a97e_6401a839","updated":"2016-12-01 16:13:43.000000000","message":"Good Point. Will correct this.","commit_id":"7df13708c94bf06a9cfb4ae6be9d132144d8c3a5"},{"author":{"_account_id":19483,"name":"Sean Murphy","email":"murp@zhaw.ch","username":"murp"},"change_message_id":"a6fa8d1ffa11aa7e160f1cf67a52f2df4e369498","unresolved":false,"context_lines":[{"line_number":74,"context_line":"Example of a performance unit:"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"* vcpus \u003d 2 Cores"},{"line_number":77,"context_line":"* cpu_util \u003e 90 %"},{"line_number":78,"context_line":"* memory.usage \u003e 2000 MB"},{"line_number":79,"context_line":"* disk.device.iops \u003e 1500 counts/s"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"Examples of Workload Characters"}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a77a97e_e4ba1871","line":78,"range":{"start_line":77,"start_character":0,"end_line":78,"end_character":24},"updated":"2016-11-21 13:32:29.000000000","message":"Are these over some timescale?","commit_id":"7df13708c94bf06a9cfb4ae6be9d132144d8c3a5"},{"author":{"_account_id":9392,"name":"Prashanth Hari","email":"hvprash@gmail.com","username":"hvprash"},"change_message_id":"2d19ee4a8608282820899f5da3da03354e9b95df","unresolved":false,"context_lines":[{"line_number":74,"context_line":"Example of a performance unit:"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"* vcpus \u003d 2 Cores"},{"line_number":77,"context_line":"* cpu_util \u003e 90 %"},{"line_number":78,"context_line":"* memory.usage \u003e 2000 MB"},{"line_number":79,"context_line":"* disk.device.iops \u003e 1500 counts/s"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"Examples of Workload Characters"}],"source_content_type":"text/x-rst","patch_set":19,"id":"3a71b18c_0160db34","line":78,"range":{"start_line":77,"start_character":0,"end_line":78,"end_character":24},"in_reply_to":"7a77a97e_e4ba1871","updated":"2016-12-01 16:13:43.000000000","message":"Yes, its be based on timescale. The audit should flag it based on the weights.","commit_id":"7df13708c94bf06a9cfb4ae6be9d132144d8c3a5"},{"author":{"_account_id":13227,"name":"Shaifali Agrawal","email":"agrawalshaifali09@gmail.com","username":"shaifali"},"change_message_id":"5439c86855d4bb6c500627ba1ad15e2c545a1425","unresolved":false,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":" cpu_bound_workload \u003d"},{"line_number":97,"context_line":" {"},{"line_number":98,"context_line":"      \"and\": ["},{"line_number":99,"context_line":"        {"},{"line_number":100,"context_line":"          \"\u003d\u003d\": ["},{"line_number":101,"context_line":"            {"}],"source_content_type":"text/x-rst","patch_set":19,"id":"1a6eadb0_19748766","line":98,"range":{"start_line":98,"start_character":6,"end_line":98,"end_character":11},"updated":"2016-12-14 11:07:06.000000000","message":"As per the example workload characters - `cpu_bound_workload: (vcpus \u003d 2 Cores OR cpu_util \u003e 90)` does this `\"and\"` should be `\"or\"` or it is not the logical and/or and represent something else?","commit_id":"7df13708c94bf06a9cfb4ae6be9d132144d8c3a5"},{"author":{"_account_id":19483,"name":"Sean Murphy","email":"murp@zhaw.ch","username":"murp"},"change_message_id":"a6fa8d1ffa11aa7e160f1cf67a52f2df4e369498","unresolved":false,"context_lines":[{"line_number":120,"context_line":" }"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":""},{"line_number":123,"context_line":" disk_io_workload \u003d"},{"line_number":124,"context_line":" {"},{"line_number":125,"context_line":"      \"and\": ["},{"line_number":126,"context_line":"        {"},{"line_number":127,"context_line":"          \"\u003e\": ["},{"line_number":128,"context_line":"            {"},{"line_number":129,"context_line":"              \"var\": \"disk.device.iops\","},{"line_number":130,"context_line":"              \"unit\": \"count/s\","},{"line_number":131,"context_line":"              \"weight\": 5"},{"line_number":132,"context_line":"            },"},{"line_number":133,"context_line":"            1200"},{"line_number":134,"context_line":"          ]"},{"line_number":135,"context_line":"        }"},{"line_number":136,"context_line":"      ]"},{"line_number":137,"context_line":" }"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"**Parse and validate workload grammar**"},{"line_number":140,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a77a97e_c47d1cb3","line":137,"range":{"start_line":123,"start_character":1,"end_line":137,"end_character":2},"updated":"2016-11-21 13:32:29.000000000","message":"To me this looks a bit strange - do we need the \u0027and\u0027 here - it looks like it is just a single variable.","commit_id":"7df13708c94bf06a9cfb4ae6be9d132144d8c3a5"},{"author":{"_account_id":9392,"name":"Prashanth Hari","email":"hvprash@gmail.com","username":"hvprash"},"change_message_id":"2d19ee4a8608282820899f5da3da03354e9b95df","unresolved":false,"context_lines":[{"line_number":120,"context_line":" }"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":""},{"line_number":123,"context_line":" disk_io_workload \u003d"},{"line_number":124,"context_line":" {"},{"line_number":125,"context_line":"      \"and\": ["},{"line_number":126,"context_line":"        {"},{"line_number":127,"context_line":"          \"\u003e\": ["},{"line_number":128,"context_line":"            {"},{"line_number":129,"context_line":"              \"var\": \"disk.device.iops\","},{"line_number":130,"context_line":"              \"unit\": \"count/s\","},{"line_number":131,"context_line":"              \"weight\": 5"},{"line_number":132,"context_line":"            },"},{"line_number":133,"context_line":"            1200"},{"line_number":134,"context_line":"          ]"},{"line_number":135,"context_line":"        }"},{"line_number":136,"context_line":"      ]"},{"line_number":137,"context_line":" }"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"**Parse and validate workload grammar**"},{"line_number":140,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"3a71b18c_c1aa6319","line":137,"range":{"start_line":123,"start_character":1,"end_line":137,"end_character":2},"in_reply_to":"7a77a97e_c47d1cb3","updated":"2016-12-01 16:13:43.000000000","message":"Agree, we don\u0027t need the \"and\" for single variable. Will correct it.","commit_id":"7df13708c94bf06a9cfb4ae6be9d132144d8c3a5"},{"author":{"_account_id":19483,"name":"Sean Murphy","email":"murp@zhaw.ch","username":"murp"},"change_message_id":"a6fa8d1ffa11aa7e160f1cf67a52f2df4e369498","unresolved":false,"context_lines":[{"line_number":136,"context_line":"      ]"},{"line_number":137,"context_line":" }"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"**Parse and validate workload grammar**"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Use `JsonLogic`_  module to parse a JSON serialized workload"}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a77a97e_a733c2f5","line":139,"range":{"start_line":139,"start_character":12,"end_line":139,"end_character":20},"updated":"2016-11-21 13:32:29.000000000","message":"It is not clear to me how validation works. Could you add a para to indicate how this may work?","commit_id":"7df13708c94bf06a9cfb4ae6be9d132144d8c3a5"},{"author":{"_account_id":9392,"name":"Prashanth Hari","email":"hvprash@gmail.com","username":"hvprash"},"change_message_id":"2d19ee4a8608282820899f5da3da03354e9b95df","unresolved":false,"context_lines":[{"line_number":136,"context_line":"      ]"},{"line_number":137,"context_line":" }"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"**Parse and validate workload grammar**"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Use `JsonLogic`_  module to parse a JSON serialized workload"}],"source_content_type":"text/x-rst","patch_set":19,"id":"3a71b18c_014a9b83","line":139,"range":{"start_line":139,"start_character":12,"end_line":139,"end_character":20},"in_reply_to":"7a77a97e_a733c2f5","updated":"2016-12-01 16:13:43.000000000","message":"Will do.","commit_id":"7df13708c94bf06a9cfb4ae6be9d132144d8c3a5"},{"author":{"_account_id":19483,"name":"Sean Murphy","email":"murp@zhaw.ch","username":"murp"},"change_message_id":"a6fa8d1ffa11aa7e160f1cf67a52f2df4e369498","unresolved":false,"context_lines":[{"line_number":139,"context_line":"**Parse and validate workload grammar**"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Use `JsonLogic`_  module to parse a JSON serialized workload"},{"line_number":143,"context_line":"grammar and validate it by applying values from telemetry"},{"line_number":144,"context_line":"or other metrics."},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Snippet to parse a grammar -"},{"line_number":147,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a77a97e_a4058015","line":144,"range":{"start_line":142,"start_character":0,"end_line":144,"end_character":17},"updated":"2016-11-21 13:32:29.000000000","message":"Do we need to comment on how to work in a non-python context?","commit_id":"7df13708c94bf06a9cfb4ae6be9d132144d8c3a5"},{"author":{"_account_id":9392,"name":"Prashanth Hari","email":"hvprash@gmail.com","username":"hvprash"},"change_message_id":"2d19ee4a8608282820899f5da3da03354e9b95df","unresolved":false,"context_lines":[{"line_number":139,"context_line":"**Parse and validate workload grammar**"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Use `JsonLogic`_  module to parse a JSON serialized workload"},{"line_number":143,"context_line":"grammar and validate it by applying values from telemetry"},{"line_number":144,"context_line":"or other metrics."},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Snippet to parse a grammar -"},{"line_number":147,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"3a71b18c_5c5c7825","line":144,"range":{"start_line":142,"start_character":0,"end_line":144,"end_character":17},"in_reply_to":"7a77a97e_a4058015","updated":"2016-12-01 16:13:43.000000000","message":"There are other non-python implementation of jsonlogic. I can reference the non-python implementation too.","commit_id":"7df13708c94bf06a9cfb4ae6be9d132144d8c3a5"},{"author":{"_account_id":19483,"name":"Sean Murphy","email":"murp@zhaw.ch","username":"murp"},"change_message_id":"a6fa8d1ffa11aa7e160f1cf67a52f2df4e369498","unresolved":false,"context_lines":[{"line_number":176,"context_line":"and make it available in the cluster data model for `Audit`_  and `Strategy`_"},{"line_number":177,"context_line":"to refer."},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"Example to store grammar in VM Metadata -"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"::"},{"line_number":182,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a77a97e_c7b51e32","line":179,"range":{"start_line":179,"start_character":0,"end_line":179,"end_character":41},"updated":"2016-11-21 13:32:29.000000000","message":"What if there is already some useful info in the metadata? Does this perform an overwrite or just an addition of workload character?","commit_id":"7df13708c94bf06a9cfb4ae6be9d132144d8c3a5"},{"author":{"_account_id":9392,"name":"Prashanth Hari","email":"hvprash@gmail.com","username":"hvprash"},"change_message_id":"2d19ee4a8608282820899f5da3da03354e9b95df","unresolved":false,"context_lines":[{"line_number":176,"context_line":"and make it available in the cluster data model for `Audit`_  and `Strategy`_"},{"line_number":177,"context_line":"to refer."},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"Example to store grammar in VM Metadata -"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"::"},{"line_number":182,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"3a71b18c_5c463824","line":179,"range":{"start_line":179,"start_character":0,"end_line":179,"end_character":41},"in_reply_to":"7a77a97e_c7b51e32","updated":"2016-12-01 16:13:43.000000000","message":"The metadata should be watcher specific. We could have a identifiable key in the metadata like \"watcher-workload-grammar\". Again, the workload character is optional to a VM. The cluster data model should store the grammar in memory if found for a VM.","commit_id":"7df13708c94bf06a9cfb4ae6be9d132144d8c3a5"},{"author":{"_account_id":19483,"name":"Sean Murphy","email":"murp@zhaw.ch","username":"murp"},"change_message_id":"a6fa8d1ffa11aa7e160f1cf67a52f2df4e369498","unresolved":false,"context_lines":[{"line_number":209,"context_line":"Data model impact"},{"line_number":210,"context_line":"-----------------"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"No change in Data Model"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a77a97e_0762b6ad","line":212,"range":{"start_line":212,"start_character":3,"end_line":212,"end_character":9},"updated":"2016-11-21 13:32:29.000000000","message":"What abt the points mentioned above regarding audit and strategy - if there are no changes to those parts of watcher, this should note why.","commit_id":"7df13708c94bf06a9cfb4ae6be9d132144d8c3a5"},{"author":{"_account_id":19483,"name":"Sean Murphy","email":"murp@zhaw.ch","username":"murp"},"change_message_id":"a6fa8d1ffa11aa7e160f1cf67a52f2df4e369498","unresolved":false,"context_lines":[{"line_number":261,"context_line":"* `JSONLogic`_ library is not part of OpenStack\u0027s global requirements"},{"line_number":262,"context_line":"   project(see https://git.io/vXSHT), which means that we should probably make"},{"line_number":263,"context_line":"   them add it as part of the implementation of this blueprint"},{"line_number":264,"context_line":"* Modify cluster data model to read VM Metadata and store in memory for"},{"line_number":265,"context_line":"  strategies and audits to refer"},{"line_number":266,"context_line":"* Refactor the code to populate workload grammar from vm_metadata in cluster"},{"line_number":267,"context_line":"  data model"},{"line_number":268,"context_line":"  - Model Root - https://git.io/vXSbA"}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a77a97e_2757b2cb","line":265,"range":{"start_line":264,"start_character":2,"end_line":265,"end_character":32},"updated":"2016-11-21 13:32:29.000000000","message":"This looks like changes to a data model.","commit_id":"7df13708c94bf06a9cfb4ae6be9d132144d8c3a5"},{"author":{"_account_id":9392,"name":"Prashanth Hari","email":"hvprash@gmail.com","username":"hvprash"},"change_message_id":"2d19ee4a8608282820899f5da3da03354e9b95df","unresolved":false,"context_lines":[{"line_number":261,"context_line":"* `JSONLogic`_ library is not part of OpenStack\u0027s global requirements"},{"line_number":262,"context_line":"   project(see https://git.io/vXSHT), which means that we should probably make"},{"line_number":263,"context_line":"   them add it as part of the implementation of this blueprint"},{"line_number":264,"context_line":"* Modify cluster data model to read VM Metadata and store in memory for"},{"line_number":265,"context_line":"  strategies and audits to refer"},{"line_number":266,"context_line":"* Refactor the code to populate workload grammar from vm_metadata in cluster"},{"line_number":267,"context_line":"  data model"},{"line_number":268,"context_line":"  - Model Root - https://git.io/vXSbA"}],"source_content_type":"text/x-rst","patch_set":19,"id":"3a71b18c_dc0088ad","line":265,"range":{"start_line":264,"start_character":2,"end_line":265,"end_character":32},"in_reply_to":"7a77a97e_2757b2cb","updated":"2016-12-01 16:13:43.000000000","message":"You are right. My bad.. I will update the data model impact.","commit_id":"7df13708c94bf06a9cfb4ae6be9d132144d8c3a5"}],"specs/pike/approved/workload-characterization-grammar.rst":[{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"b0dc471e45cb4314a5a6e9ecfb2b9088fb32a7b6","unresolved":false,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Resource name and units should be in compliance with nova,"},{"line_number":74,"context_line":"`ceilometer measurements`_, and Monasca (TBD)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Example of a performance unit:"}],"source_content_type":"text/x-rst","patch_set":20,"id":"ba2be162_733cbce2","line":74,"range":{"start_line":74,"start_character":0,"end_line":74,"end_character":27},"updated":"2017-03-02 14:30:44.000000000","message":"Shouldn\u0027t we instead make them match Gnocchi metrics naming scheme here since Ceilometer API is now deprecated?","commit_id":"c8e3c3d132e8d4f8d7654694c615d68dbfa4f3ca"},{"author":{"_account_id":21361,"name":"Chris Spencer","email":"christopher.m.spencer@intel.com","username":"chrisspencer"},"change_message_id":"6ce7d75d5adf30f0399b433b46fdb6ee9ba90abe","unresolved":false,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Resource name and units should be in compliance with nova,"},{"line_number":74,"context_line":"`ceilometer measurements`_, and Monasca (TBD)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Example of a performance unit:"}],"source_content_type":"text/x-rst","patch_set":20,"id":"ba2be162_d86add80","line":74,"range":{"start_line":74,"start_character":0,"end_line":74,"end_character":27},"in_reply_to":"ba2be162_733cbce2","updated":"2017-03-02 16:21:57.000000000","message":"yes will make this change","commit_id":"c8e3c3d132e8d4f8d7654694c615d68dbfa4f3ca"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"b0dc471e45cb4314a5a6e9ecfb2b9088fb32a7b6","unresolved":false,"context_lines":[{"line_number":165,"context_line":""},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"Here is more examples and documentation -"},{"line_number":168,"context_line":"https://pypi.python.org/pypi/json-logic/0.6.3"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"Workbench to test a grammar: http://jsonlogic.com/play.html"},{"line_number":171,"context_line":""}],"source_content_type":"text/x-rst","patch_set":20,"id":"ba2be162_05c5f759","line":168,"range":{"start_line":168,"start_character":0,"end_line":168,"end_character":45},"updated":"2017-03-02 14:30:44.000000000","message":"The lib is not maintained anymore with the last commit being made on Apr 21, 2016 by its sole contributor so this means it will probably not going to be accepted in the global-requirement project. Thoughts?","commit_id":"c8e3c3d132e8d4f8d7654694c615d68dbfa4f3ca"},{"author":{"_account_id":21361,"name":"Chris Spencer","email":"christopher.m.spencer@intel.com","username":"chrisspencer"},"change_message_id":"6ce7d75d5adf30f0399b433b46fdb6ee9ba90abe","unresolved":false,"context_lines":[{"line_number":165,"context_line":""},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"Here is more examples and documentation -"},{"line_number":168,"context_line":"https://pypi.python.org/pypi/json-logic/0.6.3"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"Workbench to test a grammar: http://jsonlogic.com/play.html"},{"line_number":171,"context_line":""}],"source_content_type":"text/x-rst","patch_set":20,"id":"ba2be162_f85081d6","line":168,"range":{"start_line":168,"start_character":0,"end_line":168,"end_character":45},"in_reply_to":"ba2be162_05c5f759","updated":"2017-03-02 16:21:57.000000000","message":"Agreed.  We talked about this last week at PTG.  I think we will be changing this to TOSCA which already has a lib in global-requirements","commit_id":"c8e3c3d132e8d4f8d7654694c615d68dbfa4f3ca"},{"author":{"_account_id":11750,"name":"Antoine Cabot","email":"antoine.cabot@b-com.com","username":"antoinecabot"},"change_message_id":"a5159ece63bda57fa97adb3c6af9968d949950f9","unresolved":false,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Resource name and units should be in compliance with nova,"},{"line_number":74,"context_line":"`ceilometer measurements`_, `gnocchi metrics`_, and Monasca (TBD)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Example of a performance unit:"}],"source_content_type":"text/x-rst","patch_set":21,"id":"1a1ced50_aa11075f","line":74,"range":{"start_line":74,"start_character":0,"end_line":74,"end_character":26},"updated":"2017-03-22 14:08:26.000000000","message":"IMHO, we should remove any compliance with ceilometer as it\u0027s now deprecated.","commit_id":"10d284d74c1939f6075038a0453a0daf7777c47e"},{"author":{"_account_id":11750,"name":"Antoine Cabot","email":"antoine.cabot@b-com.com","username":"antoinecabot"},"change_message_id":"a5159ece63bda57fa97adb3c6af9968d949950f9","unresolved":false,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Resource name and units should be in compliance with nova,"},{"line_number":74,"context_line":"`ceilometer measurements`_, `gnocchi metrics`_, and Monasca (TBD)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Example of a performance unit:"}],"source_content_type":"text/x-rst","patch_set":21,"id":"1a1ced50_b56de8cd","line":74,"range":{"start_line":74,"start_character":52,"end_line":74,"end_character":59},"updated":"2017-03-22 14:08:26.000000000","message":"can we rely on http://monasca.io/ as a link ?","commit_id":"10d284d74c1939f6075038a0453a0daf7777c47e"},{"author":{"_account_id":21361,"name":"Chris Spencer","email":"christopher.m.spencer@intel.com","username":"chrisspencer"},"change_message_id":"60697cc65a205b4fa466efa2d9f3ea76b8ede707","unresolved":false,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Resource name and units should be in compliance with nova,"},{"line_number":74,"context_line":"`ceilometer measurements`_, `gnocchi metrics`_, and Monasca (TBD)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Example of a performance unit:"}],"source_content_type":"text/x-rst","patch_set":21,"id":"1a1ced50_ece03ffd","line":74,"range":{"start_line":74,"start_character":0,"end_line":74,"end_character":26},"in_reply_to":"1a1ced50_aa11075f","updated":"2017-03-23 16:15:40.000000000","message":"Perhaps the solution here is to not be service specific at all and just say something like: \"Resource name and units should be in compliance with Nova and any strategy supported metric services\".  If we are to mention specific services, I think it behooves us to at least mention all of the pike supported metric services and specifically the names/units determined by those services.  Until we remove ceilometer support entirely from watcher our grammar won’t know what is used as the metrics.  Metric service support will really be enforced by the strategies.  Thoughts?","commit_id":"10d284d74c1939f6075038a0453a0daf7777c47e"},{"author":{"_account_id":11750,"name":"Antoine Cabot","email":"antoine.cabot@b-com.com","username":"antoinecabot"},"change_message_id":"4bf007aa24861e92b2b256ba391397df529b8d22","unresolved":false,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Resource name and units should be in compliance with nova,"},{"line_number":74,"context_line":"`ceilometer measurements`_, `gnocchi metrics`_, and Monasca (TBD)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Example of a performance unit:"}],"source_content_type":"text/x-rst","patch_set":21,"id":"bff0334d_066c9e34","line":74,"range":{"start_line":74,"start_character":0,"end_line":74,"end_character":26},"in_reply_to":"1a1ced50_ece03ffd","updated":"2017-04-05 13:51:35.000000000","message":"I agree with you Chris, we should definitely avoid to be service specific and rely on Nova compliancy.","commit_id":"10d284d74c1939f6075038a0453a0daf7777c47e"}]}
