Классический способ: приложение выставляет URL /metrics, prometheus забирает оттуда их в простом текстовом формате.

Однако не все сервисы — это HTTP-серверы, да и не все живут достаточно долго. Поэтому второй способ — сделать прокси, PushGateway. Приложение запихивает метрики в PushGateway, а он уже отдает классическим способом.

Но, увы, этот PushGateway надо разворачивать, и если Grafana облачная, то там его нет. Чтобы запихать метрики в ее Prometheus, необходимо зайти через Mimir — это распределенный Prometheus такой. И вот тут уже нельзя простой формат, а обязательно Protobuf, который использует устаревшие зависимости, да еще при этом завернутый в Snappy и с особым заголовком :harold: