Ejemplo n.º 1
0
        public void Deserialize_SerializedModel_CanDeserialize()
        {
            // This test creates a v1 model, serializes it to yaml, and then verifies that
            // the V1Deserializer can deserialize it.

            // Arrange
            var yaml = _configurationSerializer.Serialize(_metricsDeclaration);

            // Act
            var deserializedModel = _v1Deserializer.Deserialize(YamlUtils.CreateYamlNode(yaml), _errorReporter);

            // Assert
            Assert.NotNull(deserializedModel);
            Assert.Equal("tenant", deserializedModel.AzureMetadata.TenantId);
            Assert.Equal("subscription", deserializedModel.AzureMetadata.SubscriptionId);
            Assert.Equal("promitor-group", deserializedModel.AzureMetadata.ResourceGroupName);
            Assert.Equal(TimeSpan.FromMinutes(7), deserializedModel.MetricDefaults.Aggregation.Interval);
            Assert.Equal("1 2 3 4 5", deserializedModel.MetricDefaults.Scraping.Schedule);

            // Check first metric
            Assert.Equal("promitor_demo_generic_queue_size", deserializedModel.Metrics.ElementAt(0).Name);
            Assert.Equal("Amount of active messages of the 'orders' queue (determined with Generic provider)", deserializedModel.Metrics.ElementAt(0).Description);
            Assert.Equal(ResourceType.Generic, deserializedModel.Metrics.ElementAt(0).ResourceType);
            Assert.Equal(new Dictionary <string, string> {
                { "app", "promitor" }
            }, deserializedModel.Metrics.ElementAt(0).Labels);
            Assert.Equal("ActiveMessages", deserializedModel.Metrics.ElementAt(0).AzureMetricConfiguration.MetricName);
            Assert.Equal(AggregationType.Average, deserializedModel.Metrics.ElementAt(0).AzureMetricConfiguration.Aggregation.Type);
            Assert.Equal(2, deserializedModel.Metrics.ElementAt(0).Resources.Count);

            var genericResource1 = Assert.IsType <GenericResourceV1>(deserializedModel.Metrics.ElementAt(0).Resources.ElementAt(0));

            Assert.Equal("Microsoft.ServiceBus/namespaces/promitor-messaging", genericResource1.ResourceUri);
            Assert.Equal("EntityName eq 'orders'", genericResource1.Filter);

            var genericResource2 = Assert.IsType <GenericResourceV1>(deserializedModel.Metrics.ElementAt(0).Resources.ElementAt(1));

            Assert.Equal("Microsoft.ServiceBus/namespaces/promitor-messaging", genericResource2.ResourceUri);
            Assert.Equal("EntityName eq 'accounts'", genericResource2.Filter);

            // Check second metric
            Assert.Equal("promitor_demo_servicebusqueue_queue_size", deserializedModel.Metrics.ElementAt(1).Name);
            Assert.Equal("Amount of active messages of the 'orders' queue (determined with ServiceBusQueue provider)", deserializedModel.Metrics.ElementAt(1).Description);
            Assert.Equal(ResourceType.ServiceBusQueue, deserializedModel.Metrics.ElementAt(1).ResourceType);
            Assert.Null(deserializedModel.Metrics.ElementAt(1).Labels);
            Assert.Equal(TimeSpan.FromMinutes(15), deserializedModel.Metrics.ElementAt(1).AzureMetricConfiguration.Aggregation.Interval);
            Assert.Equal("5 4 3 2 1", deserializedModel.Metrics.ElementAt(1).Scraping.Schedule);

            Assert.Single(deserializedModel.Metrics.ElementAt(1).Resources);
            var serviceBusQueueResource = Assert.IsType <ServiceBusQueueResourceV1>(deserializedModel.Metrics.ElementAt(1).Resources.ElementAt(0));

            Assert.Equal("promitor-messaging", serviceBusQueueResource.Namespace);
            Assert.Equal("orders", serviceBusQueueResource.QueueName);
            Assert.Equal("promitor-demo-group", serviceBusQueueResource.ResourceGroupName);
            Assert.NotNull(deserializedModel.Metrics.ElementAt(1).ResourceCollections);
            Assert.Single(deserializedModel.Metrics.ElementAt(1).ResourceCollections);
            var resourceCollection = deserializedModel.Metrics.ElementAt(1).ResourceCollections.ElementAt(0);

            Assert.Equal("example-resource-collection", resourceCollection.Name);
        }
