<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>syncthing &amp;mdash; musicmatzes blog</title>
    <link>https://beyermatthias.de/tag:syncthing</link>
    <description></description>
    <pubDate>Mon, 12 Oct 2026 05:30:41 +0200</pubDate>
    <item>
      <title>Monitoring Syncthing with Prometheus and Grafana</title>
      <link>https://beyermatthias.de/monitoring-syncthing-with-prometheus-and-grafana</link>
      <description>&lt;![CDATA[Happy new year!&#xA;&#xA;I just managed to implement syncthing monitoring for my prometheus and grafana&#xA;instance, so I figured to write a short blog post about it.&#xA;&#xA;Note: This post is written for&#xA;prometheus-json-exporter pre-0.1.0&#xA;and the configuration file format changed since.&#xA;&#xA;Now, as you&#39;ve read in the note above, I managed to do this using the&#xA;prometheus-json-exporter.&#xA;Syncthing has a status page that can be accessed with&#xA;&#xA;$ curl localhost:22070/status&#xA;&#xA;if enabled.&#xA;This can then be used to push to prometheus using the prometheus-json-exporter&#xA;mentioned above using the following configuration for mapping the values from&#xA;the JSON to prometheus:&#xA;&#xA;name: syncthingbuildDate&#xA;  path: $.buildDate&#xA;  help: Value of buildDate&#xA;&#xA;name: syncthingbuildHost&#xA;  path: $.buildHost&#xA;  help: Value of buildHost&#xA;&#xA;name: syncthingbuildUser&#xA;  path: $.buildUser&#xA;  help: Value of buildUser&#xA;&#xA;name: syncthingbytesProxied&#xA;  path: $.bytesProxied&#xA;  help: Value of bytesProxied&#xA;&#xA;name: syncthinggoArch&#xA;  path: $.goArch&#xA;  help: Value of goArch&#xA;&#xA;name: syncthinggoMaxProcs&#xA;  path: $.goMaxProcs&#xA;  help: Value of goMaxProcs&#xA;&#xA;name: syncthinggoNumRoutine&#xA;  path: $.goNumRoutine&#xA;  help: Value of goNumRoutine&#xA;&#xA;name: syncthinggoOS&#xA;  path: $.goOS&#xA;  help: Value of goOS&#xA;&#xA;name: syncthinggoVersion&#xA;  path: $.goVersion&#xA;  help: Value of goVersion&#xA;&#xA;name: syncthingkbps10s1m5m15m30m60m&#xA;  path: $.kbps10s1m5m15m30m60m&#xA;  help: Value of kbps10s1m5m15m30m60m&#xA;  type: object&#xA;  values:&#xA;    time10sec: $[0]&#xA;    time1min: $[1]&#xA;    time5min: $[2]&#xA;    time15min: $[3]&#xA;    time30min: $[4]&#xA;    time60min: $[5]&#xA;&#xA;name: syncthingnumActiveSessions&#xA;  path: $.numActiveSessions&#xA;  help: Value of numActiveSessions&#xA;&#xA;name: syncthingnumConnections&#xA;  path: $.numConnections&#xA;  help: Value of numConnections&#xA;&#xA;name: syncthingnumPendingSessionKeys&#xA;  path: $.numPendingSessionKeys&#xA;  help: Value of numPendingSessionKeys&#xA;&#xA;name: syncthingnumProxies&#xA;  path: $.numProxies&#xA;  help: Value of numProxies&#xA;&#xA;name: syncthingglobalrate&#xA;  path: $.options.global-rate&#xA;  help: Value of options.global-rate&#xA;&#xA;name: syncthingmessagetimeout&#xA;  path: $.options.message-timeout&#xA;  help: Value of options.message-timeout&#xA;&#xA;name: syncthingnetworktimeout&#xA;  path: $.options.network-timeout&#xA;  help: Value of options.network-timeout&#xA;&#xA;name: syncthingpersessionrate&#xA;  path: $.options.per-session-rate&#xA;  help: Value of options.session-rate&#xA;&#xA;name: syncthingpinginterval&#xA;  path: $.options.ping-interval&#xA;  help: Value of options.ping-interval&#xA;&#xA;name: syncthingstartTime&#xA;  path: $.startTime&#xA;  help: Value of startTime&#xA;&#xA;name: syncthinguptimeSeconds&#xA;  path: $.uptimeSeconds&#xA;  help: Value of uptimeSeconds&#xA;&#xA;name: syncthing_version&#xA;  path: $.version&#xA;  help: Value of version&#xA;&#xA;When configured properly, one is then able to draw graphs using the&#xA;syncthing-exported data in grafana.&#xA;&#xA;There&#39;s nothing more to it.&#xA;&#xA;tags: #nixos #grafana #prometheus #syncthing&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p>Happy new year!</p>

<p>I just managed to implement syncthing monitoring for my prometheus and grafana
instance, so I figured to write a short blog post about it.</p>

<p><strong>Note:</strong> This post is written for
<a href="https://github.com/prometheus-community/json_exporter">prometheus-json-exporter pre-0.1.0</a>
and the configuration file format changed since.</p>

<p>Now, as you&#39;ve read in the note above, I managed to do this using the
prometheus-json-exporter.
Syncthing has a status page that can be accessed with</p>

<pre><code>$ curl localhost:22070/status
</code></pre>

<p>if enabled.
This can then be used to push to prometheus using the prometheus-json-exporter
mentioned above using the following configuration for mapping the values from
the JSON to prometheus:</p>

<pre><code class="language-yaml">- name: syncthing_buildDate
  path: $.buildDate
  help: Value of buildDate

- name: syncthing_buildHost
  path: $.buildHost
  help: Value of buildHost

- name: syncthing_buildUser
  path: $.buildUser
  help: Value of buildUser

- name: syncthing_bytesProxied
  path: $.bytesProxied
  help: Value of bytesProxied

- name: syncthing_goArch
  path: $.goArch
  help: Value of goArch

- name: syncthing_goMaxProcs
  path: $.goMaxProcs
  help: Value of goMaxProcs

- name: syncthing_goNumRoutine
  path: $.goNumRoutine
  help: Value of goNumRoutine

- name: syncthing_goOS
  path: $.goOS
  help: Value of goOS

- name: syncthing_goVersion
  path: $.goVersion
  help: Value of goVersion

- name: syncthing_kbps10s1m5m15m30m60m
  path: $.kbps10s1m5m15m30m60m
  help: Value of kbps10s1m5m15m30m60m
  type: object
  values:
    time_10_sec: $[0]
    time_1_min: $[1]
    time_5_min: $[2]
    time_15_min: $[3]
    time_30_min: $[4]
    time_60_min: $[5]

- name: syncthing_numActiveSessions
  path: $.numActiveSessions
  help: Value of numActiveSessions

- name: syncthing_numConnections
  path: $.numConnections
  help: Value of numConnections

- name: syncthing_numPendingSessionKeys
  path: $.numPendingSessionKeys
  help: Value of numPendingSessionKeys

- name: syncthing_numProxies
  path: $.numProxies
  help: Value of numProxies

- name: syncthing_globalrate
  path: $.options.global-rate
  help: Value of options.global-rate

- name: syncthing_messagetimeout
  path: $.options.message-timeout
  help: Value of options.message-timeout

- name: syncthing_networktimeout
  path: $.options.network-timeout
  help: Value of options.network-timeout

- name: syncthing_persessionrate
  path: $.options.per-session-rate
  help: Value of options.session-rate

- name: syncthing_pinginterval
  path: $.options.ping-interval
  help: Value of options.ping-interval

- name: syncthing_startTime
  path: $.startTime
  help: Value of startTime

- name: syncthing_uptimeSeconds
  path: $.uptimeSeconds
  help: Value of uptimeSeconds

- name: syncthing_version
  path: $.version
  help: Value of version
</code></pre>

<p>When configured properly, one is then able to draw graphs using the
syncthing-exported data in grafana.</p>

<p>There&#39;s nothing more to it.</p>

<p>tags: <a href="https://beyermatthias.de/tag:nixos" class="hashtag"><span>#</span><span class="p-category">nixos</span></a> <a href="https://beyermatthias.de/tag:grafana" class="hashtag"><span>#</span><span class="p-category">grafana</span></a> <a href="https://beyermatthias.de/tag:prometheus" class="hashtag"><span>#</span><span class="p-category">prometheus</span></a> <a href="https://beyermatthias.de/tag:syncthing" class="hashtag"><span>#</span><span class="p-category">syncthing</span></a></p>
]]></content:encoded>
      <guid>https://beyermatthias.de/monitoring-syncthing-with-prometheus-and-grafana</guid>
      <pubDate>Fri, 01 Jan 2021 16:40:14 +0100</pubDate>
    </item>
  </channel>
</rss>