コード例 #1
0
 public MetricsUploaderConfiguration(LogSharkConfiguration logSharkConfiguration) : this(
         logSharkConfiguration.TelemetryApplication,
         logSharkConfiguration.TelemetryEndpoint,
         logSharkConfiguration.TelemetryEnvironment,
         logSharkConfiguration.TelemetryTimeout)
 {
 }
コード例 #2
0
        public EndToEndTest(LogSharkCommandLineParameters clParameters, string expectedResultsLocation, IDictionary <string, int> expectedProcessingErrorsCount = null, IDictionary <string, string> configOverrides = null)
        {
            var configValues = new Dictionary <string, string>()
            {
                ["EnvironmentConfig:TempDir"]                        = "Temp",
                ["EnvironmentConfig:OutputDir"]                      = "Output",
                ["EnvironmentConfig:OutputDirMaxResults"]            = "1",
                ["EnvironmentConfig:WorkbookTemplatesDir"]           = "Workbooks",
                ["PluginsConfiguration:Apache:IncludeGatewayChecks"] = "true",
                ["PluginsConfiguration:VizqlDesktop:MaxQueryLength"] = "10000",
                ["PluginsConfiguration:DefaultPluginSet:PluginsToExcludeFromDefaultSet"] = "Replayer"
            };

            if (configOverrides != null)
            {
                configValues = configOverrides.Concat(configValues.Where(entry => !configOverrides.Keys.Contains(entry.Key)))
                               .ToDictionary(x => x.Key, x => x.Value);
            }

            var configuration = ConfigGenerator.GetConfigFromDictionary(configValues);

            _config = new LogSharkConfiguration(clParameters, configuration, _loggerFactory);

            _expectedProcessingErrorsCount = expectedProcessingErrorsCount ?? new Dictionary <string, int>();
            _expectedResultsLocation       = expectedResultsLocation;
        }
コード例 #3
0
 public HyperWorkbookGenerator(LogSharkConfiguration config, ILogger logger, string hyperOutputDir, string workbooksOutputDir)
 {
     _config             = config;
     _logger             = logger;
     _hyperOutputDir     = hyperOutputDir;
     _workbooksOutputDir = workbooksOutputDir;
 }
コード例 #4
0
        private static (TestWriterFactory, PluginManager) InitPluginsWithTestWriter(
            string selectedPlugins,
            string defaultSet      = null,
            string excludedPlugins = null,
            bool?usePluginsFromLogSharkAssembly = null)
        {
            var testWriterFactory = new TestWriterFactory();

            var configDictionary = new Dictionary <string, string>()
            {
                { "PluginsConfiguration:ApachePlugin:IncludeGatewayChecks", "true" },
                { "PluginsConfiguration:DefaultPluginSet:PluginsToRunByDefault", defaultSet },
                { "PluginsConfiguration:DefaultPluginSet:PluginsToExcludeFromDefaultSet", excludedPlugins }
            };

            if (usePluginsFromLogSharkAssembly.HasValue)
            {
                configDictionary["EnvironmentConfig:UsePluginsFromLogSharkAssembly"] = usePluginsFromLogSharkAssembly.Value.ToString();
            }

            var config = new LogSharkConfiguration(
                new LogSharkCommandLineParameters()
            {
                RequestedPlugins = selectedPlugins
            },
                ConfigGenerator.GetConfigFromDictionary(configDictionary),
                null);

            var pluginManager = new PluginManager(config, new NullLoggerFactory());

            pluginManager.CreatePlugins(testWriterFactory, null);

            return(testWriterFactory, pluginManager);
        }
コード例 #5
0
ファイル: MetricsModule.cs プロジェクト: roopannava/Logshark
        public async Task ReportStartMetrics(LogSharkConfiguration config)
        {
            if (!IsUploadEnabled())
            {
                return;
            }

            var startMetrics = new StartMetrics
            {
                Context = new StartMetrics.ContextModel
                {
                    RequestedPlugins  = config.RequestedPlugins,
                    RequestedWriter   = config.RequestedWriter,
                    UserProvidedRunId = config.UserProvidedRunId,
                },
                System = new StartMetrics.SystemModel
                {
                    DebuggerIsAttached = Debugger.IsAttached,
                    DomainName         = _userInspector.GetDomainName(),
                    LogSharkVersion    = _processInspector.GetLogSharkVersion(),
                    MachineName        = _userInspector.GetMachineName(),
                    OSArchitecture     = _hardwareInspector.GetOSArchitecture(),
                    OSDescription      = _hardwareInspector.GetOSDescription(),
                    OSVersion          = _hardwareInspector.GetOSVersion(),
                    ProcessorCount     = _hardwareInspector.GetProcessorCount(),
                    TelemetryLevel     = _config.TelemetryLevel,
                    Username           = _userInspector.GetUsername(),
                }
            };

            await _config.MetricUploader.Upload(startMetrics, "logshark.start");
        }
コード例 #6
0
 public WorkbookPublisher(LogSharkConfiguration config, PublisherSettings publisherSettings, DataSourceCredentials creds, ILoggerFactory loggerFactory)
 {
     _config            = config;
     _publisherSettings = publisherSettings;
     _dbCreds           = creds;
     _loggerFactory     = loggerFactory;
     _logger            = _loggerFactory.CreateLogger <WorkbookPublisher>();
 }
コード例 #7
0
ファイル: MetricTest.cs プロジェクト: roopannava/Logshark
 public MetricTest()
 {
     _testUploader            = new MetricTestUploader();
     _configurationLevelFull  = new MetricsConfig(_testUploader, TelemetryLevel.Full);
     _configurationLevelBasic = new MetricsConfig(_testUploader, TelemetryLevel.Basic);
     _configurationLevelNone  = new MetricsConfig(_testUploader, TelemetryLevel.None);
     _configDefault           = new LogSharkConfiguration(new LogSharkCommandLineParameters(), new ConfigurationBuilder().Build(), null);
     _runSummaryDefault       = RunSummary.FailedRunSummary(null, null);
 }
