diff --git a/exporter.go b/exporter.go index b6fa495902582bc9f3b67fe426fdd19d06c22cfa..0c4f07d32d755ec97510233a3a45205d45ff6f28 100644 --- a/exporter.go +++ b/exporter.go @@ -43,25 +43,25 @@ func (re *rsyslogExporter) handleStatLine(buf []byte) { case rsyslogAction: a := newActionFromJSON(buf) for _, p := range a.toPoints() { - re.add(p) + re.set(p) } case rsyslogInput: i := newInputFromJSON(buf) for _, p := range i.toPoints() { - re.add(p) + re.set(p) } case rsyslogQueue: q := newQueueFromJSON(buf) for _, p := range q.toPoints() { - re.add(p) + re.set(p) } case rsyslogResource: r := newResourceFromJSON(buf) for _, p := range r.toPoints() { - re.add(p) + re.set(p) } default: diff --git a/exporter_test.go b/exporter_test.go index 729b7bae838a0cef6c362c26206333ed9181f67e..a185f62812b42ea116865477e95e5595e91d5ac4 100644 --- a/exporter_test.go +++ b/exporter_test.go @@ -35,7 +35,7 @@ func testHelper(t *testing.T, line []byte, testCase []*testUnit) { var wanted float64 switch p.Type { case counter: - wanted = item.Val * 2 + wanted = item.Val case gauge: wanted = item.Val default: diff --git a/point.go b/point.go index 726e9a2f5945d029a55749ecc36a350a316f201a..4150c5f376c2b73eaadd9e04ebd49c6667d0eddf 100644 --- a/point.go +++ b/point.go @@ -27,24 +27,6 @@ type point struct { LabelValue string } -func (p *point) add(newPoint *point) error { - switch newPoint.Type { - case gauge: - if p.Type != gauge { - return ErrIncompatiblePointType - } - p.Value = newPoint.Value - case counter: - if p.Type != counter { - return ErrIncompatiblePointType - } - p.Value = p.Value + newPoint.Value - default: - return ErrUnknownPointType - } - return nil -} - func (p *point) promDescription() *prometheus.Desc { return prometheus.NewDesc( prometheus.BuildFQName("", "rsyslog", p.Name), diff --git a/point_test.go b/point_test.go index bbf610ff18e3a588d8408be7ee24ddc49bb76b88..a8221a35d970def75bfd357d5c617882560afcae 100644 --- a/point_test.go +++ b/point_test.go @@ -6,41 +6,14 @@ import ( "github.com/prometheus/client_golang/prometheus" ) -func TestAddCounter(t *testing.T) { +func TestCounter(t *testing.T) { p1 := &point{ Name: "my counter", Type: counter, Value: int64(10), } - p2 := &point{ - Name: "my counter", - Type: counter, - Value: int64(5), - } - - err := p1.add(p2) - if err != nil { - t.Error(err) - } - - if expect := int64(15); p1.Value != expect { - t.Errorf("expected '%d', got '%d'", expect, p1.Value) - } - - p3 := &point{ - Name: "my gauge", - Type: gauge, - Value: int64(10), - } - - err = p1.add(p3) - - if err != ErrIncompatiblePointType { - t.Errorf("incompatible point types should raise error") - } - - if want, got := float64(15), p1.promValue(); want != got { + if want, got := float64(10), p1.promValue(); want != got { t.Errorf("want '%f', got '%f'", want, got) } @@ -54,40 +27,14 @@ func TestAddCounter(t *testing.T) { } } -func TestAddGauge(t *testing.T) { +func TestGauge(t *testing.T) { p1 := &point{ Name: "my gauge", Type: gauge, Value: int64(10), } - p2 := &point{ - Name: "my gauge", - Type: gauge, - Value: int64(5), - } - - err := p1.add(p2) - if err != nil { - t.Error(err) - } - - if want, got := int64(5), p1.Value; want != got { - t.Errorf("want '%d', got '%d'", want, got) - } - - p3 := &point{ - Name: "my counter", - Type: counter, - Value: int64(10), - } - - err = p1.add(p3) - if err != ErrIncompatiblePointType { - t.Errorf("incompatible point types should raise error") - } - - if want, got := float64(5), p1.promValue(); want != got { + if want, got := float64(10), p1.promValue(); want != got { t.Errorf("want '%f', got '%f'", want, got) } @@ -101,22 +48,3 @@ func TestAddGauge(t *testing.T) { } } - -func TestAddNotHandled(t *testing.T) { - p1 := &point{ - Name: "my gauge", - Type: gauge, - Value: int64(10), - } - - p2 := &point{ - Name: "bad", - Type: 99, - Value: int64(5), - } - - err := p1.add(p2) - if err != ErrUnknownPointType { - t.Errorf("incompatible point types should raise error") - } -} diff --git a/pointstore.go b/pointstore.go index 4531b5fbe5295cdede4445690f8bf8ee448fe7d4..3da93dfeb75e5cff6318706c4b10a78677ce57c1 100644 --- a/pointstore.go +++ b/pointstore.go @@ -33,14 +33,10 @@ func (ps *pointStore) keys() []string { return keys } -func (ps *pointStore) add(p *point) error { +func (ps *pointStore) set(p *point) error { var err error ps.lock.Lock() - if _, ok := ps.pointMap[p.key()]; ok { - err = ps.pointMap[p.key()].add(p) - } else { - ps.pointMap[p.key()] = p - } + ps.pointMap[p.key()] = p ps.lock.Unlock() return err } diff --git a/pointstore_test.go b/pointstore_test.go index 210a95d00fcec5206a008c9bddc24477a6dd0373..ad7afcbff5807eebc69bbeda6d8dbde3cbafba3e 100644 --- a/pointstore_test.go +++ b/pointstore_test.go @@ -17,7 +17,7 @@ func TestPointStore(t *testing.T) { Value: int64(5), } - err := ps.add(s1) + err := ps.set(s1) if err != nil { t.Error(err) } @@ -31,7 +31,7 @@ func TestPointStore(t *testing.T) { t.Errorf("want '%d', got '%d'", want, got) } - err = ps.add(s2) + err = ps.set(s2) if err != nil { t.Error(err) } @@ -41,7 +41,7 @@ func TestPointStore(t *testing.T) { t.Error(err) } - if want, got := int64(15), got.Value; want != got { + if want, got := int64(5), got.Value; want != got { t.Errorf("want '%d', got '%d'", want, got) } @@ -51,7 +51,7 @@ func TestPointStore(t *testing.T) { Value: int64(20), } - err = ps.add(s3) + err = ps.set(s3) if err != nil { t.Error(err) } @@ -71,7 +71,7 @@ func TestPointStore(t *testing.T) { Value: int64(15), } - err = ps.add(s4) + err = ps.set(s4) if err != nil { t.Error(err) }