Postgres Error running query on database: Could not detect default username

Hi I am trying to monitor postgres SQL with Prometheus. For this purpose I am using this exporter https://github.com/wrouesnel/postgres_exporter

I am starting the exporter in my docker-compose.yml like this:

  • Docker java:7 image apt-get update cyclic dependencies
  • Dockerized nodes of elasticsearch cluster in EC2, production environment
  • Cannot seem to install Google Cloud Managed VMs
  • Create Docker image from existing Ubuntu + App
  • docker-compose pull results in x509: certificate signed by unknown authority
  • Get a circleci environmental variable to show up in docker machine
  •   exporter-postgres:
        image: wrouesnel/postgres_exporter
        ports:
          - 9113:9113
        environment:
          - DATA_SOURCE_NAME="postgresql://user:pass@localhost:5432/?sslmode=disable" 
    

    When the exporter is trying to access the database errors like this are thrown:

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

    and

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

    I am not really sure what this message could mean. Also I am not really sure if the issues originates in my docker-compose file, or the exporter.

    The lines which throw the error in the postgres-exporter.go are:

    // 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
    }
    

    and

    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

    I am thankful for any help!

    Edit:

    Here is the connection to the database:

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

    Whereas e.dsn is generated like this:

    dsn := os.Getenv("DATA_SOURCE_NAME")
    

    The connection doesn’t throw any error

  • Kubernetes Workflow
  • Elasticsearch/Kibana-docker with default index and data
  • How to automatically remove container data from the host when rm the container?
  • Firewall for the container in docker
  • How to build a Docker container for JAVA web application
  • Connection issue with Jenkins within Docker on RaspberryPi 3 (rpi-jenkins) when cloning a Bitbucket Git Repo
  • One Solution collect form web for “Postgres Error running query on database: Could not detect default username”

    Hey for anyone having a similiar issue in the future:

    The problem was this line in the docker-compose.yml

     - DATA_SOURCE_NAME="postgresql://user:pass@localhost:5432/?sslmode=disable" 
    

    Changing it to

     - DATA_SOURCE_NAME=postgresql://user:pass@localhost:5432/?sslmode=disable
    

    (Without the quotes) made everything work 🙂

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.