{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":12006203,"defaultBranch":"master","name":"go-metrics","ownerLogin":"hashicorp","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2013-08-09T17:04:39.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/761456?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1709678373.0","currentOid":""},"activityList":{"items":[{"before":null,"after":"4c2c81a4bb2ef8263cad4af3b6e7be33f6e07d21","ref":"refs/heads/flatten-key-perf","pushedAt":"2024-03-05T22:39:33.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"mkeeler","name":"Matt Keeler","path":"/mkeeler","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1641976?s=80&v=4"},"commit":{"message":"Performance optimizations for the inmem sinks key flattening\n\nI did these optimizations in 3 parts:\n\nEliminate `fmt.Sprintf` in `flattenKeyLabels`:\n\nThis drastically reduces allocations when there are lots of labels and had a 15-30% CPU usage reduction when labels were used. The more labels used the more drastic the reduction.\n\nSimplify `flattenKey`:\n\nHere I got rid of the temporary buffer and string replacer and put the code into the final state of this commit. This reduced the CPU utilization for `flattenKey` by 50% and allocations by 75%. The impact on `flattenKeyLabels` was a little less pronounced as most of the CPU is actually in label processing. Even so the reductions were 25-40% for CPU usage and 37-42% for allocations.\n\nEliminate the space replacer and call `strings.Replace` just once:\n\nWithin the label processing loop we were using the space replacer to write modified bytes out to the buffer. I instead swapped this for direct buffer writes and a single call to strings.Replace at the end. This resulted in another 33-47% CPU reduction for the function and 20-50% less allocations.","shortMessageHtmlLink":"Performance optimizations for the inmem sinks key flattening"}},{"before":"7408d2c40f98e56f69c906bbfaf4bca77f4b3d1a","after":"242e3f6e9254fb70e26b1212eb7e6bcababa2464","ref":"refs/heads/compliance/add-headers","pushedAt":"2023-12-04T16:03:46.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"hashicorp-copywrite[bot]","name":null,"path":"/apps/hashicorp-copywrite","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/761456?s=80&v=4"},"commit":{"message":"[COMPLIANCE] Add Copyright and License Headers","shortMessageHtmlLink":"[COMPLIANCE] Add Copyright and License Headers"}},{"before":"d9ca9af9f1f9c77de45535e74def9b8e8a62f5c4","after":null,"ref":"refs/heads/fix-prometheus-panic","pushedAt":"2023-11-27T21:45:06.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"lgfa29","name":"Luiz Aoqui","path":"/lgfa29","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/775380?s=80&v=4"}},{"before":"9bd01952d386d9bd5f79c7f72448d1e1e3425dfb","after":"9d55fb233b15597348d8c257632d8211a07d3395","ref":"refs/heads/master","pushedAt":"2023-11-27T21:44:48.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"lgfa29","name":"Luiz Aoqui","path":"/lgfa29","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/775380?s=80&v=4"},"commit":{"message":"Merge pull request #146 from hashicorp/fix-prometheus-panic\n\nprometheus: prevent panic when incrmenting counter","shortMessageHtmlLink":"Merge pull request #146 from hashicorp/fix-prometheus-panic"}},{"before":"d1f1f6ee05b21b7f55a53f82f6df929e1760c5d7","after":"7408d2c40f98e56f69c906bbfaf4bca77f4b3d1a","ref":"refs/heads/compliance/add-headers","pushedAt":"2023-11-20T16:03:43.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"hashicorp-copywrite[bot]","name":null,"path":"/apps/hashicorp-copywrite","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/761456?s=80&v=4"},"commit":{"message":"[COMPLIANCE] Add Copyright and License Headers","shortMessageHtmlLink":"[COMPLIANCE] Add Copyright and License Headers"}},{"before":"25a7551ebad13c1db895cac86c3143e159ae0c47","after":"9bd01952d386d9bd5f79c7f72448d1e1e3425dfb","ref":"refs/heads/master","pushedAt":"2023-11-14T14:54:03.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mkeeler","name":"Matt Keeler","path":"/mkeeler","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1641976?s=80&v=4"},"commit":{"message":"Add placeholder constant for JS (#158)\n\nThis is necessary for users of this library who might be building\r\nwith the WASM target.","shortMessageHtmlLink":"Add placeholder constant for JS (#158)"}},{"before":"e3542d7f5b1ce27486329461fafa71fd85e32a8f","after":"d1f1f6ee05b21b7f55a53f82f6df929e1760c5d7","ref":"refs/heads/compliance/add-headers","pushedAt":"2023-06-12T16:03:29.351Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"hashicorp-copywrite[bot]","name":null,"path":"/apps/hashicorp-copywrite","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/761456?s=80&v=4"},"commit":{"message":"[COMPLIANCE] Add Copyright and License Headers","shortMessageHtmlLink":"[COMPLIANCE] Add Copyright and License Headers"}},{"before":"aee7470331bc2a027cb2711f759f6f527a557ed8","after":"25a7551ebad13c1db895cac86c3143e159ae0c47","ref":"refs/heads/master","pushedAt":"2023-06-09T09:17:46.306Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"biazmoreira","name":"Bianca Moreira","path":"/biazmoreira","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48203644?s=80&v=4"},"commit":{"message":"Merge pull request #155 from hashicorp/biazmoreira/addgaugefloat64-sink\n\nAdd PrecisionGauge to Circonus","shortMessageHtmlLink":"Merge pull request #155 from hashicorp/biazmoreira/addgaugefloat64-sink"}},{"before":"aee7470331bc2a027cb2711f759f6f527a557ed8","after":null,"ref":"refs/tags/v0.4.2","pushedAt":"2023-06-08T15:39:24.158Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"mkeeler","name":"Matt Keeler","path":"/mkeeler","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1641976?s=80&v=4"}},{"before":"858601465fcd6976fa4b951419becea272d25579","after":"aee7470331bc2a027cb2711f759f6f527a557ed8","ref":"refs/heads/master","pushedAt":"2023-06-08T13:48:53.720Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mkeeler","name":"Matt Keeler","path":"/mkeeler","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1641976?s=80&v=4"},"commit":{"message":"Prevent dogstatsd sink from clobbering the metric key for other sinks (#156)\n\nIf using the Fanout sink and including the dogstatsd sink, any sinks sent the metric AFTER dogstatsd could see invalid metric names. This was due to some inadvertent modifications to the original metric key. The new implementation ensure that when modifying the orignial metric key, a new backing array is used and will have key parts copied into it instead of changing elements in the original metric key.","shortMessageHtmlLink":"Prevent dogstatsd sink from clobbering the metric key for other sinks ("}},{"before":null,"after":"89b1ba84bf70c9418030c71787b4ccdbff8ff26c","ref":"refs/heads/dogstats-metric-key-copy","pushedAt":"2023-06-08T13:37:21.159Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"mkeeler","name":"Matt Keeler","path":"/mkeeler","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1641976?s=80&v=4"},"commit":{"message":"Prevent dogstatsd sink from clobbering the metric key for other sinks\n\nIf using the Fanout sink and including the dogstatsd sink, any sinks sent the metric AFTER dogstatsd could see invalid metric names. This was due to some inadvertent modifications to the original metric key. The new implementation ensure that when modifying the orignial metric key, a new backing array is used and will have key parts copied into it instead of changing elements in the original metric key.","shortMessageHtmlLink":"Prevent dogstatsd sink from clobbering the metric key for other sinks"}},{"before":null,"after":"94aba96e447105e19fc437e8d8d776f6c975c936","ref":"refs/heads/biazmoreira/addgaugefloat64-sink","pushedAt":"2023-06-07T14:06:49.828Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"biazmoreira","name":"Bianca Moreira","path":"/biazmoreira","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48203644?s=80&v=4"},"commit":{"message":"Add PrecisionGauge to Circonus","shortMessageHtmlLink":"Add PrecisionGauge to Circonus"}},{"before":"0cbbd872fc6f93f9def26a403e0ab1d8ac85af17","after":"e3542d7f5b1ce27486329461fafa71fd85e32a8f","ref":"refs/heads/compliance/add-headers","pushedAt":"2023-05-22T16:03:16.950Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"hashicorp-copywrite[bot]","name":null,"path":"/apps/hashicorp-copywrite","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/761456?s=80&v=4"},"commit":{"message":"[COMPLIANCE] Add Copyright and License Headers","shortMessageHtmlLink":"[COMPLIANCE] Add Copyright and License Headers"}},{"before":"8cabd9eab1bee469056110d091281261e861fc19","after":"858601465fcd6976fa4b951419becea272d25579","ref":"refs/heads/master","pushedAt":"2023-05-19T11:28:06.767Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"biazmoreira","name":"Bianca Moreira","path":"/biazmoreira","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48203644?s=80&v=4"},"commit":{"message":"Merge pull request #151 from hashicorp/biazmoreira/addgaugefloat64\n\nAdd GaugeFloat64 API","shortMessageHtmlLink":"Merge pull request #151 from hashicorp/biazmoreira/addgaugefloat64"}},{"before":"22d2d08a3a06a9abebee9e4df54c26b0357758a3","after":"eb30b884ddcb0a22958e812a139cdb88f65b232f","ref":"refs/heads/biazmoreira/addgaugefloat64","pushedAt":"2023-05-19T11:04:20.333Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"biazmoreira","name":"Bianca Moreira","path":"/biazmoreira","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48203644?s=80&v=4"},"commit":{"message":"Add Gauge Float64","shortMessageHtmlLink":"Add Gauge Float64"}},{"before":"02f89f44ffeb08dfe22c442b39bbef64fbbc6f0f","after":"22d2d08a3a06a9abebee9e4df54c26b0357758a3","ref":"refs/heads/biazmoreira/addgaugefloat64","pushedAt":"2023-05-15T12:28:37.896Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"biazmoreira","name":"Bianca Moreira","path":"/biazmoreira","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48203644?s=80&v=4"},"commit":{"message":"Add Gauge Float64","shortMessageHtmlLink":"Add Gauge Float64"}},{"before":"9c4352b04df8aa6fd793f34488922e4a8d431b32","after":"d9ca9af9f1f9c77de45535e74def9b8e8a62f5c4","ref":"refs/heads/fix-prometheus-panic","pushedAt":"2023-05-09T19:38:26.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"lgfa29","name":"Luiz Aoqui","path":"/lgfa29","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/775380?s=80&v=4"},"commit":{"message":"prometheus: prevent panic when incrmenting counter\n\nThe Prometheus Counter.Add() method panics if the value being added is\nnegative. Even if care is taken by consumers to never pass a negative\nvalue the panic could still happen due to float conversion or overflow.\n\nThis change prevents go-metrics from causing consumers to crash.","shortMessageHtmlLink":"prometheus: prevent panic when incrmenting counter"}},{"before":null,"after":"02f89f44ffeb08dfe22c442b39bbef64fbbc6f0f","ref":"refs/heads/biazmoreira/addgaugefloat64","pushedAt":"2023-04-03T08:10:19.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"biazmoreira","name":"Bianca Moreira","path":"/biazmoreira","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48203644?s=80&v=4"},"commit":{"message":"Add GaugeFloat64 API","shortMessageHtmlLink":"Add GaugeFloat64 API"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEDVoC4gA","startCursor":null,"endCursor":null}},"title":"Activity · hashicorp/go-metrics"}