Ejemplo n.º 2
0
        public void YamlSerialization_SerializeAndDeserializeValidConfigForCosmosDb_SucceedsWithIdenticalOutput(string resourceGroupName, string defaultScrapingInterval, string metricScrapingInterval)
        {
            // Arrange
            var azureMetadata            = GenerateBogusAzureMetadata();
            var cosmosDbMetricDefinition = GenerateBogusCosmosDbMetricDefinition(resourceGroupName, metricScrapingInterval);
            var metricDefaults           = GenerateBogusMetricDefaults(defaultScrapingInterval);
            var scrapingConfiguration    = new MetricsDeclarationV1
            {
                Version        = SpecVersion.v1.ToString(),
                AzureMetadata  = azureMetadata,
                MetricDefaults = metricDefaults,
                Metrics        = new List <MetricDefinitionV1>
                {
                    cosmosDbMetricDefinition
                }
            };
            var configurationSerializer = new ConfigurationSerializer(NullLogger.Instance, Mapper);

            // Act
            var serializedConfiguration   = configurationSerializer.Serialize(scrapingConfiguration);
            var deserializedConfiguration = configurationSerializer.Deserialize(serializedConfiguration);

            // Assert
            Assert.NotNull(deserializedConfiguration);
            AssertAzureMetadata(deserializedConfiguration, azureMetadata);
            AssertMetricDefaults(deserializedConfiguration, metricDefaults);
            Assert.NotNull(deserializedConfiguration.Metrics);
            Assert.Single(deserializedConfiguration.Metrics);
            var deserializedMetricDefinition = deserializedConfiguration.Metrics.FirstOrDefault();

            AssertMetricDefinition(deserializedMetricDefinition, cosmosDbMetricDefinition);
            AssertCosmosDbMetricDefinition(deserializedMetricDefinition, cosmosDbMetricDefinition);
        }
Ejemplo n.º 3
0
        public void YamlSerialization_SerializeAndDeserializeValidConfigForServiceBus_SucceedsWithIdenticalOutput(string resourceGroupName, string defaultScrapingInterval, string metricScrapingInterval)
        {
            // Arrange
            var azureMetadata = GenerateBogusAzureMetadata();
            var serviceBusMetricDefinition = GenerateBogusServiceBusMetricDefinition(resourceGroupName, metricScrapingInterval);
            var metricDefaults             = GenerateBogusMetricDefaults(defaultScrapingInterval);
            var scrapingConfiguration      = new Core.Scraping.Configuration.Model.MetricsDeclaration
            {
                AzureMetadata  = azureMetadata,
                MetricDefaults = metricDefaults,
                Metrics        = new List <MetricDefinition>
                {
                    serviceBusMetricDefinition
                }
            };
            var configurationSerializer = new ConfigurationSerializer(NullLogger.Instance);

            // Act
            var serializedConfiguration   = configurationSerializer.Serialize(scrapingConfiguration);
            var deserializedConfiguration = configurationSerializer.Deserialize(serializedConfiguration);

            // Assert
            Assert.NotNull(deserializedConfiguration);
            AssertAzureMetadata(deserializedConfiguration, azureMetadata);
            AssertMetricDefaults(deserializedConfiguration, metricDefaults);
            Assert.NotNull(deserializedConfiguration.Metrics);
            Assert.Single(deserializedConfiguration.Metrics);
            var deserializedMetricDefinition = deserializedConfiguration.Metrics.FirstOrDefault();

            AssertMetricDefinition(deserializedMetricDefinition, serviceBusMetricDefinition);
            var deserializedServiceBusMetricDefinition = deserializedMetricDefinition as ServiceBusQueueMetricDefinition;

            AssertServiceBusQueueMetricDefinition(deserializedServiceBusMetricDefinition, serviceBusMetricDefinition);
        }
        public void YamlSerialization_SerializeAndDeserializeValidConfigForAzureStorageQueue_SucceedsWithIdenticalOutput(string resourceGroupName, string defaultScrapingInterval, string metricScrapingInterval, string sasTokenRawValue, string sasTokenEnvironmentVariable)
        {
            // Arrange
            var azureMetadata = GenerateBogusAzureMetadata();
            var azureStorageQueueMetricDefinition = GenerateBogusAzureStorageQueueMetricDefinition(resourceGroupName, metricScrapingInterval, sasTokenRawValue, sasTokenEnvironmentVariable);
            var metricDefaults        = GenerateBogusMetricDefaults(defaultScrapingInterval);
            var scrapingConfiguration = new Promitor.Core.Scraping.Configuration.Serialization.v1.Model.MetricsDeclarationV1
            {
                Version        = SpecVersion.v1.ToString(),
                AzureMetadata  = azureMetadata,
                MetricDefaults = metricDefaults,
                Metrics        = new List <MetricDefinitionV1>
                {
                    azureStorageQueueMetricDefinition
                }
            };
            var configurationSerializer = new ConfigurationSerializer(NullLogger.Instance, Mapper);

            // Act
            var serializedConfiguration   = configurationSerializer.Serialize(scrapingConfiguration);
            var deserializedConfiguration = configurationSerializer.Deserialize(serializedConfiguration);

            // Assert
            Assert.NotNull(deserializedConfiguration);
            AssertAzureMetadata(deserializedConfiguration, azureMetadata);
            AssertMetricDefaults(deserializedConfiguration, metricDefaults);
            Assert.NotNull(deserializedConfiguration.Metrics);
            Assert.Single(deserializedConfiguration.Metrics);
            var deserializedMetricDefinition = deserializedConfiguration.Metrics.FirstOrDefault();

            AssertMetricDefinition(deserializedMetricDefinition, azureStorageQueueMetricDefinition);
            AssertAzureStorageQueueMetricDefinition(deserializedMetricDefinition, azureStorageQueueMetricDefinition);
        }
Ejemplo n.º 5
0
        private void LogPlayerEvent(IPlayerEvent playerEvent)
        {
            try
            {
                var playerConfig = _scenario.Configuration.PlayerConfiguration.SingleOrDefault(pc => pc.EntityId == playerEvent.PlayerEntityId);
                if (playerConfig != null)
                {
                    var logEvent = new Engine.Logging.Database.Model.Event()
                    {
                        EventCode        = playerEvent.GetType().Name,
                        EventId          = playerEvent.Sequence,
                        Game             = _game,
                        Tick             = playerEvent.Tick,
                        Data             = ConfigurationSerializer.Serialize(playerEvent),
                        PlayerId         = playerConfig.Id,
                        PlayerExternalId = playerConfig.ExternalId
                    };

                    _context.InstanceEvents.Add(logEvent);
                }
            }
            catch (Exception ex)
            {
                // TODO: log
            }
        }
Ejemplo n.º 6
0
        private void CopyAndStartExecutor(UpdatePreparationWorkspaceInformation workspace,
                                          ExecutorConfiguration config)
        {
            var executorDirectory = Path.Combine(workspace.WorkingDirectory.FullName, "Executor");
            var executorFile      = new FileInfo(Path.Combine(executorDirectory, "AutoUpdate.Executor.exe"));

            using (var executorStream = GetExecutorStream())
            {
                var archive = new ZipArchive(executorStream);
                archive.ExtractToDirectory(executorDirectory);
            }

            executorFile.Refresh();
            if (!executorFile.Exists)
            {
                throw new InvalidOperationException("Preparation of executor helper was not successfull");
            }

            var serializer       = new ConfigurationSerializer();
            var serializedConfig = serializer.Serialize(config);

            var configFile = new FileInfo(Path.Combine(executorDirectory, ExecutorConfiguration.DEFAULT_FILENAME));

            using (var configFileStream = configFile.OpenWrite())
                using (var configFileWriter = new StreamWriter(configFileStream))
                {
                    configFileWriter.Write(serializedConfig);
                }

            var startInfo = new ProcessStartInfo(executorFile.FullName, configFile.FullName);

            startInfo.WorkingDirectory = executorDirectory;
            startInfo.UseShellExecute  = false;
            var result = Process.Start(startInfo);
        }
