Skip to content
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

Processing of execution-time performance test results #11622

Merged
merged 67 commits into from
Aug 26, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
5eb1c3d
WIP
alexvy86 Aug 9, 2022
5116c89
WIP - pipeline to run perf benchmarks
alexvy86 Aug 10, 2022
e108d24
WIP
alexvy86 Aug 10, 2022
4efaf10
WIP
alexvy86 Aug 10, 2022
7b21672
Fix inculded template
alexvy86 Aug 10, 2022
ce5e6b5
Fix name of job
alexvy86 Aug 10, 2022
a1c9f45
Update @fluid-tools/benchmark to 0.42.0
alexvy86 Aug 11, 2022
dece361
Change test step to target @fluid-experimental/tree
alexvy86 Aug 11, 2022
cc22a31
Try with @fluidframework/matrix because tree has several matches
alexvy86 Aug 11, 2022
1c48e2b
Back to trying with @fluid-experimental/tree and workaround to avoid …
alexvy86 Aug 11, 2022
5693d2f
Fix perf script name for @fluid-experimental/tree
alexvy86 Aug 11, 2022
e11e58e
Run mocha command directly, skip npm
alexvy86 Aug 11, 2022
314035c
Install mocha
alexvy86 Aug 11, 2022
8397084
npx workaround to run mocha
alexvy86 Aug 11, 2022
895a9c7
Install @fluidframework/mocha-test-setup
alexvy86 Aug 11, 2022
2d36524
Fix path to node_modules
alexvy86 Aug 11, 2022
7f3e68c
Remove node_modules from path
alexvy86 Aug 11, 2022
c78f249
Test another path
alexvy86 Aug 11, 2022
594feb4
Install @fluid-tools/benchmark and point to correct path for reporter
alexvy86 Aug 11, 2022
b8d36da
Print directory contents before running mocha
alexvy86 Aug 11, 2022
7b29931
Print working directory
alexvy86 Aug 11, 2022
f93992a
Fix workingDir->workingDirectory
alexvy86 Aug 11, 2022
d390d0e
WIP - add benchmark tests to client package build
alexvy86 Aug 11, 2022
2357b9f
Fix package-lock files so build succeeds again
alexvy86 Aug 12, 2022
24d813a
All changes to run benchmark tests globally during CI?
alexvy86 Aug 12, 2022
7711115
Merge branch 'main' into write-perf-to-kusto
alexvy86 Aug 12, 2022
0562b04
Add conditional for benchmark tests. Publish benchmark output files.
alexvy86 Aug 12, 2022
2276c33
Fix path to benchmark test output files
alexvy86 Aug 12, 2022
53326bc
WIP tool to send perf results to Aria/Kusto
alexvy86 Aug 18, 2022
e5e94d2
Take folder to process from command line
alexvy86 Aug 18, 2022
69ea323
Use tool to write to kusto in pipeline
alexvy86 Aug 18, 2022
6bdd9ac
Add npm authentication tasks in pipeline. Cleanup.
alexvy86 Aug 18, 2022
46d884c
Fix path
alexvy86 Aug 18, 2022
6b2bf5b
Increase delay
alexvy86 Aug 18, 2022
6104d34
Cleanup. Make the test logger injectable dynamically.
alexvy86 Aug 19, 2022
34b77ad
Updates to pipeline
alexvy86 Aug 19, 2022
667cc16
Updates
alexvy86 Aug 19, 2022
e9a1bd9
Default value for parameter
alexvy86 Aug 19, 2022
1c18e4e
Reference variable correctly
alexvy86 Aug 19, 2022
c736194
Fix include path
alexvy86 Aug 19, 2022
287f3d8
Remove unnecessary custom feeds
alexvy86 Aug 19, 2022
041859a
Inject aria-logger in the correct step
alexvy86 Aug 19, 2022
1e6a4f5
Change namespace. Update dependency version
alexvy86 Aug 19, 2022
e89e2bd
Change event category and name
alexvy86 Aug 19, 2022
e15ed66
Remove comment
alexvy86 Aug 19, 2022
34918a1
Temporarily reorder pipeline to get quicker inner dev loop feedback
alexvy86 Aug 22, 2022
b6cb3ec
Comment step that runs tests
alexvy86 Aug 22, 2022
148ab3d
Debugging
alexvy86 Aug 22, 2022
2c49923
More experimentation
alexvy86 Aug 22, 2022
feb8e37
More debugging
alexvy86 Aug 22, 2022
5bd8511
Add missing dependency on @fluidframework/build-common
alexvy86 Aug 22, 2022
c1a36ba
Full pipeline back in order
alexvy86 Aug 22, 2022
ba7e44b
File header and cleanup
alexvy86 Aug 22, 2022
6ec6880
Fix policy check issues
alexvy86 Aug 22, 2022
0a41fc8
Rename package. Cleanup and minor improvements.
alexvy86 Aug 22, 2022
6f54078
Update to new path
alexvy86 Aug 22, 2022
abfa2c8
Undo changes to build-npm-package pipelien
alexvy86 Aug 22, 2022
ad4cd9e
Merge branch 'main' into perf-test-processing
alexvy86 Aug 22, 2022
6abd7d2
Cleanup
alexvy86 Aug 22, 2022
97604a3
Add test:benchmark:report to packages/dds/tree
alexvy86 Aug 22, 2022
24fd925
Cleanup
alexvy86 Aug 22, 2022
356f6e8
Uncomment triggers and add missing ones
alexvy86 Aug 22, 2022
e875eb9
Docs for tool
alexvy86 Aug 23, 2022
79365c2
Fix test file suffix
alexvy86 Aug 23, 2022
af53223
Cleanup test:benchmark:report scripts
alexvy86 Aug 23, 2022
8d73483
Lerna-package-lock.json
alexvy86 Aug 23, 2022
424becb
Document what the index.ts script does
alexvy86 Aug 26, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion experimental/dds/tree/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
"prettier": "prettier --check \"**/*.{js,json,jsx,md,ts,tsx,yml,yaml}\"",
"prettier:fix": "prettier --write \"**/*.{js,json,jsx,md,ts,tsx,yml,yaml}\"",
"test": "nyc npm run test:mocha",
"test:benchmark:report": "mocha \"dist/**/*.tests.js\" --node-option unhandled-rejections=strict,expose-gc --exit --perfMode --fgrep @Benchmark -r @fluidframework/mocha-test-setup --reporter @fluid-tools/benchmark/dist/MochaReporter.js --timeout 60000",
"test:mocha": "mocha \"dist/**/*.tests.js\" --exit -r node_modules/@fluidframework/mocha-test-setup --unhandled-rejections=strict",
"test:mocha:verbose": "cross-env FLUID_TEST_VERBOSE=1 npm run test:mocha",
"test:stress": "cross-env FUZZ_TEST_COUNT=10 FUZZ_STRESS_RUN=true npm run test:mocha",
Expand All @@ -56,7 +57,7 @@
},
"devDependencies": {
"@fluid-internal/stochastic-test-utils": ">=2.0.0-internal.1.1.0 <2.0.0-internal.2.0.0",
"@fluid-tools/benchmark": "^0.40.0",
"@fluid-tools/benchmark": "^0.42.0",
"@fluidframework/build-common": "^0.24.0",
"@fluidframework/container-loader": ">=2.0.0-internal.1.1.0 <2.0.0-internal.2.0.0",
"@fluidframework/container-runtime": ">=2.0.0-internal.1.1.0 <2.0.0-internal.2.0.0",
Expand Down
1,695 changes: 721 additions & 974 deletions lerna-package-lock.json

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,8 @@
"stop:docker:full": "docker-compose -f server/docker-compose.yml down && docker volume prune --force",
"test": "npm run test:mocha && npm run test:jest && npm run test:types && npm run test:realsvc",
"test:bail": "npm run test:mocha:bail && npm run test:jest:bail",
"test:benchmark:copyresults": "copyfiles --exclude \"**/node_modules/**\" \"**/benchmarkOutput/**\" benchmarkOutput",
"test:benchmark:report": "lerna run test:benchmark:report --stream --no-bail --no-sort -- -- --reporterOptions reportDir=./benchmarkOutput",
"test:copyresults": "copyfiles --exclude \"**/node_modules/**\" \"**/nyc/**\" nyc",
"test:coverage": "c8 npm run test:report",
"test:fromroot": "mocha \"packages/**/dist/test/**/*.spec.js\" --exit",
Expand Down
3 changes: 2 additions & 1 deletion packages/dds/tree/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
"lint": "npm run eslint",
"lint:fix": "npm run eslint:fix",
"test": "npm run test:mocha",
"test:benchmark:report": "mocha \"dist/**/*.bench.js\" --node-option unhandled-rejections=strict,expose-gc --exit --perfMode --fgrep @Benchmark -r @fluidframework/mocha-test-setup --reporter @fluid-tools/benchmark/dist/MochaReporter.js --timeout 60000",
"test:coverage": "nyc npm test -- --reporter xunit --reporter-option output=nyc/junit-report.xml",
"test:mocha": "mocha --recursive dist/test --exit -r node_modules/@fluidframework/mocha-test-setup -r source-map-support/register --unhandled-rejections=strict",
"test:mocha:verbose": "cross-env FLUID_TEST_VERBOSE=1 npm run test:mocha",
Expand Down Expand Up @@ -74,7 +75,7 @@
},
"devDependencies": {
"@fluid-internal/stochastic-test-utils": ">=2.0.0-internal.1.1.0 <2.0.0-internal.2.0.0",
"@fluid-tools/benchmark": "^0.40.0",
"@fluid-tools/benchmark": "^0.42.0",
"@fluidframework/build-common": "^0.24.0",
"@fluidframework/build-tools": "^0.3.1000",
"@fluidframework/common-definitions": "^0.20.1",
Expand Down
2 changes: 1 addition & 1 deletion packages/test/stochastic-test-utils/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@
"best-random": "^1.0.0"
},
"devDependencies": {
"@fluid-tools/benchmark": "^0.40.0",
"@fluid-tools/benchmark": "^0.42.0",
tyler-cai-microsoft marked this conversation as resolved.
Show resolved Hide resolved
"@fluidframework/build-common": "^0.24.0",
"@fluidframework/eslint-config-fluid": "^0.28.2000",
"@fluidframework/mocha-test-setup": ">=2.0.0-internal.1.1.0 <2.0.0-internal.2.0.0",
Expand Down
17 changes: 17 additions & 0 deletions tools/perf-test-processing/.eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
/*!
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
* Licensed under the MIT License.
*/

module.exports = {
"extends": [
require.resolve("@fluidframework/eslint-config-fluid")
],
"parserOptions": {
project: ["./tsconfig.json"],
},
"rules": {
"@typescript-eslint/ban-ts-comment": "off",
"@typescript-eslint/no-non-null-assertion": "off",
}
};
21 changes: 21 additions & 0 deletions tools/perf-test-processing/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
Copyright (c) Microsoft Corporation and contributors. All rights reserved.

MIT License

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
20 changes: 20 additions & 0 deletions tools/perf-test-processing/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# @fluid-tools/perf-test-processing

Internal tool to process the output of our performance benchmark tests and write relevant metrics to our monitoring
systems.

## Running locally

Install dependencies and build the project:

```bash
npm i
npm run build
```

Run the tool, passing as arguments one or more folders that contain performance test output files generated by
the `@fluid-tools/benchmark` tool, when called with the appropriate options to generate output JSON files. E.g.:

```bash
node dist/index.js '/workspaces/FluidFramework/experimental/dds/tree/benchOutput' '/workspaces/FluidFramework/packages/dds/tree/benchOutput'
```
Loading