public static void OnAppExit(Version version)
        {
            if (!Config.Instance.GoogleAnalytics)
            {
                return;
            }
            var sessionDuration = (DateTime.Now - _appStartTime).TotalSeconds;
            var point           = new InfluxPointBuilder("hdt_app_exit")
                                  .Tag("version", version.ToVersionString(true))
                                  .Tag("new", _new)
                                  .Field("session_duration_seconds", (int)sessionDuration);

#if (SQUIRREL)
            point.Tag("squirrel", true);
#else
            point.Tag("squirrel", false);
#endif

            if (_pctHsReplayDataTotal.HasValue)
            {
                point.Field("pct_hsreplay_data_total", _pctHsReplayDataTotal.Value);
            }
            if (_pctHsReplayData.HasValue)
            {
                point.Field("pct_hsreplay_data_last14d", _pctHsReplayData.Value);
            }

            WritePoint(point.Build());
        }
Esempio n. 2
0
        public static void OnAppStart(Version version, bool isNew, bool authenticated, bool premium, int startupDuration, int numPlugins)
        {
            if (!Config.Instance.GoogleAnalytics)
            {
                return;
            }
            _appStartTime = DateTime.Now;
            _new          = isNew;
            var point = new InfluxPointBuilder("hdt_app_start")
                        .Tag("version", version.ToVersionString(true))
                        .Tag("new", isNew)
                        .Tag("authenticated", authenticated)
                        .Tag("premium", premium)
                        .Tag("collection_syncing", Config.Instance.SyncCollection)
                        .Tag("collections_uploaded", Account.Instance.CollectionState.Count)
                        .Tag("auto_upload", Config.Instance.HsReplayAutoUpload)
                        .Tag("lang_card", Config.Instance.SelectedLanguage)
                        .Tag("lang_ui", Config.Instance.Localization.ToString())
                        .Field("num_plugins", numPlugins)
                        .Field("startup_duration", startupDuration);

#if (SQUIRREL)
            point.Tag("squirrel", true);
#else
            point.Tag("squirrel", false);
#endif
            WritePoint(point.Build());
        }
Esempio n. 3
0
        public static void OnOAuthLogout()
        {
            if (!Config.Instance.GoogleAnalytics)
            {
                return;
            }
            var point = new InfluxPointBuilder("hdt_oauth_logout");

            WritePoint(point.Build());
        }
Esempio n. 4
0
        public static void OnCollectionSynced(bool success)
        {
            if (!Config.Instance.GoogleAnalytics)
            {
                return;
            }
            var point = new InfluxPointBuilder("hdt_collection_syncing_uploaded")
                        .Tag("success", success);

            WritePoint(point.Build());
        }
Esempio n. 5
0
        public static void OnCollectionSyncingEnabled(bool enabled)
        {
            if (!Config.Instance.GoogleAnalytics)
            {
                return;
            }
            var point = new InfluxPointBuilder("hdt_collection_syncing_enabled_changed")
                        .Tag("enabled", enabled);

            WritePoint(point.Build());
        }
Esempio n. 6
0
        public static void OnBlizzardAccountClaimed(bool success)
        {
            if (!Config.Instance.GoogleAnalytics)
            {
                return;
            }
            var point = new InfluxPointBuilder("hdt_collection_syncing_account_claimed")
                        .Tag("success", success);

            WritePoint(point.Build());
        }
Esempio n. 7
0
        public static void OnCollectionSyncingBannerClosed()
        {
            if (!Config.Instance.GoogleAnalytics)
            {
                return;
            }
            var point = new InfluxPointBuilder("hdt_collection_syncing_banner_interaction")
                        .Tag("type", "close");

            WritePoint(point.Build());
        }
Esempio n. 8
0
        public static void OnPluginLoadingError(IPlugin plugin)
        {
            if (!Config.Instance.GoogleAnalytics)
            {
                return;
            }
            var point = new InfluxPointBuilder("hdt_plugin_loading_error", false)
                        .Tag("name", plugin.Name)
                        .Tag("version", plugin.Version.ToVersionString());

            WritePoint(point.Build());
        }
Esempio n. 9
0
		public static void OnAppStart(Version version, LoginType loginType, bool isNew)
		{
			if(!Config.Instance.GoogleAnalytics)
				return;
			var point = new InfluxPointBuilder("hdt_app_start").Tag("version", version.ToVersionString()).Tag("login_type", loginType).Tag("new", isNew);
#if(SQUIRREL)
			point.Tag("squirrel", true);
#else
			point.Tag("squirrel", false);
#endif
			WritePoint(point.Build());
		}
Esempio n. 10
0
        public static void OnOAuthLoginComplete(HSReplayNetHelper.AuthenticationErrorType error)
        {
            if (!Config.Instance.GoogleAnalytics)
            {
                return;
            }
            var point = new InfluxPointBuilder("hdt_oauth_login")
                        .Tag("error", error)
                        .Field("duration_ms", (int)(DateTime.Now - _oAuthInitiated).TotalMilliseconds);

            WritePoint(point.Build());
        }
Esempio n. 11
0
        public static void OnPluginLoaded(IPlugin plugin, TimeSpan startupTime)
        {
            if (!Config.Instance.GoogleAnalytics)
            {
                return;
            }
            var point = new InfluxPointBuilder("hdt_plugin_loaded", false)
                        .Tag("name", plugin.Name)
                        .Tag("version", plugin.Version.ToVersionString())
                        .Field("startup_time", (int)startupTime.TotalMilliseconds);

            WritePoint(point.Build());
        }