Ejemplo n.º 7
0
        public void YamlSerialization_SerializeAndDeserializeValidConfigForAzureStorageQueue_SucceedsWithIdenticalOutput()
        {
            // Arrange
            var azureMetadata = GenerateBogusAzureMetadata();
            var azureStorageQueueMetricDefinition = GenerateBogusAzureStorageQueueMetricDefinition();
            var metricDefaults        = GenerateBogusMetricDefaults();
            var scrapingConfiguration = new Core.Scraping.Configuration.Model.MetricsDeclaration
            {
                AzureMetadata  = azureMetadata,
                MetricDefaults = metricDefaults,
                Metrics        = new List <MetricDefinition>
                {
                    azureStorageQueueMetricDefinition
                }
            };
            var configurationSerializer = new ConfigurationSerializer(NullLogger.Instance);

            // Act
            var serializedConfiguration   = configurationSerializer.Serialize(scrapingConfiguration);
            var deserializedConfiguration = configurationSerializer.Deserialize(serializedConfiguration);

            // Assert
            Assert.NotNull(deserializedConfiguration);
            AssertAzureMetadata(deserializedConfiguration, azureMetadata);
            AssertMetricDefaults(deserializedConfiguration, metricDefaults);
            Assert.NotNull(deserializedConfiguration.Metrics);
            Assert.Single(deserializedConfiguration.Metrics);
            var deserializedMetricDefinition = deserializedConfiguration.Metrics.FirstOrDefault();

            AssertMetricDefinition(deserializedMetricDefinition, azureStorageQueueMetricDefinition);
            var deserializedAzureStorageQueueMetricDefinition = deserializedMetricDefinition as StorageQueueMetricDefinition;

            AssertAzureStorageQueueMetricDefinition(deserializedAzureStorageQueueMetricDefinition, azureStorageQueueMetricDefinition, deserializedMetricDefinition);
        }
Ejemplo n.º 8
0
        public string Build()
        {
            var metricsDeclaration = new MetricsDeclaration
            {
                AzureMetadata = _azureMetadata,
                Metrics       = _metrics
            };

            return(ConfigurationSerializer.Serialize(metricsDeclaration));
        }
Ejemplo n.º 9
0
        private void OnTick(Tick tick, uint crc)
        {
            var tickString = ConfigurationSerializer.Serialize(tick);

            Messenger.SendAllMessage(new TickMessage
            {
                CRC        = crc,
                TickString = tickString
            });
        }
Ejemplo n.º 10
0
        private void ButtonAddProcessClick(object sender, EventArgs e)
        {
            var applicationHandlerConfig = new ApplicationHandlerConfig();

            _configuration.ApplicationHandlers.Add(applicationHandlerConfig);

            var editForm   = new EditForm();
            var editFormVm = new EditFormVm(editForm, applicationHandlerConfig, _configuration);

            editForm.ShowDialog(_mainForm);

            _serializer.Serialize(_configuration);


            _mainForm.listBoxMonitoredApplications.Items.Add(applicationHandlerConfig.ApplicationName);
            SelectMenuItemInList(_mainForm.listBoxMonitoredApplications.Items.Count - 1);


            SetForm(applicationHandlerConfig);
        }
        public string Build()
        {
            var metricsDeclaration = new MetricsDeclaration
            {
                AzureMetadata = _azureMetadata,
                Metrics       = _metrics
            };

            var configurationSerializer = new ConfigurationSerializer(NullLogger.Instance);

            return(configurationSerializer.Serialize(metricsDeclaration));
        }
Ejemplo n.º 12
0
        public string Build(IMapper mapper)
        {
            var metricsDeclaration = new MetricsDeclarationV1
            {
                Version        = SpecVersion.v1.ToString(),
                AzureMetadata  = _azureMetadata,
                MetricDefaults = _metricDefaults,
                Metrics        = _metrics
            };

            var configurationSerializer = new ConfigurationSerializer(NullLogger.Instance, mapper);

            return(configurationSerializer.Serialize(metricsDeclaration));
        }
Ejemplo n.º 13
0
        public void IsXmlSerializable()
        {
            var configuration = new Configuration
            {
                BeepConfiguration = new BeepConfiguration
                {
                    Duration  = TimeSpan.FromMilliseconds(100),
                    Frequency = 1000,
                    Number    = 3
                },
                RestTime = TimeSpan.FromSeconds(15),
                WorkTime = TimeSpan.FromSeconds(30),
            };
            var s = new ConfigurationSerializer <Configuration>();

            Console.WriteLine(s.Serialize(configuration));
        }
