Servicemonitor or annotations for scrapeconfig discovery?

What is the community consensus on per-application scrapeconfigs?
We have rolled out grafana alloy with prometheus operator CRD support for backward compatibility with many existing and deployed helm charts. But what about our in-house applications? Which should we roll with?

  1. One advantage of annotation based discovery is that it will succeed to deploy on a cluster without alloy installed.
  2. One disadvantage of annotation based discovery is that it will succeed to deploy on a cluster without alloy installed.

So I’m looking for a tiebreaker. Is servicemonitor support merely a way to support relics of the past, or is it still a preferred way of decentralizing scrapeconfigs?

I am not sure what your concern with the disadvantage is.