2016-06-10 7 views
2

Hallo, ich versuche Postgres SQL mit Prometheus zu überwachen. Dazu verwende ich dieses Exporteur https://github.com/wrouesnel/postgres_exporterPostgres Fehler beim Ausführen der Abfrage in der Datenbank: Standard-Benutzername konnte nicht erkannt werden

ich den Exporteur in meinem docker-compose.yml wie dies bin ab:

exporter-postgres: 
    image: wrouesnel/postgres_exporter 
    ports: 
     - 9113:9113 
    environment: 
     - DATA_SOURCE_NAME="postgresql://user:[email protected]:5432/?sslmode=disable" 

Wenn der Exporteur versucht, die Datenbankfehler zuzugreifen wie diese geworfen werden:

Error running query on database: pg_stat_database pg: Could not detect default username. Please provide one explicitly. file="postgres-exporter.go" line=490 

und

Error scanning runtime variable: pg_stat_database pg: Could not detect default username. Please provide one explicitly. file="postgres-exporter.go" line=464 

ich bin n ot wirklich sicher, was diese Nachricht bedeuten könnte. Ich bin auch nicht wirklich sicher, ob die Probleme in meiner Docker-Compose-Datei oder dem Exporter entstehen.

Die Linien, die den Fehler in der postgres-exporter.go werfen sind:

// Use SHOW to get the value 
row := db.QueryRow(fmt.Sprintf("SHOW %s;", columnName)) 

var val interface{} 
err := row.Scan(&val) 
if err != nil { 
    log.Errorln("Error scanning runtime variable:", columnName, err) 
    continue 
} 

und

query, er := queryOverrides[namespace] 
if er == false { 
    query = fmt.Sprintf("SELECT * FROM %s;", namespace) 
} 

// Don't fail on a bad scrape of one metric 
rows, err := db.Query(query) 
if err != nil { 
    log.Println("Error running query on database: ", namespace, err) 
    e.error.Set(1) 
    return 
} 

https://github.com/wrouesnel/postgres_exporter/blob/master/postgres_exporter.go

ich für jede Hilfe dankbar bin!

Edit:

Hier ist die Verbindung zur Datenbank:

db, err := sql.Open("postgres", e.dsn) 

Während e.dsn wird wie folgt erzeugt:

dsn := os.Getenv("DATA_SOURCE_NAME") 

Die Verbindung werfen keinen Fehler

+0

Können Sie die zeigen, Linie, wo Sie die 'db' verbinden? – mass

+0

Ich gehe davon aus, dass Sie einen anderen Benutzernamen als "Benutzer" verwenden. Vielleicht verwenden Sie [ParseURL] (https://godoc.org/github.com/lib/pq#ParseURL) und Ihre Verbindungszeichenfolge wird nicht richtig generiert? Siehe auch [this] (https://github.com/hashicorp/vault/issues/938). – mass

Antwort

3

Hey für alle, die ein ähnliches Problem in der Zukunft haben:

Das Problem war, diese Zeile in der Docker-compose.yml

- DATA_SOURCE_NAME="postgresql://user:[email protected]:5432/?sslmode=disable" 

es

- DATA_SOURCE_NAME=postgresql://user:[email protected]:5432/?sslmode=disable 

(ohne die Anführungszeichen) gemacht Arbeit alles ändern :)

+0

Diese Antwort hat meinen Tag gerettet. Vielen Dank! –

Verwandte Themen