Ejemplo n.º 14
0
        private void LogEvent(IEvent @event)
        {
            try
            {
                var logEvent = new Engine.Logging.Database.Model.Event()
                {
                    EventCode = @event.GetType().Name,
                    EventId   = @event.Sequence,
                    Game      = _game,
                    Tick      = @event.Tick,
                    Data      = ConfigurationSerializer.Serialize(@event),
                };

                _context.InstanceEvents.Add(logEvent);
            }
            catch (Exception ex)
            {
                // TODO: log
            }
        }
        public void YamlSerialization_SerializeAndDeserializeValidConfigForServiceBus_SucceedsWithIdenticalOutput()
        {
            // Arrange
            var azureMetadata = GenerateBogusAzureMetadata();
            var serviceBusMetricDefinition = GenerateBogusServiceBusMetricDefinition();
            var scrapingConfiguration      = new MetricsDeclaration
            {
                AzureMetadata = azureMetadata,
                Metrics       = new List <Core.Scraping.Configuration.Model.Metrics.MetricDefinition>
                {
                    serviceBusMetricDefinition
                }
            };

            // Act
            var serializedConfiguration   = ConfigurationSerializer.Serialize(scrapingConfiguration);
            var deserializedConfiguration = ConfigurationSerializer.Deserialize(serializedConfiguration);

            // Assert
            Assert.NotNull(deserializedConfiguration);
            Assert.NotNull(deserializedConfiguration.AzureMetadata);
            Assert.Equal(azureMetadata.TenantId, deserializedConfiguration.AzureMetadata.TenantId);
            Assert.Equal(azureMetadata.ResourceGroupName, deserializedConfiguration.AzureMetadata.ResourceGroupName);
            Assert.Equal(azureMetadata.SubscriptionId, deserializedConfiguration.AzureMetadata.SubscriptionId);
            Assert.NotNull(deserializedConfiguration.Metrics);
            Assert.Single(deserializedConfiguration.Metrics);
            var deserializedMetricDefinition = deserializedConfiguration.Metrics.FirstOrDefault();

            Assert.NotNull(deserializedMetricDefinition);
            Assert.Equal(serviceBusMetricDefinition.Name, deserializedMetricDefinition.Name);
            Assert.Equal(serviceBusMetricDefinition.Description, deserializedMetricDefinition.Description);
            Assert.Equal(serviceBusMetricDefinition.ResourceType, deserializedMetricDefinition.ResourceType);
            var deserializedServiceBusMetricDefinition = deserializedMetricDefinition as ServiceBusQueueMetricDefinition;

            Assert.NotNull(deserializedServiceBusMetricDefinition);
            Assert.Equal(serviceBusMetricDefinition.Namespace, deserializedServiceBusMetricDefinition.Namespace);
            Assert.Equal(serviceBusMetricDefinition.QueueName, deserializedServiceBusMetricDefinition.QueueName);
            Assert.NotNull(deserializedMetricDefinition.AzureMetricConfiguration);
            Assert.Equal(serviceBusMetricDefinition.AzureMetricConfiguration.MetricName, deserializedMetricDefinition.AzureMetricConfiguration.MetricName);
            Assert.Equal(serviceBusMetricDefinition.AzureMetricConfiguration.Aggregation, deserializedMetricDefinition.AzureMetricConfiguration.Aggregation);
        }
Ejemplo n.º 16
0
        public void SimpleConfigurationTest()
        {
            var cnc = new CncConfiguration
            {
                Channels = new []
                {
                    new ChannelConfiguration
                    {
                        Name = "Channel 1",
                        Axes = new []
                        {
                            new AxisConfiguration
                            {
                                Name = "X"
                            },
                            new AxisConfiguration
                            {
                                Name = "Y"
                            },
                            new AxisConfiguration
                            {
                                Name = "Z"
                            },
                        },
                        Spindles = new []
                        {
                            new SpindleConfiguration
                            {
                                Name = "S"
                            },
                        }
                    },
                }
            };

            var serializer = new ConfigurationSerializer();
            var xml        = serializer.Serialize(cnc);
        }
Ejemplo n.º 17
0
 public string GetPlayerConfiguration()
 {
     return(ConfigurationSerializer.Serialize(Configuration.PlayerConfiguration));
 }