Since this was a "dear all" on prometheus-users, I guess I can throw my
opinion in.
In my view, the one thing I most desire that is currently missing from the
Prometheus docs is a rationale / design principles document. Something
that explains *why* Prometheus is the way that it is.
The sorts of things this document could help with:
- what problems is Prometheus designed to solve? what is it *not*
designed to solve?
- it does metrics for operational monitoring - not for audit, not
100% accuracy
- a prometheus server should have no external dependencies, so that
it can run even when other things are breaking
- something something failure domains
- pull model
- the prometheus server is in charge of scheduling scrapes; the
clients don't set cadence
- some example implications of design choices - features / patterns
of prometheus and how they tie back to the above
- why do counters monotonically increase? why does the rate() function
do what it does and how does it compare with other metrics tools?
- why does prometheus use local disk for storage? why is there no
replication option? if i'm used to setting up
replication/backups on all my
stateful services, what should I do with Prometheus? (I have seen someone
decide that remote_write to Postgres/TimescaleDB was absolutely required
because we know how to operate Postgres already)
- why does the increase() function return fractional values?
- why do we prefer small single-purpose exporters?
I kind of feel I know the answers to these questions, but it has been
picked up slowly through a long process of osmosis, and it makes it hard to
upskill others at my workplace. I have become the local Prometheus expert
because I've been playing with it long enough to have picked up this oral
tradition; but I'd like to see it written down somewhere official so that I
can point others at it. It's also very slow to pick this information up
because you often learn it through a disjointed series of "why..?"
questions (the second list above) and have to infer the underlying design
principles (the first list above) piece by piece.
There are bits of this kind of information dotted around the docs: the
bottom of the overview page <
https://prometheus.io/docs/introduction/overview/> has some very high level
principles, but it doesn't feel complete; the "Best Practices" section has
some of this information, but it varies massively in scope and level of
detail (from "how do I design a console or dashboard" which is super
high-level and not even specific to Prometheus, to "how should I instrument
inner loops in my program" which is pretty low-level and specific to a
particular problem; neither is really at the level I'm talking about here).
The thing is, having used Prometheus for 2 years now it's clear that
Prometheus and its community does have a very strong sense of shared design
principles, and this is a good thing; but the lack of a place to point
beginners at to explain these design principles has been a barrier for me
teaching Prometheus to others at my workplace. I would really like to see
a single page or set of pages to capture these ideas.
Phil
On Thu, 12 Mar 2020 at 11:04, Richard Hartmann <[email protected]>
wrote:
> Dear all,
>
> if we as Prometheus team were to try and improve our docs, what would
> be the most pressing areas in your opinion?
>
>
> Best,
> Richard
>
> --
> You received this message because you are subscribed to the Google Groups
> "Prometheus Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/prometheus-users/CAD77%2BgSPXH2g_pEgfExxmK5CyZPRc6E251e73_JrCBtbrhWZNA%40mail.gmail.com
> .
>
--
You received this message because you are subscribed to the Google Groups
"Prometheus Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/prometheus-users/CAEOFFnK%3Di4dXnec-ZirkeDhjYRf0XHD2cgRWHLzqsv%2BLOeqzuw%40mail.gmail.com.