Hello community,
here is the log from the commit of package prometheus-ha_cluster_exporter for
openSUSE:Factory checked in at 2020-09-12 00:13:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/prometheus-ha_cluster_exporter (Old)
and /work/SRC/openSUSE:Factory/.prometheus-ha_cluster_exporter.new.4249
(New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "prometheus-ha_cluster_exporter"
Sat Sep 12 00:13:33 2020 rev:8 rq:833805 version:1.2.0+git.1599131770.8912739
Changes:
--------
---
/work/SRC/openSUSE:Factory/prometheus-ha_cluster_exporter/prometheus-ha_cluster_exporter.changes
2020-07-14 08:01:30.718221385 +0200
+++
/work/SRC/openSUSE:Factory/.prometheus-ha_cluster_exporter.new.4249/prometheus-ha_cluster_exporter.changes
2020-09-12 00:14:22.293320871 +0200
@@ -1,0 +2,11 @@
+Fri Sep 11 13:41:08 2020 UTC - [email protected]
+
+- Release 1.2.0
+
+ ## Added
+ - Implement SBD watchdog and msgwait timeout metrics (#174)
+
+ ## Fixed
+ - Handle correctly corosync membership parsing with qdevice enabled (#172)
+
+-------------------------------------------------------------------
Old:
----
prometheus-ha_cluster_exporter-1.1.0+git.1594637514.c1eae0c.tar.gz
New:
----
prometheus-ha_cluster_exporter-1.2.0+git.1599131770.8912739.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ prometheus-ha_cluster_exporter.spec ++++++
--- /var/tmp/diff_new_pack.cAYOg7/_old 2020-09-12 00:14:25.373323818 +0200
+++ /var/tmp/diff_new_pack.cAYOg7/_new 2020-09-12 00:14:25.377323822 +0200
@@ -18,7 +18,7 @@
Name: prometheus-ha_cluster_exporter
# Version will be processed via set_version source service
-Version: 1.1.0+git.1594637514.c1eae0c
+Version: 1.2.0+git.1599131770.8912739
Release: 0
Summary: Prometheus exporter for Pacemaker HA clusters metrics
License: Apache-2.0
@@ -28,16 +28,12 @@
Source1: vendor.tar.gz
ExclusiveArch: aarch64 x86_64 ppc64le s390x
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-BuildRequires: go >= 1.12
+BuildRequires: golang-packaging
+BuildRequires: golang(API) >= 1.12
Provides: ha_cluster_exporter = %{version}-%{release}
Provides: prometheus(ha_cluster_exporter) = %{version}-%{release}
-# Unlike C/C++ packages, Golang packages do not have header files. They are
statically built so the main package is also the devel package.
-Provides: %{name}-devel = %{version}
-Provides: %{name}-devel-static = %{version}
-
-# Make sure that the binary is not getting stripped.
-%undefine _build_create_debug
-%define __arch_install_post export NO_BRP_STRIP_DEBUG=true
+
+%{go_nostrip}
%description
Prometheus exporter for Pacemaker HA clusters metrics
@@ -52,6 +48,7 @@
export CGO_ENABLED=0
go build -mod=vendor \
+ -buildmode=pie \
-ldflags="-s -w -X main.version=%{version}" \
-o %{shortname}
++++++ _service ++++++
--- /var/tmp/diff_new_pack.cAYOg7/_old 2020-09-12 00:14:25.409323853 +0200
+++ /var/tmp/diff_new_pack.cAYOg7/_new 2020-09-12 00:14:25.409323853 +0200
@@ -2,12 +2,12 @@
<service name="tar_scm" mode="disabled">
<param
name="url">git://github.com/ClusterLabs/ha_cluster_exporter.git</param>
<param name="scm">git</param>
- <param name="revision">1.1.0</param>
+ <param name="revision">1.2.0</param>
<param name="exclude">.git</param>
<param name="exclude">.github</param>
<param name="exclude">dashboards</param>
<param
name="exclude">packaging/obs/grafana-ha-cluster-dashboards</param>
- <param name="version">1.1.0+git.1594637514.c1eae0c</param>
+ <param name="version">1.2.0+git.1599131770.8912739</param>
<param name="filename">prometheus-ha_cluster_exporter</param>
</service>
<service name="set_version" mode="disabled">
++++++ prometheus-ha_cluster_exporter-1.1.0+git.1594637514.c1eae0c.tar.gz ->
prometheus-ha_cluster_exporter-1.2.0+git.1599131770.8912739.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/prometheus-ha_cluster_exporter-1.1.0+git.1594637514.c1eae0c/collector/corosync/corosync.go
new/prometheus-ha_cluster_exporter-1.2.0+git.1599131770.8912739/collector/corosync/corosync.go
---
old/prometheus-ha_cluster_exporter-1.1.0+git.1594637514.c1eae0c/collector/corosync/corosync.go
2020-07-13 12:51:54.000000000 +0200
+++
new/prometheus-ha_cluster_exporter-1.2.0+git.1599131770.8912739/collector/corosync/corosync.go
2020-09-03 13:16:10.000000000 +0200
@@ -45,7 +45,7 @@
// We suppress the exec errors because if any interface is faulty the
tools will exit with code 1, but we still want to parse the output.
cfgToolOutput, _ := exec.Command(c.cfgToolPath, "-s").Output()
- quorumToolOutput, _ := exec.Command(c.quorumToolPath).Output()
+ quorumToolOutput, _ := exec.Command(c.quorumToolPath, "-p").Output()
status, err := c.parser.Parse(cfgToolOutput, quorumToolOutput)
if err != nil {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/prometheus-ha_cluster_exporter-1.1.0+git.1594637514.c1eae0c/collector/corosync/parser.go
new/prometheus-ha_cluster_exporter-1.2.0+git.1599131770.8912739/collector/corosync/parser.go
---
old/prometheus-ha_cluster_exporter-1.1.0+git.1594637514.c1eae0c/collector/corosync/parser.go
2020-07-13 12:51:54.000000000 +0200
+++
new/prometheus-ha_cluster_exporter-1.2.0+git.1599131770.8912739/collector/corosync/parser.go
2020-09-03 13:16:10.000000000 +0200
@@ -35,10 +35,11 @@
}
type Member struct {
- Id string
- Name string
- Votes uint64
- Local bool
+ Id string
+ Name string
+ Qdevice string
+ Votes uint64
+ Local bool
}
func NewParser() Parser {
@@ -211,11 +212,12 @@
/*
Membership information
----------------------
- Nodeid Votes Name
- 1 1 192.168.125.24
- 2 1 192.168.125.25 (local)
+ Nodeid Votes Qdevice Name
+ 1 1 A,V,NMW nfs01 (local)
+ 2 1 A,V,NMW nfs02
+ 0 1 Qdevice
*/
- sectionRE := regexp.MustCompile(`(?m)Membership
information\n-+\s+Nodeid\s+Votes\s+Name\n+((?:.*\n?)+)`)
+ sectionRE := regexp.MustCompile(`(?m)Membership
information\n-+\s+Nodeid\s+Votes\s+Qdevice\s+Name\n+((?:.*\n?)+)`)
sectionMatch := sectionRE.FindSubmatch(quorumToolOutput)
if sectionMatch == nil {
return nil, errors.New("could not find membership information")
@@ -223,9 +225,9 @@
// we also need a second regex to capture the single elements of each
node line, e.g.:
/*
- 1 1 192.168.125.24 (local)
+ 1 1 A,V,NMW 192.168.125.24 (local)
*/
- linesRE :=
regexp.MustCompile(`(?m)(?P<node_id>\w+)\s+(?P<votes>\d+)\s(?P<name>[\w-\.]+)(?:\s(?P<local>\(local\)))?\n?`)
+ linesRE :=
regexp.MustCompile(`(?m)(?P<node_id>\w+)\s+(?P<votes>\d+)\s+(?P<qdevice>(\w,?)+)?\s+(?P<name>[\w-\.]+)(?:\s(?P<local>\(local\)))?\n?`)
linesMatches := linesRE.FindAllSubmatch(sectionMatch[1], -1)
for _, match := range linesMatches {
matches := extractRENamedCaptureGroups(linesRE, match)
@@ -241,10 +243,11 @@
}
members = append(members, Member{
- Id: matches["node_id"],
- Name: matches["name"],
- Votes: votes,
- Local: local,
+ Id: matches["node_id"],
+ Name: matches["name"],
+ Votes: votes,
+ Local: local,
+ Qdevice: matches["qdevice"],
})
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/prometheus-ha_cluster_exporter-1.1.0+git.1594637514.c1eae0c/collector/corosync/parser_test.go
new/prometheus-ha_cluster_exporter-1.2.0+git.1599131770.8912739/collector/corosync/parser_test.go
---
old/prometheus-ha_cluster_exporter-1.1.0+git.1594637514.c1eae0c/collector/corosync/parser_test.go
2020-07-13 12:51:54.000000000 +0200
+++
new/prometheus-ha_cluster_exporter-1.2.0+git.1599131770.8912739/collector/corosync/parser_test.go
2020-09-03 13:16:10.000000000 +0200
@@ -38,9 +38,9 @@
Membership information
----------------------
- Nodeid Votes Name
-1084780051 1 dma-dog-hana01 (local)
-1084780052 1 dma-dog-hana02`)
+ Nodeid Votes Qdevice Name
+1084780051 1 NR dma-dog-hana01 (local)
+1084780052 1 A,V,NMW dma-dog-hana02`)
status, err := p.Parse(cfgToolOutput, quoromToolOutput)
assert.NoError(t, err)
@@ -67,10 +67,12 @@
assert.Len(t, members, 2)
assert.Exactly(t, "1084780051", members[0].Id)
assert.Exactly(t, "dma-dog-hana01", members[0].Name)
+ assert.Exactly(t, "NR", members[0].Qdevice)
assert.True(t, members[0].Local)
assert.EqualValues(t, 1, members[0].Votes)
assert.Exactly(t, "1084780052", members[1].Id)
assert.Exactly(t, "dma-dog-hana02", members[1].Name)
+ assert.Exactly(t, "A,V,NMW", members[1].Qdevice)
assert.False(t, members[1].Local)
assert.EqualValues(t, 1, members[1].Votes)
}
@@ -250,8 +252,8 @@
func TestParseMembersUintError(t *testing.T) {
quoromToolOutput := []byte(`Membership information
----------------------
- Nodeid Votes Name
-1084780051 10000000000000000000000000000000000000000000000 dma-dog-hana01`)
+ Nodeid Votes Qdevice Name
+1084780051 10000000000000000000000000000000000000000000000 NW dma-dog-hana01`)
_, err := parseMembers(quoromToolOutput)
@@ -280,9 +282,9 @@
Membership information
----------------------
- Nodeid Votes Name
- 1 1 192.168.127.20
- 2 1 192.168.127.21 (local)`)
+ Nodeid Votes Qdevice Name
+ 1 1 NR 192.168.127.20
+ 2 1 NR 192.168.127.21 (local)`)
members, err := parseMembers(quorumToolOutput)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/prometheus-ha_cluster_exporter-1.1.0+git.1594637514.c1eae0c/collector/sbd/sbd.go
new/prometheus-ha_cluster_exporter-1.2.0+git.1599131770.8912739/collector/sbd/sbd.go
---
old/prometheus-ha_cluster_exporter-1.1.0+git.1594637514.c1eae0c/collector/sbd/sbd.go
2020-07-13 12:51:54.000000000 +0200
+++
new/prometheus-ha_cluster_exporter-1.2.0+git.1599131770.8912739/collector/sbd/sbd.go
2020-09-03 13:16:10.000000000 +0200
@@ -6,6 +6,7 @@
"os"
"os/exec"
"regexp"
+ "strconv"
"strings"
"github.com/pkg/errors"
@@ -20,6 +21,7 @@
const SBD_STATUS_UNHEALTHY = "unhealthy"
const SBD_STATUS_HEALTHY = "healthy"
+// NewCollector create a new sbd collector
func NewCollector(sbdPath string, sbdConfigPath string) (*sbdCollector, error)
{
err := checkArguments(sbdPath, sbdConfigPath)
if err != nil {
@@ -33,6 +35,7 @@
}
c.SetDescriptor("devices", "SBD devices; one line per device",
[]string{"device", "status"})
+ c.SetDescriptor("timeouts", "SBD timeouts for each device and type",
[]string{"device", "type"})
return c, nil
}
@@ -68,6 +71,15 @@
ch <- c.MakeGaugeMetric("devices", 1, sbdDev, sbdStatus)
}
+ sbdWatchdogs, sbdMsgWaits := c.getSbdTimeouts(sbdDevices)
+ for sbdDev, sbdWatchdog := range sbdWatchdogs {
+ ch <- c.MakeGaugeMetric("timeouts", sbdWatchdog, sbdDev,
"watchdog")
+ }
+
+ for sbdDev, sbdMsgWait := range sbdMsgWaits {
+ ch <- c.MakeGaugeMetric("timeouts", sbdMsgWait, sbdDev,
"msgwait")
+ }
+
return nil
}
@@ -132,3 +144,39 @@
return sbdStatuses
}
+
+// for each sbd device, extract the watchdog and msgwait timeout via regex
+func (c *sbdCollector) getSbdTimeouts(sbdDevices []string)
(map[string]float64, map[string]float64) {
+ sbdWatchdogs := make(map[string]float64)
+ sbdMsgWaits := make(map[string]float64)
+ for _, sbdDev := range sbdDevices {
+ sbdDump, _ := exec.Command(c.sbdPath, "-d", sbdDev,
"dump").Output()
+
+ regexW := regexp.MustCompile(`Timeout \(msgwait\) *: \d+`)
+ regex := regexp.MustCompile(`Timeout \(watchdog\) *: \d+`)
+
+ msgWaitLine := regexW.FindStringSubmatch(string(sbdDump))
+ watchdogLine := regex.FindStringSubmatch(string(sbdDump))
+
+ if watchdogLine == nil || msgWaitLine == nil {
+ continue
+ }
+
+ // get the timeout from the line
+ regexNumber := regexp.MustCompile(`\d+`)
+ watchdogTimeout :=
regexNumber.FindString(string(watchdogLine[0]))
+ msgWaitTimeout := regexNumber.FindString(string(msgWaitLine[0]))
+
+ // map the timeout to the device
+ if s, err := strconv.ParseFloat(watchdogTimeout, 64); err ==
nil {
+ sbdWatchdogs[sbdDev] = s
+ }
+
+ // map the timeout to the device
+ if s, err := strconv.ParseFloat(msgWaitTimeout, 64); err == nil
{
+ sbdMsgWaits[sbdDev] = s
+ }
+
+ }
+ return sbdWatchdogs, sbdMsgWaits
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/prometheus-ha_cluster_exporter-1.1.0+git.1594637514.c1eae0c/collector/sbd/sbd_test.go
new/prometheus-ha_cluster_exporter-1.2.0+git.1599131770.8912739/collector/sbd/sbd_test.go
---
old/prometheus-ha_cluster_exporter-1.1.0+git.1594637514.c1eae0c/collector/sbd/sbd_test.go
2020-07-13 12:51:54.000000000 +0200
+++
new/prometheus-ha_cluster_exporter-1.2.0+git.1599131770.8912739/collector/sbd/sbd_test.go
2020-09-03 13:16:10.000000000 +0200
@@ -214,6 +214,13 @@
}
func TestSBDCollector(t *testing.T) {
- collector, _ := NewCollector("../../test/fake_sbd.sh",
"../../test/fake_sbdconfig")
+ collector, _ := NewCollector("../../test/fake_sbd_dump.sh",
"../../test/fake_sbdconfig")
+ assertcustom.Metrics(t, collector, "sbd.metrics")
+}
+
+func TestWatchdog(t *testing.T) {
+ collector, err := NewCollector("../../test/fake_sbd_dump.sh",
"../../test/fake_sbdconfig")
+
+ assert.Nil(t, err)
assertcustom.Metrics(t, collector, "sbd.metrics")
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/prometheus-ha_cluster_exporter-1.1.0+git.1594637514.c1eae0c/doc/metrics.md
new/prometheus-ha_cluster_exporter-1.2.0+git.1599131770.8912739/doc/metrics.md
---
old/prometheus-ha_cluster_exporter-1.1.0+git.1594637514.c1eae0c/doc/metrics.md
2020-07-13 12:51:54.000000000 +0200
+++
new/prometheus-ha_cluster_exporter-1.2.0+git.1599131770.8912739/doc/metrics.md
2020-09-03 13:16:10.000000000 +0200
@@ -198,7 +198,8 @@
The SBD subsystems collect devices stats by parsing its configuration and the
output of `sbd --dump`.
0. [Sample](../test/sbd.metrics)
-2. [`ha_cluster_sbd_devices`](#ha_cluster_sbd_devices)
+1. [`ha_cluster_sbd_devices`](#ha_cluster_sbd_devices)
+2. [`ha_cluster_sbd_timeouts`](#ha_cluster_sbd_timeouts)
### `ha_cluster_sbd_devices`
@@ -214,6 +215,18 @@
The total number of lines for this metric will be the cardinality of `device`.
+### `ha_cluster_sbd_timeouts`
+
+#### Description
+
+The SBD timeouts pro SBD device
+Value is an integer expessing the timeout
+
+#### Labels
+
+- `device`: the path of the SBD device
+- `type`: either `watchdog` or `msgwait`
+
## DRBD
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/prometheus-ha_cluster_exporter-1.1.0+git.1594637514.c1eae0c/packaging/obs/prometheus-ha_cluster_exporter/prometheus-ha_cluster_exporter.spec
new/prometheus-ha_cluster_exporter-1.2.0+git.1599131770.8912739/packaging/obs/prometheus-ha_cluster_exporter/prometheus-ha_cluster_exporter.spec
---
old/prometheus-ha_cluster_exporter-1.1.0+git.1594637514.c1eae0c/packaging/obs/prometheus-ha_cluster_exporter/prometheus-ha_cluster_exporter.spec
2020-07-13 12:51:54.000000000 +0200
+++
new/prometheus-ha_cluster_exporter-1.2.0+git.1599131770.8912739/packaging/obs/prometheus-ha_cluster_exporter/prometheus-ha_cluster_exporter.spec
2020-09-03 13:16:10.000000000 +0200
@@ -25,16 +25,12 @@
Source1: vendor.tar.gz
ExclusiveArch: aarch64 x86_64 ppc64le s390x
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-BuildRequires: go >= 1.12
+BuildRequires: golang-packaging
+BuildRequires: golang(API) >= 1.12
Provides: ha_cluster_exporter = %{version}-%{release}
Provides: prometheus(ha_cluster_exporter) = %{version}-%{release}
-# Unlike C/C++ packages, Golang packages do not have header files. They are
statically built so the main package is also the devel package.
-Provides: %{name}-devel = %{version}
-Provides: %{name}-devel-static = %{version}
-
-# Make sure that the binary is not getting stripped.
-%undefine _build_create_debug
-%define __arch_install_post export NO_BRP_STRIP_DEBUG=true
+
+%{go_nostrip}
%description
Prometheus exporter for Pacemaker HA clusters metrics
@@ -49,6 +45,7 @@
export CGO_ENABLED=0
go build -mod=vendor \
+ -buildmode=pie \
-ldflags="-s -w -X main.version=%{version}" \
-o %{shortname}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/prometheus-ha_cluster_exporter-1.1.0+git.1594637514.c1eae0c/test/corosync.metrics
new/prometheus-ha_cluster_exporter-1.2.0+git.1599131770.8912739/test/corosync.metrics
---
old/prometheus-ha_cluster_exporter-1.1.0+git.1594637514.c1eae0c/test/corosync.metrics
2020-07-13 12:51:54.000000000 +0200
+++
new/prometheus-ha_cluster_exporter-1.2.0+git.1599131770.8912739/test/corosync.metrics
2020-09-03 13:16:10.000000000 +0200
@@ -1,3 +1,8 @@
+# HELP ha_cluster_corosync_member_votes How many votes each member node has
contributed with to the current quorum
+# TYPE ha_cluster_corosync_member_votes gauge
+ha_cluster_corosync_member_votes{local="false",node="Qdevice",node_id="0"} 1
+ha_cluster_corosync_member_votes{local="false",node="stefanotorresi-hana02",node_id="1084783376"}
1
+ha_cluster_corosync_member_votes{local="true",node="stefanotorresi-hana01",node_id="1084783375"}
1
# HELP ha_cluster_corosync_quorate Whether or not the cluster is quorate
# TYPE ha_cluster_corosync_quorate gauge
ha_cluster_corosync_quorate 1
@@ -14,7 +19,3 @@
# TYPE ha_cluster_corosync_rings gauge
ha_cluster_corosync_rings{address="10.0.0.1",node_id="1084783375",number="0",ring_id="1084783375/40"}
0
ha_cluster_corosync_rings{address="172.16.0.1",node_id="1084783375",number="1",ring_id="1084783375/40"}
1
-# HELP ha_cluster_corosync_member_votes How many votes each member node has
contributed with to the current quorum
-# TYPE ha_cluster_corosync_member_votes gauge
-ha_cluster_corosync_member_votes{local="true",node="stefanotorresi-hana01",node_id="1084783375"}
1
-ha_cluster_corosync_member_votes{local="false",node="stefanotorresi-hana02",node_id="1084783376"}
1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/prometheus-ha_cluster_exporter-1.1.0+git.1594637514.c1eae0c/test/fake_corosync-quorumtool.sh
new/prometheus-ha_cluster_exporter-1.2.0+git.1599131770.8912739/test/fake_corosync-quorumtool.sh
---
old/prometheus-ha_cluster_exporter-1.1.0+git.1594637514.c1eae0c/test/fake_corosync-quorumtool.sh
2020-07-13 12:51:54.000000000 +0200
+++
new/prometheus-ha_cluster_exporter-1.2.0+git.1599131770.8912739/test/fake_corosync-quorumtool.sh
2020-09-03 13:16:10.000000000 +0200
@@ -20,7 +20,8 @@
Membership information
----------------------
- Nodeid Votes Name
-1084783375 1 stefanotorresi-hana01 (local)
-1084783376 1 stefanotorresi-hana02
+ Nodeid Votes Qdevice Name
+1084783375 1 NR stefanotorresi-hana01 (local)
+1084783376 1 A,V,NMW stefanotorresi-hana02
+ 0 1 Qdevice
EOF
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/prometheus-ha_cluster_exporter-1.1.0+git.1594637514.c1eae0c/test/fake_sbd_dump.sh
new/prometheus-ha_cluster_exporter-1.2.0+git.1599131770.8912739/test/fake_sbd_dump.sh
---
old/prometheus-ha_cluster_exporter-1.1.0+git.1594637514.c1eae0c/test/fake_sbd_dump.sh
1970-01-01 01:00:00.000000000 +0100
+++
new/prometheus-ha_cluster_exporter-1.2.0+git.1599131770.8912739/test/fake_sbd_dump.sh
2020-09-03 13:16:10.000000000 +0200
@@ -0,0 +1,14 @@
+#!/usr/bin/env bash
+
+cat <<EOF
+==Dumping header on disk /dev/vdc
+Header version : 2.1
+UUID : 1ed3171d-066d-47ca-8f76-aec25d9efed4
+Number of slots : 255
+Sector size : 512
+Timeout (watchdog) : 9
+Timeout (allocate) : 2
+Timeout (loop) : 1
+Timeout (msgwait) : 10
+==Header on disk /dev/vdc is dumped
+EOF
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/prometheus-ha_cluster_exporter-1.1.0+git.1594637514.c1eae0c/test/sbd.metrics
new/prometheus-ha_cluster_exporter-1.2.0+git.1599131770.8912739/test/sbd.metrics
---
old/prometheus-ha_cluster_exporter-1.1.0+git.1594637514.c1eae0c/test/sbd.metrics
2020-07-13 12:51:54.000000000 +0200
+++
new/prometheus-ha_cluster_exporter-1.2.0+git.1599131770.8912739/test/sbd.metrics
2020-09-03 13:16:10.000000000 +0200
@@ -1,4 +1,10 @@
# HELP ha_cluster_sbd_devices SBD devices; one line per device
# TYPE ha_cluster_sbd_devices gauge
ha_cluster_sbd_devices{device="/dev/vdc",status="healthy"} 1
-ha_cluster_sbd_devices{device="/dev/vdd",status="unhealthy"} 1
+ha_cluster_sbd_devices{device="/dev/vdd",status="healthy"} 1
+# HELP ha_cluster_sbd_timeouts SBD timeouts for each device and type
+# TYPE ha_cluster_sbd_timeouts gauge
+ha_cluster_sbd_timeouts{device="/dev/vdc",type="msgwait"} 10
+ha_cluster_sbd_timeouts{device="/dev/vdc",type="watchdog"} 9
+ha_cluster_sbd_timeouts{device="/dev/vdd",type="msgwait"} 10
+ha_cluster_sbd_timeouts{device="/dev/vdd",type="watchdog"} 9
++++++ vendor.tar.gz ++++++