Prometheus is a pull-based system. It requires targets from which it will get metrics. They can be exposed from inside your services or as generic exporters acting as intermediaries between Prometheus and other services or systems.
Services can be instrumented to provide metrics using one of the Client Libraries (https://prometheus.io/docs/instrumenting/clientlibs/). Many of the languages are supported. If no library is available for your programming language of choice to instrument by one of Prometheus data formats, or if you don't want to add one more dependency by using Prometheus data format, there is always the option of implementing one of the exposition formats (https://prometheus.io/docs/instrumenting/exposition_formats/).
The alternative to instrumentation of our services is to use exporters. The Exporters and Integrations (https://prometheus.io...