Add Prometheus entry from ed
This commit is contained in:
parent
81e5aa7a8b
commit
7f5c57e74e
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=49807
1 changed files with 77 additions and 0 deletions
|
@ -151,4 +151,81 @@
|
||||||
(NFS-as-a-service).</task>
|
(NFS-as-a-service).</task>
|
||||||
</help>
|
</help>
|
||||||
</project>
|
</project>
|
||||||
|
|
||||||
|
<project cat='proj'>
|
||||||
|
<title>Sysctl Exporter for Prometheus</title>
|
||||||
|
|
||||||
|
<contact>
|
||||||
|
<person>
|
||||||
|
<name>
|
||||||
|
<given>Ed</given>
|
||||||
|
<common>Schouten</common>
|
||||||
|
</name>
|
||||||
|
<email>ed@FreeBSD.org</email>
|
||||||
|
</person>
|
||||||
|
</contact>
|
||||||
|
|
||||||
|
<links>
|
||||||
|
<url href="https://prometheus.io/">The Prometheus Project</url>
|
||||||
|
<url href="https://github.com/prometheus/node_exporter">Node Exporter</url>
|
||||||
|
<url href="https://svnweb.FreeBSD.org/base/head/usr.sbin/prometheus_sysctl_exporter/">Sysctl Exporter</url>
|
||||||
|
</links>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<p>Prometheus is an Open Source monitoring system that was
|
||||||
|
originally built at SoundCloud in 2012. Since 2016, this project is
|
||||||
|
part of the Cloud Native Computing Foundation, together with other
|
||||||
|
projects like Kubernetes.</p>
|
||||||
|
|
||||||
|
<p>Prometheus scrapes its targets by periodically sending HTTP GET
|
||||||
|
requests. Targets then respond by sending key-value pairs of metrics
|
||||||
|
and their sample value. Prometheus has a query language, PromQL,
|
||||||
|
that can be used to aggregate sample values and specify alerting
|
||||||
|
conditions. Tools like Grafana can be used to create fancy
|
||||||
|
dashboards using such queries.</p>
|
||||||
|
|
||||||
|
<p>The Prometheus project provides a utility called the
|
||||||
|
node_exporter that gathers basic system metrics and serves them
|
||||||
|
over HTTP. This utility tends to be rather complex, as it has
|
||||||
|
to extract metrics from many different sources. On Linux, files
|
||||||
|
in <tt>/proc</tt> have no uniform format, meaning that for every
|
||||||
|
kernel framework a custom collector needs to be written.</p>
|
||||||
|
|
||||||
|
<p>On &os; the sitiuation is better, as the data exported
|
||||||
|
through <tt>sysctl</tt> is already structured in such a way that
|
||||||
|
it can easily be translated to Prometheus' metrics format. The
|
||||||
|
goal of this project is thus to provide a generic exporter for
|
||||||
|
the entire sysctl tree. Not only does this prevent unnecessary
|
||||||
|
bloat and indirection, it may also make the life of a kernel
|
||||||
|
developer a lot easier. One can easily use Prometheus to graph
|
||||||
|
the occurrence of an event over time by (temporarily) adding a
|
||||||
|
counter to the kernel.</p>
|
||||||
|
|
||||||
|
<p>An initial version of the sysctl exporter has been integrated
|
||||||
|
into the &os; base system in December. It can be run through
|
||||||
|
<tt>inetd</tt> by uncommenting the example provided in
|
||||||
|
<tt>inetd.conf</tt>. Unfortunately, this exporter cannot be
|
||||||
|
merged back to &os; 10.x/11.x, as it depends on KBI-breaking
|
||||||
|
changes to <tt>sysctl(9)</tt>.</p>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
<help>
|
||||||
|
<task>Are you using Prometheus or are you interested in using
|
||||||
|
it? Be sure to give both Prometheus and this <tt>sysctl</tt>
|
||||||
|
exporter a try!</task>
|
||||||
|
|
||||||
|
<task>It would be nice if we created a set of useful alerting
|
||||||
|
rules and placed those in /usr/share/examples. For example, how
|
||||||
|
can one use this exporter to monitor the state of GEOM-based
|
||||||
|
RAID arrays? Is such information even exported through
|
||||||
|
<tt>sysctl</tt>?</task>
|
||||||
|
|
||||||
|
<task>Prometheus uses a pretty nifty format for exporting
|
||||||
|
histograms. Histograms are useful for expressing the amount of
|
||||||
|
time taken to complete certain events (for example, disk
|
||||||
|
operations). Would it be possible to add histograms as native
|
||||||
|
datatypes to sysctl? If so, is there any chance they can be
|
||||||
|
implemented without picking up any kernel locks?</task>
|
||||||
|
</help>
|
||||||
|
</project>
|
||||||
</report>
|
</report>
|
||||||
|
|
Loading…
Reference in a new issue