)]}'
{
  "commit": "5a17dd9b7da15de1fdca18fd5ca65cef7946fa4a",
  "tree": "5f1a38ff5b7217d90ccfbc48651b13954406d532",
  "parents": [
    "b1b06779374ea41ed7b93531124dcd5b6a7fe2bb"
  ],
  "author": {
    "name": "Austin Clements",
    "email": "austin@google.com",
    "time": "Fri Jul 19 16:14:51 2024 -0400"
  },
  "committer": {
    "name": "Austin Clements",
    "email": "austin@google.com",
    "time": "Mon Jul 29 19:23:18 2024 +0000"
  },
  "message": "sweet: new diagnostics framework\n\nThis new framework does several things. Primarily, it consolidates the\nmanagement of diagnostics files (profiles and traces). It\u0027s designed\nto be flexible enough for the myriad needs of different benchmarks.\n\nIt has a concept of \"committed\" and \"uncommitted\" diagnostic files.\nThis will be particularly important for servers, where we may have to\ntruncate diagnostic data being gathered from an HTTP endpoint.\nUncommitted diagnostics are discarded at the end of the benchmark.\n\nMeanwhile, the concept of a committed diagnostic also lets us\nconsolidate the profile merging logic. With this new framework, you\nsimply ask for multiple files of the same diagnostic type, and when\neverything is committed at the end, it will do any necessary profile\nmerging.\n\nFor diagnostics fetched over HTTP in particular, this new framework\nlets us fix a significant drawback to runtime trace collection.\nPreviously, we had to collect traces in many small increments (we used\n1 second), which makes the resulting traces basically unusable. As of\nGo 1.23, traces can be truncated, but the framework had no ability to\ncollect a truncatable diagnostic. With this CL, HTTP collection\nunderstands which diagnostics types can be truncated, and switches to\ncollecting a single long-running diagnostic and cutting it off at the\nend of the benchmark.\n\nWe\u0027ll push this through each benchmark and then remove the old\nframework.\n\nChange-Id: Ic9a189123f248aea13f92ef8961e9873c7cf9a6d\nReviewed-on: https://go-review.googlesource.com/c/benchmarks/+/600062\nLUCI-TryBot-Result: Go LUCI \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Michael Knyszek \u003cmknyszek@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c910a870bf4cb8f4c27cee75fcc61b33dce40e3f",
      "new_mode": 33188,
      "new_path": "sweet/benchmarks/internal/driver/diagnostics.go"
    },
    {
      "type": "modify",
      "old_id": "0f8890aeef02fcde4a7d729c664347483ea6f691",
      "old_mode": 33188,
      "old_path": "sweet/benchmarks/internal/driver/driver.go",
      "new_id": "44bd0ed397fdd71b2b0d646b7e61472b7d026b16",
      "new_mode": 33188,
      "new_path": "sweet/benchmarks/internal/driver/driver.go"
    },
    {
      "type": "modify",
      "old_id": "75fe10bc472a812e190b1af0eb91f16b686c1242",
      "old_mode": 33188,
      "old_path": "sweet/benchmarks/internal/server/server.go",
      "new_id": "42681fedc305c18e6b89e9cd24a9e76eb176d611",
      "new_mode": 33188,
      "new_path": "sweet/benchmarks/internal/server/server.go"
    },
    {
      "type": "modify",
      "old_id": "f232ddb93aa322e5db64d93e7932fdf4a95ea9e3",
      "old_mode": 33188,
      "old_path": "sweet/cmd/sweet/run.go",
      "new_id": "70962f6ba684a2b2e8f937e81f50cf6dc54dff60",
      "new_mode": 33188,
      "new_path": "sweet/cmd/sweet/run.go"
    },
    {
      "type": "modify",
      "old_id": "944d2fa1128eca5168b9c2414a40fccb4dff39f9",
      "old_mode": 33188,
      "old_path": "sweet/common/diagnostics/config.go",
      "new_id": "906e2f808481d9a416b904ccfdfa2d20af99e1af",
      "new_mode": 33188,
      "new_path": "sweet/common/diagnostics/config.go"
    }
  ]
}
