sentry-config v0.4.0 をリリースしました
sentry-config ってなにそれ
sentry-javaの設定をtypesafe-configでできるようにするライブラリです。
変更点
一通りの設定項目をサポート
公式ドキュメントに記載のない設定項目を含め、sentry-javaが提供する一通りの設定項目をサポートしました。
application.conf
sentry { dsn = "noop://localhost/1" release = "0.1.0" dist = "x86" environment = "development" servername = "dev-server" tags { key1 = "value1" key2 = "value2" } mdctags = [ "mdcTag1", "mdcTag2" ] extra { ex1 = "exValue1" ex2 = "exValue2" } stacktrace.app.packages = [ "com.github.nomadblacky", "sample.foo" ] stacktrace.hidecommon = false sample.rate = 0.75 uncaught.handler.enabled = false buffer { enabled = false dir = "./buffer" size = 100 flushtime = 200000 shutdowntimeout = 300000 gracefulshutdown = false } async { enabled = false shutdowntimeout = 500 queuesize = 200 priority = 9 threads = 3 gracefulshutdown = false } http.proxy { host = "proxy.org" port = 8888 user = username password = pass } compression = false maxmessagelength = 2000 timeout = 3000 }
ユーザ独自のクライアント生成をサポート
com.github.nomadblacky.sentry.config.DefaultTypesafeConfigSentryClientFactory
を継承して、イベント生成のヘルパなどを登録できるようになりました。
package sample; import com.github.nomadblacky.sentry.config.DefaultTypesafeConfigSentryClientFactory; public class MyCustomSentryClientFactory extends DefaultTypesafeConfigSentryClientFactory { @Override public SentryClient createSentryClient(Dsn dsn) { // TypesafeConfig を使ってクライアントを初期化 SentryClient client = super.createSentryClient(dsn); client.addBuilderHelper(new CustomEventBuilderHelper()); return client; } } public class CustomEventBuilderHelper implements EventBuilderHelper { @Override public void helpBuildingEvent(EventBuilder eventBuilder) { // ... } }
$ java -Dsentry.factory=sample.MyCustomSentryClientFactory
or
sentry.properties
factory=sample.MyCustomSentryClientFactory
その他
プロパティの上書きみたいなイケてないところがなくなりました。
sentry.factory
の指定が必要でそこはダサいですがたぶんどうしようもない…
これで一応、このライブラリでやりきるところはやりきった感じがします。
依存ライブラリのアップデートがあれば追従する感じでしょうか。
でも、dependabotが便利なのでそこは楽々できそう。
まだ実プロダクトに導入してない()ので、仕事で使ってるプロジェクトに導入していきたいですね。
実際に使ってみると至らない点が色々見えてくるかもしれない。
…まぁ、ここまでやっておいて今更、 sentry.properties
で事足りるのがほとんどだよね。という気がしているけど泣かない😂
typesafe-configを使ってるプロジェクトで、環境毎にSentryの設定をちょろっと変えたい…って時に役立つはずです、たぶん。
ライブラリで提供したい利便性をよく考えてから開発を始めましょう。