func parseMonitor(monitorAction *models.Action) Monitor {
	monitorRunAction := monitorAction.GetRunAction()

	if monitorRunAction == nil {
		return Monitor{}
	}

	var port uint16
	var uri string

	for i, arg := range monitorRunAction.Args {
		if arg == "-port" && len(monitorRunAction.Args) > i+1 {
			if p, err := strconv.ParseUint(monitorRunAction.Args[i+1], 0, 16); err == nil {
				port = uint16(p)
			}
		} else if arg == "-uri" && len(monitorRunAction.Args) > i+1 {
			uri = monitorRunAction.Args[i+1]
		}
	}

	if port != 0 || uri != "" {
		return Monitor{
			Port: port,
			URI:  uri,
		}
	} else {
		return Monitor{
			Command:     monitorRunAction.Path,
			CommandArgs: monitorRunAction.Args,
		}
	}
}