2

私はapplication_name次のように接続文字列を設定しています:

DB = Sequel.connect(:adapter=>'postgres', :host=> 'localhost',
:database=>'blah', :user=>'gator',
:application_name => 'blahwebapp')

ただし、pg_stat_activityまたはその他のメトリックを表示してフィルタリングすると、application_name適切に割り当てられていません。

私の Pg gem は「pg (0.17.0)」で、0.16 以降はアプリケーション名を処理できるようになったと思います。Sequel_pg は (1.6.8)、Sequel は (4.2.0) です。

アプリケーション名が設定されていますが、構成で設定されているものではなく、パス/Web サーバーに関連しています。

/Users/gator/.rvm/gems/rub...47@blahwebapp/bin/shotgun

URL タイプの接続文字列を使用しても、まだ登録されませんapplication_name

DB = Sequel.connect('postgres://gator@localhost/blah?application_name=blahwebapp')

これは、psql で接続に使用するのと同じ URL であり、正常に表示されます。

Sequelのドキュメントではapplication_name、私が心配しているオプションとしてはあまり見ません:

を尊重する方法についての考え/アイデアはありapplication_nameますか?

4

1 に答える 1

3

Sequel の PostgreSQL アダプターは、URL を直接 PostgreSQL に渡しません。実際にはそうすることができず、下位互換性を維持できます。

application_name実行時に設定できるようです。Sequel でこれを行う最善の方法は、after_connect を使用することです。

DB = Sequel.connect('postgres://gator@localhost/blah', :after_connect=>proc{|c| c.execute("SET application_name TO 'blahwebapp'")})

この機能を Sequel に統合して、'postgres://' URL 内で使用すると正しく機能するようにすることができます。他の人がそれが役に立つと思うなら、私はそれを受け入れます。

于 2013-09-30T05:13:37.767 に答える