Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update from Upstream #2

Open
wants to merge 128 commits into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
Show all changes
128 commits
Select commit Hold shift + click to select a range
82c0425
Implement collection from the systemd journal
silkeh Jan 28, 2018
0a26a03
Merge pull request #6 from silkeh/collect-from-journal
BartVerc Feb 2, 2018
d0b2298
build_static.sh updated to ubuntu docker container to support systemd…
BartVerc Feb 2, 2018
6569ec9
Initialize histograms to zero
BartVerc Feb 7, 2018
c1995d4
Comments added.
BartVerc Feb 7, 2018
fbe83f5
Merge pull request #8 from kumina/init_histograms
BartVerc Feb 8, 2018
77dfb94
Document systemd usage
silkeh Feb 13, 2018
b1025cf
Merge pull request #9 from silkeh/systemd-readme
BartVerc Feb 14, 2018
1d58438
Added CHANGELOG.md.
BartVerc Feb 23, 2018
ec3a8e5
fix non-updating metrics from systemd-journal
WilliButz Apr 15, 2018
b572eee
Merge pull request #12 from WilliButz/fix-systemd-journal-metrics
BartVerc Apr 19, 2018
0c405fa
Add nosystemd build tag
silkeh Apr 15, 2018
2f94d55
Merge pull request #13 from silkeh/systemd-build-tag
BartVerc May 4, 2018
b0c9689
Update readme and changelog for release.
BartVerc May 4, 2018
b137412
When following log files, tail them rather than truncate them.
eklitzke Sep 30, 2018
5e66ed0
add Dockefile
jangrewe Nov 4, 2018
b3b6568
Merge pull request #18 from jangrewe/master
BartVerc Nov 6, 2018
7fa2e37
postfix_exporter.go: Fix some gosec issues.
mjtrangoni Dec 4, 2018
b22b536
.gitignore: Exclude binary and vim editor temporary files.
mjtrangoni Dec 4, 2018
76f8dd4
postfix_exporter.go: Comment out unused `CollectShowqFromFile` function
mjtrangoni Dec 4, 2018
a0059f7
systemd.go: Fix gosec issue.
mjtrangoni Dec 4, 2018
c4ddca4
Merge pull request #20 from mjtrangoni/fix-linter-issues
BartVerc Dec 13, 2018
4d19565
postfix_exporter.go: Fix megacheck issues
mjtrangoni Dec 16, 2018
1e65092
Merge pull request #22 from mjtrangoni/fix-megacheck-issues
BartVerc Dec 17, 2018
f51b1f8
Refactored to kingpin and fixed a EOF bug in CollectShowqFromReader.
BartVerc Dec 17, 2018
27ac982
postfix_exporter.go: Handle the case where EOF is reached.
mjtrangoni Feb 6, 2019
8bbd11f
Merge pull request #26 from mjtrangoni/fix-error-handling
BartVerc Feb 13, 2019
d73bd20
Fixed formatting.
BartVerc Feb 15, 2019
623a840
Merge pull request #23 from kumina/kingpin_update
BartVerc Feb 15, 2019
a4e09a2
Merge branch 'master' into tail
BartVerc Feb 15, 2019
1b1c5f3
Merge pull request #17 from eklitzke/tail
BartVerc Feb 15, 2019
af6943b
Fixed Readme.
BartVerc Feb 15, 2019
acf7a97
Use Go modules
corny Jan 28, 2019
99db001
Update Dockerfile to use Go 1.11 with modules
corny Jan 28, 2019
243cb79
Reduce indentation
corny Jan 28, 2019
7072c52
Small refactoring
corny Jan 28, 2019
43221af
Move main function to main.go
corny Feb 20, 2019
8e333e7
Update dependencies
corny Feb 20, 2019
1143110
New metrics cleanupNotAccepted and smtpDeferreds.
evilham Mar 7, 2019
63db16c
Build binary with official golang image
Mar 7, 2019
b925d46
Added support for status=deferred metric
aponert Apr 15, 2019
5ceffcd
[FIX] consistent variable names
aponert Apr 15, 2019
7f5757e
Merge pull request #1 from netlogix/ponert
liwo Apr 15, 2019
18a48b8
[FIX] made metric smtp_status_deferred actually work
aponert Apr 15, 2019
0ca7f82
Merge pull request #2 from netlogix/ponert
liwo Apr 15, 2019
689aedf
replace prometheus.Handler with promhttp.Handler
Azanx Jun 20, 2019
c43f4d9
Merge pull request #33 from Azanx/prometheusHandlerFix
timstoop Jul 25, 2019
9f69ed3
Merge pull request #29 from CamilionEU/evilham-new-metrics
timstoop Jul 25, 2019
0a237f8
Merge pull request #30 from ljagiello/build-with-golang-image
timstoop Jul 25, 2019
aa11167
Update docker file
Oct 31, 2019
365a2e3
Ignoring more files
Feb 12, 2020
b0a28de
Added logging of log event source
Feb 12, 2020
da52800
Added extra build tags to enable testing on no-linux systems
Feb 12, 2020
851c00f
Added a simple test and migrated to vgo
Feb 12, 2020
72c753f
Merge remote-tracking branch 'netlogix/nlx_master'
Feb 18, 2020
3e8a3a4
Cleaning up the Dockerfile
Feb 18, 2020
26d0642
Moved the collection of stats into its own go routine
Feb 18, 2020
574e478
Removed unused variable
Feb 18, 2020
e416d73
Fixed test
Feb 18, 2020
3af4390
- Added flag for logging lines that were not processed (mainly for de…
Feb 18, 2020
eab41da
Fixed compile failure
Feb 18, 2020
7428bf4
Added better counting of unsupported lines
Feb 19, 2020
b268207
Merge remote-tracking branch 'digineo/refactoring' into digineo-updates
Feb 19, 2020
d23c664
Fixing merge issues
Feb 19, 2020
3071189
added go.sum
Feb 19, 2020
fd473ea
Merge remote-tracking branch 'digineo/gomod' into digineo-updates
Feb 19, 2020
2e1ca8f
ran "go mod tidy" after merge
Feb 19, 2020
c598c82
Merge pull request #2 from UnikumAB/digineo-updates
flyhard Feb 19, 2020
853b880
small thing
Feb 21, 2020
7585191
Merge pull request #40 from UnikumAB/master
Ivaylo-Korakov Feb 21, 2020
69a7101
Merge pull request #42 from kumina/UnikumAB/master
Ivaylo-Korakov Feb 21, 2020
0436fed
Making test easier to use
flyhard Feb 22, 2020
0ca70fa
Created a test for Issue #35 and suggested a solution
flyhard Feb 22, 2020
8113240
Reduced the cardinality of postfix_smtpd_messages_processed_total for…
flyhard Feb 23, 2020
9800cf8
Added missing descriptions
Feb 24, 2020
7fff156
Merge pull request #43 from UnikumAB/Issue#35
Ivaylo-Korakov Feb 24, 2020
52ac464
Merge pull request #44 from UnikumAB/Issue#38
Ivaylo-Korakov Feb 24, 2020
bc2175f
Adding some test for the showq part. Found a minor bug.
Feb 24, 2020
0216235
Merge remote-tracking branch 'kumina/master'
Feb 24, 2020
ca63474
Fixing issue with collecting delays
Feb 24, 2020
b17eed2
Fixing issue with collecting smtpdProcesses without Sasl
Feb 24, 2020
a1f115b
Added Travis config file
Feb 25, 2020
3e20a86
Added Travis config file
Feb 25, 2020
be9aeb4
Added libsystemd-dev package to travis build env.
Feb 25, 2020
9daef83
Better config for travis
Feb 25, 2020
1456fb0
Added Travis config file
Feb 25, 2020
208f99c
Added Travis config file
Feb 25, 2020
8dd2215
Added libsystemd-dev package to travis build env.
Feb 25, 2020
23c2967
Better config for travis
Feb 25, 2020
63673cd
Merge branch 'Added-missing-descriptions'
Feb 25, 2020
d03d270
#14: Removed leftover info about truncating the logfile. Also changed…
Feb 26, 2020
a8a53bd
Merge branch 'Fixing-startup-flag'
Feb 26, 2020
805425c
Merge pull request #45 from UnikumAB/Added-missing-descriptions
Ivaylo-Korakov Feb 26, 2020
e17ab80
Merge branch 'UnikumAB-master'
Feb 26, 2020
b0b31e3
Merge branch 'master' of github.com:kumina/postfix_exporter
Feb 26, 2020
9cfeea8
Made the buckets sizes for Histograms measuring seconds into more "hu…
Feb 28, 2020
a85bda5
fixes panic appears when tailer is nil
k-kinzal Apr 22, 2020
046eb3d
Updated README
May 15, 2020
b07b6f4
fix smtpd TLS connection regex
martinkoerper May 23, 2020
533b55d
Merge pull request #58 from martinkoerper/fix-regex
BartVerc Jun 30, 2020
bbcbead
Merge pull request #57 from pard68/UPDATE/readme
BartVerc Jun 30, 2020
8e63fbb
Merge pull request #54 from k-kinzal/fixes-panic-logfilepath-empty
BartVerc Jun 30, 2020
1451d25
Splits the log source handling with a pluggable interface.
tommie Jun 20, 2020
c588b34
Adds a Docker log source.
tommie Jun 21, 2020
4dda504
fixes an issue where can't get metrics in systemd journal
k-kinzal Jul 20, 2020
01f0d6c
Merge pull request #50 from UnikumAB/time-based-buckets
BartVerc Mar 12, 2021
40c13b6
Merge pull request #64 from k-kinzal/fixes-systemd-support
BartVerc Mar 12, 2021
de70743
Merge branch 'master' into docker
BartVerc Mar 16, 2021
9d31460
Merge pull request #60 from tommie/docker
BartVerc Mar 16, 2021
1edadd0
Revert "Adds a Docker log source."
BartVerc Mar 16, 2021
efcf247
Merge pull request #72 from kumina/revert-60-docker
BartVerc Mar 16, 2021
82fa993
Splits the log source handling with a pluggable interface.
tommie Jun 20, 2020
f1d5d0a
Adds a Docker log source.
tommie Jun 21, 2020
b050cdf
Merge pull request #73 from kumina/docker
BartVerc Mar 16, 2021
3abd6f4
Add metric by status for all message processed by smtp
paradis Apr 7, 2021
6531beb
Add metric for non delivery notifications from bounce
paradis Apr 7, 2021
8966f65
Add another metric for mails delivered locally
paradis Apr 7, 2021
4470123
Track the number of expired emails form logs
paradis Apr 14, 2021
0523537
Expose the severity of unsupported lines
paradis Apr 14, 2021
ec57499
Fix: Default for mail log path
ylecuyer May 2, 2021
d99e38e
update changelog
ylecuyer May 2, 2021
6039f07
Update tail from hpcloud/tail to nxadm/tail
piotr1212 May 12, 2021
2eb4b58
remove hpcloud/tail from go.mod
piotr1212 Aug 16, 2021
35f158a
Merge pull request #79 from piotr1212/PP-tail
BartVerc Aug 17, 2021
5a8f146
Merge pull request #77 from ylecuyer/fix-mail-log-default-yle
BartVerc Aug 17, 2021
cbc36a3
Upgrade golang to 1.16
Aug 31, 2021
580003c
Merge pull request #82 from hooten/go-1-16
BartVerc Oct 19, 2021
a6f58e9
Merge pull request #75 from paradis/master
BartVerc Oct 13, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Created by .ignore support plugin (hsz.mobi)
.idea/
*.iml
.git/
11 changes: 11 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,12 @@
# Editor files
*~
.idea/

# Test binary, build with `go test -c`
*.test

# Binaries
postfix_exporter

*.iml
vendor/
42 changes: 42 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
language: go

matrix:
include:
- go: 1.16.x
env: VET=1 GO111MODULE=on
- go: 1.16.x
env: RACE=1 GO111MODULE=on
- go: 1.16.x
env: RUN386=1
- go: 1.15.x
env: VET=1 GO111MODULE=on
- go: 1.15.x
env: RACE=1 GO111MODULE=on
- go: 1.15.x
env: RUN386=1
- go: 1.14.x
env: VET=1 GO111MODULE=on
- go: 1.14.x
env: RACE=1 GO111MODULE=on
- go: 1.14.x
env: RUN386=1
- go: 1.13.x
env: VET=1 GO111MODULE=on
- go: 1.13.x
env: RACE=1 GO111MODULE=on
- go: 1.13.x
env: RUN386=1
- go: 1.12.x
env: GO111MODULE=on
- go: 1.11.x
env: GO111MODULE=on
- go: stable

addons:
apt:
packages:
- libsystemd-dev

env:
global:
GO111MODULE: on
15 changes: 15 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
## 0.1.3 / 2021-05-02

* [BUGFIX] Fix default for mail log path (/var/log/mail.log)

## 0.1.2 / 2018-05-04

* [ENHANCEMENT] Build tag for systemd

## 0.1.1 / 2018-04-19

* [BUGFIX] Non-updating metrics from systemd-journal fix

## 0.1.0 / 2018-02-23

* [ENHANCEMENT] Initial release, add changelog
24 changes: 24 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
FROM golang:1.16 AS builder
WORKDIR /src

# avoid downloading the dependencies on succesive builds
RUN apt-get update -qq && apt-get install -qqy \
build-essential \
libsystemd-dev

COPY go.mod go.sum ./
RUN go mod download
RUN go mod verify

COPY . .

# Force the go compiler to use modules
ENV GO111MODULE=on
RUN go test
RUN go build -o /bin/postfix_exporter

FROM debian:latest
EXPOSE 9154
WORKDIR /
COPY --from=builder /bin/postfix_exporter /bin/
ENTRYPOINT ["/bin/postfix_exporter"]
67 changes: 54 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,61 @@
# Prometheus Postfix exporter

This repository provides code for a Prometheus metrics exporter
for [the Postfix mail server](http://www.postfix.org/). This exporter
provides histogram metrics for the size and age of messages stored in
Prometheus metrics exporter for [the Postfix mail server](http://www.postfix.org/).
This exporter provides histogram metrics for the size and age of messages stored in
the mail queue. It extracts these metrics from Postfix by connecting to
a UNIX socket under `/var/spool`.
a UNIX socket under `/var/spool`. It also counts events by parsing Postfix's
log entries, using regular expression matching. The log entries are retrieved from
the systemd journal, the Docker logs, or from a log file.

In addition to that, it counts events by parsing Postfix's log file,
using regular expression matching. It truncates the log file when
processed, so that the next iteration doesn't interpret the same lines
twice. It makes sense to configure your syslogger to multiplex log
entries to a second file:
## Options

These options can be used when starting the `postfix_exporter`

| Flag | Description | Default |
|--------------------------|------------------------------------------------------|-----------------------------------|
| `--web.listen-address` | Address to listen on for web interface and telemetry | `9154` |
| `--web.telemetry-path` | Path under which to expose metrics | `/metrics` |
| `--postfix.showq_path` | Path at which Postfix places its showq socket | `/var/spool/postfix/public/showq` |
| `--postfix.logfile_path` | Path where Postfix writes log entries | `/var/log/mail.log` |
| `--log.unsupported` | Log all unsupported lines | `false` |
| `--docker.enable` | Read from the Docker logs instead of a file | `false` |
| `--docker.container.id` | The container to read Docker logs from | `postfix` |
| `--systemd.enable` | Read from the systemd journal instead of file | `false` |
| `--systemd.unit` | Name of the Postfix systemd unit | `postfix.service` |
| `--systemd.slice` | Name of the Postfix systemd slice. | `""` |
| `--systemd.journal_path` | Path to the systemd journal | `""` |

## Events from Docker

Postfix servers running in a [Docker](https://www.docker.com/)
container can be monitored using the `--docker.enable` flag. The
default container ID is `postfix`, but can be customized with the
`--docker.container.id` flag.

The default is to connect to the local Docker, but this can be
customized using [the `DOCKER_HOST` and
similar](https://pkg.go.dev/github.com/docker/docker/client?tab=doc#NewEnvClient)
environment variables.

## Events from log file

The log file is tailed when processed. Rotating the log files while the exporter
is running is OK. The path to the log file is specified with the
`--postfix.logfile_path` flag.

## Events from systemd

Retrieval from the systemd journal is enabled with the `--systemd.enable` flag.
This overrides the log file setting.
It is possible to specify the unit (with `--systemd.unit`) or slice (with `--systemd.slice`).
Additionally, it is possible to read the journal from a directory with the `--systemd.journal_path` flag.

## Build options

Default the exporter is build with systemd journal functionality (but it is disabled at default).
Because the systemd headers are required for building with systemd, there is
an option to build the exporter without systemd. Use the build tag `nosystemd`.

```
mail.* -/var/log/postfix_exporter_input.log
go build -tags nosystemd
```

Please refer to this utility's `main()` function for a list of supported
command line flags.
12 changes: 5 additions & 7 deletions build_static.sh
Original file line number Diff line number Diff line change
@@ -1,17 +1,15 @@
#!/bin/sh

docker run -i -v `pwd`:/postfix_exporter alpine:edge /bin/sh << 'EOF'
docker run -i -v `pwd`:/postfix_exporter golang:1.16 /bin/sh << 'EOF'
set -ex

# Install prerequisites for the build process.
apk update
apk add ca-certificates git go libc-dev
update-ca-certificates
apt-get update -q
apt-get install -yq libsystemd-dev

# Build the postfix_exporter.
cd /postfix_exporter
export GOPATH=/gopath

go get -d ./...
go build --ldflags '-extldflags "-static"'
go build -a -tags static_all
strip postfix_exporter
EOF
18 changes: 18 additions & 0 deletions go.mod
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
module github.com/kumina/postfix_exporter

go 1.16

require (
github.com/Microsoft/go-winio v0.5.0 // indirect
github.com/alecthomas/kingpin v2.2.6+incompatible
github.com/coreos/go-systemd/v22 v22.0.0
github.com/docker/distribution v2.7.1+incompatible // indirect
github.com/docker/docker v1.13.1
github.com/docker/go-connections v0.4.0 // indirect
github.com/docker/go-units v0.4.0 // indirect
github.com/nxadm/tail v1.4.8
github.com/opencontainers/go-digest v1.0.0 // indirect
github.com/prometheus/client_golang v1.4.1
github.com/prometheus/client_model v0.2.0
github.com/stretchr/testify v1.4.0
)
127 changes: 127 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
github.com/Microsoft/go-winio v0.5.0 h1:Elr9Wn+sGKPlkaBvwu4mTrxtmOp3F3yV9qhaHbXGjwU=
github.com/Microsoft/go-winio v0.5.0/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84=
github.com/alecthomas/kingpin v2.2.6+incompatible h1:5svnBTFgJjZvGKyYBtMB0+m5wvrbUHiqye8wRJMlnYI=
github.com/alecthomas/kingpin v2.2.6+incompatible/go.mod h1:59OFYbFVLKQKq+mqrL6Rw5bR0c3ACQaawgXx0QYndlE=
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 h1:JYp7IbQjafoB+tBA3gMyHYHrpOtNuDiK/uB5uXxq5wM=
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4 h1:Hs82Z41s6SdL1CELW+XaDYmOH4hkBN4/N9og/AsOv7E=
github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY=
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/coreos/go-systemd/v22 v22.0.0 h1:XJIw/+VlJ+87J+doOxznsAWIdmWuViOVhkQamW5YV28=
github.com/coreos/go-systemd/v22 v22.0.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/docker/distribution v2.7.1+incompatible h1:a5mlkVzth6W5A4fOsS3D2EO5BUmsJpcB+cRlLU7cSug=
github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
github.com/docker/docker v1.13.1 h1:IkZjBSIc8hBjLpqeAbeE5mca5mNgeatLHBy3GO78BWo=
github.com/docker/docker v1.13.1/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ=
github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec=
github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw=
github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4=
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs=
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4=
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU=
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE=
github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU=
github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
github.com/prometheus/client_golang v1.4.1 h1:FFSuS004yOQEtDdTq+TAOLP5xUq63KqAFYyOi8zA+Y8=
github.com/prometheus/client_golang v1.4.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU=
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M=
github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
github.com/prometheus/common v0.9.1 h1:KOMtN28tlbam3/7ZKEYKHhKoJZYYj3gMH4uc62x7X7U=
github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4=
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
github.com/prometheus/procfs v0.0.8 h1:+fpWZdT24pJBiqJdAwYBjPSk+5YmQzYNPYzQsdzLkt8=
github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A=
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980 h1:dfGZHvZk057jK2MCeWus/TowKpJ8y4AmooUzdBSR9GU=
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c h1:VwygUrnw9jn88c4u8GD3rZQbqrP/tgas88tPUbBxQrk=
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.5 h1:ymVxjfMaHvXD8RqPRmzHHsB3VvucivSkIAvJFDI5O3c=
gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
Loading