  When a property needs to be checked against an unknown or very complex
system, classical exploration techniques like model-checking are not applicable
anymore. Sometimes a~monitor can be used, that checks a given property on the
underlying system at runtime. A monitor for a property $L$ is a deterministic
finite automaton $M_L$ that after each finite execution tells whether (1) every
possible extension of the execution is in $L$, or (2) every possible extension
is in the complement of $L$, or neither (1) nor (2) holds. Moreover, $L$ being
monitorable means that it is always possible that in some future the monitor
reaches (1) or (2). Classical examples for monitorable properties are safety
and cosafety properties. On the other hand, deterministic liveness properties
like "infinitely many $a$'s" are not monitorable. We discuss various monitor
constructions with a focus on deterministic omega-regular languages. We locate
a proper subclass of of deterministic omega-regular languages but also strictly
large than the subclass of languages which are deterministic and
codeterministic, and for this subclass there exists a canonical monitor which
also accepts the language itself.
  We also address the problem to decide monitorability in comparison with
deciding liveness. The state of the art is as follows. Given a B\"uchi
automaton, it is PSPACE-complete to decide liveness or monitorability. Given an
LTL formula, deciding liveness becomes EXPSPACE-complete, but the complexity to
decide monitorability remains open.
