)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"8329c3953b7684fb3402427b045f1f57fb5793ad","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"766f1c91_b5f4dd16","updated":"2023-10-27 18:42:49.000000000","message":"I\u0027m definately learning about the design by looking at your implementation!\n\nI\u0027d recomend we only aim to support graphite and influx out of the gate - those are both very popular and reasonably modern/well-maintained platforms PLUS I think datadog users could reasonably justify wanting to have a way use the actual datadog python dogstatsd client IF we get some demand for that.\n\nGiven that we seem to assume statsd servers are fine with eating both labeled and un-labeled metrics (i.e. legacy call-sites emit legacy metrics even with labels enabled) ... why don\u0027t we ONLY add new labeled metrics at the call sites and leave the legacy call signatures and client and formatters alone?  We can JUST add the new labeled metrics we want?  As long as we avoid name collisions - which ... I guess might be easier to guarantee with the legacy_format kwargs; I\u0027ll probably have to go further down the chain to understand that.","commit_id":"f0f0b0af20340fee790f1db3fd8c25af89921b56"}],"etc/proxy-server.conf-sample":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"8329c3953b7684fb3402427b045f1f57fb5793ad","unresolved":true,"context_lines":[{"line_number":72,"context_line":"# log_statsd_metric_prefix \u003d"},{"line_number":73,"context_line":"#"},{"line_number":74,"context_line":"# Statsd metrics may include labeling information in a variety of formats."},{"line_number":75,"context_line":"# Available options: disabled, dogstatsd, graphite, influxdb, librato, signalfx"},{"line_number":76,"context_line":"# See also: https://github.com/prometheus/statsd_exporter#tagging-extensions"},{"line_number":77,"context_line":"# Note that enabling labels will likely increase the number of time series"},{"line_number":78,"context_line":"# stored, as more labels may be exposed than may be found in metric name when"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"7b493619_a3d5bd29","line":75,"updated":"2023-10-27 18:42:49.000000000","message":"this is so dumb; https://github.com/statsd/statsd/issues/619","commit_id":"f0f0b0af20340fee790f1db3fd8c25af89921b56"}],"swift/common/utils/__init__.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"8329c3953b7684fb3402427b045f1f57fb5793ad","unresolved":true,"context_lines":[{"line_number":1478,"context_line":"        # results in a socket getting shared by multiple green threads."},{"line_number":1479,"context_line":"        with closing(self._open_socket()) as sock:"},{"line_number":1480,"context_line":"            try:"},{"line_number":1481,"context_line":"                return sock.sendto(b\u0027|\u0027.join(parts), self._target)"},{"line_number":1482,"context_line":"            except IOError as err:"},{"line_number":1483,"context_line":"                if self.logger:"},{"line_number":1484,"context_line":"                    self.logger.warning("}],"source_content_type":"text/x-python","patch_set":6,"id":"0a62033b_76b8b3e9","side":"PARENT","line":1481,"updated":"2023-10-27 18:42:49.000000000","message":"I didn\u0027t realize we hadn\u0027t previously selected an existing python statsd client implementation:\n\nhttps://github.com/statsd/statsd/wiki#client-implementations\n\n... as best I can tell; none of the python bindings support taggging.  I found a golang one that says it does, and it picked Influx, datadog and graphite:\n\nhttps://github.com/smira/go-statsd#tagging\n\ndatadog has python bindings that support tagging; they call it dogstatsd:\n\nhttps://github.com/DataDog/datadogpy/blob/master/datadog/dogstatsd/base.py#L884","commit_id":"40118461486e334fcb84d60e51e0bfb2b1251674"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"308f9f99c52e4bcea6edc20ebab5b1c3c739a93a","unresolved":true,"context_lines":[{"line_number":1478,"context_line":"        # results in a socket getting shared by multiple green threads."},{"line_number":1479,"context_line":"        with closing(self._open_socket()) as sock:"},{"line_number":1480,"context_line":"            try:"},{"line_number":1481,"context_line":"                return sock.sendto(b\u0027|\u0027.join(parts), self._target)"},{"line_number":1482,"context_line":"            except IOError as err:"},{"line_number":1483,"context_line":"                if self.logger:"},{"line_number":1484,"context_line":"                    self.logger.warning("}],"source_content_type":"text/x-python","patch_set":6,"id":"2f44d53d_907c27ea","side":"PARENT","line":1481,"in_reply_to":"0a62033b_76b8b3e9","updated":"2023-10-30 17:43:27.000000000","message":"Good info -- but I\u0027d note that if we want to slim down the number of format options, the much more interesting question (which I admit I haven\u0027t devoted much time to) is what various statsd-consuming _servers_ support, and whether there\u0027s anything approaching a consensus _there_.","commit_id":"40118461486e334fcb84d60e51e0bfb2b1251674"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"8329c3953b7684fb3402427b045f1f57fb5793ad","unresolved":true,"context_lines":[{"line_number":1511,"context_line":""},{"line_number":1512,"context_line":"    @staticmethod"},{"line_number":1513,"context_line":"    def build_line_signalfx(name, labels, value, type, sample_rate):"},{"line_number":1514,"context_line":"        # https://web.archive.org/web/20211123040355/https://docs.signalfx.com/en/latest/integrations/agent/monitors/collectd-statsd.html#adding-dimensions-to-statsd-metrics"},{"line_number":1515,"context_line":"        # https://docs.splunk.com/Observability/gdi/statsd/statsd.html#adding-dimensions-to-statsd-metrics"},{"line_number":1516,"context_line":"        name +\u003d \u0027[%s]\u0027 % \u0027,\u0027.join(\u0027%s\u003d%s\u0027 % (k, v) for k, v in labels)"},{"line_number":1517,"context_line":"        line \u003d \u0027%s:%s|%s\u0027 % (name, value, type)"}],"source_content_type":"text/x-python","patch_set":6,"id":"d9a32bd4_4c6669df","line":1514,"updated":"2023-10-27 18:42:49.000000000","message":"if we\u0027re going to web archive; do you think YAGNI seems like a reasonable criticism?","commit_id":"f0f0b0af20340fee790f1db3fd8c25af89921b56"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"308f9f99c52e4bcea6edc20ebab5b1c3c739a93a","unresolved":true,"context_lines":[{"line_number":1511,"context_line":""},{"line_number":1512,"context_line":"    @staticmethod"},{"line_number":1513,"context_line":"    def build_line_signalfx(name, labels, value, type, sample_rate):"},{"line_number":1514,"context_line":"        # https://web.archive.org/web/20211123040355/https://docs.signalfx.com/en/latest/integrations/agent/monitors/collectd-statsd.html#adding-dimensions-to-statsd-metrics"},{"line_number":1515,"context_line":"        # https://docs.splunk.com/Observability/gdi/statsd/statsd.html#adding-dimensions-to-statsd-metrics"},{"line_number":1516,"context_line":"        name +\u003d \u0027[%s]\u0027 % \u0027,\u0027.join(\u0027%s\u003d%s\u0027 % (k, v) for k, v in labels)"},{"line_number":1517,"context_line":"        line \u003d \u0027%s:%s|%s\u0027 % (name, value, type)"}],"source_content_type":"text/x-python","patch_set":6,"id":"d6db975e_0bb8dcee","line":1514,"in_reply_to":"d9a32bd4_4c6669df","updated":"2023-10-30 17:43:27.000000000","message":"Perfectly reasonable; we can drop it. I originally kept it because I think I like it best -- it very clearly separates the base name from the labels. But I don\u0027t actually care _that_ much.","commit_id":"f0f0b0af20340fee790f1db3fd8c25af89921b56"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"8329c3953b7684fb3402427b045f1f57fb5793ad","unresolved":true,"context_lines":[{"line_number":1549,"context_line":"        if legacy_format is None:"},{"line_number":1550,"context_line":"            if labels:"},{"line_number":1551,"context_line":"                raise RuntimeError("},{"line_number":1552,"context_line":"                    \u0027All labeled metrics should have a legacy format\u0027)"},{"line_number":1553,"context_line":"            else:"},{"line_number":1554,"context_line":"                # If we wanted to *require* labeling, this is where we\u0027d do it"},{"line_number":1555,"context_line":"                legacy_format \u003d m_name"}],"source_content_type":"text/x-python","patch_set":6,"id":"73bfa34a_1ac93ac4","line":1552,"updated":"2023-10-27 18:42:49.000000000","message":"oh that\u0027s fun - I\u0027d like to think about how we might *remove* this restriction for *new* metrics going forward","commit_id":"f0f0b0af20340fee790f1db3fd8c25af89921b56"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"308f9f99c52e4bcea6edc20ebab5b1c3c739a93a","unresolved":true,"context_lines":[{"line_number":1549,"context_line":"        if legacy_format is None:"},{"line_number":1550,"context_line":"            if labels:"},{"line_number":1551,"context_line":"                raise RuntimeError("},{"line_number":1552,"context_line":"                    \u0027All labeled metrics should have a legacy format\u0027)"},{"line_number":1553,"context_line":"            else:"},{"line_number":1554,"context_line":"                # If we wanted to *require* labeling, this is where we\u0027d do it"},{"line_number":1555,"context_line":"                legacy_format \u003d m_name"}],"source_content_type":"text/x-python","patch_set":6,"id":"d0daee21_53614e64","line":1552,"in_reply_to":"73bfa34a_1ac93ac4","updated":"2023-10-30 17:43:27.000000000","message":"Well, that\u0027s why I\u0027ve got the `elif` below -- if you just want to emit a new labeled metric and **not** emit anything for operators still using legacy mode, you can do that with `legacy_format\u003dFalse` (or, for that matter, `legacy_format\u003d\u0027\u0027`)\n\nOr do you still want to emit the stat in legacy mode? I have a hard time thinking of anything where we might want to emit a legacy stat that isn\u0027t at least _slightly_ split by one of the labels...","commit_id":"f0f0b0af20340fee790f1db3fd8c25af89921b56"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"8329c3953b7684fb3402427b045f1f57fb5793ad","unresolved":true,"context_lines":[{"line_number":1560,"context_line":""},{"line_number":1561,"context_line":"        labels \u003d dict(self.default_labels, **(labels or {}))"},{"line_number":1562,"context_line":""},{"line_number":1563,"context_line":"        if mode \u003d\u003d \u0027disabled\u0027:"},{"line_number":1564,"context_line":"            if isinstance(legacy_format, str):"},{"line_number":1565,"context_line":"                legacy_format \u003d [legacy_format]"},{"line_number":1566,"context_line":"            lines \u003d []"}],"source_content_type":"text/x-python","patch_set":6,"id":"79ce31ec_623f524c","line":1563,"updated":"2023-10-27 18:42:49.000000000","message":"so currently legacy_format is only used when tagging is disabled.\n\nbut it\u0027s still the same single StatsdClient emiting metrics to the same endpoint - so you sort have to *pick* if you want your StatsdClient to send labeled metrics or legacy metrics.","commit_id":"f0f0b0af20340fee790f1db3fd8c25af89921b56"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"308f9f99c52e4bcea6edc20ebab5b1c3c739a93a","unresolved":true,"context_lines":[{"line_number":1560,"context_line":""},{"line_number":1561,"context_line":"        labels \u003d dict(self.default_labels, **(labels or {}))"},{"line_number":1562,"context_line":""},{"line_number":1563,"context_line":"        if mode \u003d\u003d \u0027disabled\u0027:"},{"line_number":1564,"context_line":"            if isinstance(legacy_format, str):"},{"line_number":1565,"context_line":"                legacy_format \u003d [legacy_format]"},{"line_number":1566,"context_line":"            lines \u003d []"}],"source_content_type":"text/x-python","patch_set":6,"id":"2f9ac96b_7c948dc5","line":1563,"in_reply_to":"79ce31ec_623f524c","updated":"2023-10-30 17:43:27.000000000","message":"Yes -- being able to continue using \"the same single StatsdClient\" was part of the appeal of this approach for me.\n\nI can see some appeal to emitting both, though -- it\u0027d be nice during a roll-out to keep your existing graphs while you start building up your new ones. Maybe we could make the config option a csv, with the expectation that there\u0027s only ever 1 or 2 items in the list...\n\nAt the same time, I\u0027m a little nervous about doubling our stats emissions, especially as we\u0027re *also* trying to add more stats. Like, the point of labeled metrics is not just to get rid of that regex mapping file -- it\u0027s to make it easier for us to add new metrics with more info so we can get new insights.\n\nhttps://github.com/prometheus/statsd_exporter/pull/511 ought to help, I guess?","commit_id":"f0f0b0af20340fee790f1db3fd8c25af89921b56"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"84e5bbe3112e7b4db39df7405fda8c100b582191","unresolved":true,"context_lines":[{"line_number":1575,"context_line":"                lines.append(self._prefix + \u0027|\u0027.join(parts))"},{"line_number":1576,"context_line":"        else:"},{"line_number":1577,"context_line":"            if self._base_prefix:"},{"line_number":1578,"context_line":"                m_name \u003d self._base_prefix + \u0027_\u0027 + m_name"},{"line_number":1579,"context_line":"            lines \u003d [self.build_line("},{"line_number":1580,"context_line":"                m_name,"},{"line_number":1581,"context_line":"                sorted(labels.items()),"}],"source_content_type":"text/x-python","patch_set":6,"id":"8f05002e_43bacc28","line":1578,"updated":"2023-11-01 20:51:29.000000000","message":"I\u0027m torn about whether this is the right move or not -- it breaks the assumption that labeled metrics will all be prefixed with `swift_`...\n\nOr maybe we do that part in here, rather than at the caller? Except I don\u0027t really like that for 3rd-party middlewares...\n\nMaybe even better would be to prevent the usage of `log_statsd_prefix` with labeled metrics, and instead drive towards some `log_statsd_label_\u003cname\u003e \u003d \u003cvalue\u003e` set of options? I think _that_ gets me closer to what I really wish I had instead of stuff like\n```\nunknown_raw_metric_counter{account\u003d\"AUTH_test\",container\u003d\"c_segments\",log_name\u003d\"proxy-server\",method\u003d\"GET\",name\u003d\"subrequest_swift_proxy_response_body_bytes\",policy_index\u003d\"0\",server_type\u003d\"object\",status\u003d\"200\",type\u003d\"counter\"} 1.047789568e+09\n```","commit_id":"f0f0b0af20340fee790f1db3fd8c25af89921b56"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"8329c3953b7684fb3402427b045f1f57fb5793ad","unresolved":true,"context_lines":[{"line_number":1645,"context_line":"                elapsed_time * 1000 / byte_xfer * 1000,"},{"line_number":1646,"context_line":"                sample_rate,"},{"line_number":1647,"context_line":"                labels\u003dlabels,"},{"line_number":1648,"context_line":"                legacy_format\u003dlegacy_format)"},{"line_number":1649,"context_line":""},{"line_number":1650,"context_line":""},{"line_number":1651,"context_line":"def timing_stats(**dec_kwargs):"}],"source_content_type":"text/x-python","patch_set":6,"id":"aa4734cf_fa180227","line":1648,"updated":"2023-10-27 18:42:49.000000000","message":"i think we\u0027ve uniformly add labels\u003dNone \u0026 legacy_format\u003dNone kwargs","commit_id":"f0f0b0af20340fee790f1db3fd8c25af89921b56"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"308f9f99c52e4bcea6edc20ebab5b1c3c739a93a","unresolved":true,"context_lines":[{"line_number":1645,"context_line":"                elapsed_time * 1000 / byte_xfer * 1000,"},{"line_number":1646,"context_line":"                sample_rate,"},{"line_number":1647,"context_line":"                labels\u003dlabels,"},{"line_number":1648,"context_line":"                legacy_format\u003dlegacy_format)"},{"line_number":1649,"context_line":""},{"line_number":1650,"context_line":""},{"line_number":1651,"context_line":"def timing_stats(**dec_kwargs):"}],"source_content_type":"text/x-python","patch_set":6,"id":"9789fe0a_09154c80","line":1648,"in_reply_to":"aa4734cf_fa180227","updated":"2023-10-30 17:43:27.000000000","message":"Seemed as good a way as any to ensure backwards compat for middlewares emitting metrics.","commit_id":"f0f0b0af20340fee790f1db3fd8c25af89921b56"}],"test/unit/common/test_utils.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"8329c3953b7684fb3402427b045f1f57fb5793ad","unresolved":true,"context_lines":[{"line_number":5602,"context_line":"            \u0027log_statsd_host\u0027: \u0027localhost\u0027,"},{"line_number":5603,"context_line":"            \u0027log_statsd_port\u0027: str(self.port),"},{"line_number":5604,"context_line":"            \u0027log_statsd_metric_prefix\u0027: \u0027alpha.beta\u0027,"},{"line_number":5605,"context_line":"        }, \u0027pfx\u0027)"},{"line_number":5606,"context_line":"        self.assertStat(\u0027alpha.beta.pfx.some.counter:1|c\u0027,"},{"line_number":5607,"context_line":"                        self.logger.increment, \u0027some.counter\u0027)"},{"line_number":5608,"context_line":"        self.assertStat(\u0027alpha.beta.pfx.some.counter:-1|c\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"26e1462c_19d9baa6","line":5605,"updated":"2023-10-27 18:42:49.000000000","message":"ok, so the pfx \"log_name\" is a kind of default/convention in tests.","commit_id":"f0f0b0af20340fee790f1db3fd8c25af89921b56"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"8329c3953b7684fb3402427b045f1f57fb5793ad","unresolved":true,"context_lines":[{"line_number":5635,"context_line":"                        self.logger.update_stats, \u0027another.counter\u0027, 3,"},{"line_number":5636,"context_line":"                        sample_rate\u003d0.9912)"},{"line_number":5637,"context_line":""},{"line_number":5638,"context_line":"    def test_delegate_methods_with_labels_and_prefix(self):"},{"line_number":5639,"context_line":"        self.logger \u003d utils.get_logger({"},{"line_number":5640,"context_line":"            \u0027log_statsd_host\u0027: \u0027localhost\u0027,"},{"line_number":5641,"context_line":"            \u0027log_statsd_port\u0027: str(self.port),"}],"source_content_type":"text/x-python","patch_set":6,"id":"f44ae3aa_3caeacaa","line":5638,"updated":"2023-10-27 18:42:49.000000000","message":"I think I would have found this a bit easier to ramp up with if there was more than one test method here ... something where the names of the tests described the behaviors we\u0027re adding or something about how legacy formats work; or even the tagging impl provider?","commit_id":"f0f0b0af20340fee790f1db3fd8c25af89921b56"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"8329c3953b7684fb3402427b045f1f57fb5793ad","unresolved":true,"context_lines":[{"line_number":5645,"context_line":"        inc_dec_args \u003d (\u0027the_counter\u0027, )"},{"line_number":5646,"context_line":"        timing_args \u003d (\u0027the_timing\u0027, 6.28 * 1000)"},{"line_number":5647,"context_line":"        update_args \u003d (\u0027the_stat\u0027, 3)"},{"line_number":5648,"context_line":"        labels \u003d {\u0027action\u0027: \u0027some\u0027, \u0027result\u0027: \u0027ok\u0027}"},{"line_number":5649,"context_line":"        self.assertStat(\u0027my_prefix.pfx.some.counter:1|c\u0027,"},{"line_number":5650,"context_line":"                        self.logger.increment, *inc_dec_args, labels\u003dlabels,"},{"line_number":5651,"context_line":"                        legacy_format\u003d\u0027{action}.counter\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"0f17c3e5_a75e4056","line":5648,"updated":"2023-10-27 18:42:49.000000000","message":"these seem consistent across tests; maybe\n\nargkwarg_method_map \u003d {}","commit_id":"f0f0b0af20340fee790f1db3fd8c25af89921b56"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"8329c3953b7684fb3402427b045f1f57fb5793ad","unresolved":true,"context_lines":[{"line_number":5674,"context_line":"                        self.logger.timing, \u0027some.timing\u0027, 6.28 * 1000)"},{"line_number":5675,"context_line":"        self.assertStat(\u0027my_prefix.pfx.some.stat:3|c\u0027,"},{"line_number":5676,"context_line":"                        self.logger.update_stats, \u0027some.stat\u0027, 3)"},{"line_number":5677,"context_line":"        # But once they get updated, we get richer data"},{"line_number":5678,"context_line":"        self.assertStat("},{"line_number":5679,"context_line":"            \u0027my_prefix_the_counter:1|c|#action:some,log_name:pfx,result:ok\u0027,"},{"line_number":5680,"context_line":"            self.logger.increment, *inc_dec_args, labels\u003dlabels,"}],"source_content_type":"text/x-python","patch_set":6,"id":"4fa970e6_eb22eda2","line":5677,"updated":"2023-10-27 18:42:49.000000000","message":"this is an important behavior I missed in my first read through; so even if you have a labled metrics provider configured unless the instrumented code has recieved an upgrade to the call site to include labels/legacy_format you\u0027re going to continue to get both labeled and un-labled stats metrics \u0026 in your statsd collector\n\nso there MUST be some support for mixing legacy and lableled statsd metrics; we just have to avoid a name collision between any new metrics that we add labels to!  It\u0027s almost like we don\u0027t want *migrate* existing statsd metrics to labeled metrics; we just want to have the option to start insrumenting the code with *new* labeled metrics!?","commit_id":"f0f0b0af20340fee790f1db3fd8c25af89921b56"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"8329c3953b7684fb3402427b045f1f57fb5793ad","unresolved":true,"context_lines":[{"line_number":5702,"context_line":"        self.assertStat("},{"line_number":5703,"context_line":"            \u0027my_prefix_the_counter;action\u003dsome;log_name\u003dpfx;result\u003dok:1|c\u0027,"},{"line_number":5704,"context_line":"            self.logger.increment, *inc_dec_args, labels\u003dlabels,"},{"line_number":5705,"context_line":"            legacy_format\u003d\u0027{action}.counter\u0027)"},{"line_number":5706,"context_line":"        self.assertStat("},{"line_number":5707,"context_line":"            \u0027my_prefix_the_counter;action\u003dsome;log_name\u003dpfx;result\u003dok:-1|c\u0027,"},{"line_number":5708,"context_line":"            self.logger.decrement, *inc_dec_args, labels\u003dlabels,"}],"source_content_type":"text/x-python","patch_set":6,"id":"81a731fa_e96f32c9","line":5705,"updated":"2023-10-27 18:42:49.000000000","message":"so you sort of have to verify by hand; but this is the same call args as the logger.increment call for statsd_label_mode \u003d \u0027disabled\u0027; different result\n\n    my_prefix.pfx.some.counter:1|c\u0027\n    my_prefix_the_counter;action\u003dsome;log_name\u003dpfx;result\u003dok:1|c\n    \nN.B. when you call\n\n    logger.increment(\u0027the_counter\u0027, ...\u0027)\n    \nwith disabled you get\n\n    `my_prefix.pfx.some.counter`\n    \n... because of `legacy_format\u003d\u0027{action}.counter\u0027`","commit_id":"f0f0b0af20340fee790f1db3fd8c25af89921b56"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"8329c3953b7684fb3402427b045f1f57fb5793ad","unresolved":true,"context_lines":[{"line_number":5724,"context_line":"            \u0027log_statsd_label_mode\u0027: \u0027influxdb\u0027,"},{"line_number":5725,"context_line":"        }, \u0027pfx\u0027)"},{"line_number":5726,"context_line":"        self.assertStat("},{"line_number":5727,"context_line":"            \u0027my_prefix_the_counter,action\u003dsome,log_name\u003dpfx,result\u003dok:1|c\u0027,"},{"line_number":5728,"context_line":"            self.logger.increment, *inc_dec_args, labels\u003dlabels,"},{"line_number":5729,"context_line":"            legacy_format\u003d\u0027{action}.counter\u0027)"},{"line_number":5730,"context_line":"        self.assertStat("}],"source_content_type":"text/x-python","patch_set":6,"id":"2a1c95ef_d1aecaa8","line":5727,"updated":"2023-10-27 18:42:49.000000000","message":"influx \",\" and graphite \";\" are VERY similar formats it seems","commit_id":"f0f0b0af20340fee790f1db3fd8c25af89921b56"}]}
