Skip to content

GODRIVER-2169 Use perf.send instead of json.send #772

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Oct 25, 2021
Merged

GODRIVER-2169 Use perf.send instead of json.send #772

merged 3 commits into from
Oct 25, 2021

Conversation

benjirewis
Copy link
Contributor

GODRIVER-2169

The TIPS team recently switched to a more robust performance gathering tool perf.send. Updates our usage of json.send to perf.send and modifies the output of EvergreenPerfFormat() as described here. (I separately gave the mongodb-signal-processing-bot read access to this repo).

The format of the data used by json.send was:

{
  "data": {
    "results": [
      {
        "name": "insertOne", // test_name
        "results": {
          "16": { // 16 is the thread level, you can't record other args (e.g. compression)
            "ops_per_sec": 10000, // metric, legacy tooling doesn't support anything other than "ops_per_sec"
          },
          "8": {
            "ops_per_sec": 3000,
          }
        },
      },
    ],
  },
}

The format of the data now used by perf.send is:

[
  {
    "info": {
      "test_name": "insertOne",
      "args": {
        "threads": 16,
        "compression": 1,
        ...etc
      }
    },
    "metrics": [
      {
        "name": "ops_per_sec",
        "value": 10000
      },
      {
        "name": "average_latency",
        "value": 198234
      },
      ...etc
    ]
  },
  {
    "info": {
      "test_name": "insertOne",
      "args": {
        "threads": 8,
        "compression": 0,
        ...etc
      }
    },
    "metrics": [
      {
        "name": "ops_per_sec",
        "value": 3000
      },
      {
        "name": "average_latency",
        "value": 298234
      },
      ...etc
    ]
  },
  ...etc
]

@benjirewis benjirewis marked this pull request as ready for review October 19, 2021 21:06
@benjirewis benjirewis requested a review from kevinAlbs October 19, 2021 21:06
Copy link
Contributor

@kevinAlbs kevinAlbs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes look good! Is there a successful run of a perf task with the new changes? I have reconfigured the attached patch build to include the perf task: https://spruce.mongodb.com/task/mongo_go_driver_perf_perf_patch_8a397a401000e6ba266e8a18beabc8af4da4a773_616f31e63e8e8608fdd848e8_21_10_19_21_00_24/logs?execution=0

@benjirewis
Copy link
Contributor Author

Looks like the perf task succeeded. I'm not sure that's a perfect indicator that we have the correct format, though.

@benjirewis benjirewis requested a review from kevinAlbs October 21, 2021 17:05
@benjirewis benjirewis requested a review from kevinAlbs October 22, 2021 14:44
Copy link
Contributor

@kevinAlbs kevinAlbs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! The table on the perf task looks good.

@benjirewis benjirewis merged commit c1b2ebb into mongodb:master Oct 25, 2021
@benjirewis benjirewis deleted the perfSend.2169 branch October 25, 2021 14:15
faem pushed a commit to kubedb/mongo-go-driver that referenced this pull request Mar 17, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants