├── dashboard ├── public │ ├── _redirects │ ├── assets │ │ ├── preview.jpg │ │ ├── transparent.png │ │ ├── icons │ │ │ ├── glass │ │ │ │ ├── windows.png │ │ │ │ ├── Ubuntu-Logo.png │ │ │ │ ├── ic_glass_bag.png │ │ │ │ ├── ic_glass_buy.png │ │ │ │ ├── ic_glass_users.png │ │ │ │ └── ic_glass_message.png │ │ │ ├── shape-avatar.svg │ │ │ ├── ic_flag_fr.svg │ │ │ ├── navbar │ │ │ │ ├── ic_disabled.svg │ │ │ │ ├── ic_user.svg │ │ │ │ ├── ic_blog.svg │ │ │ │ ├── ic_lock.svg │ │ │ │ ├── ic_cart.svg │ │ │ │ └── ic_analytics.svg │ │ │ ├── ic_flag_en.svg │ │ │ ├── ic_flag_de.svg │ │ │ ├── ic_notification_mail.svg │ │ │ ├── ic_notification_shipping.svg │ │ │ ├── ic_notification_chat.svg │ │ │ └── ic_notification_package.svg │ │ ├── background │ │ │ ├── overlay_2.jpg │ │ │ ├── overlay_3.jpg │ │ │ ├── overlay_4.jpg │ │ │ └── overlay_1.svg │ │ ├── images │ │ │ ├── covers │ │ │ │ ├── cover_1.jpg │ │ │ │ ├── cover_10.jpg │ │ │ │ ├── cover_11.jpg │ │ │ │ ├── cover_12.jpg │ │ │ │ ├── cover_13.jpg │ │ │ │ ├── cover_14.jpg │ │ │ │ ├── cover_15.jpg │ │ │ │ ├── cover_16.jpg │ │ │ │ ├── cover_17.jpg │ │ │ │ ├── cover_18.jpg │ │ │ │ ├── cover_19.jpg │ │ │ │ ├── cover_2.jpg │ │ │ │ ├── cover_20.jpg │ │ │ │ ├── cover_21.jpg │ │ │ │ ├── cover_22.jpg │ │ │ │ ├── cover_23.jpg │ │ │ │ ├── cover_24.jpg │ │ │ │ ├── cover_3.jpg │ │ │ │ ├── cover_4.jpg │ │ │ │ ├── cover_5.jpg │ │ │ │ ├── cover_6.jpg │ │ │ │ ├── cover_7.jpg │ │ │ │ ├── cover_8.jpg │ │ │ │ └── cover_9.jpg │ │ │ ├── avatars │ │ │ │ ├── avatar_1.jpg │ │ │ │ ├── avatar_10.jpg │ │ │ │ ├── avatar_11.jpg │ │ │ │ ├── avatar_12.jpg │ │ │ │ ├── avatar_13.jpg │ │ │ │ ├── avatar_14.jpg │ │ │ │ ├── avatar_15.jpg │ │ │ │ ├── avatar_16.jpg │ │ │ │ ├── avatar_17.jpg │ │ │ │ ├── avatar_18.jpg │ │ │ │ ├── avatar_19.jpg │ │ │ │ ├── avatar_2.jpg │ │ │ │ ├── avatar_20.jpg │ │ │ │ ├── avatar_21.jpg │ │ │ │ ├── avatar_22.jpg │ │ │ │ ├── avatar_23.jpg │ │ │ │ ├── avatar_24.jpg │ │ │ │ ├── avatar_25.jpg │ │ │ │ ├── avatar_3.jpg │ │ │ │ ├── avatar_4.jpg │ │ │ │ ├── avatar_5.jpg │ │ │ │ ├── avatar_6.jpg │ │ │ │ ├── avatar_7.jpg │ │ │ │ ├── avatar_8.jpg │ │ │ │ └── avatar_9.jpg │ │ │ └── products │ │ │ │ ├── product_1.jpg │ │ │ │ ├── product_10.jpg │ │ │ │ ├── product_11.jpg │ │ │ │ ├── product_12.jpg │ │ │ │ ├── product_13.jpg │ │ │ │ ├── product_14.jpg │ │ │ │ ├── product_15.jpg │ │ │ │ ├── product_16.jpg │ │ │ │ ├── product_17.jpg │ │ │ │ ├── product_18.jpg │ │ │ │ ├── product_19.jpg │ │ │ │ ├── product_2.jpg │ │ │ │ ├── product_20.jpg │ │ │ │ ├── product_21.jpg │ │ │ │ ├── product_22.jpg │ │ │ │ ├── product_23.jpg │ │ │ │ ├── product_24.jpg │ │ │ │ ├── product_3.jpg │ │ │ │ ├── product_4.jpg │ │ │ │ ├── product_5.jpg │ │ │ │ ├── product_6.jpg │ │ │ │ ├── product_7.jpg │ │ │ │ ├── product_8.jpg │ │ │ │ └── product_9.jpg │ │ ├── illustrations │ │ │ ├── illustration_login.png │ │ │ └── illustration_avatar.png │ │ ├── placeholder.svg │ │ └── logo.svg │ ├── favicon │ │ ├── favicon.ico │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── apple-touch-icon.png │ │ ├── android-chrome-192x192.png │ │ └── android-chrome-512x512.png │ └── manifest.json ├── src │ ├── layouts │ │ └── dashboard │ │ │ ├── common │ │ │ ├── account-popover.jsx │ │ │ ├── language-popover.jsx │ │ │ └── searchbar.jsx │ │ │ ├── config-layout.js │ │ │ ├── index.jsx │ │ │ ├── main.jsx │ │ │ ├── config-navigation.jsx │ │ │ └── header.jsx │ ├── components │ │ ├── label │ │ │ ├── index.js │ │ │ ├── label.jsx │ │ │ └── styles.js │ │ ├── logo │ │ │ ├── index.js │ │ │ └── logo.jsx │ │ ├── iconify │ │ │ ├── index.js │ │ │ └── iconify.jsx │ │ ├── scrollbar │ │ │ ├── index.js │ │ │ ├── styles.js │ │ │ └── scrollbar.jsx │ │ ├── svg-color │ │ │ ├── index.js │ │ │ └── svg-color.jsx │ │ ├── color-utils │ │ │ ├── index.js │ │ │ └── color-preview.jsx │ │ └── chart │ │ │ ├── index.js │ │ │ └── chart.js │ ├── sections │ │ ├── overview │ │ │ ├── view │ │ │ │ └── index.js │ │ │ ├── graphing │ │ │ │ ├── index.js │ │ │ │ └── graph-view.jsx │ │ │ ├── app-widget-summary.jsx │ │ │ └── app-website-visits.jsx │ │ └── error │ │ │ ├── index.js │ │ │ └── not-found-view.jsx │ ├── routes │ │ ├── components │ │ │ ├── index.js │ │ │ └── router-link.jsx │ │ ├── hooks │ │ │ ├── index.js │ │ │ ├── use-pathname.js │ │ │ └── use-router.js │ │ └── sections.jsx │ ├── _mock │ │ ├── account.js │ │ ├── user.js │ │ ├── blog.js │ │ └── products.js │ ├── hooks │ │ ├── use-scroll-to-top.js │ │ ├── use-db.js │ │ ├── use-fetch-data.js │ │ ├── use-responsive.js │ │ └── use-sql-lite.js │ ├── pages │ │ ├── app.jsx │ │ ├── page-not-found.jsx │ │ └── detailed.jsx │ ├── app.jsx │ ├── main.jsx │ ├── utils │ │ ├── sku.js │ │ ├── format-time.js │ │ ├── common.js │ │ └── format-number.js │ ├── global.css │ └── theme │ │ ├── index.jsx │ │ ├── custom-shadows.js │ │ ├── palette.js │ │ ├── typography.js │ │ └── shadows.js ├── .vite │ └── deps │ │ ├── package.json │ │ └── _metadata.json ├── jsconfig.json ├── example.sqlite ├── vercel.json ├── README.md ├── .gitignore ├── vite.config.mjs ├── LICENSE.md ├── wasm_worker.js ├── index.html ├── CHANGELOG.md └── package.json ├── netperf-1es-syncer ├── .gitignore ├── package.json └── app.js ├── docs ├── internal │ ├── arch.png │ ├── netperf-arch.png │ ├── runner-table.png │ └── 1es-p2p-communication.md ├── archive │ ├── stateless-lab-vms-image.jpg │ ├── detailed-onboarding-instructions.md │ ├── api-interface-schema.md │ ├── regression.md │ ├── next-steps.md │ └── devdocs.md ├── lab_consumption.md ├── start_here.md ├── arch.md ├── onboard.md ├── secnetperf.md └── lab_management.md ├── setup-host.ps1 ├── .github ├── workflows │ ├── ebpf_matrix.json │ ├── set-regression-bounds.yml │ ├── check_syntax.py │ ├── quic_matrix.json │ ├── remove-azure-machine.ps1 │ ├── schedule-lab-reset.yml │ ├── tcpip.wprp │ ├── main_netperfapi.yml │ ├── reset-child-machine.yml │ ├── prepare-matrix.yml │ ├── update-react.yml │ ├── create-azure-vms.yml │ ├── xdp.yml │ ├── ebpf_linux.yml │ └── cleanup-azure-vms.yml ├── dependabot.yml ├── CODE_OF_CONDUCT.md ├── actions │ ├── run-general-pwsh-cmd │ │ └── action.yml │ ├── stop-lab-machine │ │ └── action.yml │ ├── download-caller-artifacts │ │ └── action.yml │ ├── stop-1es-machine │ │ └── action.yml │ ├── prepare-1es-machine │ │ └── action.yml │ └── run-test-script │ │ └── action.yml ├── SUPPORT.md └── SECURITY.md ├── LICENSE ├── set-netperf-context.ps1 └── README.md /dashboard/public/_redirects: -------------------------------------------------------------------------------- 1 | /* /index.html 200 -------------------------------------------------------------------------------- /netperf-1es-syncer/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .env -------------------------------------------------------------------------------- /dashboard/src/layouts/dashboard/common/account-popover.jsx: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dashboard/.vite/deps/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "module" 3 | } 4 | -------------------------------------------------------------------------------- /dashboard/src/components/label/index.js: -------------------------------------------------------------------------------- 1 | export { default } from './label'; 2 | -------------------------------------------------------------------------------- /dashboard/src/components/logo/index.js: -------------------------------------------------------------------------------- 1 | export { default } from './logo'; 2 | -------------------------------------------------------------------------------- /dashboard/src/components/iconify/index.js: -------------------------------------------------------------------------------- 1 | export { default } from './iconify'; 2 | -------------------------------------------------------------------------------- /dashboard/src/components/scrollbar/index.js: -------------------------------------------------------------------------------- 1 | export { default } from './scrollbar'; 2 | -------------------------------------------------------------------------------- /dashboard/src/components/svg-color/index.js: -------------------------------------------------------------------------------- 1 | export { default } from './svg-color'; 2 | -------------------------------------------------------------------------------- /dashboard/jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": "." 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /dashboard/src/sections/overview/view/index.js: -------------------------------------------------------------------------------- 1 | export { default as AppView } from './app-view'; 2 | -------------------------------------------------------------------------------- /docs/internal/arch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/docs/internal/arch.png -------------------------------------------------------------------------------- /dashboard/example.sqlite: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/example.sqlite -------------------------------------------------------------------------------- /dashboard/src/routes/components/index.js: -------------------------------------------------------------------------------- 1 | export { default as RouterLink } from './router-link'; 2 | -------------------------------------------------------------------------------- /dashboard/src/sections/error/index.js: -------------------------------------------------------------------------------- 1 | export { default as NotFoundView } from './not-found-view'; 2 | -------------------------------------------------------------------------------- /dashboard/src/sections/overview/graphing/index.js: -------------------------------------------------------------------------------- 1 | export { default as GraphView } from './graph-view'; 2 | -------------------------------------------------------------------------------- /docs/internal/netperf-arch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/docs/internal/netperf-arch.png -------------------------------------------------------------------------------- /docs/internal/runner-table.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/docs/internal/runner-table.png -------------------------------------------------------------------------------- /dashboard/public/assets/preview.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/preview.jpg -------------------------------------------------------------------------------- /dashboard/public/favicon/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/favicon/favicon.ico -------------------------------------------------------------------------------- /dashboard/public/assets/transparent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/transparent.png -------------------------------------------------------------------------------- /dashboard/src/routes/hooks/index.js: -------------------------------------------------------------------------------- 1 | export { useRouter } from './use-router'; 2 | export { usePathname } from './use-pathname'; 3 | -------------------------------------------------------------------------------- /docs/archive/stateless-lab-vms-image.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/docs/archive/stateless-lab-vms-image.jpg -------------------------------------------------------------------------------- /dashboard/public/favicon/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/favicon/favicon-16x16.png -------------------------------------------------------------------------------- /dashboard/public/favicon/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/favicon/favicon-32x32.png -------------------------------------------------------------------------------- /setup-host.ps1: -------------------------------------------------------------------------------- 1 | # Set the active power plan to "High performance" 2 | powercfg.exe /setactive "8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c" 3 | -------------------------------------------------------------------------------- /dashboard/public/favicon/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/favicon/apple-touch-icon.png -------------------------------------------------------------------------------- /dashboard/vercel.json: -------------------------------------------------------------------------------- 1 | { 2 | "rewrites": [ 3 | { 4 | "source": "/(.*)", 5 | "destination": "/" 6 | } 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /dashboard/public/assets/icons/glass/windows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/icons/glass/windows.png -------------------------------------------------------------------------------- /dashboard/public/assets/background/overlay_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/background/overlay_2.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/background/overlay_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/background/overlay_3.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/background/overlay_4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/background/overlay_4.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/covers/cover_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/covers/cover_1.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/covers/cover_10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/covers/cover_10.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/covers/cover_11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/covers/cover_11.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/covers/cover_12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/covers/cover_12.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/covers/cover_13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/covers/cover_13.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/covers/cover_14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/covers/cover_14.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/covers/cover_15.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/covers/cover_15.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/covers/cover_16.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/covers/cover_16.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/covers/cover_17.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/covers/cover_17.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/covers/cover_18.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/covers/cover_18.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/covers/cover_19.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/covers/cover_19.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/covers/cover_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/covers/cover_2.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/covers/cover_20.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/covers/cover_20.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/covers/cover_21.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/covers/cover_21.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/covers/cover_22.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/covers/cover_22.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/covers/cover_23.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/covers/cover_23.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/covers/cover_24.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/covers/cover_24.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/covers/cover_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/covers/cover_3.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/covers/cover_4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/covers/cover_4.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/covers/cover_5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/covers/cover_5.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/covers/cover_6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/covers/cover_6.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/covers/cover_7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/covers/cover_7.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/covers/cover_8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/covers/cover_8.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/covers/cover_9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/covers/cover_9.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/icons/glass/Ubuntu-Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/icons/glass/Ubuntu-Logo.png -------------------------------------------------------------------------------- /dashboard/public/assets/icons/glass/ic_glass_bag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/icons/glass/ic_glass_bag.png -------------------------------------------------------------------------------- /dashboard/public/assets/icons/glass/ic_glass_buy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/icons/glass/ic_glass_buy.png -------------------------------------------------------------------------------- /dashboard/public/assets/images/avatars/avatar_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/avatars/avatar_1.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/avatars/avatar_10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/avatars/avatar_10.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/avatars/avatar_11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/avatars/avatar_11.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/avatars/avatar_12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/avatars/avatar_12.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/avatars/avatar_13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/avatars/avatar_13.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/avatars/avatar_14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/avatars/avatar_14.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/avatars/avatar_15.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/avatars/avatar_15.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/avatars/avatar_16.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/avatars/avatar_16.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/avatars/avatar_17.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/avatars/avatar_17.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/avatars/avatar_18.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/avatars/avatar_18.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/avatars/avatar_19.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/avatars/avatar_19.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/avatars/avatar_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/avatars/avatar_2.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/avatars/avatar_20.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/avatars/avatar_20.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/avatars/avatar_21.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/avatars/avatar_21.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/avatars/avatar_22.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/avatars/avatar_22.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/avatars/avatar_23.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/avatars/avatar_23.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/avatars/avatar_24.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/avatars/avatar_24.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/avatars/avatar_25.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/avatars/avatar_25.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/avatars/avatar_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/avatars/avatar_3.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/avatars/avatar_4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/avatars/avatar_4.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/avatars/avatar_5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/avatars/avatar_5.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/avatars/avatar_6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/avatars/avatar_6.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/avatars/avatar_7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/avatars/avatar_7.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/avatars/avatar_8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/avatars/avatar_8.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/avatars/avatar_9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/avatars/avatar_9.jpg -------------------------------------------------------------------------------- /dashboard/public/favicon/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/favicon/android-chrome-192x192.png -------------------------------------------------------------------------------- /dashboard/public/favicon/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/favicon/android-chrome-512x512.png -------------------------------------------------------------------------------- /dashboard/public/assets/icons/glass/ic_glass_users.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/icons/glass/ic_glass_users.png -------------------------------------------------------------------------------- /dashboard/public/assets/images/products/product_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/products/product_1.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/products/product_10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/products/product_10.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/products/product_11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/products/product_11.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/products/product_12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/products/product_12.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/products/product_13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/products/product_13.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/products/product_14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/products/product_14.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/products/product_15.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/products/product_15.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/products/product_16.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/products/product_16.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/products/product_17.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/products/product_17.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/products/product_18.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/products/product_18.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/products/product_19.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/products/product_19.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/products/product_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/products/product_2.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/products/product_20.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/products/product_20.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/products/product_21.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/products/product_21.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/products/product_22.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/products/product_22.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/products/product_23.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/products/product_23.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/products/product_24.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/products/product_24.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/products/product_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/products/product_3.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/products/product_4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/products/product_4.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/products/product_5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/products/product_5.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/products/product_6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/products/product_6.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/products/product_7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/products/product_7.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/products/product_8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/products/product_8.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/images/products/product_9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/images/products/product_9.jpg -------------------------------------------------------------------------------- /dashboard/public/assets/icons/glass/ic_glass_message.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/icons/glass/ic_glass_message.png -------------------------------------------------------------------------------- /dashboard/public/assets/illustrations/illustration_login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/illustrations/illustration_login.png -------------------------------------------------------------------------------- /dashboard/src/components/color-utils/index.js: -------------------------------------------------------------------------------- 1 | export { default as ColorPicker } from './color-picker'; 2 | export { default as ColorPreview } from './color-preview'; 3 | -------------------------------------------------------------------------------- /.github/workflows/ebpf_matrix.json: -------------------------------------------------------------------------------- 1 | [ 2 | { "env": "azure", "os": "windows-2022", "arch": "x64" }, 3 | { "env": "lab", "os": "windows-2022", "arch": "x64" } 4 | ] 5 | -------------------------------------------------------------------------------- /dashboard/public/assets/illustrations/illustration_avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/netperf/HEAD/dashboard/public/assets/illustrations/illustration_avatar.png -------------------------------------------------------------------------------- /dashboard/.vite/deps/_metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "hash": "7932a754", 3 | "configHash": "528c051e", 4 | "lockfileHash": "e3b0c442", 5 | "browserHash": "3c278aeb", 6 | "optimized": {}, 7 | "chunks": {} 8 | } -------------------------------------------------------------------------------- /dashboard/src/components/chart/index.js: -------------------------------------------------------------------------------- 1 | // ---------------------------------------------------------------------- 2 | 3 | export { default } from './chart'; 4 | 5 | export { default as useChart } from './use-chart'; 6 | -------------------------------------------------------------------------------- /dashboard/src/_mock/account.js: -------------------------------------------------------------------------------- 1 | // ---------------------------------------------------------------------- 2 | 3 | export const account = { 4 | displayName: 'Jaydon Frankie', 5 | email: 'demo@minimals.cc', 6 | photoURL: '/assets/images/avatars/avatar_25.jpg', 7 | }; 8 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: github-actions 4 | directory: / 5 | schedule: 6 | interval: daily 7 | 8 | - package-ecosystem: npm 9 | directory: /dashboard 10 | schedule: 11 | interval: daily 12 | -------------------------------------------------------------------------------- /dashboard/src/layouts/dashboard/config-layout.js: -------------------------------------------------------------------------------- 1 | // ---------------------------------------------------------------------- 2 | 3 | export const HEADER = { 4 | H_MOBILE: 64, 5 | H_DESKTOP: 80, 6 | H_DESKTOP_OFFSET: 80 - 16, 7 | }; 8 | 9 | export const NAV = { 10 | WIDTH: 280, 11 | }; 12 | -------------------------------------------------------------------------------- /dashboard/public/assets/icons/shape-avatar.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dashboard/src/routes/hooks/use-pathname.js: -------------------------------------------------------------------------------- 1 | import { useMemo } from 'react'; 2 | import { useLocation } from 'react-router-dom'; 3 | 4 | // ---------------------------------------------------------------------- 5 | 6 | export function usePathname() { 7 | const { pathname } = useLocation(); 8 | 9 | return useMemo(() => pathname, [pathname]); 10 | } 11 | -------------------------------------------------------------------------------- /dashboard/src/hooks/use-scroll-to-top.js: -------------------------------------------------------------------------------- 1 | import { useEffect } from 'react'; 2 | import { useLocation } from 'react-router-dom'; 3 | 4 | // ---------------------------------------------------------------------- 5 | 6 | export function useScrollToTop() { 7 | const { pathname } = useLocation(); 8 | 9 | useEffect(() => { 10 | window.scrollTo(0, 0); 11 | }, [pathname]); 12 | 13 | return null; 14 | } 15 | -------------------------------------------------------------------------------- /dashboard/src/pages/app.jsx: -------------------------------------------------------------------------------- 1 | import { Helmet } from 'react-helmet-async'; 2 | 3 | import { AppView } from 'src/sections/overview/view'; 4 | 5 | // ---------------------------------------------------------------------- 6 | 7 | export default function AppPage() { 8 | return ( 9 | <> 10 | 11 | Netperf 12 | 13 | 14 | 15 | 16 | ); 17 | } 18 | -------------------------------------------------------------------------------- /dashboard/README.md: -------------------------------------------------------------------------------- 1 | ## Quick Start 2 | 3 | Make sure you install Node.js on your system. 4 | 5 | - cd /dashboard 6 | - npm i 7 | - npm run dev (starts local server) 8 | 9 | ## Building for production: 10 | - npm run build 11 | - This will automatically configure everything to assume the root url is `netperf/dist` instead of `/`, for the sake of Github Pages. 12 | - A /dist folder will appear that contains the raw HTML, JS, CSS... etc. 13 | -------------------------------------------------------------------------------- /dashboard/public/assets/placeholder.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dashboard/src/pages/page-not-found.jsx: -------------------------------------------------------------------------------- 1 | import { Helmet } from 'react-helmet-async'; 2 | 3 | import { NotFoundView } from 'src/sections/error'; 4 | 5 | // ---------------------------------------------------------------------- 6 | 7 | export default function NotFoundPage() { 8 | return ( 9 | <> 10 | 11 | 404 Page Not Found 12 | 13 | 14 | 15 | 16 | ); 17 | } 18 | -------------------------------------------------------------------------------- /dashboard/src/routes/components/router-link.jsx: -------------------------------------------------------------------------------- 1 | import PropTypes from 'prop-types'; 2 | import { forwardRef } from 'react'; 3 | import { Link } from 'react-router-dom'; 4 | 5 | // ---------------------------------------------------------------------- 6 | 7 | const RouterLink = forwardRef(({ href, ...other }, ref) => ); 8 | 9 | RouterLink.propTypes = { 10 | href: PropTypes.string, 11 | }; 12 | 13 | export default RouterLink; 14 | -------------------------------------------------------------------------------- /dashboard/public/assets/icons/ic_flag_fr.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.github/CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Microsoft Open Source Code of Conduct 2 | 3 | This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). 4 | 5 | Resources: 6 | 7 | - [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/) 8 | - [Microsoft Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) 9 | - Contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with questions or concerns 10 | -------------------------------------------------------------------------------- /dashboard/src/hooks/use-db.js: -------------------------------------------------------------------------------- 1 | import initSqlJs from 'sql.js' 2 | 3 | const sqlPromise = initSqlJs({ 4 | locateFile: file => `https://cdnjs.cloudflare.com/ajax/libs/sql.js/1.9.0/${file}` 5 | }); 6 | 7 | const dataPromise = fetch("http://localhost:3030/netperf/dist/example.sqlite").then(res => res.arrayBuffer()); // TODO: replace this with netperf/sqlite URL. 8 | const [SQL, buf] = await Promise.all([sqlPromise, dataPromise]) 9 | const db = new SQL.Database(new Uint8Array(buf)); 10 | 11 | export default db -------------------------------------------------------------------------------- /netperf-1es-syncer/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "netperf", 3 | "version": "1.0.0", 4 | "description": "1es synchronizer", 5 | "main": "app.js", 6 | "scripts": { 7 | "test": "echo \"No tests. Ignoring.\"", 8 | "start": "node app.js" 9 | }, 10 | "dependencies": { 11 | "dotenv": "^16.4.5", 12 | "express": "^4.21.2", 13 | "validator": "13.15.22" 14 | }, 15 | "author": "Jack He", 16 | "license": "ISC", 17 | "engines": { 18 | "node": ">=8.0.0" 19 | }, 20 | "type": "module" 21 | } 22 | -------------------------------------------------------------------------------- /.github/workflows/set-regression-bounds.yml: -------------------------------------------------------------------------------- 1 | name: Set Regression Bounds 2 | 3 | on: 4 | workflow_dispatch: 5 | push: 6 | branches: 7 | - sqlite 8 | 9 | jobs: 10 | set-regression-bounds: 11 | name: Set Regression Bounds 12 | runs-on: ubuntu-latest 13 | steps: 14 | - name: Checkout netperf repo 15 | uses: actions/checkout@v4 16 | with: 17 | repository: microsoft/netperf 18 | ref: sqlite 19 | - name: Calculate regression bounds 20 | run: python regression.py 21 | -------------------------------------------------------------------------------- /dashboard/public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "Minimal App", 3 | "name": "React Material Minimal UI Kit", 4 | "icons": [ 5 | { 6 | "src": "favicon/android-chrome-192x192.png", 7 | "sizes": "192x192", 8 | "type": "image/png" 9 | }, 10 | { 11 | "src": "favicon/android-chrome-512x512.png", 12 | "sizes": "512x512", 13 | "type": "image/png" 14 | } 15 | ], 16 | "start_url": ".", 17 | "display": "standalone", 18 | "theme_color": "#000000", 19 | "background_color": "#ffffff" 20 | } 21 | -------------------------------------------------------------------------------- /dashboard/src/app.jsx: -------------------------------------------------------------------------------- 1 | /* eslint-disable perfectionist/sort-imports */ 2 | /* eslint-disable react-hooks/exhaustive-deps */ 3 | import 'src/global.css'; 4 | 5 | import { useScrollToTop } from 'src/hooks/use-scroll-to-top'; 6 | import Router from 'src/routes/sections'; 7 | import ThemeProvider from 'src/theme'; 8 | 9 | // ---------------------------------------------------------------------- 10 | 11 | export default function App() { 12 | useScrollToTop(); 13 | 14 | return ( 15 | 16 | 17 | 18 | ); 19 | } 20 | -------------------------------------------------------------------------------- /docs/archive/detailed-onboarding-instructions.md: -------------------------------------------------------------------------------- 1 | 2 | ## Lab Testing Setup 3 | 4 | ![Netperf Architecture](./stateless-lab-vms-image.jpg) 5 | 6 | ### Lab Perf Testing Onboarding instructions For (MsQuic / XDP / eBPF / ...) 7 | 8 | *ebpf.yml* 9 | ```yaml 10 | TODO 11 | ``` 12 | 13 | [*more context*](./adding-tests.md) 14 | 15 | ## Azure Testing Setup 16 | 17 | 18 | ![Netperf Architecture](./netperf-arch.png) 19 | 20 | ### Azure Perf Testing Onboarding instructions For (MsQuic / XDP / eBPF / ...) 21 | 22 | *ebpf.yml* 23 | ```yaml 24 | TODO 25 | ``` 26 | 27 | [*more context*](./adding-tests.md) -------------------------------------------------------------------------------- /dashboard/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | node_modules 5 | .pnp 6 | .pnp.js 7 | 8 | # testing 9 | coverage 10 | 11 | # production 12 | .next 13 | .swc 14 | _static 15 | out 16 | dist 17 | build 18 | 19 | # environment variables 20 | .env 21 | .env.local 22 | .env.development.local 23 | .env.test.local 24 | .env.production.local 25 | 26 | # misc 27 | .DS_Store 28 | .vercel 29 | .netlify 30 | .unimportedrc.json 31 | tsconfig.tsbuildinfo 32 | .vscode 33 | 34 | npm-debug.log* 35 | yarn-debug.log* 36 | yarn-error.log* 37 | -------------------------------------------------------------------------------- /dashboard/public/assets/background/overlay_1.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dashboard/src/main.jsx: -------------------------------------------------------------------------------- 1 | import { Suspense } from 'react'; 2 | import ReactDOM from 'react-dom/client'; 3 | import { BrowserRouter } from 'react-router-dom'; 4 | import { HelmetProvider } from 'react-helmet-async'; 5 | 6 | import App from './app'; 7 | 8 | // ---------------------------------------------------------------------- 9 | 10 | const root = ReactDOM.createRoot(document.getElementById('root')); 11 | 12 | root.render( 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | ); 21 | -------------------------------------------------------------------------------- /.github/workflows/check_syntax.py: -------------------------------------------------------------------------------- 1 | import yaml 2 | import sys 3 | 4 | def check_yaml_syntax(file_path): 5 | try: 6 | with open(file_path, 'r') as file: 7 | yaml.safe_load(file) 8 | print(f"YAML syntax is valid for file: {file_path}") 9 | except yaml.YAMLError as e: 10 | print(f"YAML syntax error in file: {file_path}\n{e}") 11 | 12 | if __name__ == "__main__": 13 | if len(sys.argv) != 2: 14 | print("Usage: python check_yaml_syntax.py ") 15 | sys.exit(1) 16 | 17 | yaml_file_path = sys.argv[1] 18 | check_yaml_syntax(yaml_file_path) 19 | -------------------------------------------------------------------------------- /dashboard/src/utils/sku.js: -------------------------------------------------------------------------------- 1 | export default function getLatestSkuInformation(context, os, test_metadata) { 2 | // Check if the key "SKU" exists in the test_metadata object 3 | if (Object.prototype.hasOwnProperty.call(test_metadata, "SKU")) { 4 | return test_metadata.SKU; 5 | } 6 | console.log("SKU not found in test_metadata, generating SKU based on context and OS"); 7 | let sku = ""; 8 | if (context === "azure") { 9 | sku = "Experimental_Boost4(4vCPU, 8GiB RAM)" 10 | } else { 11 | sku = "Dell PowerEdge R650 (80 logical CPUs, 128GB RAM)" 12 | } 13 | return sku; 14 | } 15 | -------------------------------------------------------------------------------- /docs/archive/api-interface-schema.md: -------------------------------------------------------------------------------- 1 | # Api interface schema 2 | 3 | ## What is this? 4 | 5 | - How we store the performance data, and query subsets of performance tests to run. 6 | 7 | ## Storage approach: 8 | 9 | - We leverage Sqlite and version it with Github Artifacts (good for 90 days). The database itself is stored as a .sqlite file, in the sqlite branch. 10 | - Each time we make an update to the database, we make a new git commit to the sqlite branch with the updated file, and overwrite its history. 11 | 12 | ## Sqlite Schema: 13 | 14 | [ image in sqlite studio ] 15 | 16 | 17 | ## Netperf API: 18 | 19 | TBD. 20 | -------------------------------------------------------------------------------- /dashboard/src/routes/hooks/use-router.js: -------------------------------------------------------------------------------- 1 | import { useMemo } from 'react'; 2 | import { useNavigate } from 'react-router-dom'; 3 | 4 | // ---------------------------------------------------------------------- 5 | 6 | export function useRouter() { 7 | const navigate = useNavigate(); 8 | 9 | const router = useMemo( 10 | () => ({ 11 | back: () => navigate(-1), 12 | forward: () => navigate(1), 13 | reload: () => window.location.reload(), 14 | push: (href) => navigate(href), 15 | replace: (href) => navigate(href, { replace: true }), 16 | }), 17 | [navigate] 18 | ); 19 | 20 | return router; 21 | } 22 | -------------------------------------------------------------------------------- /dashboard/src/global.css: -------------------------------------------------------------------------------- 1 | /* scrollbar */ 2 | @import 'simplebar-react/dist/simplebar.min.css'; 3 | 4 | /* Spinner Styles */ 5 | .spinner { 6 | border: 4px solid rgba(0, 0, 0, 0.1); 7 | width: 40px; 8 | height: 40px; 9 | border-radius: 50%; 10 | border-left-color: #09f; 11 | 12 | animation: spin 1s ease infinite; 13 | position: absolute; /* Positioning the spinner */ 14 | top: 50%; /* Center vertically */ 15 | left: 50%; /* Center horizontally */ 16 | transform: translate(-50%, -50%); /* Adjust the position correctly */ 17 | } 18 | 19 | @keyframes spin { 20 | 0% { 21 | transform: rotate(0deg); 22 | } 23 | 100% { 24 | transform: rotate(360deg); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /dashboard/public/assets/icons/navbar/ic_disabled.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /dashboard/src/components/scrollbar/styles.js: -------------------------------------------------------------------------------- 1 | import SimpleBar from 'simplebar-react'; 2 | 3 | import { alpha, styled } from '@mui/material/styles'; 4 | 5 | // ---------------------------------------------------------------------- 6 | 7 | export const StyledRootScrollbar = styled('div')(() => ({ 8 | flexGrow: 1, 9 | height: '100%', 10 | overflow: 'hidden', 11 | })); 12 | 13 | export const StyledScrollbar = styled(SimpleBar)(({ theme }) => ({ 14 | maxHeight: '100%', 15 | '& .simplebar-scrollbar': { 16 | '&:before': { 17 | backgroundColor: alpha(theme.palette.grey[600], 0.48), 18 | }, 19 | '&.simplebar-visible:before': { 20 | opacity: 1, 21 | }, 22 | }, 23 | '& .simplebar-mask': { 24 | zIndex: 'inherit', 25 | }, 26 | })); 27 | -------------------------------------------------------------------------------- /dashboard/src/components/iconify/iconify.jsx: -------------------------------------------------------------------------------- 1 | import PropTypes from 'prop-types'; 2 | import { forwardRef } from 'react'; 3 | import { Icon } from '@iconify/react'; 4 | 5 | import Box from '@mui/material/Box'; 6 | 7 | // ---------------------------------------------------------------------- 8 | 9 | const Iconify = forwardRef(({ icon, width = 20, sx, ...other }, ref) => ( 10 | 18 | )); 19 | 20 | Iconify.propTypes = { 21 | icon: PropTypes.oneOfType([PropTypes.element, PropTypes.string]), 22 | sx: PropTypes.object, 23 | width: PropTypes.number, 24 | }; 25 | 26 | export default Iconify; 27 | -------------------------------------------------------------------------------- /dashboard/src/utils/format-time.js: -------------------------------------------------------------------------------- 1 | import { format, getTime, formatDistanceToNow } from 'date-fns'; 2 | 3 | // ---------------------------------------------------------------------- 4 | 5 | export function fDate(date, newFormat) { 6 | const fm = newFormat || 'dd MMM yyyy'; 7 | 8 | return date ? format(new Date(date), fm) : ''; 9 | } 10 | 11 | export function fDateTime(date, newFormat) { 12 | const fm = newFormat || 'dd MMM yyyy p'; 13 | 14 | return date ? format(new Date(date), fm) : ''; 15 | } 16 | 17 | export function fTimestamp(date) { 18 | return date ? getTime(new Date(date)) : ''; 19 | } 20 | 21 | export function fToNow(date) { 22 | return date 23 | ? formatDistanceToNow(new Date(date), { 24 | addSuffix: true, 25 | }) 26 | : ''; 27 | } 28 | -------------------------------------------------------------------------------- /dashboard/vite.config.mjs: -------------------------------------------------------------------------------- 1 | import path from 'path'; 2 | import { defineConfig } from 'vite'; 3 | import react from '@vitejs/plugin-react-swc'; 4 | import checker from 'vite-plugin-checker'; 5 | 6 | // ---------------------------------------------------------------------- 7 | 8 | export default defineConfig({ 9 | base: '/netperf/dist', 10 | plugins: [ 11 | react() 12 | ], 13 | resolve: { 14 | alias: [ 15 | { 16 | find: /^~(.+)/, 17 | replacement: path.join(process.cwd(), 'node_modules/$1'), 18 | }, 19 | { 20 | find: /^src(.+)/, 21 | replacement: path.join(process.cwd(), 'src/$1'), 22 | }, 23 | ], 24 | }, 25 | server: { 26 | port: 3030, 27 | }, 28 | preview: { 29 | port: 3030, 30 | }, 31 | }); 32 | -------------------------------------------------------------------------------- /dashboard/src/_mock/user.js: -------------------------------------------------------------------------------- 1 | import { sample } from 'lodash'; 2 | import { faker } from '@faker-js/faker'; 3 | 4 | // ---------------------------------------------------------------------- 5 | 6 | export const users = [...Array(24)].map((_, index) => ({ 7 | id: faker.string.uuid(), 8 | avatarUrl: `/assets/images/avatars/avatar_${index + 1}.jpg`, 9 | name: faker.person.fullName(), 10 | company: faker.company.name(), 11 | isVerified: faker.datatype.boolean(), 12 | status: sample(['active', 'banned']), 13 | role: sample([ 14 | 'Leader', 15 | 'Hr Manager', 16 | 'UI Designer', 17 | 'UX Designer', 18 | 'UI/UX Designer', 19 | 'Project Manager', 20 | 'Backend Developer', 21 | 'Full Stack Designer', 22 | 'Front End Developer', 23 | 'Full Stack Developer', 24 | ]), 25 | })); 26 | -------------------------------------------------------------------------------- /dashboard/src/components/svg-color/svg-color.jsx: -------------------------------------------------------------------------------- 1 | import PropTypes from 'prop-types'; 2 | import { forwardRef } from 'react'; 3 | 4 | import Box from '@mui/material/Box'; 5 | 6 | // ---------------------------------------------------------------------- 7 | 8 | const SvgColor = forwardRef(({ src, sx, ...other }, ref) => ( 9 | 24 | )); 25 | 26 | SvgColor.propTypes = { 27 | src: PropTypes.string, 28 | sx: PropTypes.object, 29 | }; 30 | 31 | export default SvgColor; 32 | -------------------------------------------------------------------------------- /dashboard/src/utils/common.js: -------------------------------------------------------------------------------- 1 | 2 | export default function accessData(envStr, data, newKey, oldKey) { 3 | const HISTORY_SIZE = 20; 4 | if (!(envStr in data)) { 5 | // alert(`Could not find ${envStr} in data`); 6 | console.error(`Could not find ${envStr} in data`); 7 | return []; 8 | } 9 | const envData = data[envStr]; 10 | let outputData = []; 11 | if (oldKey in envData) { 12 | outputData = envData[oldKey].data.slice().reverse(); 13 | } else { 14 | console.log("OLD KEY DOES NOT EXIST", oldKey); 15 | } 16 | if (newKey in envData) { 17 | outputData = outputData.concat(envData[newKey].data.slice().reverse()); 18 | } else { 19 | console.log("NEW KEY DOES NOT EXIST", newKey); 20 | } 21 | while (outputData.length > HISTORY_SIZE) { 22 | outputData.shift(); 23 | } 24 | return outputData; 25 | } 26 | -------------------------------------------------------------------------------- /docs/internal/1es-p2p-communication.md: -------------------------------------------------------------------------------- 1 | The 2 ways we facilitate peer-to-peer communication to administer 2-machine perf tests is through: 2 | 3 | ### 1. Remote Powershell 4 | ### 2. Shared Cache 5 | 6 | --- 7 | 8 | By default, we prefer remote powershell and use it for lab scenarios. 9 | 10 | For 1ES Azure scenarios, we found that remote powershell does not work in Linux environments, and lacks privilege in Windows - limiting behavior. Therefore, we opt for a shared remote cache approach to facilitate 2-machine testing. 11 | 12 | 13 | ## So what? 14 | 15 | Our entire netperf project has the abstraction where the testing scripts are owned by the repositories of the product code itself, and we simply provide the infrastructure for facilitating and collecting + dashboarding the results. 16 | 17 | As a result, here is our most up-to-date control-flow for running performance tests using 1ES: 18 | 19 | 20 | ![Netperf Architecture](./netperf-arch.png) 21 | -------------------------------------------------------------------------------- /dashboard/src/layouts/dashboard/index.jsx: -------------------------------------------------------------------------------- 1 | import { useState } from 'react'; 2 | import PropTypes from 'prop-types'; 3 | 4 | import Box from '@mui/material/Box'; 5 | 6 | import Nav from './nav'; 7 | import Main from './main'; 8 | import Header from './header'; 9 | 10 | // ---------------------------------------------------------------------- 11 | 12 | export default function DashboardLayout({ children }) { 13 | const [openNav, setOpenNav] = useState(false); 14 | 15 | return ( 16 | <> 17 |
setOpenNav(true)} /> 18 | 19 | 26 |