Usually I see all these tabs in VisualVM for locally running Java programs:
What worked for me was specifying the "Start profiling from" classes. If I left this blank, I didn't get the profiler tab. When I specified it, I did. I should probably note that this was a web application running under Tomcat, so I specified org.apache.catalina.startup.**
as the starting class.
As most of the people mentioned, The issue was due to the version mismatch of virtualvm and your application.
additionally, visualvm is bundled in oracle which supports jdk up to 9. If you are using >9, please make sure you go for another profiler.