From what I've seen, Prometheus scrapes data and metrics and displays them and Fluent Bit collects logs and metrics and can output them.
So, are they doing the same thing, i.e. should I choose one over the other or am I missing something?
This is a little off. You are comparing a "Time Series Database" to a "Log Shipper".
How Prometheus Works
Any service/entity prometheus wants to run monitor has to provide an "exporter". An exporter is just a http endpoint that has metrics in a simple text format. The exporter can be a standalone app, a web sever linking to a file, or something like spring boot literally just adding a url to serve prometheus metrics. Lots of other systems can pickup and use this format, not just prometheus.
You configure prometheus to "scrape" these metrics and store them in its own Time Series Database, usually at 30 second intervals. Then prometheus is basically your metrics database. It also integrates with alert manager to help you trigger alerts to slack, pager duty, etc.
How Fluent Bit Works
Fluent Bit is a log shipper. It is better compared with, say, logstash. It can basically take any kind of log data (text lines) and ship/route/filter/etc them to a destination system. It is not itself a time series database like prometheus though. Also prometheus is not a log shipper, it can't go make arbitrary routing decisions on the data being sent to it.
This may be worth a skim - https://logz.io/blog/fluentd-logstash/.
logger.error("Oh No!");
. Fluent Bit would replace LogStash in that stack for routing logs to Elastic Search (kind of a text database) for visualization in Kibana. You could route and analyze metrics in ELK, and you can do alerting, etc. But Prometheus/alert-manager/grafana are really designed for doing that on app metrics and excel at it.
Commented
Jan 11, 2022 at 1:41