On 2023-03-27 13:22, Abdelouahab Khelifati wrote:
> Hello Stuart, thanks for reaching out!
>
> I see your point!
>
> My data does contain only numerical data, has a constant rate, and
> only has one string label. Would you say that it is possible but not
> optimal or simply not possible to use Prometheus as a general-purpose
> database?
>
> Also, would it be possible to point out the main technical factors
> rendering Prometheus unsuitable as a general-purpose database?
>
Well the TDSB in Promethues could be used elsewhere if you created code
(as I think the TDSB code is fairly abstracted from other parts of
Prometheus) but otherwise all interactions are via the rest of
Prometheus. So for example the main way of populating the database is
via scraping targets. There is no way to change existing data (other
than deleting things). There is only a single schema (each timeseries
contains a single float64 per data point with a list of string based
labels [the metric name is actually a label]).
So I'd suggest that the TDSB is as it stands very much not a
general-purpose database - it is just a integral part of Promtheus,
designed for the use case of regular live numeric metric values, with
the ability to extract values via PromQL for graphing/alerts/etc. If
your use case aligns with that, then it could be a good fit, but if you
are wanting other things (being able to change values, doing a lot of
bulk importing, wanting to run/scale the database separately, wanting
database reliability/HA similar to other general purpose databases) it
may be a poor fit.
--
Stuart Clark