analytics will not leak exceptions while in production.

pull/4/head
kay.one 13 years ago
parent 14ed804025
commit b58fe89ce4

@ -1,5 +1,7 @@
using System.Linq; using System;
using System.Linq;
using DeskMetrics; using DeskMetrics;
using NLog;
using Ninject; using Ninject;
using NzbDrone.Common; using NzbDrone.Common;
@ -7,6 +9,8 @@ namespace NzbDrone.Core.Providers
{ {
public class AnalyticsProvider public class AnalyticsProvider
{ {
private static readonly Logger logger = LogManager.GetCurrentClassLogger();
private readonly IDeskMetricsClient _deskMetricsClient; private readonly IDeskMetricsClient _deskMetricsClient;
public const string DESKMETRICS_TEST_ID = "4ea8d347a14ad71442000002"; public const string DESKMETRICS_TEST_ID = "4ea8d347a14ad71442000002";
public const string DESKMETRICS_PRODUCTION_ID = "4f20b01ea14ad729b2000000"; public const string DESKMETRICS_PRODUCTION_ID = "4f20b01ea14ad729b2000000";
@ -24,17 +28,27 @@ namespace NzbDrone.Core.Providers
public virtual void Checkpoint() public virtual void Checkpoint()
{ {
if (EnviromentProvider.IsNewInstall) try
{ {
_deskMetricsClient.RegisterInstall(); if (EnviromentProvider.IsNewInstall)
} {
_deskMetricsClient.RegisterInstall();
}
if (_deskMetricsClient.Started)
{
_deskMetricsClient.Stop();
}
if (_deskMetricsClient.Started) _deskMetricsClient.Start();
}
catch (Exception e)
{ {
_deskMetricsClient.Stop(); if (!EnviromentProvider.IsProduction)
throw;
logger.WarnException("Error while sending analytics data.", e);
} }
_deskMetricsClient.Start();
} }
} }
} }

Loading…
Cancel
Save