示例#1
0
        public void Dispose()
        {
            var handler = Stopped;

            if (handler != null)
            {
                handler();
            }

            Configuration.Stop();

            // Disconnect from events we're listening to
            ServiceManager.SourceManager.ActiveSourceChanged -= OnActiveSourceChanged;
            Application.ShutdownRequested      -= OnShutdownRequested;
            HyenaSqliteCommand.CommandExecuted -= OnSqliteCommandExecuted;

            ServiceManager.PlaybackController.SourceChanged      -= OnPlaybackSourceChanged;
            ServiceManager.PlaybackController.ShuffleModeChanged -= OnShuffleModeChanged;
            ServiceManager.PlaybackController.RepeatModeChanged  -= OnRepeatModeChanged;

            // Delete any collected data
            metrics.Store.Clear();
            metrics.Dispose();
            metrics = null;

            // Forget the user's unique id
            DatabaseConfigurationClient.Client.Set <string> (id_key, "");
        }
示例#2
0
        private BansheeMetrics()
        {
            banshee_metrics = this;
            string unique_userid = DatabaseConfigurationClient.Client.Get <string> (id_key, null);

            if (String.IsNullOrEmpty(unique_userid))
            {
                unique_userid = System.Guid.NewGuid().ToString();
                DatabaseConfigurationClient.Client.Set <string> (id_key, unique_userid);
            }

            metrics = new MetricsCollection(unique_userid, new DbSampleStore(
                                                ServiceManager.DbConnection, "AnonymousUsageData"
                                                ));

            Configuration.Start();

            if (Application.ActiveClient != null && Application.ActiveClient.IsStarted)
            {
                Initialize(null);
            }
            else
            {
                Application.ClientStarted += Initialize;
            }
        }
        public void MetricsCollection()
        {
            string id      = "myuniqueid";
            var    metrics = new MetricsCollection(id, new MemorySampleStore());

            Assert.AreEqual("myuniqueid", metrics.AnonymousUserId);

            metrics.AddDefaults();
            Assert.IsTrue(metrics.Count > 0);

            string metrics_str = metrics.ToJsonString();

            Assert.IsTrue(metrics_str.Contains("\"ID\":\"myuniqueid\""));

            // tests/Makefile.am runs the tests with Locale=it_IT
            Assert.IsTrue(metrics_str.Contains("it-IT"));

            // Make sure DateTime samples are saved as invariant strings
            var now         = DateTime.Now;
            var time_metric = metrics.Add("Foo", now);

            Assert.AreEqual(Hyena.DateTimeUtil.ToInvariantString(now), metrics.Store.GetFor(time_metric).First().Value);

            // Make sure we can read the JSON back in
            var ds = new Json.Deserializer();

            ds.SetInput(metrics.ToJsonString());
            var json_obj = ds.Deserialize() as JsonObject;

            Assert.AreEqual(id, json_obj["ID"]);
            Assert.IsTrue(json_obj["Metrics"] is JsonObject);
        }
示例#4
0
        public void MetricsCollection ()
        {
            string id = "myuniqueid";
            var metrics = new MetricsCollection (id, new MemorySampleStore ());
            Assert.AreEqual ("myuniqueid", metrics.AnonymousUserId);

            metrics.AddDefaults ();
            Assert.IsTrue (metrics.Count > 0);

            string metrics_str = metrics.ToJsonString ();
            Assert.IsTrue (metrics_str.Contains ("\"ID\":\"myuniqueid\""));

            // tests/Makefile.am runs the tests with Locale=it_IT
            Assert.IsTrue (metrics_str.Contains ("it-IT"));

            // Make sure DateTime samples are saved as invariant strings
            var now = DateTime.Now;
            var time_metric = metrics.Add ("Foo", now);
            Assert.AreEqual (Hyena.DateTimeUtil.ToInvariantString (now), metrics.Store.GetFor (time_metric).First ().Value);

            // Make sure we can read the JSON back in
            var ds = new Json.Deserializer ();
            ds.SetInput (metrics.ToJsonString ());
            var json_obj = ds.Deserialize () as JsonObject;
            Assert.AreEqual (id, json_obj["ID"]);
            Assert.IsTrue (json_obj["Metrics"] is JsonObject);
        }
