Add collector interface

Uses node_exporter style collector registration

Signed-off-by: Joe Adams <github@joeadams.io>
This commit is contained in:
Joe Adams
2022-02-14 21:12:27 -05:00
parent 1981623d9d
commit c3b0206369
5 changed files with 342 additions and 28 deletions

View File

@@ -19,6 +19,7 @@ import (
"github.com/go-kit/log"
"github.com/go-kit/log/level"
"github.com/prometheus-community/postgres_exporter/collector"
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promhttp"
"github.com/prometheus/common/promlog"
@@ -114,6 +115,13 @@ func main() {
prometheus.MustRegister(exporter)
pe, err := collector.NewPostgresCollector(logger, dsn)
if err != nil {
level.Error(logger).Log("msg", "Failed to create PostgresCollector", "err", err.Error())
os.Exit(1)
}
prometheus.MustRegister(pe)
http.Handle(*metricPath, promhttp.Handler())
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "text/html; charset=UTF-8") // nolint: errcheck

View File

@@ -14,16 +14,13 @@
package main
import (
"context"
"database/sql"
"fmt"
"log"
"sync"
"time"
"github.com/blang/semver"
"github.com/go-kit/log/level"
"github.com/prometheus-community/postgres_exporter/collector"
"github.com/prometheus/client_golang/prometheus"
)
@@ -131,17 +128,6 @@ func (s *Server) Scrape(ch chan<- prometheus.Metric, disableSettingsMetrics bool
err = fmt.Errorf("queryNamespaceMappings returned %d errors", len(errMap))
}
{
pgdb := collector.NewPGDatabaseCollector()
metrics, err := pgdb.Update(context.TODO(), s.db, s.String())
if err != nil {
log.Printf("Failed to scrape pg_database metrics: %s", err)
}
for _, m := range metrics {
ch <- m
}
}
return err
}