diff options
author | kali kaneko (leap communications) <kali@leap.se> | 2020-01-31 14:53:29 -0600 |
---|---|---|
committer | kali kaneko (leap communications) <kali@leap.se> | 2020-02-11 17:39:04 +0100 |
commit | ecaa22111ee8e34111080139e1e8a92b90e30158 (patch) | |
tree | 65f34061265cb346e5380416ba806b92a010fe13 /pkg | |
parent | 6da07c8be89be0d40e8bdae9d773bfb5d2d33ad9 (diff) |
[feat] add prometheus instrumentation
Diffstat (limited to 'pkg')
-rw-r--r-- | pkg/metrics/metrics.go | 23 | ||||
-rw-r--r-- | pkg/web/certs.go | 3 | ||||
-rw-r--r-- | pkg/web/middleware.go | 4 |
3 files changed, 30 insertions, 0 deletions
diff --git a/pkg/metrics/metrics.go b/pkg/metrics/metrics.go new file mode 100644 index 0000000..8b4bdbb --- /dev/null +++ b/pkg/metrics/metrics.go @@ -0,0 +1,23 @@ +package metrics + +import ( + "github.com/prometheus/client_golang/prometheus" + "github.com/prometheus/client_golang/prometheus/promauto" +) + +var ( + FailedLogins = promauto.NewCounter(prometheus.CounterOpts{ + Name: "vpnweb_failed_logins_total", + Help: "The total number of failed logins", + }) + + SuccessfulLogins = promauto.NewCounter(prometheus.CounterOpts{ + Name: "vpnweb_successful_logins_total", + Help: "The total number of processed events", + }) + + DownloadedCerts = promauto.NewCounter(prometheus.CounterOpts{ + Name: "vpnweb_downloaded_certs_total", + Help: "The total number of downloaded certs", + }) +) diff --git a/pkg/web/certs.go b/pkg/web/certs.go index 779bf72..203c9d9 100644 --- a/pkg/web/certs.go +++ b/pkg/web/certs.go @@ -16,6 +16,7 @@ package web import ( + "0xacab.org/leap/vpnweb/pkg/metrics" "crypto/rand" "crypto/rsa" "crypto/tls" @@ -96,4 +97,6 @@ func (ci *caInfo) CertWriter(out io.Writer) { // Write the public key pem.Encode(out, &pem.Block{Type: "CERTIFICATE", Bytes: certB}) + + metrics.DownloadedCerts.Inc() } diff --git a/pkg/web/middleware.go b/pkg/web/middleware.go index 3a74477..fbbdbaf 100644 --- a/pkg/web/middleware.go +++ b/pkg/web/middleware.go @@ -18,6 +18,7 @@ package web import ( "0xacab.org/leap/vpnweb/pkg/auth/creds" "0xacab.org/leap/vpnweb/pkg/config" + "0xacab.org/leap/vpnweb/pkg/metrics" "encoding/json" "github.com/auth0/go-jwt-middleware" "github.com/dgrijalva/jwt-go" @@ -53,11 +54,14 @@ func AuthMiddleware(authenticationFunc func(*creds.Credentials) bool, opts *conf valid := authenticationFunc(&c) if !valid { + metrics.FailedLogins.Inc() log.Println("Wrong auth for user", c.User) http.Error(w, "Wrong user and/or password", http.StatusUnauthorized) return } + metrics.SuccessfulLogins.Inc() + if strings.ToLower(debugAuth) == "yes" { log.Println("Valid auth for user", c.User) } |