Skip to content

Commit 3703f72

Browse files
committed
use new perfSend
1 parent 86b9cff commit 3703f72

File tree

6 files changed

+78
-12
lines changed

6 files changed

+78
-12
lines changed

.evergreen/config.yml

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -257,9 +257,22 @@ tasks:
257257
vars:
258258
WARMUP: 1000
259259
ITERATIONS: 1000
260-
- command: perf.send
260+
- command: subprocess.exec
261261
params:
262-
file: src/test/bench/etc/resultsCollectedMeans.json
262+
working_dir: src
263+
binary: node
264+
env:
265+
project: ${project}
266+
revision_order_id: ${order}
267+
execution: ${execution}
268+
requester: ${requester}
269+
task_id: ${task_id}
270+
task_name: ${task_name}
271+
build_variant: ${build_variant}
272+
version_id: ${version_id}
273+
args:
274+
- .evergreen/perfSend.mjs
275+
- src/test/bench/etc/resultsCollectedMeans.json
263276
- name: run-custom-benchmarks
264277
commands:
265278
- func: fetch source

.evergreen/perfSend.mjs

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
#! node
2+
'use strict';
3+
4+
import * as fs from 'fs/promises';
5+
// STAGING
6+
const API_PATH = "https://performance-monitoring-service-rest.server-tig.staging.corp.mongodb.com/raw_perf_results"
7+
8+
const resultFile = process.argv[2];
9+
if (resultFile == undefined) {
10+
throw new Error("Must specify result file");
11+
}
12+
13+
// Get expansions
14+
const {
15+
execution,
16+
requester,
17+
project,
18+
task_id,
19+
task_name,
20+
revision_order_id: order,
21+
build_variant: variant,
22+
version_id: version
23+
} = process.env;
24+
25+
26+
fs.readFile(resultFile, { encoding: 'utf8' })
27+
.then(
28+
results => {
29+
const body = {
30+
id: {
31+
project,
32+
version,
33+
variant,
34+
order,
35+
task_name,
36+
task_id,
37+
execution,
38+
mainline: requester === 'commit'
39+
},
40+
results: JSON.parse(results)
41+
};
42+
return fetch(API_PATH, {
43+
method: "POST",
44+
headers: {
45+
"Content-Type": "application/json"
46+
},
47+
body: JSON.stringify(body)
48+
})
49+
}
50+
)
51+
.then(resp => {
52+
console.log(resp);
53+
if (resp.status !== 200) {
54+
throw new Error('Got non 200 status code')
55+
}
56+
});

package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

test/bench/custom/main.mjs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,10 @@ function logBenchmark(event) {
2424
console.log(String(event.target));
2525
}
2626

27-
function processBenchmarkResult(bench, tags, metadata) {
27+
function processBenchmarkResult(bench, metadata) {
2828
return {
2929
info: { test_name: bench.name },
30-
metrics: [{ name: 'ops_per_sec', value: bench.hz, metadata }],
31-
tags
30+
metrics: [{ name: 'ops_per_sec', value: bench.hz, metadata }]
3231
};
3332
}
3433

@@ -53,7 +52,7 @@ async function completeSuite() {
5352
for (const { suite, suiteConfig } of collectedSuites) {
5453
const { tags } = suiteConfig;
5554
for (const bench of Array.from(suite)) {
56-
const result = processBenchmarkResult(bench, tags, metadata);
55+
const result = processBenchmarkResult(bench, { ...metadata, tags });
5756
result.metrics.push({
5857
name: 'normalized_throughput',
5958
value: bench.hz / cpuBaselineResult,

test/bench/etc/run_granular_benchmarks.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ const DOCUMENT_ROOT = path.resolve(`${__dirname}/../documents`);
8585
const rv = { ...result };
8686
rv.metrics = rv.metrics.filter(metric => metric.type === 'MEAN');
8787
rv.metrics = rv.metrics.map(m => {
88-
return { ...m, metadata };
88+
return { ...m, metadata: { ...m.metadata, improvement_direction: 'up' } };
8989
});
9090
rv.metrics.push({
9191
name: 'normalized_throughput',

test/bench/spec/bsonBench.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -116,19 +116,18 @@ suite.run().then(async () => {
116116
}, 0) / results.length;
117117

118118
for (const r of results) {
119-
r.metrics[0].metadata = metadata;
119+
r.metrics[0].metadata = { ...r.metrics[0].metadata, ...metadata };
120120
r.metrics.push({
121121
name: 'normalized_throughput',
122122
value: r.metrics[0].value / cpuBaselineResult,
123-
metadata
123+
metadata: { ...r.metrics[0].metadata }
124124
});
125125
}
126126

127127
// Add to results
128128
results.push({
129129
info: {
130130
test_name: 'BSONBench',
131-
tags: [],
132131
args: {}
133132
},
134133
metrics: [
@@ -144,7 +143,6 @@ suite.run().then(async () => {
144143
results.push({
145144
info: {
146145
test_name: 'cpuBaseline',
147-
tags: [],
148146
args: {}
149147
},
150148
metrics: [{ name: 'mean_megabytes_per_second', value: cpuBaselineResult, metadata }]

0 commit comments

Comments
 (0)