Esempio n. 12
0
        public static void OnCollectionSyncingBannerClicked(bool authenticated, bool collectionSynced)
        {
            if (!Config.Instance.GoogleAnalytics)
            {
                return;
            }
            var point = new InfluxPointBuilder("hdt_collection_syncing_banner_interaction")
                        .Tag("type", "click")
                        .Tag("authenticated", authenticated)
                        .Tag("collection_synced", collectionSynced);

            WritePoint(point.Build());
        }
        public static void OnAppStart(Version version, LoginType loginType, bool isNew)
        {
            if (!Config.Instance.GoogleAnalytics)
            {
                return;
            }
            var point = new InfluxPointBuilder("hdt_app_start").Tag("version", version.ToVersionString()).Tag("login_type", loginType).Tag("new", isNew);

#if (SQUIRREL)
            point.Tag("squirrel", true);
#else
            point.Tag("squirrel", false);
#endif
            WritePoint(point.Build());
        }
Esempio n. 14
0
		public static void OnAppStart(Version version, LoginType loginType, bool isNew, int startupDuration)
		{
			if(!Config.Instance.GoogleAnalytics)
				return;
			var point = new InfluxPointBuilder("hdt_app_start")
				.Tag("version", version.ToVersionString()).Tag("login_type", loginType).Tag("new", isNew)
				.Tag("auto_upload", Config.Instance.HsReplayAutoUpload)
				.Field("startup_duration", startupDuration);
#if(SQUIRREL)
			point.Tag("squirrel", true);
#else
			point.Tag("squirrel", false);
#endif
			WritePoint(point.Build());
		}
Esempio n. 15
0
        public static void OnAppStart(Version version, LoginType loginType, bool isNew, int startupDuration)
        {
            if (!Config.Instance.GoogleAnalytics)
            {
                return;
            }
            var point = new InfluxPointBuilder("hdt_app_start")
                        .Tag("version", version.ToVersionString()).Tag("login_type", loginType).Tag("new", isNew)
                        .Tag("auto_upload", Config.Instance.HsReplayAutoUpload).Field("user", Config.Instance.Id)
                        .Field("startup_duration", startupDuration);

#if (SQUIRREL)
            point.Tag("squirrel", true);
#else
            point.Tag("squirrel", false);
#endif
            WritePoint(point.Build());
        }
Esempio n. 16
0
        public static void OnBobsBuddySimulationCompleted(CombatResult result, TestOutput output, int turn)
        {
            if (!Config.Instance.GoogleAnalytics)
            {
                return;
            }
            var point = new InfluxPointBuilder("hdt_bb_combat_result_v2")
                        .Tag("result", result.ToString())
                        .Tag("turn", turn)
                        .Tag("exit_condition", output.myExitCondition.ToString())
                        .Tag("thread_count", BobsBuddyInvoker.ThreadCount)
                        .Field("iterations", output.simulationCount)
                        .Field("result_win", result == CombatResult.Win ? 1 : 0)
                        .Field("result_tie", result == CombatResult.Tie ? 1 : 0)
                        .Field("result_loss", result == CombatResult.Loss ? 1 : 0)
                        .Field("win_rate", output.winRate * 100)
                        .Field("tie_rate", output.tieRate * 100)
                        .Field("loss_rate", output.lossRate * 100);

            _queue.Add(point.Build());
        }
        public static void OnAppStart(Version version, bool isNew, int startupDuration, int numPlugins)
        {
            if (!Config.Instance.GoogleAnalytics)
            {
                return;
            }
            _appStartTime = DateTime.Now;
            _new          = isNew;
            var point = new InfluxPointBuilder("hdt_app_start")
                        .Tag("version", version.ToVersionString(true))
                        .Tag("new", isNew)
                        .Tag("auto_upload", Config.Instance.HsReplayAutoUpload)
                        .Field("num_plugins", numPlugins)
                        .Field("startup_duration", startupDuration);

#if (SQUIRREL)
            point.Tag("squirrel", true);
#else
            point.Tag("squirrel", false);
#endif
            WritePoint(point.Build());
        }
Esempio n. 18
0
        public static void OnAppExit(Version version)
        {
            if (!Config.Instance.GoogleAnalytics)
            {
                return;
            }
            var sessionDuration = (DateTime.Now - _appStartTime).TotalSeconds;
            var point           = new InfluxPointBuilder("hdt_app_exit")
                                  .Tag("version", version.ToVersionString(true))
                                  .Tag("new", _new)
                                  .Tag("stats_window_used", Core.StatsOverviewInitialized)
                                  .Field("session_duration_seconds", (int)sessionDuration);

#if (SQUIRREL)
            point.Tag("squirrel", true);
#else
            point.Tag("squirrel", false);
#endif

            if (_pctHsReplayDataTotal.HasValue)
            {
                point.Field("pct_hsreplay_data_total", _pctHsReplayDataTotal.Value);
            }
            if (_pctHsReplayData.HasValue)
            {
                point.Field("pct_hsreplay_data_last14d", _pctHsReplayData.Value);
            }

            if (_lastMainWindowActivation != null)
            {
                OnMainWindowDeactivated();
            }
            point.Field("window_activations", MainWindowActivations.Count);
            point.Field("window_active_duration", (int)MainWindowActivations.Average());

            WritePoint(point.Build());
        }