Skip to content

Commit

Permalink
Merge pull request #23 from kumina/kingpin_update
Browse files Browse the repository at this point in the history
Refactored to kingpin and bugfix.
  • Loading branch information
BartVerc committed Feb 15, 2019
2 parents 8bbd11f + d73bd20 commit 623a840
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 18 deletions.
9 changes: 7 additions & 2 deletions nosystemd.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,19 @@

package main

import "io"
import(
"io"

"github.com/alecthomas/kingpin"
)


type Journal struct {
io.Closer
Path string
}

func systemdFlags(enable *bool, unit, slice, path *string) {}
func systemdFlags(enable *bool, unit, slice, path *string, app *kingpin.Application) {}

func NewJournal(unit, slice, path string) (*Journal, error) {
return nil, nil
Expand Down
21 changes: 11 additions & 10 deletions postfix_exporter.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ import (
"bufio"
"bytes"
"errors"
"flag"
"fmt"
"github.com/alecthomas/kingpin"
"io"
"log"
"net"
Expand Down Expand Up @@ -238,11 +238,11 @@ func CollectBinaryShowqFromReader(file io.Reader, ch chan<- prometheus.Metric) e
sizeHistogram.WithLabelValues(queue).Observe(size)
} else if key == "time" {
// Message time as a UNIX timestamp.
time, err := strconv.ParseFloat(value, 64)
utime, err := strconv.ParseFloat(value, 64)
if err != nil {
return err
}
ageHistogram.WithLabelValues(queue).Observe(now - time)
ageHistogram.WithLabelValues(queue).Observe(now - utime)
}
}

Expand Down Expand Up @@ -663,16 +663,17 @@ func (e *PostfixExporter) Collect(ch chan<- prometheus.Metric) {

func main() {
var (
listenAddress = flag.String("web.listen-address", ":9154", "Address to listen on for web interface and telemetry.")
metricsPath = flag.String("web.telemetry-path", "/metrics", "Path under which to expose metrics.")
postfixShowqPath = flag.String("postfix.showq_path", "/var/spool/postfix/public/showq", "Path at which Postfix places its showq socket.")
postfixLogfilePath = flag.String("postfix.logfile_path", "/var/log/postfix_exporter_input.log", "Path where Postfix writes log entries. This file will be truncated by this exporter.")

app = kingpin.New("postfix_exporter", "Prometheus metrics exporter for postfix")
listenAddress = app.Flag("web.listen-address", "Address to listen on for web interface and telemetry.").Default(":9154").String()
metricsPath = app.Flag("web.telemetry-path", "Path under which to expose metrics.").Default("/metrics").String()
postfixShowqPath = app.Flag("postfix.showq_path", "Path at which Postfix places its showq socket.").Default("/var/spool/postfix/public/showq").String()
postfixLogfilePath = app.Flag("postfix.logfile_path", "Path where Postfix writes log entries. This file will be truncated by this exporter.").Default("/var/log/postfix_exporter_input.log").String()
systemdEnable bool
systemdUnit, systemdSlice, systemdJournalPath string
)
systemdFlags(&systemdEnable, &systemdUnit, &systemdSlice, &systemdJournalPath)
flag.Parse()
systemdFlags(&systemdEnable, &systemdUnit, &systemdSlice, &systemdJournalPath, app)

kingpin.MustParse(app.Parse(os.Args[1:]))

var journal *Journal
if systemdEnable {
Expand Down
12 changes: 6 additions & 6 deletions systemd.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
package main

import (
"flag"
"fmt"
"log"
"sync"
"time"

"github.com/alecthomas/kingpin"
"github.com/coreos/go-systemd/sdjournal"
)

Expand Down Expand Up @@ -88,11 +88,11 @@ func (j *Journal) NextMessage() (s string, c uint64, err error) {
}

// systemdFlags sets the flags for use with systemd
func systemdFlags(enable *bool, unit, slice, path *string) {
flag.BoolVar(enable, "systemd.enable", false, "Read from the systemd journal instead of log")
flag.StringVar(unit, "systemd.unit", "postfix.service", "Name of the Postfix systemd unit.")
flag.StringVar(slice, "systemd.slice", "", "Name of the Postfix systemd slice. Overrides the systemd unit.")
flag.StringVar(path, "systemd.journal_path", "", "Path to the systemd journal")
func systemdFlags(enable *bool, unit, slice, path *string, app *kingpin.Application) {
app.Flag("systemd.enable", "Read from the systemd journal instead of log").Default("false").BoolVar(enable)
app.Flag("systemd.unit", "Name of the Postfix systemd unit.").Default("postfix.service").StringVar(unit)
app.Flag("systemd.slice", "Name of the Postfix systemd slice. Overrides the systemd unit.").Default("").StringVar(slice)
app.Flag("systemd.journal_path", "Path to the systemd journal").Default("").StringVar(path)
}

// CollectLogfileFromJournal Collects entries from the systemd journal.
Expand Down

0 comments on commit 623a840

Please sign in to comment.