コード例 #8
0
        public CsvWriterFactory(string runId, LogSharkConfiguration config, ILoggerFactory loggerFactory)
        {
            _config = config;
            (_outputDirectory, _) = OutputDirInitializer.InitDirs(_config.OutputDir, runId, _config.AppendTo, "csv", loggerFactory, _config.ThrowIfOutputDirectoryExists);
            _appending            = !string.IsNullOrWhiteSpace(_config.AppendTo);

            _loggerFactory = loggerFactory;
            _logger        = _loggerFactory.CreateLogger <CsvWriterFactory>();
        }
コード例 #9
0
        public PluginManager(LogSharkConfiguration config, ILoggerFactory loggerFactory)
        {
            _config        = config;
            _pluginFactory = new PluginFactory(_config);
            _loggerFactory = loggerFactory;
            _logger        = loggerFactory.CreateLogger <PluginManager>();

            _plugins = new List <IPlugin>();
            _completeProcessingCalled = false;
            _runAborted = false;
        }
コード例 #10
0
 public TableauLogsProcessor(
     LogSharkConfiguration config,
     IPluginManager pluginManager,
     IWriterFactory writerFactory,
     ILogTypeDetails logTypeDetails,
     IProcessingNotificationsCollector processingNotificationsCollector,
     ILoggerFactory loggerFactory)
 {
     _config         = config;
     _loggerFactory  = loggerFactory;
     _logger         = _loggerFactory.CreateLogger <TableauLogsProcessor>();
     _logTypeDetails = logTypeDetails;
     _pluginManager  = pluginManager;
     _processingNotificationsCollector = processingNotificationsCollector;
     _writerFactory = writerFactory;
 }
コード例 #11
0
        public static PublisherSettings GetPublisherSettings(this LogSharkConfiguration logSharkConfiguration)
        {
            var tableauServerInfo = new TableauServerInfo(
                logSharkConfiguration.TableauServerUrl,
                logSharkConfiguration.TableauServerSite,
                logSharkConfiguration.TableauServerUsername,
                logSharkConfiguration.TableauServerPassword,
                logSharkConfiguration.TableauServerTimeout,
                logSharkConfiguration.TableauServerPublishingTimeout);

            return(new PublisherSettings(
                       tableauServerInfo,
                       logSharkConfiguration.GroupsToProvideWithDefaultPermissions,
                       logSharkConfiguration.ApplyPluginProvidedTagsToWorkbooks,
                       logSharkConfiguration.ParentProjectId,
                       logSharkConfiguration.ParentProjectName));
        }
コード例 #12
0
        public HyperWriterFactory(
            string runId,
            LogSharkConfiguration config,
            ILoggerFactory loggerFactory)
        {
            _config = config;

            Directory.CreateDirectory(_config.HyperLogDir);
            Directory.CreateDirectory(_config.TempDir);
            _server = new HyperProcess(Telemetry.DoNotSendUsageDataToTableau, null, new Dictionary <string, string> {
                { "log-dir", _config.HyperLogDir },
                { ":hyper_temp_directory_override", _config.TempDir },
            });

            (_outputDirectory, _workbooksDirectory) = OutputDirInitializer.InitDirs(_config.OutputDir, runId, _config.AppendTo, "hyper", loggerFactory, _config.ThrowIfOutputDirectoryExists);
            _loggerFactory = loggerFactory;
            _logger        = _loggerFactory.CreateLogger <HyperWriterFactory>();
        }
コード例 #13
0
        public SqlWorkbookGenerator(
            string runId,
            LogSharkConfiguration config,
            string dbName,
            string dbHost,
            string dbPort,
            string dbUsername,
            ILoggerFactory loggerFactory)
        {
            _config = config;
            _logger = loggerFactory.CreateLogger <SqlWorkbookGenerator>();
            (_, _workbooksOutputDir) = OutputDirInitializer.InitDirs(_config.OutputDir, runId, _config.AppendTo, "postgres", loggerFactory, _config.ThrowIfOutputDirectoryExists);

            _dbName     = dbName;
            _dbHost     = dbHost;
            _dbPort     = dbPort;
            _dbUsername = dbUsername;
        }
コード例 #14
0
        public PostgresWriterFactory(
            string runId,
            LogSharkConfiguration config,
            ILoggerFactory loggerFactory,
            TRunSummary runSummaryRecord,
            string runSummaryIdColumnName)
        {
            _runId         = runId;
            _config        = config;
            _loggerFactory = loggerFactory;
            _logger        = _loggerFactory.CreateLogger <PostgresWriterFactory <TRunSummary> >();

            _runSummaryRecord       = runSummaryRecord;
            _runSummaryIdColumnName = runSummaryIdColumnName;

            var connectionStringBuilder = GetConnectionStringBuilder();

            _repository = new NpgsqlRepository(new NpgsqlDataContext(connectionStringBuilder, _config.PostgresServiceDatabaseName, loggerFactory), _config.PostgresBatchSize);
            _repository.RegisterType <TRunSummary>(null);
        }
コード例 #15
0
 public WorkbookPublisher(LogSharkConfiguration config, PublisherSettings publisherSettings, ILoggerFactory loggerFactory)
     : this(config, publisherSettings, null, loggerFactory)
 {
 }
コード例 #16
0
ファイル: MetricsConfig.cs プロジェクト: roopannava/Logshark
 public MetricsConfig(IMetricUploader metricUploader, LogSharkConfiguration config) : this(metricUploader, config.TelemetryLevel)
 {
 }