)]}'
{"couchbase/observability/otel_metrics.py":[{"author":{"_account_id":1005035,"name":"Dimitris Christodoulou","email":"dimitris.christodoulou@couchbase.com","username":"DemetrisChr","avatars":[{"url":"https://www.gravatar.com/avatar/4291f7baa025a5558b77019a9c264ab2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/4291f7baa025a5558b77019a9c264ab2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/4291f7baa025a5558b77019a9c264ab2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/4291f7baa025a5558b77019a9c264ab2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"13f051e097010c6e944a2a9540e07f022975dd1a","unresolved":true,"context_lines":[{"line_number":41,"context_line":"        Wraps an OpenTelemetry Histogram to implement SDK\u0027s ValueRecorder interface."},{"line_number":42,"context_line":"        \"\"\""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        def __init__(self, histogram: otel_metrics.Histogram, tags: Dict[str, str], unit: str) -\u003e None:"},{"line_number":45,"context_line":"            self._histogram \u003d histogram"},{"line_number":46,"context_line":"            self._attributes \u003d tags if tags else {}"},{"line_number":47,"context_line":"            self._unit \u003d unit"}],"source_content_type":"text/x-python","patch_set":16,"id":"b7c53b74_acd5b539","line":44,"updated":"2026-03-27 12:56:35.000000000","message":"The tags type should be updated to `Dict[str, Any]` to match the change in the `ValueRecorder` base class.","commit_id":"49d72cf769a472f40019f378ae92707d57733a53"},{"author":{"_account_id":1005381,"name":"Anirudh Lakhotia","display_name":"Anirudh Lakhotia","email":"anirudh.lakhotia@couchbase.com","username":"anirudhlakhotia","avatars":[{"url":"https://www.gravatar.com/avatar/9b86347dbed7e8c52746d07945b7649b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/9b86347dbed7e8c52746d07945b7649b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/9b86347dbed7e8c52746d07945b7649b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/9b86347dbed7e8c52746d07945b7649b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"8ca5ac6437e6bffe8a20f99f11136324a1fe779d","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        Wraps an OpenTelemetry Histogram to implement SDK\u0027s ValueRecorder interface."},{"line_number":42,"context_line":"        \"\"\""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        def __init__(self, histogram: otel_metrics.Histogram, tags: Dict[str, str], unit: str) -\u003e None:"},{"line_number":45,"context_line":"            self._histogram \u003d histogram"},{"line_number":46,"context_line":"            self._attributes \u003d tags if tags else {}"},{"line_number":47,"context_line":"            self._unit \u003d unit"}],"source_content_type":"text/x-python","patch_set":16,"id":"82bae777_a6e3da8c","line":44,"in_reply_to":"b7c53b74_acd5b539","updated":"2026-03-27 13:50:20.000000000","message":"Done","commit_id":"49d72cf769a472f40019f378ae92707d57733a53"},{"author":{"_account_id":1005035,"name":"Dimitris Christodoulou","email":"dimitris.christodoulou@couchbase.com","username":"DemetrisChr","avatars":[{"url":"https://www.gravatar.com/avatar/4291f7baa025a5558b77019a9c264ab2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/4291f7baa025a5558b77019a9c264ab2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/4291f7baa025a5558b77019a9c264ab2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/4291f7baa025a5558b77019a9c264ab2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"13f051e097010c6e944a2a9540e07f022975dd1a","unresolved":true,"context_lines":[{"line_number":49,"context_line":"        def record_value(self, value: int) -\u003e None:"},{"line_number":50,"context_line":"            # The SDK records value in micros and will place a special __unit tag in the tags set to \u0027s\u0027"},{"line_number":51,"context_line":"            # So self._unit \u003d\u003d \u0027s\u0027 is indication that we should convert from micros to seconds"},{"line_number":52,"context_line":"            value \u003d value if self._unit \u003d\u003d \u0027s\u0027 else value / 1_000_000"},{"line_number":53,"context_line":"            self._histogram.record(float(value), attributes\u003dself._attributes)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    class OtelWrapperMeter(Meter):"}],"source_content_type":"text/x-python","patch_set":16,"id":"72d85e72_3a817dfc","line":52,"updated":"2026-03-27 12:56:35.000000000","message":"Should this be the opposite? We divide by 1,000,000 iff `_unit` is \u0027s\u0027","commit_id":"49d72cf769a472f40019f378ae92707d57733a53"},{"author":{"_account_id":1005381,"name":"Anirudh Lakhotia","display_name":"Anirudh Lakhotia","email":"anirudh.lakhotia@couchbase.com","username":"anirudhlakhotia","avatars":[{"url":"https://www.gravatar.com/avatar/9b86347dbed7e8c52746d07945b7649b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/9b86347dbed7e8c52746d07945b7649b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/9b86347dbed7e8c52746d07945b7649b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/9b86347dbed7e8c52746d07945b7649b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"8ca5ac6437e6bffe8a20f99f11136324a1fe779d","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        def record_value(self, value: int) -\u003e None:"},{"line_number":50,"context_line":"            # The SDK records value in micros and will place a special __unit tag in the tags set to \u0027s\u0027"},{"line_number":51,"context_line":"            # So self._unit \u003d\u003d \u0027s\u0027 is indication that we should convert from micros to seconds"},{"line_number":52,"context_line":"            value \u003d value if self._unit \u003d\u003d \u0027s\u0027 else value / 1_000_000"},{"line_number":53,"context_line":"            self._histogram.record(float(value), attributes\u003dself._attributes)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    class OtelWrapperMeter(Meter):"}],"source_content_type":"text/x-python","patch_set":16,"id":"efa69d4e_400ccdec","line":52,"in_reply_to":"72d85e72_3a817dfc","updated":"2026-03-27 13:50:20.000000000","message":"Done","commit_id":"49d72cf769a472f40019f378ae92707d57733a53"},{"author":{"_account_id":1005035,"name":"Dimitris Christodoulou","email":"dimitris.christodoulou@couchbase.com","username":"DemetrisChr","avatars":[{"url":"https://www.gravatar.com/avatar/4291f7baa025a5558b77019a9c264ab2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/4291f7baa025a5558b77019a9c264ab2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/4291f7baa025a5558b77019a9c264ab2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/4291f7baa025a5558b77019a9c264ab2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"bc7e4f28e1ea665ea4d831b83bb841eaa714da41","unresolved":true,"context_lines":[{"line_number":62,"context_line":"            self._otel_meter \u003d otel_meter"},{"line_number":63,"context_line":"            self._histograms: Dict[str, otel_metrics.Histogram] \u003d {}"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        def value_recorder(self, name: str, tags: Mapping[str, str]) -\u003e ValueRecorder:"},{"line_number":66,"context_line":"            local_tags \u003d dict(tags) if tags else {}"},{"line_number":67,"context_line":"            unit \u003d local_tags.pop(\u0027__unit\u0027, \u0027\u0027)"},{"line_number":68,"context_line":"            if name not in self._histograms:"}],"source_content_type":"text/x-python","patch_set":17,"id":"20c993e7_260e8484","line":65,"updated":"2026-03-27 13:55:15.000000000","message":"This needs updating as well \n```suggestion\n        def value_recorder(self, name: str, tags: Mapping[str, Any]) -\u003e ValueRecorder:\n```","commit_id":"ee40a4074b09e5efdb29d4fae015df05fc891b9e"},{"author":{"_account_id":1004568,"name":"Jared Casey","email":"jared.casey@couchbase.com","username":"thejcfactor","avatars":[{"url":"https://www.gravatar.com/avatar/20ac69da8a1fb4cc11bdd1c880389132.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/20ac69da8a1fb4cc11bdd1c880389132.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/20ac69da8a1fb4cc11bdd1c880389132.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/20ac69da8a1fb4cc11bdd1c880389132.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"7b666be6e837b4de7769b2b15696632bd0391da2","unresolved":false,"context_lines":[{"line_number":62,"context_line":"            self._otel_meter \u003d otel_meter"},{"line_number":63,"context_line":"            self._histograms: Dict[str, otel_metrics.Histogram] \u003d {}"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        def value_recorder(self, name: str, tags: Mapping[str, str]) -\u003e ValueRecorder:"},{"line_number":66,"context_line":"            local_tags \u003d dict(tags) if tags else {}"},{"line_number":67,"context_line":"            unit \u003d local_tags.pop(\u0027__unit\u0027, \u0027\u0027)"},{"line_number":68,"context_line":"            if name not in self._histograms:"}],"source_content_type":"text/x-python","patch_set":17,"id":"31dc1d31_3f7c0354","line":65,"in_reply_to":"20c993e7_260e8484","updated":"2026-03-27 20:51:51.000000000","message":"Done","commit_id":"ee40a4074b09e5efdb29d4fae015df05fc891b9e"}]}
