public void Configure(IWriterFactory writerFactory, IConfiguration pluginConfig, IProcessingNotificationsCollector processingNotificationsCollector, ILoggerFactory loggerFactory) { _processingNotificationsCollector = processingNotificationsCollector; _desktopWriter = writerFactory.GetWriter <FlattenedArtEvent>(DesktopOutputInfo); _serverWriter = writerFactory.GetWriter <FlattenedArtEvent>(ServerOutputInfo); _jsonSerializer = JsonSerializer.Create(); }
public void Configure(IWriterFactory writerFactory, IConfiguration pluginConfig, IProcessingNotificationsCollector processingNotificationsCollector, ILoggerFactory loggerFactory) { _logger = loggerFactory.CreateLogger <ReplayerPlugin>(); _processingNotificationsCollector = processingNotificationsCollector; PopulateTimeZoneDictionary(); CheckForMissingSystemTimeZones(); // get the relevant vizqlserver events from config if specified _relevantVizqlServerEvents = pluginConfig?.GetConfigurationValueOrDefault(ReplayRelevantEventsKey, _relevantVizqlServerEvents.ToArray(), _logger) .ToHashSet(); // get the relevant vizqlserver events from config if specified _skippableCommands = pluginConfig?.GetConfigurationValueOrDefault(ReplaySkippableCommandsKey, _skippableCommands.ToArray(), _logger) .ToHashSet(); // get path of the Json file from config if specified _replayerOutputDirectory = pluginConfig?.GetConfigurationValueOrDefault(ReplayerOutputDirectoryKey, _replayerOutputDirectory, _logger); // get the file containing the time zones dictionary _timeZonesDictionaryFile = pluginConfig?.GetConfigurationValueOrDefault(ReplayerTimeZonesDictionaryFileKey, _timeZonesDictionaryFile, _logger); // get replay file name of the Json file from config if specified _jsonReplayFile = pluginConfig?.GetConfigurationValueOrDefault(ReplayFileNameKey, string.Format($"Playback{DateTime.Now:_dd_MM_-HH-mm-ss}.json"), _logger); if (string.IsNullOrEmpty(_jsonReplayFile)) { _jsonReplayFile = string.Format($"Playback{DateTime.Now:_dd_MM_-HH-mm-ss}.json"); } }
private static void DriveTest() { var repositoryReader = IRepositoryReaderFactory.GetIRepositoryReader(); var writer = IWriterFactory.GetIWriter(repositoryReader); writer.Execute(); }
public IEnumerable <IPlugin> CreatePlugins(IWriterFactory writerFactory, IProcessingNotificationsCollector processingNotificationsCollector) { var pluginNamesToLoad = GetPluginNamesToLoad().ToList(); _logger.LogInformation($"Loading plugins: {string.Join(';', pluginNamesToLoad)}"); foreach (var pluginName in pluginNamesToLoad) { IPlugin plugin; try { plugin = _pluginFactory.CreatePlugin(pluginName); } catch (Exception ex) { _logger.LogError($"Exception occurred when creating plugin '{pluginName}'. See inner exception for details.", ex); throw; } try { var pluginConfiguration = _config.GetPluginConfiguration(plugin.Name); plugin.Configure(writerFactory, pluginConfiguration, processingNotificationsCollector, _loggerFactory); } catch (Exception ex) { _logger.LogError(ex, $"Exception occurred when configuring plugin '{pluginName}'. See inner exception for details."); throw; } _plugins.Add(plugin); } return(_plugins); }
public Caller() { AbstractWritter abstractWritter = new WriterFactory(); IWriterFactory writer = abstractWritter.GetWritter("A"); writer.parse(new string[] { }); }
public SourceDump(SourceDumperOptions options, UsageDefinition definition, IEnvironment environment, IDebugger debugger, IConsole console, IVersion versionGetter, IWriterFactory factory) : base(options, definition, environment, debugger, console, versionGetter) { _factory = factory; }
public BackgrounderEventPersister(IWriterFactory writerFactory) { _jobWriter = writerFactory.GetWriter <BackgrounderJob>(JobsDsi); _jobErrorWriter = writerFactory.GetWriter <BackgrounderJobError>(JobErrorsDsi); _extractJobDetailWriter = writerFactory.GetWriter <BackgrounderExtractJobDetail>(ExtractJobDetailsDsi); _subscriptionJobDetailWriter = writerFactory.GetWriter <BackgrounderSubscriptionJobDetail>(SubscriptionJobDetailsDsi); }
public void Configure(IWriterFactory writerFactory, IConfiguration pluginConfig, IProcessingNotificationsCollector processingNotificationsCollector, ILoggerFactory loggerFactory) { _configEntriesWriter = writerFactory.GetWriter <ConfigEntry>(ConfigEntriesOutputInfo); _processTopologyWriter = writerFactory.GetWriter <ConfigProcessInfo>(ProcessTopologyOutputInfo); _processedConfigFiles = new List <ConfigFile>(); _logger = loggerFactory.CreateLogger <ConfigPlugin>(); _processingNotificationsCollector = processingNotificationsCollector; }
public void Configure(IWriterFactory writerFactory, IConfiguration pluginConfig, IProcessingNotificationsCollector processingNotificationsCollector, ILoggerFactory loggerFactory) { _tabadminActionWriter = writerFactory.GetWriter <TabadminAction>(TabadminActionOutputInfo); _tableauServerVersionWriter = writerFactory.GetWriter <TableauServerVersion>(TableauServerVersionOutputInfo); _tabadminErrorWriter = writerFactory.GetWriter <TabadminError>(TabadminErrorOutputInfo); _versionsDict = new Dictionary <string, List <TableauServerVersion> >(); _processingNotificationsCollector = processingNotificationsCollector; }
public void Configure(IWriterFactory writerFactory, IConfiguration pluginConfig, IProcessingNotificationsCollector processingNotificationsCollector, ILoggerFactory loggerFactory) { _processingNotificationsCollector = processingNotificationsCollector; _tabadminControllerEventParser = new TabadminControllerEventParser( new BuildTracker(processingNotificationsCollector), _processingNotificationsCollector); _writer = writerFactory.GetWriter <TabadminControllerEvent>(OutputInfo); }
public VizqlDesktopEventProcessor(IWriterFactory writerFactory, int maxQueryLength) { _sessionsWriter = writerFactory.GetWriter <VizqlDesktopSession>(SessionsDsi); _errorsWriter = writerFactory.GetWriter <VizqlDesktopErrorEvent>(ErrorsDsi); _endQueryEventsWriter = writerFactory.GetWriter <VizqlEndQueryEvent>(EndQueryEventsDsi); _performanceEventsWriter = writerFactory.GetWriter <VizqlPerformanceEvent>(PerformanceEventsDsi); _sessionTracker = new SessionTracker(); _maxQueryLength = maxQueryLength; }
public ResourceManagerEventsProcessor(IWriterFactory writerFactory, IProcessingNotificationsCollector processingNotificationsCollector) { _processingNotificationsCollector = processingNotificationsCollector; _actionsWriter = writerFactory.GetWriter <ResourceManagerAction>(ActionsDataSetInfo); _cpuSamplesWriter = writerFactory.GetWriter <ResourceManagerCpuSample>(CpuSamplesDataSetInfo); _memorySamplesWriter = writerFactory.GetWriter <ResourceManagerMemorySample>(MemorySamplesDataSetInfo); _thresholdsWriters = writerFactory.GetWriter <ResourceManagerThreshold>(ThresholdsDataSetInfo); _cpuUsageWriter = writerFactory.GetWriter <ResourceManagerHighCpuUsage>(HighCpuUsageDataSetInfo); }
public void Configure(IWriterFactory writerFactory, IConfiguration pluginConfig, IProcessingNotificationsCollector processingNotificationsCollector, ILoggerFactory loggerFactory) { _errorWriter = writerFactory.GetWriter <ClusterControllerError>(_errorDSI); _postgresActionWriter = writerFactory.GetWriter <ClusterControllerPostgresAction>(_postgresActionDSI); _diskIOSampleWriter = writerFactory.GetWriter <ClusterControllerDiskIoSample>(_diskIOSampleDSI); _zkErrorWriter = writerFactory.GetWriter <ZookeeperError>(_zkErrorDSI); _zkFsyncLatencyWriter = writerFactory.GetWriter <ZookeeperFsyncLatency>(_zkFsyncLatencyDSI); _processingNotificationsCollector = processingNotificationsCollector; }
public async Task <RunSummary> Run(IWriterFactory customWriterFactory = null) { var startMetricsTask = _metricsModule.ReportStartMetrics(_config); var processLogTask = ProcessLog(customWriterFactory); await Task.WhenAll(startMetricsTask, processLogTask); var runSummary = await processLogTask; await _metricsModule.ReportEndMetrics(runSummary); return(runSummary); }
private static void DisplayOutputString(IWriterFactory writerFactory) { if (writerFactory == null) { throw new ArgumentNullException(nameof(writerFactory)); } var writer = writerFactory.CreateWriter(); writer.WriteValue(); }
public void Configure(IWriterFactory writerFactory, IConfiguration pluginConfig, IProcessingNotificationsCollector processingNotificationsCollector, ILoggerFactory loggerFactory) { _writer = writerFactory.GetWriter <ApacheEvent>(OutputInfo); var section = pluginConfig?.GetSection("IncludeGatewayChecks"); var sectionExists = section != null && section.Exists(); if (!sectionExists) { var logger = loggerFactory.CreateLogger <ApachePlugin>(); logger.LogWarning("{pluginName} config was missing from Plugins Configuration. Using default value of {defaultValue} for {missingParameterName} parameter", nameof(ApachePlugin), DefaultIncludeGatewayHealthChecksValue, "IncludeGatewayChecks"); } _includeGatewayHealthChecks = sectionExists ? section.Get <bool>() : DefaultIncludeGatewayHealthChecksValue; _processingNotificationsCollector = processingNotificationsCollector; }
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; }
public override IWriterFactory GetWritter(string type) { IWriterFactory abstractWritter = null; switch (type) { case "A": abstractWritter = new WritterA(); break; case "B": abstractWritter = new WritterB(); break; } return(abstractWritter); }
public void Configure(IWriterFactory writerFactory, IConfiguration pluginConfig, IProcessingNotificationsCollector processingNotificationsCollector, ILoggerFactory loggerFactory) { var section = pluginConfig?.GetSection("MaxQueryLength"); var sectionExists = section != null && section.Exists(); var parsedMaxQueryLength = 0; var parsedSuccessfully = sectionExists && int.TryParse(section.Value, out parsedMaxQueryLength); if (!parsedSuccessfully) { var logger = loggerFactory.CreateLogger <VizqlDesktopPlugin>(); logger.LogWarning("{pluginName} config was missing from Plugins Configuration or contained incorrect value. Using default value of {defaultValue} for {missingParameterName} parameter", nameof(VizqlDesktopPlugin), DefaultMaxQueryLength, "MaxQueryLength"); } var maxQueryLength = parsedSuccessfully ? parsedMaxQueryLength : DefaultMaxQueryLength; _eventProcessor = new VizqlDesktopEventProcessor(writerFactory, maxQueryLength); _processingNotificationsCollector = processingNotificationsCollector; }
public void Configure(IWriterFactory writerFactory, IConfiguration pluginConfig, IProcessingNotificationsCollector processingNotificationsCollector, ILoggerFactory loggerFactory) { _eventWriter = writerFactory.GetWriter <ServerTelemetryEvent>(EventsDsi); _metricWriter = writerFactory.GetWriter <ServerTelemetryMetric>(MetricsDsi); _processingNotificationsCollector = processingNotificationsCollector; }
private async Task <RunSummary> ProcessLog(IWriterFactory customWriterFactory) { _logger.LogInformation("Starting to process Log set {logSetPath}", _config.LogSetLocation); var totalElapsedTimer = Stopwatch.StartNew(); if (_config.OutputDirMaxResultsToKeep != null) { OutputDirTrimmer.TrimOldResults(_config.OutputDir, _config.OutputDirMaxResultsToKeep.Value, _loggerFactory.CreateLogger(nameof(OutputDirTrimmer))); } var runId = GetRunId(_config.ForceRunId); var fileCheckResult = TableauLogsExtractor.FileCanBeOpened(_config.LogSetLocation, _logger); if (!fileCheckResult.FileCanBeOpened) { var error = $"Path `{_config.LogSetLocation}` does not exist or LogShark cannot open it. Make sure `LogSetLocation` parameter points to the valid zip files with Tableau logs or unzipped copy of it. Exception message was: {fileCheckResult.ErrorMessage ?? "(null)"}"; _logger.LogInformation(error); return(RunSummary.FailedRunSummary(runId, error, ExitReason.BadLogSet, _processingNotificationsCollector, totalElapsedTimer.Elapsed)); } IWriterFactory writerFactory; try { writerFactory = customWriterFactory ?? GetWriterFactory(runId); } catch (Exception ex) { if (ex.Message.Contains("Context: 0x86a93465")) { _logger.LogError("Microsoft Visual C++ Runtime required to run LogShark. Please download and install it from 'https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads' and rerun application"); } var error = $"Exception occurred while initializing writer factory for writer '{_config.RequestedWriter ?? "null"}'. Exception message: {ex.Message}"; _logger.LogError(ex, error); return(RunSummary.FailedRunSummary(runId, error, ExitReason.UnclassifiedError, _processingNotificationsCollector, totalElapsedTimer.Elapsed)); } using (_logger.BeginScope(runId)) using (writerFactory) { ProcessLogSetResult logSetProcessingResults; using (var pluginManager = new PluginManager(_config, _loggerFactory)) { var logTypeDetails = new LogTypeDetails(_processingNotificationsCollector); var tableauLogsReader = new TableauLogsProcessor(_config, pluginManager, writerFactory, logTypeDetails, _processingNotificationsCollector, _loggerFactory); logSetProcessingResults = tableauLogsReader.ProcessLogSet(); } if (logSetProcessingResults.IsSuccessful) { var pluginsReceivedAnyDataForLogs = string.Join(", ", logSetProcessingResults.PluginsReceivedAnyData.OrderBy(name => name)); _logger.LogInformation("Plugins that had any data sent to them: {pluginsReceivedAnyData}", pluginsReceivedAnyDataForLogs); } else { _logger.LogDebug($"Log processing failed with error: {logSetProcessingResults.ErrorMessage}"); return(RunSummary.FailedRunSummary(runId, logSetProcessingResults.ErrorMessage, logSetProcessingResults.ExitReason, _processingNotificationsCollector, totalElapsedTimer.Elapsed, logSetProcessingResults)); } var workbookGenerator = writerFactory.GetWorkbookGenerator(); var generatorResults = workbookGenerator.CompleteWorkbooksWithResults(logSetProcessingResults.PluginsExecutionResults.GetWritersStatistics()); if (!GeneratedAnyWorkbooks(generatorResults.CompletedWorkbooks) && workbookGenerator.GeneratesWorkbooks) { const string errorMessage = "No workbooks were generated successfully."; _logger.LogError(errorMessage); return(RunSummary.FailedRunSummary(runId, errorMessage, ExitReason.UnclassifiedError, _processingNotificationsCollector, totalElapsedTimer.Elapsed, logSetProcessingResults, generatorResults)); } PublisherResults publisherResults = null; if (_config.PublishWorkbooks) { var projectDescription = GetProjectDescription(); var workbookPublisher = writerFactory.GetWorkbookPublisher(_publisherSettings); publisherResults = await workbookPublisher.PublishWorkbooks( runId, projectDescription, generatorResults.CompletedWorkbooks, logSetProcessingResults.PluginsExecutionResults.GetSortedTagsFromAllPlugins()); if (!publisherResults.CreatedProjectSuccessfully) { var errorMessage = $"Workbook publisher failed to connect to the Tableau Server or create project for the results. Exception message: {publisherResults.ExceptionCreatingProject.Message}"; _logger.LogError(errorMessage); return(RunSummary.FailedRunSummary(runId, errorMessage, ExitReason.UnclassifiedError, _processingNotificationsCollector, totalElapsedTimer.Elapsed, logSetProcessingResults, generatorResults, publisherResults)); } } _logger.LogInformation("Done processing {logSetPath}. Whole run took {fullRunElapsedTime}", _config.LogSetLocation, totalElapsedTimer.Elapsed); return(RunSummary.SuccessfulRunSummary(runId, totalElapsedTimer.Elapsed, _processingNotificationsCollector, logSetProcessingResults, generatorResults, publisherResults)); } }
public void Configure(IWriterFactory writerFactory, IConfiguration pluginConfig, IProcessingNotificationsCollector processingNotificationsCollector, ILoggerFactory loggerFactory) { _hyperErrorWriter = writerFactory.GetWriter <HyperError>(HyperErrorOutputInfo); _hyperQueryWriter = writerFactory.GetWriter <HyperEvent>(HyperQueryOutputInfo); _processingNotificationsCollector = processingNotificationsCollector; }
public void Configure(IWriterFactory writerFactory, IConfiguration pluginConfig, IProcessingNotificationsCollector processingNotificationsCollector, ILoggerFactory loggerFactory) { _backgrounderEventPersister = new BackgrounderEventPersister(writerFactory); _backgrounderEventParser = new BackgrounderEventParser(_backgrounderEventPersister, processingNotificationsCollector); _processingNotificationsCollector = processingNotificationsCollector; }
public CompressDataDispatcher(IReaderFactory readerFactory, IWriterFactory writerFactory, int readThreadsCount, int writeThreadsCount) : base(readerFactory, writerFactory, readThreadsCount, writeThreadsCount) { }
public void Configure(IWriterFactory writerFactory, IConfiguration pluginConfig, IProcessingNotificationsCollector processingNotificationsCollector, ILoggerFactory loggerFactory) { _eventsProcessor = new ResourceManagerEventsProcessor(writerFactory, processingNotificationsCollector); _processingNotificationsCollector = processingNotificationsCollector; }
public void Configure(IWriterFactory writerFactory, IConfiguration pluginConfig, IProcessingNotificationsCollector processingNotificationsCollector, ILoggerFactory loggerFactory) { throw new NotImplementedException(); }
public void Configure(IWriterFactory writerFactory, IConfiguration pluginConfig, IProcessingNotificationsCollector processingNotificationsCollector, ILoggerFactory loggerFactory) { _writer = writerFactory.GetWriter <NetstatActiveConnection>(OutputInfo); _processingNotificationsCollector = processingNotificationsCollector; }
public WriteManager(IWriterFactory factory) { _writer = factory.GetWriter(); }
public void Configure(IWriterFactory writerFactory, IConfiguration pluginConfig, IProcessingNotificationsCollector processingNotificationsCollector, ILoggerFactory loggerFactory) { _writer = writerFactory.GetWriter <PostgresEvent>(OutputInfo); _processingNotificationsCollector = processingNotificationsCollector; }
public Worker(IClient client, IWriterFactory writerFactory) { _client = client; _writerFactory = writerFactory; }
public DecompressDataDispatcher(IReaderFactory readerFactory, IWriterFactory writerFactory, int readThreadsCount, int writeThreadsCount) : base(readerFactory, writerFactory, readThreadsCount, writeThreadsCount) { _locker = new object(); }