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>
|
||||
</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>
|
||||
|
|
Loading…
Reference in a new issue