Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package prometheus-ha_cluster_exporter for openSUSE:Factory checked in at 2021-06-01 10:37:56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/prometheus-ha_cluster_exporter (Old) and /work/SRC/openSUSE:Factory/.prometheus-ha_cluster_exporter.new.1898 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "prometheus-ha_cluster_exporter" Tue Jun 1 10:37:56 2021 rev:11 rq:895914 version:1.2.3+git.1622185790.d319147 Changes: -------- --- /work/SRC/openSUSE:Factory/prometheus-ha_cluster_exporter/prometheus-ha_cluster_exporter.changes 2021-05-12 19:33:04.258836571 +0200 +++ /work/SRC/openSUSE:Factory/.prometheus-ha_cluster_exporter.new.1898/prometheus-ha_cluster_exporter.changes 2021-06-01 10:39:10.272987670 +0200 @@ -1,0 +2,14 @@ +Fri May 28 07:36:31 2021 UTC - shap-st...@suse.de + +- Release 1.2.3 + + ## Changed + - Compress GitHub artifacts (#195) + + ## Fixed + - Fix cloned resource collection once and for all (#194) + + ## Removed + - Remove the `make download` target, which was mostly useless. (#194) + +------------------------------------------------------------------- Old: ---- prometheus-ha_cluster_exporter-1.2.2+git.1620117406.cf586eb.tar.gz New: ---- prometheus-ha_cluster_exporter-1.2.3+git.1622185790.d319147.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ prometheus-ha_cluster_exporter.spec ++++++ --- /var/tmp/diff_new_pack.hkSRUs/_old 2021-06-01 10:39:10.728988447 +0200 +++ /var/tmp/diff_new_pack.hkSRUs/_new 2021-06-01 10:39:10.728988447 +0200 @@ -18,7 +18,7 @@ Name: prometheus-ha_cluster_exporter # Version will be processed via set_version source service -Version: 1.2.2+git.1620117406.cf586eb +Version: 1.2.3+git.1622185790.d319147 Release: 0 Summary: Prometheus exporter for Pacemaker HA clusters metrics License: Apache-2.0 ++++++ _service ++++++ --- /var/tmp/diff_new_pack.hkSRUs/_old 2021-06-01 10:39:10.756988494 +0200 +++ /var/tmp/diff_new_pack.hkSRUs/_new 2021-06-01 10:39:10.760988502 +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.2.2</param> + <param name="revision">1.2.3</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.2.2+git.1620117406.cf586eb</param> + <param name="version">1.2.3+git.1622185790.d319147</param> <param name="filename">prometheus-ha_cluster_exporter</param> </service> <service name="set_version" mode="disabled"> ++++++ prometheus-ha_cluster_exporter-1.2.2+git.1620117406.cf586eb.tar.gz -> prometheus-ha_cluster_exporter-1.2.3+git.1622185790.d319147.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/prometheus-ha_cluster_exporter-1.2.2+git.1620117406.cf586eb/Makefile new/prometheus-ha_cluster_exporter-1.2.3+git.1622185790.d319147/Makefile --- old/prometheus-ha_cluster_exporter-1.2.2+git.1620117406.cf586eb/Makefile 2021-05-04 10:36:46.000000000 +0200 +++ new/prometheus-ha_cluster_exporter-1.2.3+git.1622185790.d319147/Makefile 2021-05-28 09:09:50.000000000 +0200 @@ -17,11 +17,7 @@ # the Go archs we crosscompile to ARCHS ?= amd64 arm64 ppc64le s390x -default: clean download mod-tidy generate fmt vet-check test build - -download: - go mod download - go mod verify +default: clean mod-tidy generate fmt vet-check test build build: amd64 @@ -36,7 +32,7 @@ static-checks: vet-check fmt-check -vet-check: download +vet-check: go vet ./... fmt: @@ -51,7 +47,7 @@ generate: go generate ./... -test: download +test: go test -v ./... checks: static-checks test diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/prometheus-ha_cluster_exporter-1.2.2+git.1620117406.cf586eb/collector/pacemaker/pacemaker.go new/prometheus-ha_cluster_exporter-1.2.3+git.1622185790.d319147/collector/pacemaker/pacemaker.go --- old/prometheus-ha_cluster_exporter-1.2.2+git.1620117406.cf586eb/collector/pacemaker/pacemaker.go 2021-05-04 10:36:46.000000000 +0200 +++ new/prometheus-ha_cluster_exporter-1.2.3+git.1622185790.d319147/collector/pacemaker/pacemaker.go 2021-05-28 09:09:50.000000000 +0200 @@ -124,8 +124,16 @@ c.recordResource(resource, "", "", ch) } for _, clone := range crmMon.Clones { + recorded := make(map[crmmon.Resource]bool) // we need to track cloned resources to avoid duplicates for _, resource := range clone.Resources { + // Avoid recording stopped cloned resources multiple times + if recorded[resource] == true { + continue + } + c.recordResource(resource, "", clone.Id, ch) + + recorded[resource] = true } } for _, group := range crmMon.Groups { @@ -146,9 +154,9 @@ "failure_ignored": resource.FailureIgnored, } - // Don't create metric for OCFS nodes that aren't running since those would generate duplicate entries - if resource.Agent == "ocf::heartbeat:Filesystem" && resource.NodesRunningOn == 0 { - return + var nodeName string + if resource.Node != nil { + nodeName = resource.Node.Name } // since we have a combined cardinality of resource * status, we cycle through all the possible statuses @@ -158,13 +166,8 @@ if flag { statusValue = 1 } - var nodeName string - if resource.Node != nil { - nodeName = resource.Node.Name - } - ch <- c.MakeGaugeMetric( - "resources", - statusValue, + + labels := []string{ nodeName, resource.Id, strings.ToLower(resource.Role), @@ -172,7 +175,10 @@ resourceStatus, resource.Agent, group, - clone) + clone, + } + + ch <- c.MakeGaugeMetric("resources", statusValue, labels...) } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/prometheus-ha_cluster_exporter-1.2.2+git.1620117406.cf586eb/test/mock_collector/instrumented_collector.go new/prometheus-ha_cluster_exporter-1.2.3+git.1622185790.d319147/test/mock_collector/instrumented_collector.go --- old/prometheus-ha_cluster_exporter-1.2.2+git.1620117406.cf586eb/test/mock_collector/instrumented_collector.go 2021-05-04 10:36:46.000000000 +0200 +++ new/prometheus-ha_cluster_exporter-1.2.3+git.1622185790.d319147/test/mock_collector/instrumented_collector.go 2021-05-28 09:09:50.000000000 +0200 @@ -5,48 +5,47 @@ package mock_collector import ( - reflect "reflect" - gomock "github.com/golang/mock/gomock" prometheus "github.com/prometheus/client_golang/prometheus" + reflect "reflect" ) -// MockInstrumentableCollector is a mock of InstrumentableCollector interface. +// MockInstrumentableCollector is a mock of InstrumentableCollector interface type MockInstrumentableCollector struct { ctrl *gomock.Controller recorder *MockInstrumentableCollectorMockRecorder } -// MockInstrumentableCollectorMockRecorder is the mock recorder for MockInstrumentableCollector. +// MockInstrumentableCollectorMockRecorder is the mock recorder for MockInstrumentableCollector type MockInstrumentableCollectorMockRecorder struct { mock *MockInstrumentableCollector } -// NewMockInstrumentableCollector creates a new mock instance. +// NewMockInstrumentableCollector creates a new mock instance func NewMockInstrumentableCollector(ctrl *gomock.Controller) *MockInstrumentableCollector { mock := &MockInstrumentableCollector{ctrl: ctrl} mock.recorder = &MockInstrumentableCollectorMockRecorder{mock} return mock } -// EXPECT returns an object that allows the caller to indicate expected use. +// EXPECT returns an object that allows the caller to indicate expected use func (m *MockInstrumentableCollector) EXPECT() *MockInstrumentableCollectorMockRecorder { return m.recorder } -// Collect mocks base method. +// Collect mocks base method func (m *MockInstrumentableCollector) Collect(arg0 chan<- prometheus.Metric) { m.ctrl.T.Helper() m.ctrl.Call(m, "Collect", arg0) } -// Collect indicates an expected call of Collect. +// Collect indicates an expected call of Collect func (mr *MockInstrumentableCollectorMockRecorder) Collect(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Collect", reflect.TypeOf((*MockInstrumentableCollector)(nil).Collect), arg0) } -// CollectWithError mocks base method. +// CollectWithError mocks base method func (m *MockInstrumentableCollector) CollectWithError(arg0 chan<- prometheus.Metric) error { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "CollectWithError", arg0) @@ -54,25 +53,25 @@ return ret0 } -// CollectWithError indicates an expected call of CollectWithError. +// CollectWithError indicates an expected call of CollectWithError func (mr *MockInstrumentableCollectorMockRecorder) CollectWithError(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CollectWithError", reflect.TypeOf((*MockInstrumentableCollector)(nil).CollectWithError), arg0) } -// Describe mocks base method. +// Describe mocks base method func (m *MockInstrumentableCollector) Describe(arg0 chan<- *prometheus.Desc) { m.ctrl.T.Helper() m.ctrl.Call(m, "Describe", arg0) } -// Describe indicates an expected call of Describe. +// Describe indicates an expected call of Describe func (mr *MockInstrumentableCollectorMockRecorder) Describe(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Describe", reflect.TypeOf((*MockInstrumentableCollector)(nil).Describe), arg0) } -// GetSubsystem mocks base method. +// GetSubsystem mocks base method func (m *MockInstrumentableCollector) GetSubsystem() string { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetSubsystem") @@ -80,7 +79,7 @@ return ret0 } -// GetSubsystem indicates an expected call of GetSubsystem. +// GetSubsystem indicates an expected call of GetSubsystem func (mr *MockInstrumentableCollectorMockRecorder) GetSubsystem() *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSubsystem", reflect.TypeOf((*MockInstrumentableCollector)(nil).GetSubsystem)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/prometheus-ha_cluster_exporter-1.2.2+git.1620117406.cf586eb/test/pacemaker.metrics new/prometheus-ha_cluster_exporter-1.2.3+git.1622185790.d319147/test/pacemaker.metrics --- old/prometheus-ha_cluster_exporter-1.2.2+git.1620117406.cf586eb/test/pacemaker.metrics 2021-05-04 10:36:46.000000000 +0200 +++ new/prometheus-ha_cluster_exporter-1.2.3+git.1622185790.d319147/test/pacemaker.metrics 2021-05-28 09:09:50.000000000 +0200 @@ -103,6 +103,11 @@ ha_cluster_pacemaker_resources{agent="ocf::heartbeat:Filesystem",clone="c-clusterfs",group="",managed="true",node="node02",resource="clusterfs",role="started",status="failed"} 0 ha_cluster_pacemaker_resources{agent="ocf::heartbeat:Filesystem",clone="c-clusterfs",group="",managed="true",node="node02",resource="clusterfs",role="started",status="failure_ignored"} 0 ha_cluster_pacemaker_resources{agent="ocf::heartbeat:Filesystem",clone="c-clusterfs",group="",managed="true",node="node02",resource="clusterfs",role="started",status="orphaned"} 0 +ha_cluster_pacemaker_resources{agent="ocf::heartbeat:Filesystem",clone="c-clusterfs",group="",managed="true",node="",resource="clusterfs",role="stopped",status="active"} 0 +ha_cluster_pacemaker_resources{agent="ocf::heartbeat:Filesystem",clone="c-clusterfs",group="",managed="true",node="",resource="clusterfs",role="stopped",status="blocked"} 0 +ha_cluster_pacemaker_resources{agent="ocf::heartbeat:Filesystem",clone="c-clusterfs",group="",managed="true",node="",resource="clusterfs",role="stopped",status="failed"} 0 +ha_cluster_pacemaker_resources{agent="ocf::heartbeat:Filesystem",clone="c-clusterfs",group="",managed="true",node="",resource="clusterfs",role="stopped",status="failure_ignored"} 0 +ha_cluster_pacemaker_resources{agent="ocf::heartbeat:Filesystem",clone="c-clusterfs",group="",managed="true",node="",resource="clusterfs",role="stopped",status="orphaned"} 0 ha_cluster_pacemaker_resources{agent="ocf::heartbeat:IPaddr2",clone="",group="",managed="true",node="node01",resource="rsc_ip_PRD_HDB00",role="started",status="active"} 1 ha_cluster_pacemaker_resources{agent="ocf::heartbeat:IPaddr2",clone="",group="",managed="true",node="node01",resource="rsc_ip_PRD_HDB00",role="started",status="blocked"} 0 ha_cluster_pacemaker_resources{agent="ocf::heartbeat:IPaddr2",clone="",group="",managed="true",node="node01",resource="rsc_ip_PRD_HDB00",role="started",status="failed"} 0 ++++++ vendor.tar.gz ++++++