diff --git a/app/javascript/packs/application.js b/app/javascript/packs/application.js index 49e120cad..4fbd50adb 100644 --- a/app/javascript/packs/application.js +++ b/app/javascript/packs/application.js @@ -50,6 +50,7 @@ import Upload from "../src/javascripts/uploads.js.erb"; import UserTooltip from "../src/javascripts/user_tooltips.js"; import Utility from "../src/javascripts/utility.js"; import Ugoira from "../src/javascripts/ugoira.js" +import NewRelic from "../src/javascripts/new_relic.js"; let Danbooru = {}; Danbooru.Autocomplete = Autocomplete; @@ -70,6 +71,7 @@ Danbooru.Upload = Upload; Danbooru.UserTooltip = UserTooltip; Danbooru.Utility = Utility; Danbooru.Ugoira = Ugoira; +Danbooru.NewRelic = NewRelic; Danbooru.notice = Utility.notice; Danbooru.error = Utility.error; diff --git a/app/javascript/src/javascripts/new_relic.js b/app/javascript/src/javascripts/new_relic.js new file mode 100644 index 000000000..ac5712ed8 --- /dev/null +++ b/app/javascript/src/javascripts/new_relic.js @@ -0,0 +1,14 @@ +class NewRelic { + static initialize_all() { + /* https://docs.newrelic.com/docs/browser/new-relic-browser/browser-agent-spa-api/setcustomattribute-browser-agent-api/ */ + if (typeof window.newrelic === "object") { + window.newrelic.setCustomAttribute("screenWidth", window.screen.width); + window.newrelic.setCustomAttribute("screenHeight", window.screen.height); + window.newrelic.setCustomAttribute("screenResolution", `${window.screen.width}x${window.screen.height}`); + window.newrelic.setCustomAttribute("devicePixelRatio", window.devicePixelRatio); + } + } +} + +NewRelic.initialize_all(); +export default NewRelic;