support user defined monitor