-
Notifications
You must be signed in to change notification settings - Fork 107
Description
We discussed strategies for distinguishing between "transient" tools (traditional start/stop cycle tools) and "persistent" tools (run continuously through iterations, with a single data collection cycle (e.g., Prometheus).
The leading idea is to create a tool metadata JSON file along with the actual tools. Initially it will simply list the known tools and define whether each is "transient" or "persistent", but it can easily be extended to cover additional attributes as that becomes useful and desirable.
Current "front end" tools like registering a tool set may actually not even need to care about this; however, such tools that do care will need to reference a new Python class that validates and deserializes the metadata file, with a command to make various queries from bash. (For example, "is this tool persistent?")
Once the tool agent begins, and stands up the Redis server, the metadata would become available through Redis to all distributed agent clients. The metadata class will need to be integrated with the ToolMeister life cycle enough to know whether to initialize from the on-disk JSON file on the controller or via Redis.