The fix for #87 has inadvertently caused a major breakage on the dashboard: it currently allocates machine panels based on machine configuration events, which now happen after we request instance observers; the requests therefore fail with a fatal 'this hasn't been allocated yet' error.
The correct thing to do here, I think, is to bite the bun and rearchitect the dash so that:
every time a new instance is requested, it adds a new panel to the dashboard (OR we allocate instances in a block and distribute them directly);
the dashboard gets switched to forwarding observers (which lets us simplify the observer code somewhat);
the dashboard takes the current machine name from the most recent cycle event coming from the instance (this also simplifies the later task of allowing instance multiplexing).
Once we've done that, we can think about opening a side-channel between Dash and StatPersister to let the dash read stats from there.
The fix for #87 has inadvertently caused a major breakage on the dashboard: it currently allocates machine panels based on machine configuration events, which now happen after we request instance observers; the requests therefore fail with a fatal 'this hasn't been allocated yet' error.
The correct thing to do here, I think, is to bite the bun and rearchitect the dash so that:
Once we've done that, we can think about opening a side-channel between
Dash
andStatPersister
to let the dash read stats from there.