)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1000019,"name":"Tim Windelschmidt","display_name":"Tim","email":"tim@monogon.tech","username":"fionera","avatars":[{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"f3122c80f1ff546bd1e1b2db8e9525786faac143","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"3ce5003e_fb1744d8","updated":"2023-04-24 20:35:16.000000000","message":"I also can\u0027t see any code that registers a route inside e.g. webug. Do you have any plan how we want to expose the metrics?","commit_id":"2ba89aab0b968063762ca59957aac99f7fdc5a66"},{"author":{"_account_id":1000019,"name":"Tim Windelschmidt","display_name":"Tim","email":"tim@monogon.tech","username":"fionera","avatars":[{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"4c5d39a73721829b87e9e941fba731ae3b2fe886","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"bb352bf4_3b964bb9","updated":"2023-04-24 20:33:06.000000000","message":"I am not sure about the naming inside `metrics.go` since I sounds like we are using something like Prometheus Push-GW inside that structs","commit_id":"2ba89aab0b968063762ca59957aac99f7fdc5a66"},{"author":{"_account_id":1000019,"name":"Tim Windelschmidt","display_name":"Tim","email":"tim@monogon.tech","username":"fionera","avatars":[{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"c6ffec3fb9dbf4fa0e52d8d048982905473bdb25","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"44a56da8_b283b64d","in_reply_to":"3ce5003e_fb1744d8","updated":"2023-04-24 20:36:30.000000000","message":"-","commit_id":"2ba89aab0b968063762ca59957aac99f7fdc5a66"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"acc421d053d7b574beb5bc8f5436768c0add7ed2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"82b448e6_f4089a76","in_reply_to":"44a56da8_b283b64d","updated":"2023-04-25 11:42:51.000000000","message":"That\u0027s done in review.monogon.dev/1599.","commit_id":"2ba89aab0b968063762ca59957aac99f7fdc5a66"},{"author":{"_account_id":1000019,"name":"Tim Windelschmidt","display_name":"Tim","email":"tim@monogon.tech","username":"fionera","avatars":[{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"c6ffec3fb9dbf4fa0e52d8d048982905473bdb25","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"fe501fac_b7e56ffe","in_reply_to":"bb352bf4_3b964bb9","updated":"2023-04-24 20:36:30.000000000","message":"-","commit_id":"2ba89aab0b968063762ca59957aac99f7fdc5a66"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"acc421d053d7b574beb5bc8f5436768c0add7ed2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"c09035bc_bf8ed606","in_reply_to":"fe501fac_b7e56ffe","updated":"2023-04-25 11:42:51.000000000","message":"Done","commit_id":"2ba89aab0b968063762ca59957aac99f7fdc5a66"}],"cloud/bmaas/bmdb/metrics/metrics.go":[{"author":{"_account_id":1000019,"name":"Tim Windelschmidt","display_name":"Tim","email":"tim@monogon.tech","username":"fionera","avatars":[{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"4c5d39a73721829b87e9e941fba731ae3b2fe886","unresolved":true,"context_lines":[{"line_number":48,"context_line":"//"},{"line_number":49,"context_line":"// A nil Metrics objest is valid and represents a no-op metrics recorder that\u0027s"},{"line_number":50,"context_line":"// never collected."},{"line_number":51,"context_line":"type Metrics struct {"},{"line_number":52,"context_line":"\tsessionStarted      *prometheus.CounterVec"},{"line_number":53,"context_line":"\ttransactionExecuted *prometheus.CounterVec"},{"line_number":54,"context_line":"\ttransactionRetried  *prometheus.CounterVec"}],"source_content_type":"text/x-go","patch_set":2,"id":"b8045a83_aa1dcc3c","line":51,"updated":"2023-04-24 20:33:06.000000000","message":"Maybe `MetricSet`?","commit_id":"2ba89aab0b968063762ca59957aac99f7fdc5a66"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"acc421d053d7b574beb5bc8f5436768c0add7ed2","unresolved":false,"context_lines":[{"line_number":48,"context_line":"//"},{"line_number":49,"context_line":"// A nil Metrics objest is valid and represents a no-op metrics recorder that\u0027s"},{"line_number":50,"context_line":"// never collected."},{"line_number":51,"context_line":"type Metrics struct {"},{"line_number":52,"context_line":"\tsessionStarted      *prometheus.CounterVec"},{"line_number":53,"context_line":"\ttransactionExecuted *prometheus.CounterVec"},{"line_number":54,"context_line":"\ttransactionRetried  *prometheus.CounterVec"}],"source_content_type":"text/x-go","patch_set":2,"id":"71e68b23_eb79fd31","line":51,"in_reply_to":"b8045a83_aa1dcc3c","updated":"2023-04-25 11:42:51.000000000","message":"Done","commit_id":"2ba89aab0b968063762ca59957aac99f7fdc5a66"},{"author":{"_account_id":1000019,"name":"Tim Windelschmidt","display_name":"Tim","email":"tim@monogon.tech","username":"fionera","avatars":[{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"4c5d39a73721829b87e9e941fba731ae3b2fe886","unresolved":true,"context_lines":[{"line_number":104,"context_line":"// Metrics.Pusher."},{"line_number":105,"context_line":"//"},{"line_number":106,"context_line":"// A nil Pusher object is valid and represents a no-op metrics recorder."},{"line_number":107,"context_line":"type Pusher struct {"},{"line_number":108,"context_line":"\tm      *Metrics"},{"line_number":109,"context_line":"\tlabels prometheus.Labels"},{"line_number":110,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":2,"id":"b9273175_dab2cd45","line":107,"updated":"2023-04-24 20:33:06.000000000","message":"Pusher does not actually push things, instead it just manages metrics. I would prefer something like `ProcessorMetricSet`","commit_id":"2ba89aab0b968063762ca59957aac99f7fdc5a66"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"acc421d053d7b574beb5bc8f5436768c0add7ed2","unresolved":false,"context_lines":[{"line_number":104,"context_line":"// Metrics.Pusher."},{"line_number":105,"context_line":"//"},{"line_number":106,"context_line":"// A nil Pusher object is valid and represents a no-op metrics recorder."},{"line_number":107,"context_line":"type Pusher struct {"},{"line_number":108,"context_line":"\tm      *Metrics"},{"line_number":109,"context_line":"\tlabels prometheus.Labels"},{"line_number":110,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":2,"id":"43909162_4b27980b","line":107,"in_reply_to":"6cdc5e18_aa31a035","updated":"2023-04-25 11:42:51.000000000","message":"Done","commit_id":"2ba89aab0b968063762ca59957aac99f7fdc5a66"},{"author":{"_account_id":1000019,"name":"Tim Windelschmidt","display_name":"Tim","email":"tim@monogon.tech","username":"fionera","avatars":[{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"92a0fd11180b15da2981658a8f1d7bbf2bb9f484","unresolved":true,"context_lines":[{"line_number":104,"context_line":"// Metrics.Pusher."},{"line_number":105,"context_line":"//"},{"line_number":106,"context_line":"// A nil Pusher object is valid and represents a no-op metrics recorder."},{"line_number":107,"context_line":"type Pusher struct {"},{"line_number":108,"context_line":"\tm      *Metrics"},{"line_number":109,"context_line":"\tlabels prometheus.Labels"},{"line_number":110,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":2,"id":"6cdc5e18_aa31a035","line":107,"in_reply_to":"b2d26cc4_5d3c18d2","updated":"2023-04-25 09:35:39.000000000","message":"`ProcessorRecorder` maybe? I prefer prefixing this type structs, as it explains it fairly quick","commit_id":"2ba89aab0b968063762ca59957aac99f7fdc5a66"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"d6a4f9280112d7955ad37d001628e96340177a89","unresolved":true,"context_lines":[{"line_number":104,"context_line":"// Metrics.Pusher."},{"line_number":105,"context_line":"//"},{"line_number":106,"context_line":"// A nil Pusher object is valid and represents a no-op metrics recorder."},{"line_number":107,"context_line":"type Pusher struct {"},{"line_number":108,"context_line":"\tm      *Metrics"},{"line_number":109,"context_line":"\tlabels prometheus.Labels"},{"line_number":110,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":2,"id":"b2d26cc4_5d3c18d2","line":107,"in_reply_to":"b9273175_dab2cd45","updated":"2023-04-25 09:30:51.000000000","message":"I actually started with \u0027Client\u0027 but I didn\u0027t like that either. I want to differentiate it from Metrics significantly, as it has an actual concept of pre-baked/curried labels, so that\u0027s why I\u0027m not sure about just prepending the name of the Metrics structure with \u0027Processor\u0027.\n\nHow about... Recorder? Emitter?","commit_id":"2ba89aab0b968063762ca59957aac99f7fdc5a66"},{"author":{"_account_id":1000019,"name":"Tim Windelschmidt","display_name":"Tim","email":"tim@monogon.tech","username":"fionera","avatars":[{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"4c5d39a73721829b87e9e941fba731ae3b2fe886","unresolved":true,"context_lines":[{"line_number":159,"context_line":"// resulting object can then record work-specific events."},{"line_number":160,"context_line":"//"},{"line_number":161,"context_line":"// The PusherWithProcess object is goroutine-safe."},{"line_number":162,"context_line":"type PusherWithProcess struct {"},{"line_number":163,"context_line":"\t*Pusher"},{"line_number":164,"context_line":"\tlabels prometheus.Labels"},{"line_number":165,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":2,"id":"db6295d0_b160400b","line":162,"updated":"2023-04-24 20:33:06.000000000","message":"As above I don\u0027t really like the `Pusher` as this does only store metrics","commit_id":"2ba89aab0b968063762ca59957aac99f7fdc5a66"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"acc421d053d7b574beb5bc8f5436768c0add7ed2","unresolved":false,"context_lines":[{"line_number":159,"context_line":"// resulting object can then record work-specific events."},{"line_number":160,"context_line":"//"},{"line_number":161,"context_line":"// The PusherWithProcess object is goroutine-safe."},{"line_number":162,"context_line":"type PusherWithProcess struct {"},{"line_number":163,"context_line":"\t*Pusher"},{"line_number":164,"context_line":"\tlabels prometheus.Labels"},{"line_number":165,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":2,"id":"2833a43c_7ed9fcc4","line":162,"in_reply_to":"db6295d0_b160400b","updated":"2023-04-25 11:42:51.000000000","message":"Done","commit_id":"2ba89aab0b968063762ca59957aac99f7fdc5a66"}],"cloud/bmaas/bmdb/sessions.go":[{"author":{"_account_id":1000019,"name":"Tim Windelschmidt","display_name":"Tim","email":"tim@monogon.tech","username":"fionera","avatars":[{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"4c5d39a73721829b87e9e941fba731ae3b2fe886","unresolved":true,"context_lines":[{"line_number":173,"context_line":"\tvar attempts int64"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"\terr :\u003d crdb.ExecuteTx(ctx, s.connection.db, nil, func(tx *sql.Tx) error {"},{"line_number":176,"context_line":"\t\tattemptNo :\u003d atomic.AddInt64(\u0026attempts, 1)"},{"line_number":177,"context_line":"\t\ts.m.OnTransactionStarted(attemptNo)"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"\t\tqtx :\u003d model.New(tx)"}],"source_content_type":"text/x-go","patch_set":2,"id":"f02f00e3_72b1766c","line":176,"updated":"2023-04-24 20:33:06.000000000","message":"Why does this need to be atomic? are the transactions running in different goroutines?","commit_id":"2ba89aab0b968063762ca59957aac99f7fdc5a66"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"acc421d053d7b574beb5bc8f5436768c0add7ed2","unresolved":false,"context_lines":[{"line_number":173,"context_line":"\tvar attempts int64"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"\terr :\u003d crdb.ExecuteTx(ctx, s.connection.db, nil, func(tx *sql.Tx) error {"},{"line_number":176,"context_line":"\t\tattemptNo :\u003d atomic.AddInt64(\u0026attempts, 1)"},{"line_number":177,"context_line":"\t\ts.m.OnTransactionStarted(attemptNo)"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"\t\tqtx :\u003d model.New(tx)"}],"source_content_type":"text/x-go","patch_set":2,"id":"c3e45ba6_0cee67c4","line":176,"in_reply_to":"d445ab3e_1ced6845","updated":"2023-04-25 11:42:51.000000000","message":"Done","commit_id":"2ba89aab0b968063762ca59957aac99f7fdc5a66"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"d6a4f9280112d7955ad37d001628e96340177a89","unresolved":true,"context_lines":[{"line_number":173,"context_line":"\tvar attempts int64"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"\terr :\u003d crdb.ExecuteTx(ctx, s.connection.db, nil, func(tx *sql.Tx) error {"},{"line_number":176,"context_line":"\t\tattemptNo :\u003d atomic.AddInt64(\u0026attempts, 1)"},{"line_number":177,"context_line":"\t\ts.m.OnTransactionStarted(attemptNo)"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"\t\tqtx :\u003d model.New(tx)"}],"source_content_type":"text/x-go","patch_set":2,"id":"d445ab3e_1ced6845","line":176,"in_reply_to":"f02f00e3_72b1766c","updated":"2023-04-25 09:30:51.000000000","message":"Yeah, you\u0027re right. I\u0027ll remove it.","commit_id":"2ba89aab0b968063762ca59957aac99f7fdc5a66"}],"cloud/shepherd/equinix/manager/control_loop.go":[{"author":{"_account_id":1000019,"name":"Tim Windelschmidt","display_name":"Tim","email":"tim@monogon.tech","username":"fionera","avatars":[{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"4c5d39a73721829b87e9e941fba731ae3b2fe886","unresolved":true,"context_lines":[{"line_number":110,"context_line":"// component/configuration is registering its own flags. The prefix should be the"},{"line_number":111,"context_line":"// name of the component."},{"line_number":112,"context_line":"func (c *ControlLoopConfig) RegisterFlags(prefix string) {"},{"line_number":113,"context_line":"\tflagLimiter(\u0026c.DBQueryLimiter, prefix+\"_db_query_rate\", \"1s,8\", \"Rate limiting for BMDB queries\")"},{"line_number":114,"context_line":"\tflag.IntVar(\u0026c.Parallelism, prefix+\"_loop_parallelism\", 1, \"How many initializer instances to run in parallel, ie. how many agents to attempt to (re)start at once\")"},{"line_number":115,"context_line":"}"},{"line_number":116,"context_line":""}],"source_content_type":"text/x-go","patch_set":2,"id":"7ee66dc4_21f7809a","line":113,"updated":"2023-04-24 20:33:06.000000000","message":"Is this intended to be in this commit?","commit_id":"2ba89aab0b968063762ca59957aac99f7fdc5a66"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"d6a4f9280112d7955ad37d001628e96340177a89","unresolved":true,"context_lines":[{"line_number":110,"context_line":"// component/configuration is registering its own flags. The prefix should be the"},{"line_number":111,"context_line":"// name of the component."},{"line_number":112,"context_line":"func (c *ControlLoopConfig) RegisterFlags(prefix string) {"},{"line_number":113,"context_line":"\tflagLimiter(\u0026c.DBQueryLimiter, prefix+\"_db_query_rate\", \"1s,8\", \"Rate limiting for BMDB queries\")"},{"line_number":114,"context_line":"\tflag.IntVar(\u0026c.Parallelism, prefix+\"_loop_parallelism\", 1, \"How many initializer instances to run in parallel, ie. how many agents to attempt to (re)start at once\")"},{"line_number":115,"context_line":"}"},{"line_number":116,"context_line":""}],"source_content_type":"text/x-go","patch_set":2,"id":"ec0f10a7_60e3bd77","line":113,"in_reply_to":"7ee66dc4_21f7809a","updated":"2023-04-25 09:30:51.000000000","message":"Yeah, whoops, I\u0027ll split this out.","commit_id":"2ba89aab0b968063762ca59957aac99f7fdc5a66"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"acc421d053d7b574beb5bc8f5436768c0add7ed2","unresolved":false,"context_lines":[{"line_number":110,"context_line":"// component/configuration is registering its own flags. The prefix should be the"},{"line_number":111,"context_line":"// name of the component."},{"line_number":112,"context_line":"func (c *ControlLoopConfig) RegisterFlags(prefix string) {"},{"line_number":113,"context_line":"\tflagLimiter(\u0026c.DBQueryLimiter, prefix+\"_db_query_rate\", \"1s,8\", \"Rate limiting for BMDB queries\")"},{"line_number":114,"context_line":"\tflag.IntVar(\u0026c.Parallelism, prefix+\"_loop_parallelism\", 1, \"How many initializer instances to run in parallel, ie. how many agents to attempt to (re)start at once\")"},{"line_number":115,"context_line":"}"},{"line_number":116,"context_line":""}],"source_content_type":"text/x-go","patch_set":2,"id":"8601b417_727acc1e","line":113,"in_reply_to":"ec0f10a7_60e3bd77","updated":"2023-04-25 11:42:51.000000000","message":"Done","commit_id":"2ba89aab0b968063762ca59957aac99f7fdc5a66"}]}
