summaryrefslogtreecommitdiff
path: root/opendc-web
AgeCommit message (Collapse)Author
2021-12-09build(ui): Bump next to 11.1.3 (#47)dependabot[bot]
Bumps [next](https://github.com/vercel/next.js) from 11.1.2 to 11.1.3. - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/compare/v11.1.2...v11.1.3) --- updated-dependencies: - dependency-name: next dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-16feat(workflow): Add helper tools for workflow simulationsFabian Mastenbroek
This change adds a new module, opendc-workflow-workload that contains helper code for constructing workflow simulations using OpenDC.
2021-11-02build(ui): Bump ansi-regex to 5.0.1 (#38)dependabot[bot]
Bumps [ansi-regex](https://github.com/chalk/ansi-regex) from 5.0.0 to 5.0.1. - [Release notes](https://github.com/chalk/ansi-regex/releases) - [Commits](https://github.com/chalk/ansi-regex/compare/v5.0.0...v5.0.1) --- updated-dependencies: - dependency-name: ansi-regex dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-25perf(telemetry): Prevent allocations during collection cycleFabian Mastenbroek
This change redesigns the ComputeMonitor interface to reduce the number of memory allocations necessary during a collection cycle.
2021-10-25perf(compute): Redesign VM interference algorithmFabian Mastenbroek
This change redesigns the virtual machine interference algorithm to have a fixed memory usage per `VmInterferenceModel` instance. Previously, for every interference domain, a copy of the model would be created, leading to OutOfMemory errors when running multiple experiments at the same time.
2021-10-03refactor(simulator): Migrate to flow-based simulationFabian Mastenbroek
This change renames the `opendc-simulator-resources` module into the `opendc-simulator-flow` module to indicate that the core simulation model of OpenDC is based around modelling and simulating flows. Previously, the distinction between resource consumer and provider, and input and output caused some confusion. By switching to a flow-based model, this distinction is now clear (as in, the water flows from source to consumer/sink).
2021-09-28refactor(telemetry): Do not require clock for ComputeMetricExporterFabian Mastenbroek
This change drops the requirement for a clock parameter when constructing a ComputeMetricExporter, since it will now derive the timestamp from the recorded metrics.
2021-09-21build(ui): Bump semver-regex from 3.1.2 to 3.1.3.dependabot[bot]
Bumps [semver-regex](https://github.com/sindresorhus/semver-regex) from 3.1.2 to 3.1.3. - [Release notes](https://github.com/sindresorhus/semver-regex/releases) - [Commits](https://github.com/sindresorhus/semver-regex/commits) --- updated-dependencies: - dependency-name: semver-regex dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-21feat(trace): Add support for writing tracesFabian Mastenbroek
This change adds a new API for writing traces in a trace format. Currently, writing is only supported by the OpenDC VM format, but over time the other formats will also have support for writing added.
2021-09-19refactor(capelin): Make workload sampling model extensibleFabian Mastenbroek
This change updates the workload sampling implementation to be more flexible in the way the workload is constructed. Users can now sample multiple workloads at the same time using multiple samplers and use them as a single workload to simulate.
2021-09-19refactor(capelin): Support flexible topology creationFabian Mastenbroek
This change adds support for creating flexible topologies by creating a TopologyFactory interface that is responsible for configuring the hosts of a compute service.
2021-09-19refactor(capelin): Extract common code out of Capelin experimentsFabian Mastenbroek
This change creates a new module for doing simulations with virtual machine workloads. We have found that a lot of code in the Capelin experiments code is being re-used by non-experiment modules.
2021-09-17refactor(telemetry): Standardize SimHost metricsFabian Mastenbroek
This change standardizes the metrics emitted by SimHost instances and their guests based on the OpenTelemetry semantic conventions. We now also report CPU time as opposed to CPU work as this metric is more commonly used.
2021-09-17refactor(telemetry): Standardize compute scheduler metricsFabian Mastenbroek
This change updates the OpenDC compute service implementation with multiple meters that follow the OpenTelemetry conventions.
2021-09-17refactor(telemetry): Create separate MeterProvider per service/hostFabian Mastenbroek
This change refactors the telemetry implementation by creating a separate MeterProvider per service or host. This means we have to keep track of multiple metric producers, but that we can attach resource information to each of the MeterProviders like we would in a real world scenario.
2021-09-10refactor(compute): Integrate fault injection into compute simulatorFabian Mastenbroek
This change moves the fault injection logic directly into the opendc-compute-simulator module, so that it can operate at a higher abstraction. In the future, we might again split the module if we can re-use some of its logic.
2021-09-10build(ui): Update dependenciesFabian Mastenbroek
This change updates the dependencies of the OpenDC frontend module.
2021-09-07refactor(capelin): Restructure input reading classesFabian Mastenbroek
2021-09-07build(web): Resolve kotlin-reflect incompatibilityFabian Mastenbroek
This change addresses an incompatibility issue with the kotlin-reflect transitive dependency in the opendc-web-runner module.
2021-09-07refactor(capelin): Move metric collection outside Capelin codeFabian Mastenbroek
This change moves the metric collection outside the Capelin codebase in a separate module so other modules can also benefit from the compute metric collection code.
2021-09-07feat(capelin): Report up/downtime metrics in experiment monitorFabian Mastenbroek
2021-09-05build(ui): Bump immer from 9.0.5 to 9.0.6dependabot[bot]
Bumps [immer](https://github.com/immerjs/immer) from 9.0.5 to 9.0.6. - [Release notes](https://github.com/immerjs/immer/releases) - [Commits](https://github.com/immerjs/immer/compare/v9.0.5...v9.0.6) --- updated-dependencies: - dependency-name: immer dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-02refactor(trace): Implement trace API for WTF readerFabian Mastenbroek
This change updates the WTF trace reader to support the new streaming trace API.
2021-09-02refactor(format): Remove environment reader from format libraryFabian Mastenbroek
This change removes the environment reader from the format library since they are highly specific for the particular experiment. In the future, we hope to have a single format to setup the entire datacenter (perhaps similar to the format used by the web runner).
2021-09-01build(ui): Bump Next.js from 11.1.0 to 11.1.1dependabot[bot]
Bumps [next](https://github.com/vercel/next.js) from 11.1.0 to 11.1.1. - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/compare/v11.1.0...v11.1.1) --- updated-dependencies: - dependency-name: next dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-25fix(capelin): Eliminate unnecessary double to long conversionsFabian Mastenbroek
This change eliminates the unnecessary conversions from double to long in the Capelin metric processing code.
2021-08-25build: Upgrade to OpenTelemetry 1.5Fabian Mastenbroek
This change upgrades the OpenTelemetry dependency to version 1.5, which contains various breaking changes in the metrics API.
2021-08-22refactor(compute): Update FilterScheduler to follow OpenStack's NovaFabian Mastenbroek
This change updates the FilterScheduler implementation to follow more closely the scheduler implementation in OpenStack's Nova. We now normalize the weights, support many of the filters and weights in OpenStack and support overcommitting resources.
2021-08-17feat(ui): Add context selectorsFabian Mastenbroek
This change adds context selectors for the OpenDC frontend where the user can select different projects, portfolios or topologies from the context selection bar.
2021-08-13build(ui): Bump Next.js to 11.1.0dependabot[bot]
Bumps [next](https://github.com/vercel/next.js) from 11.0.1 to 11.1.0. - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/compare/v11.0.1...v11.1.0) --- updated-dependencies: - dependency-name: next dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-07-22feat(ui): Toggle to Floor Plan on room selectFabian Mastenbroek
2021-07-22feat(ui): Extract topology construction out of SagasFabian Mastenbroek
This change updates the OpenDC frontend to perform the construction of the topology directly in the reducers instead of performing the mutations in Redux Sagas as side effects. This allows us to nicely map actions to mutations in the reducers.
2021-07-22feat(ui): Add table view for topology roomsFabian Mastenbroek
2021-07-22fix(ui): Load correct topology viewFabian Mastenbroek
This change fixes an issue where the only the default topology view would be shown to the user.
2021-07-20refactor(ui): Perform Saga mutations through React QueryFabian Mastenbroek
This change updates the OpenDC frontend to perform mutations of the topology done in Sagas through the React Query cache, so that non-Saga parts of the application also have their topology queries updated.
2021-07-20refactor(ui): Move page components in separate filesFabian Mastenbroek
2021-07-19chore(ui): Extend ESLint configurationFabian Mastenbroek
This change extends the ESLint configuration with the ESLint recommended settings.
2021-07-19refactor(ui): Restructure components per pageFabian Mastenbroek
This change updates the source structure of the OpenDC frontend to follow the page structure.
2021-07-19refactor(ui): Encode state in topology actionsFabian Mastenbroek
This change updates the OpenDC frontend to reduce its reliance of global state during the execution of actions. Actions that modify the topology now require parameters to be passed via the action constructor instead of relying on the global interactionLevel state.
2021-07-19perf(ui): Split transpiled modules into separate chunkFabian Mastenbroek
This change updates the Next.js/Webpack configuration of the OpenDC frontend to split transpiled modules into a separate chunk during development. This prevents the duplication of the transpiled modules across the compiled files.
2021-07-16refactor(ui): Isolate world coordinate spaceFabian Mastenbroek
This change updates the topology view in the OpenDC frontend to isolate the world coordinate space. This means that zooming and panning should not affect the coordinates in world space (but only in camera space). In turn, this allows us to remove the dependency on Redux for the camera controls.
2021-07-16feat(ui): Support panning of the datacenter topologyFabian Mastenbroek
This change enables support for panning the visualized datacenter topology by using the mouse or holding shortcuts. Previously, this could only be done through repeated key presses.
2021-07-15feat(ui): Migrate to PatternFly 4 design frameworkFabian Mastenbroek
This change is a rewrite of the existing OpenDC frontend in order to migrate to the PatternFly 4 design framework. PatternFly is used by Red Hat for various computing related services such as OpenShift, Red Hat Virtualization and Cockpit. Since their design requirements are very similar to those of OpenDC (modeling computing services), migrating to PatternFly 4 allows us to re-use design choices from these services. See https://www.patternfly.org/v4/ for more information about PatternFly.
2021-07-15fix(ui): Relax topology schema requirementsFabian Mastenbroek
This change fixes an issue where the topology generated by the frontend was not accepted by the API server.
2021-07-15feat(ui): Add initial support for PatternFly 4 frameworkFabian Mastenbroek
This change adds support in our Next.js application for the PatternFly 4 design framework. This framework is built by RedHat and provides several components that are useful for the space in which OpenDC operates.
2021-07-15refactor(ui): Extract OpenDC landing page from web interfaceFabian Mastenbroek
This change extracts the landing page from the web interface in order to separate the development of the two. This allows the landing page to be developed independently of the actual OpenDC web application.
2021-07-08ui: Combine fetching of project relationsFabian Mastenbroek
This change updates the OpenDC frontend to combine the fetching of project relations. This means that for a single project, we make only one additional request to retrieve all its topologies.
2021-07-08ui: Simplify normalization of topologyFabian Mastenbroek
This change updates the OpenDC frontend to use the normalizr library for normalizing the user topology.
2021-07-08api: Re-expose simulation results from scenario endpointFabian Mastenbroek
This change updates the OpenDC API to re-expose the simulation results as they are necessary for the frontend to display the results.
2021-07-08api: Add endpoints for accessing project relationsFabian Mastenbroek
This change adds additional endpoints to the REST API to access the project relations, the portfolios and topologies that belong to a project.