A big part of my job is a performance consultant in Node.js applications (not all of them are Meteor apps) and I can tell, that most often Meteor is not the source of the problems. Start with treating your app as a standard Node.js app - use profiler, measure all the things you can, analyze your monitoring data. From my experience, the vast majority of performance problems is clearly visible, even with basic monitoring.
Frontend
Backend
Database
3rd parties
Meteor
Bundle
DDP
GraphQL/REST
Queries
Network
(simplified)
#1 & #2
#3 & #4
#5
#6
#7
We won't focus on code that much as there's enough content about it elsewhere.
CRON
meteor --extra-packages bundle-visualizer --production
Lighthouse
Meteor APM
Meteor APM
Basically everything, really.
I'm not familiar with any CRON-specific monitoring services or solutions, but most of the APMs give you a possibility to send custom traces or timings.
Also, you could expose the CRON jobs through some API and use your APM.
$merge
).(MongoDB edition.)
.explain()
.(Yes, only one.)
Treat them like that and make use of all of the content out there.
There's a lot, really.
Meteor applications are Node.js applications and web applications.
(Yeah, I had to.)
People do care whether the software they use is fast; that's a fact. But do they care about exact numbers? Not directly, of course, as it doesn't matter whether the page took 990 or 1010 milliseconds to load. But if it's one second versus two, everyone will notice it.