)]}'
{"doc/source/developer/contributor/profiling.rst":[{"author":{"_account_id":30755,"name":"ali","email":"ali.abdelal@nokia.com","username":"abdelal"},"change_message_id":"7fcbe8050bb1445cf544cb1a71dee63b0ec7f1cf","unresolved":false,"context_lines":[{"line_number":26,"context_line":"--------------------"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"`osprofiler \u003chttps://github.com/openstack/osprofiler\u003e`_ is a project created"},{"line_number":29,"context_line":"within the OpenStack ecosystem to do profiling. The paragraphs below tell"},{"line_number":30,"context_line":"how Mistral uses \u0027osprofiler\u0027 for profiler. The central concept of \u0027osprofiler\u0027"},{"line_number":31,"context_line":"is a profile trace. A developer can mark code snippets with profiler traces"},{"line_number":32,"context_line":"and \u0027osprofiler\u0027 will be tracking them. In general, \u0027osprofiler\u0027 allows"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1fa4df85_52ccb388","line":29,"range":{"start_line":29,"start_character":69,"end_line":29,"end_character":73},"updated":"2020-02-25 08:57:53.000000000","message":"explains sounds better to me here.","commit_id":"a15db2293e3c3376da2b9ec064b88f495cf98f7c"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"20489cbc9d9c0b4756cc4c4e4d1516b9d21f58cc","unresolved":false,"context_lines":[{"line_number":26,"context_line":"--------------------"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"`osprofiler \u003chttps://github.com/openstack/osprofiler\u003e`_ is a project created"},{"line_number":29,"context_line":"within the OpenStack ecosystem to do profiling. The paragraphs below tell"},{"line_number":30,"context_line":"how Mistral uses \u0027osprofiler\u0027 for profiler. The central concept of \u0027osprofiler\u0027"},{"line_number":31,"context_line":"is a profile trace. A developer can mark code snippets with profiler traces"},{"line_number":32,"context_line":"and \u0027osprofiler\u0027 will be tracking them. In general, \u0027osprofiler\u0027 allows"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1fa4df85_073f8dd6","line":29,"range":{"start_line":29,"start_character":69,"end_line":29,"end_character":73},"in_reply_to":"1fa4df85_52ccb388","updated":"2020-03-02 07:41:38.000000000","message":"OK","commit_id":"a15db2293e3c3376da2b9ec064b88f495cf98f7c"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"f2516cc32f87c535057ad5c360d72b8a7e94dd94","unresolved":false,"context_lines":[{"line_number":21,"context_line":"parts of program logic. However, any arbitrary piece of code may be a target"},{"line_number":22,"context_line":"for measuring."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"\u0027osprofiler\u0027 Project"},{"line_number":25,"context_line":"--------------------"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"`osprofiler \u003chttps://github.com/openstack/osprofiler\u003e`_ is a project created"}],"source_content_type":"text/x-rst","patch_set":8,"id":"1fa4df85_a8c98fac","line":24,"range":{"start_line":24,"start_character":0,"end_line":24,"end_character":20},"updated":"2020-03-03 11:25:44.000000000","message":"maybe add the documentation link\n\nhttps://osprofiler.readthedocs.io/en/latest/","commit_id":"3f7ea93a3453d527281a1bdafc36f0b913fc9ed2"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"8987f9ec678e46e7ab61cbb5fe23517b4eacee8e","unresolved":false,"context_lines":[{"line_number":21,"context_line":"parts of program logic. However, any arbitrary piece of code may be a target"},{"line_number":22,"context_line":"for measuring."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"\u0027osprofiler\u0027 Project"},{"line_number":25,"context_line":"--------------------"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"`osprofiler \u003chttps://github.com/openstack/osprofiler\u003e`_ is a project created"}],"source_content_type":"text/x-rst","patch_set":8,"id":"1fa4df85_4e91f446","line":24,"range":{"start_line":24,"start_character":0,"end_line":24,"end_character":20},"in_reply_to":"1fa4df85_a8c98fac","updated":"2020-03-04 06:44:11.000000000","message":"OK","commit_id":"3f7ea93a3453d527281a1bdafc36f0b913fc9ed2"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"f2516cc32f87c535057ad5c360d72b8a7e94dd94","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    class DefaultEngine(base.Engine):"},{"line_number":49,"context_line":"        ..."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        @profiler.trace(\u0027engine-on-action-complete\u0027, hide_args\u003dTrue)"},{"line_number":52,"context_line":"        def on_action_complete(self, action_ex_id, result, wf_action\u003dFalse,"},{"line_number":53,"context_line":"                               async_\u003dFalse):"},{"line_number":54,"context_line":"            with db_api.transaction():"}],"source_content_type":"text/x-rst","patch_set":8,"id":"1fa4df85_689957c2","line":51,"range":{"start_line":51,"start_character":53,"end_line":51,"end_character":62},"updated":"2020-03-03 11:25:44.000000000","message":"maybe you should explain this ?","commit_id":"3f7ea93a3453d527281a1bdafc36f0b913fc9ed2"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"8987f9ec678e46e7ab61cbb5fe23517b4eacee8e","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    class DefaultEngine(base.Engine):"},{"line_number":49,"context_line":"        ..."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        @profiler.trace(\u0027engine-on-action-complete\u0027, hide_args\u003dTrue)"},{"line_number":52,"context_line":"        def on_action_complete(self, action_ex_id, result, wf_action\u003dFalse,"},{"line_number":53,"context_line":"                               async_\u003dFalse):"},{"line_number":54,"context_line":"            with db_api.transaction():"}],"source_content_type":"text/x-rst","patch_set":8,"id":"1fa4df85_ae72e847","line":51,"range":{"start_line":51,"start_character":53,"end_line":51,"end_character":62},"in_reply_to":"1fa4df85_689957c2","updated":"2020-03-04 06:44:11.000000000","message":"OK","commit_id":"3f7ea93a3453d527281a1bdafc36f0b913fc9ed2"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"f2516cc32f87c535057ad5c360d72b8a7e94dd94","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"                return action_ex.get_clone()"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Here we don\u0027t decorate the entire method, we only want to profile just one"},{"line_number":102,"context_line":"line of code. But like in the previous example, we added a profiling trace."},{"line_number":103,"context_line":"The obvious advantage of using the decorator is that it can live in code"},{"line_number":104,"context_line":"permanently because it doesn\u0027t pollute it too much and we can use them any"},{"line_number":105,"context_line":"time we want to profile the system."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"Configuring Mistral for Profiling"},{"line_number":108,"context_line":"---------------------------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"1fa4df85_88db737a","line":105,"range":{"start_line":101,"start_character":0,"end_line":105,"end_character":35},"updated":"2020-03-03 11:25:44.000000000","message":"you can also use it with the with keyword to trace a block of code","commit_id":"3f7ea93a3453d527281a1bdafc36f0b913fc9ed2"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"8987f9ec678e46e7ab61cbb5fe23517b4eacee8e","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"                return action_ex.get_clone()"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Here we don\u0027t decorate the entire method, we only want to profile just one"},{"line_number":102,"context_line":"line of code. But like in the previous example, we added a profiling trace."},{"line_number":103,"context_line":"The obvious advantage of using the decorator is that it can live in code"},{"line_number":104,"context_line":"permanently because it doesn\u0027t pollute it too much and we can use them any"},{"line_number":105,"context_line":"time we want to profile the system."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"Configuring Mistral for Profiling"},{"line_number":108,"context_line":"---------------------------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"1fa4df85_6e963042","line":105,"range":{"start_line":101,"start_character":0,"end_line":105,"end_character":35},"in_reply_to":"1fa4df85_88db737a","updated":"2020-03-04 06:44:11.000000000","message":"Yes, I\u0027ll add that.","commit_id":"3f7ea93a3453d527281a1bdafc36f0b913fc9ed2"}]}