示例#5
0
文件: HttpPoster.cs 项目: GNOME/hyena
        public HttpPoster(string url, MetricsCollection metrics)
        {
            this.url = url;
            this.metrics = metrics;

            // Sending the Expect header causes lighttpd to fail with a 417 header.
            ServicePointManager.Expect100Continue = false;
        }
示例#6
0
        public void RequestDataShouldReturnValidMetricsCollector()
        {
            var requestData       = new RequestData();
            var metricsCollection = new MetricsCollection();

            requestData.MetricsCollection = metricsCollection;

            Assert.AreEqual(metricsCollection, requestData.MetricsCollection);
        }
示例#7
0
        private BansheeMetrics()
        {
            banshee_metrics = this;
            string unique_userid = DatabaseConfigurationClient.Client.Get<string> (id_key, null);

            if (String.IsNullOrEmpty (unique_userid)) {
                unique_userid = System.Guid.NewGuid ().ToString ();
                DatabaseConfigurationClient.Client.Set<string> (id_key, unique_userid);
            }

            metrics = new MetricsCollection (unique_userid, new DbSampleStore (
                ServiceManager.DbConnection, "AnonymousUsageData"
            ));

            Configuration.Start ();

            if (Application.ActiveClient != null && Application.ActiveClient.IsStarted) {
                Initialize (null);
            } else {
                Application.ClientStarted += Initialize;
            }
        }
示例#8
0
        public void DiscoverTestsShouldSendMetricsOnDiscoveryComplete()
        {
            var metricsCollector = new MetricsCollection();

            metricsCollector.Add("DummyMessage", "DummyValue");

            this.mockRequestData.Setup(rd => rd.MetricsCollection).Returns(metricsCollector);

            DiscoveryCompleteEventArgs receivedDiscoveryCompleteEventArgs = null;

            TestPluginCacheHelper.SetupMockExtensions(
                new string[] { typeof(DiscovererEnumeratorTests).GetTypeInfo().Assembly.Location },
                () => { });

            var sources = new List <string>
            {
                typeof(DiscoveryManagerTests).GetTypeInfo().Assembly.Location
            };

            var mockLogger = new Mock <ITestDiscoveryEventsHandler2>();
            var criteria   = new DiscoveryCriteria(sources, 1, null);

            mockLogger.Setup(ml => ml.HandleDiscoveryComplete(It.IsAny <DiscoveryCompleteEventArgs>(), It.IsAny <IEnumerable <TestCase> >()))
            .Callback(
                (DiscoveryCompleteEventArgs complete,
                 IEnumerable <TestCase> tests) =>
            {
                receivedDiscoveryCompleteEventArgs = complete;
            });

            // Act.
            this.discoveryManager.DiscoverTests(criteria, mockLogger.Object);

            // Assert
            Assert.IsNotNull(receivedDiscoveryCompleteEventArgs.Metrics);
            Assert.IsTrue(receivedDiscoveryCompleteEventArgs.Metrics.Any());
            Assert.IsTrue(receivedDiscoveryCompleteEventArgs.Metrics.ContainsKey("DummyMessage"));
        }
        public void Dispose ()
        {
            var handler = Stopped;
            if (handler != null) {
                handler ();
            }

            Configuration.Stop ();

            // Disconnect from events we're listening to
            ServiceManager.SourceManager.ActiveSourceChanged -= OnActiveSourceChanged;
            Application.ShutdownRequested -= OnShutdownRequested;
            HyenaSqliteCommand.CommandExecuted -= OnSqliteCommandExecuted;

            ServiceManager.PlaybackController.SourceChanged      -= OnPlaybackSourceChanged;
            ServiceManager.PlaybackController.ShuffleModeChanged -= OnShuffleModeChanged;
            ServiceManager.PlaybackController.RepeatModeChanged  -= OnRepeatModeChanged;

            // Delete any collected data
            metrics.Store.Clear ();
            metrics.Dispose ();
            metrics = null;

            // Forget the user's unique id
            DatabaseConfigurationClient.Client.Set<string> (id_key, "");
        }
示例#10
0
 public HttpPoster (string url, MetricsCollection metrics)
 {
     this.url = url;
     this.metrics = metrics;
 }
示例#11
0
 public override void CreateMetric(BenchmarkMetrics metrics)
 {
     _metrics = metrics.GetMetricsCollection("COLLECTOR");
     _metrics.AddMetrics(new AvgMetric(MetricName.PackageData));
     _metrics.AddMetrics(new AvgMetric(MetricName.Single));
 }