Add Prometheus entry from ed

This commit is contained in:
Benjamin Kaduk 2017-01-09 00:14:12 +00:00
parent 81e5aa7a8b
commit 7f5c57e74e
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=49807

View file

@ -151,4 +151,81 @@
(NFS-as-a-service).</task>
</help>
</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>