)]}'
{"osbase/supervisor/supervisor_metrics_prometheus.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":"a7979e004e6d4e5230f1d3caaf68fa0c2def03e3","unresolved":true,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"func (m *MetricsPrometheus) NotifyNodeState(dn string, state NodeState) {"},{"line_number":69,"context_line":"\t// Retract previous state exported, if needed."},{"line_number":70,"context_line":"\tif previous :\u003d m.cachedState[dn]; previous !\u003d nil {"},{"line_number":71,"context_line":"\t\tm.exportState(dn, *previous, 0.0)"},{"line_number":72,"context_line":"\t}"},{"line_number":73,"context_line":"\t// Export new state."}],"source_content_type":"text/x-go","patch_set":4,"id":"74549aa0_27dfb74c","line":70,"updated":"2024-07-31 22:22:07.000000000","message":"I first wanted to make a comment regarding the behaviour that would occur without this statement. Maybe make it a bit more prominent that we actually invalidate the old metrics since this was my initial comment:\n\n--- \n\nIf I understand this correctly, we would have these metrics as example:\n```\nmonogon_supervisor_dn_state_total{dn\u003d\"root.example\", state\u003d\"running\"} 1\n```\n\nBut as soon as the runnable restarts we would have this state because the previous metrics isn\u0027t negated.\n\n```\nmonogon_supervisor_dn_state_total{dn\u003d\"root.example\", state\u003d\"running\"} 1\nmonogon_supervisor_dn_state_total{dn\u003d\"root.example\", state\u003d\"dead\"} 1\n```","commit_id":"a62c2192deaf8cedff8a12817ea7305ed90a255c"},{"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":"a753a52b5f3890cd8b687b436e89c7dbbf551231","unresolved":true,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"func (m *MetricsPrometheus) NotifyNodeState(dn string, state NodeState) {"},{"line_number":69,"context_line":"\t// Retract previous state exported, if needed."},{"line_number":70,"context_line":"\tif previous :\u003d m.cachedState[dn]; previous !\u003d nil {"},{"line_number":71,"context_line":"\t\tm.exportState(dn, *previous, 0.0)"},{"line_number":72,"context_line":"\t}"},{"line_number":73,"context_line":"\t// Export new state."}],"source_content_type":"text/x-go","patch_set":4,"id":"5e2475b0_8182e73d","line":70,"in_reply_to":"02a08b74_61bcd17a","updated":"2024-08-06 14:07:20.000000000","message":"PTAL.","commit_id":"a62c2192deaf8cedff8a12817ea7305ed90a255c"},{"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":"b6ac21aae2cf8a5fab7367495b9cd46cc5afaaf9","unresolved":true,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"func (m *MetricsPrometheus) NotifyNodeState(dn string, state NodeState) {"},{"line_number":69,"context_line":"\t// Retract previous state exported, if needed."},{"line_number":70,"context_line":"\tif previous :\u003d m.cachedState[dn]; previous !\u003d nil {"},{"line_number":71,"context_line":"\t\tm.exportState(dn, *previous, 0.0)"},{"line_number":72,"context_line":"\t}"},{"line_number":73,"context_line":"\t// Export new state."}],"source_content_type":"text/x-go","patch_set":4,"id":"02a08b74_61bcd17a","line":70,"in_reply_to":"18440baa_28d14a2a","updated":"2024-08-01 15:42:28.000000000","message":"Afaik all metrics that are not available anymore will be reset to 0, but to be sure and to make the querying more consistent, we should set every state to 0 if a new dn appears.","commit_id":"a62c2192deaf8cedff8a12817ea7305ed90a255c"},{"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":"96ad906abdd2c277e2b358aeaf66261d5ccaf086","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"func (m *MetricsPrometheus) NotifyNodeState(dn string, state NodeState) {"},{"line_number":69,"context_line":"\t// Retract previous state exported, if needed."},{"line_number":70,"context_line":"\tif previous :\u003d m.cachedState[dn]; previous !\u003d nil {"},{"line_number":71,"context_line":"\t\tm.exportState(dn, *previous, 0.0)"},{"line_number":72,"context_line":"\t}"},{"line_number":73,"context_line":"\t// Export new state."}],"source_content_type":"text/x-go","patch_set":4,"id":"5b1d0642_4b4370f8","line":70,"in_reply_to":"5e2475b0_8182e73d","updated":"2024-08-06 14:26:37.000000000","message":"Looks good to me.","commit_id":"a62c2192deaf8cedff8a12817ea7305ed90a255c"},{"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":"bce3715b49ca5c16eba8f7a64626547c37cd5e46","unresolved":true,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"func (m *MetricsPrometheus) NotifyNodeState(dn string, state NodeState) {"},{"line_number":69,"context_line":"\t// Retract previous state exported, if needed."},{"line_number":70,"context_line":"\tif previous :\u003d m.cachedState[dn]; previous !\u003d nil {"},{"line_number":71,"context_line":"\t\tm.exportState(dn, *previous, 0.0)"},{"line_number":72,"context_line":"\t}"},{"line_number":73,"context_line":"\t// Export new state."}],"source_content_type":"text/x-go","patch_set":4,"id":"18440baa_28d14a2a","line":70,"in_reply_to":"74549aa0_27dfb74c","updated":"2024-08-01 14:22:06.000000000","message":"I actually realized one more thing: if the entire node reboots we will still have the old counters exported until we effectively overwrite them, right? Or do I misunderstand how Prometheus handles this?","commit_id":"a62c2192deaf8cedff8a12817ea7305ed90a255c"},{"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":"a7979e004e6d4e5230f1d3caaf68fa0c2def03e3","unresolved":true,"context_lines":[{"line_number":74,"context_line":"\tm.exportState(dn, state, 1.0)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"\tprevious :\u003d NodeStateDead"},{"line_number":77,"context_line":"\tif m.cachedState[dn] !\u003d nil {"},{"line_number":78,"context_line":"\t\tprevious \u003d *m.cachedState[dn]"},{"line_number":79,"context_line":"\t}"},{"line_number":80,"context_line":"\tm.exportEdge(dn, previous, state)"}],"source_content_type":"text/x-go","patch_set":4,"id":"1fb8f8c0_6a24cfc0","line":77,"updated":"2024-07-31 22:22:07.000000000","message":"nit: The state gets fetched twice here, is that intended?","commit_id":"a62c2192deaf8cedff8a12817ea7305ed90a255c"},{"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":"bce3715b49ca5c16eba8f7a64626547c37cd5e46","unresolved":true,"context_lines":[{"line_number":74,"context_line":"\tm.exportState(dn, state, 1.0)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"\tprevious :\u003d NodeStateDead"},{"line_number":77,"context_line":"\tif m.cachedState[dn] !\u003d nil {"},{"line_number":78,"context_line":"\t\tprevious \u003d *m.cachedState[dn]"},{"line_number":79,"context_line":"\t}"},{"line_number":80,"context_line":"\tm.exportEdge(dn, previous, state)"}],"source_content_type":"text/x-go","patch_set":4,"id":"d4a5ca01_dde7b61e","line":77,"in_reply_to":"1fb8f8c0_6a24cfc0","updated":"2024-08-01 14:22:06.000000000","message":"Yeah, I just felt it was slightly cleaner, but I can give it a do-over once we figure out the above.","commit_id":"a62c2192deaf8cedff8a12817ea7305ed90a255c"},{"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":"a753a52b5f3890cd8b687b436e89c7dbbf551231","unresolved":false,"context_lines":[{"line_number":74,"context_line":"\tm.exportState(dn, state, 1.0)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"\tprevious :\u003d NodeStateDead"},{"line_number":77,"context_line":"\tif m.cachedState[dn] !\u003d nil {"},{"line_number":78,"context_line":"\t\tprevious \u003d *m.cachedState[dn]"},{"line_number":79,"context_line":"\t}"},{"line_number":80,"context_line":"\tm.exportEdge(dn, previous, state)"}],"source_content_type":"text/x-go","patch_set":4,"id":"29889e71_2538824a","line":77,"in_reply_to":"d4a5ca01_dde7b61e","updated":"2024-08-06 14:07:20.000000000","message":"Done","commit_id":"a62c2192deaf8cedff8a12817ea7305ed90a255c"}]}
