We actually adopted this model of metric generation for our Netty based application. From our experience there are a couple of call outs I would like to mention.<p>1. You need to publish the graph of your application state transitions along with examples passports of known "good" executions. Without these passports have limited value for debugging because they themselves don't give a clear indication of what should have happened. Frankly, I've found passports to be unreadible without referencing the state transition diagram.<p>2. Your application state transitions change overtime. So must your passports. Depending on how you've implemented your application this can be either trivial or maddening. In both cases though the passport change needs to occur along with the application change. Otherwise you passports will no longer be reflective of what your application currently is doing.