You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Scenarios encode behavior of nodes in the test network. These scenarios are analyzed via metrics output. How should they work?
Overview
At present, topologies are defined using a pretty simple JSON file. I'd like to extend these with a plugin for test scenarios. Scenarios control daemons via the control protocol, creating simulated work loads that we can then analyze via grafana, etc.
General implementation guidelines
There are two major pieces to this work.
Scenario Plugin
The testlab will have to be extended with a new plugin type that executes scenarios and populates their runtime environment with necessary information to discover the daemon network. This plugin will have to have a standardized environment that all scenarios can depend on to exist. It should probably include access to consul for service discovery and some sort of scoping to limit it to a subset of peers tagged with metadata.
Scenario Framework
Golang library that leverages the scenario plugin environment to power these scenarios. Open questions:
How many scenario runners per peer?
What does an ergonomic DSL for encoding node behaviors look like?
Should scenario runners use consul to synchronize over certain tasks i.e. common keys to put/get from DHT?
Test Scenario Runners
Scenarios encode behavior of nodes in the test network. These scenarios are analyzed via metrics output. How should they work?
Overview
At present, topologies are defined using a pretty simple JSON file. I'd like to extend these with a plugin for test scenarios. Scenarios control daemons via the control protocol, creating simulated work loads that we can then analyze via grafana, etc.
General implementation guidelines
There are two major pieces to this work.
Scenario Plugin
The testlab will have to be extended with a new plugin type that executes scenarios and populates their runtime environment with necessary information to discover the daemon network. This plugin will have to have a standardized environment that all scenarios can depend on to exist. It should probably include access to consul for service discovery and some sort of scoping to limit it to a subset of peers tagged with metadata.
Scenario Framework
Golang library that leverages the scenario plugin environment to power these scenarios. Open questions: