How to set application_name for psql command line utility?

Subscribe to my newsletter and never miss my upcoming articles

The application_name configuration is used to identify a database client from postgres backend. It is extremely useful in debugging client issues and connection resource consumption by client using the application_name.

Backend servers use connection string to set application_name using the database abstraction libraries like sqlalchemy. For example,

engine = create_engine("postgresql://scott:tiger@localhost:5432/
postgres?application_name=user_service")

When connecting to postgres database using psql command line utility psql sets a default application_name "psql". we can inspect application name from sql shell like below,

postgres=# show application_name;
 application_name 
------------------
 psql
(1 row)

-- connections used by different clients
postgres=# select application_name, count(*) from pg_stat_activity group by application_name;
             application_name              | count 
-------------------------------------------+-------
 psql                                      |     1
                                           |     5
(2 rows)

set application_name for psql

Method 1 - environment variable

 export PGAPPNAME=mylocalpgshell

➜  pgdb psql -h localhost -p 5444 -U postgres -d postgres                                           
psql (12.2, server 12.1)
Type "help" for help.

postgres=# show application_name;
 application_name 
------------------
 mylocalpgshell
(1 row)

postgres=# select application_name, count(*) from pg_stat_activity group by application_name;
             application_name              | count 
-------------------------------------------+-------
                                           |     5
 mylocalpgshell                            |     1
(2 rows)

Method 2 - db connection string

➜  psql -h localhost -p 5444 -U postgres \
-d 'dbname=postgres application_name=mylocalpsqlshell'

postgres=# show application_name;
 application_name 
------------------
 mylocalpsqlshell
(1 row)

postgres=# select application_name, count(*) from pg_stat_activity group by application_name;
             application_name              | count 
-------------------------------------------+-------
 mylocalpsqlshell                          |     1
                                           |     5
(2 rows)

If you find this article useful, do comment below and share this article with others.

No Comments Yet