/// <summary> /// Initializes a new instance of the <see cref="KinesisTapServiceManager"/> class, using custom parameters. /// </summary> /// <param name="typeLoader">An implementation of the <see cref="ITypeLoader"/> interface.</param> /// <param name="parameterStore">An implementation of the <see cref="IParameterStore"/> interface.</param> /// <param name="logger">An implementation of the <see cref="ILogger"/> interface.</param> public KinesisTapServiceManager(ITypeLoader typeLoader, IParameterStore parameterStore, ILogger logger) : this() { this.typeLoader = typeLoader; this.parameterStore = parameterStore; this.logger = logger; }
public LogManager(ITypeLoader typeLoader, IParameterStore parameterStore) { _typeLoader = typeLoader; _parameterStore = parameterStore; _loggerFactory = CreateLoggerFactory(); try { ConfigurationBuilder configurationBuilder = new ConfigurationBuilder(); _config = configurationBuilder .SetBasePath(Utility.GetKinesisTapConfigPath()) .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) .Build(); } catch (Exception ex) { var logger = _loggerFactory.CreateLogger <LogManager>(); logger.LogError($"Unable to load apsettings.json. {ex.ToMinimized()}"); throw; } ChangeToken.OnChange(() => _config.GetReloadToken(), OnConfigChanged); IServiceCollection serviceCollection = new ServiceCollection(); _serviceProvider = ConfigureServices(serviceCollection, _loggerFactory); _updateTimer = new Timer(CheckUpdate, null, Timeout.Infinite, Timeout.Infinite); _configTimer = new Timer(CheckConfig, null, Timeout.Infinite, Timeout.Infinite); }
public TelemetricsClient(IAmazonCognitoIdentity cognitoIdentityClient, IParameterStore parameterStore) { _cognitoIdentityClient = cognitoIdentityClient; _parameterStore = parameterStore; _clientId = parameterStore.GetParameter(CLIENT_ID); _httpClient = new HttpClient(); }
internal SessionManager(ISessionFactory sessionFactory, ITypeLoader typeLoader, IParameterStore parameterStore, INetworkStatusProvider defaultNetworkProvider, ILoggerFactory loggerFactory) { StackTraceMinimizerExceptionExtensions.DoCompressStackTrace = true; _typeLoader = typeLoader; _parameterStore = parameterStore; _sessionFactory = sessionFactory; _loggerFactory = loggerFactory; _defaultNetworkProvider = defaultNetworkProvider; _logger = _loggerFactory.CreateLogger <SessionManager>(); _configIdMap = new PersistentConfigFileIdMap(_parameterStore); Directory.CreateDirectory(ExtraConfigDirPath); _logger.LogInformation($"Default configuration file is '{DefaultConfigPath}'"); _logger.LogInformation($"Extra configuration directory is '{ExtraConfigDirPath}'"); _defaultConfigWatcher = new FileSystemWatcher(Path.GetDirectoryName(DefaultConfigPath)) { Filter = Path.GetFileName(DefaultConfigPath) }; _extraconfigWatcher = new FileSystemWatcher(ExtraConfigDirPath) { Filter = "*.json" }; HookFileWatcherEvents(_defaultConfigWatcher); HookFileWatcherEvents(_extraconfigWatcher); instance = this; }
/// <summary> /// Store some KinesisTap conventional values to the parameter store. /// </summary> /// <param name="store">The <see cref="IParameterStore"/> instance.</param> /// <remarks> /// This is used to store conventional values to the parameter store when KT starts up. /// Any value set from the previous run of KT is overwritten. /// Doing this provides different KT classes (SessionManager, LogManager, PersistentConfigFileIdMap etc.) a unified way to resolve values, /// and allows easier testing as well. /// </remarks> public static void StoreConventionalValues(this IParameterStore store) { store.SetParameter(ConfigDirPathKey, Path.Combine(Utility.GetKinesisTapConfigPath())); store.SetParameter(NLogConfigPathKey, Path.Combine(Utility.GetNLogConfigDirectory(), NLogConfigFileName)); }
/// <summary> /// Get the current KinesisTap build number stored in the parameter store. /// </summary> public static int GetStoredBuildNumber(this IParameterStore store) { var storedValue = store.GetParameter(BuildNumberKey); return(int.TryParse(storedValue, out var buildNumber) ? buildNumber : 0); }
public PluginContext(IConfiguration config, ILogger logger, IMetrics metrics, IDictionary <string, ICredentialProvider> credentialProviders, IParameterStore parameterStore) { _config = config; _logger = logger; _metrics = metrics; _credentialProviders = credentialProviders; _parameterStore = parameterStore; }
public MeasChunkCreatorTest() { _parameterStoreDummy = Substitute.For <IParameterStore>(); _parameterStoreDummy.ChunkSize = 20; _parameterStoreDummy.ChunkTimeInterval = 1; _parameterStoreDummy.MessageHeaderControlIdStr = "AAC0"; _parameterStoreDummy.MsgTail = "AB"; }
/// <summary> /// Initializes a new instance of the <see cref="KinesisTapServiceManager"/> class, using custom parameters. /// </summary> /// <param name="typeLoader">An implementation of the <see cref="ITypeLoader"/> interface.</param> /// <param name="parameterStore">An implementation of the <see cref="IParameterStore"/> interface.</param> /// <param name="logger">An implementation of the <see cref="ILogger"/> interface.</param> public KinesisTapServiceManager(ITypeLoader typeLoader, IParameterStore parameterStore, ILogger logger, INetworkStatusProvider networkStatusProvider) { this.typeLoader = typeLoader; this.parameterStore = parameterStore; this.logger = logger; this.networkStatusProvider = networkStatusProvider; this.loggerFactory = CreateSessionLoggerFactory(parameterStore); PluginContext.ServiceLogger = logger; }
private static ILoggerFactory CreateSessionLoggerFactory(IParameterStore parameterStore) { ILoggerFactory loggerFactory = new LoggerFactory(); loggerFactory.AddNLog(); #if DEBUG loggerFactory.AddConsole(LogLevel.Debug); #endif return(loggerFactory); }
public MeasDataChunksProvider ( IMeasChunkCreator measChunkCreator, IParameterStore parameterStore, IMySerialReader mySerialReader ) { _measChunkCreator = measChunkCreator; _parameterStore = parameterStore; _mySerialReader = mySerialReader; }
public Worker(ILoggerFactory loggerFactory, IParameterStore parameterStore, ISessionManager sessionManager, INetworkStatusProvider defaultNetworkStatusProvider, IHostApplicationLifetime lifetime) { HostApplicationLifeTime = lifetime; _logger = loggerFactory.CreateLogger(Utility.ProductCodeName); _parameterStore = parameterStore; _sessionManager = sessionManager; _defaultNetworkStatusProvider = defaultNetworkStatusProvider; }
/// <summary> /// Store some KinesisTap conventional values to the parameter store. /// </summary> /// <param name="store">The <see cref="IParameterStore"/> instance.</param> /// <remarks> /// This is used to store conventional values to the parameter store when KT starts up. /// Any value set from the previous run of KT is overwritten. /// Doing this provides different KT classes (SessionManager, LogManager, PersistentConfigFileIdMap etc.) a unified way to resolve values, /// and allows easier testing as well. /// </remarks> public static void StoreConventionalValues(this IParameterStore store) { store.SetParameter(NLogConfigPathKey, Path.Combine(Utility.GetKinesisTapConfigPath(), "NLog.xml")); store.SetParameter(DefaultConfigurationPathKey, Path.Combine(Utility.GetKinesisTapConfigPath(), DefaultConfigFileName)); store.SetParameter(ExtraConfigurationDirectoryPathKey, Utility.GetKinesisTapExtraConfigPath()); store.SetParameter(BuildNumberKey, ProgramInfo.GetBuildNumber().ToString()); }
public PluginContext( IConfiguration config, ILogger logger, IMetrics metrics, IBookmarkManager bookmarkManager, IDictionary <string, ICredentialProvider> credentialProviders, IParameterStore parameterStore) { Configuration = config; Logger = logger; Metrics = metrics; BookmarkManager = bookmarkManager; _credentialProviders = credentialProviders; ParameterStore = parameterStore; }
public LogManager(ITypeLoader typeLoader, IParameterStore parameterStore) { _typeLoader = typeLoader; _parameterStore = parameterStore; ConfigurationBuilder configurationBuilder = new ConfigurationBuilder(); _config = configurationBuilder .SetBasePath(Utility.GetKinesisTapConfigPath()) .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) .Build(); ChangeToken.OnChange(() => _config.GetReloadToken(), OnConfigChanged); IServiceCollection serviceCollection = new ServiceCollection(); _serviceProvider = ConfigureServices(serviceCollection, _config); _updateTimer = new Timer(CheckUpdate, null, Timeout.Infinite, Timeout.Infinite); _configTimer = new Timer(CheckConfig, null, Timeout.Infinite, Timeout.Infinite); }
/// <summary> /// Create an instance of <see cref="IHostBuilder"/> /// </summary> public static IHostBuilder Create(string[] args) { // set 'ComputerName' environment variable if not on Windows if (!OperatingSystem.IsWindows()) { SetComputerNameEnvironmentVariable(); } var builder = new HostBuilder() .ConfigureServices((hostContext, services) => { services.AddSingleton <IAppDataFileProvider>(sp => new ProtectedAppDataFileProvider(Utility.GetKinesisTapProgramDataPath())); services.AddSingleton <ITypeLoader>(_ => new PluginLoader()); services.AddSingleton(_ => { IParameterStore store = OperatingSystem.IsWindows() ? new RegistryParameterStore() : new SimpleParameterStore(Path.Combine(Utility.GetProfileDirectory(), "config")); store.StoreConventionalValues(); return(store); }); services.AddSingleton <INetworkStatusProvider>(services => new DefaultNetworkStatusProvider(services.GetService <ILogger <DefaultNetworkStatusProvider> >())); services.AddSingleton <ISessionManager, SessionManager>(); services.AddSingleton(_ => new FactoryCatalogs { SourceFactoryCatalog = new FactoryCatalog <ISource>(), SinkFactoryCatalog = new FactoryCatalog <IEventSink>(), CredentialProviderFactoryCatalog = new FactoryCatalog <ICredentialProvider>(), GenericPluginFactoryCatalog = new FactoryCatalog <IGenericPlugin>(), PipeFactoryCatalog = new FactoryCatalog <IPipe>(), RecordParserCatalog = new FactoryCatalog <IRecordParser>() }); services.AddSingleton <IMetrics>(services => new KinesisTapMetricsSource("_KinesisTapMetricsSource", services.GetService <ILogger <IMetrics> >())); services.AddSingleton <ISessionFactory, DefaultSessionFactory>(); services.AddHostedService <Worker>(); }); return(builder); }
public LogManager(int id, IConfiguration config, DateTime startTime, ITypeLoader typeLoader, IParameterStore parameterStore, ILoggerFactory loggerFactory, INetworkStatusProvider defaultNetworkStatusProvider, IConfigurationSection defaultCredentialsSection = null, bool validated = false) { Id = id; StartTime = startTime; _config = config; _loggerFactory = loggerFactory; _typeLoader = typeLoader; _parameterStore = parameterStore; _networkStatus = new NetworkStatus(defaultNetworkStatusProvider); _defaultCredentialsSection = defaultCredentialsSection; _descriptiveName = string.IsNullOrWhiteSpace(config[ConfigConstants.CONFIG_DESCRIPTIVE_NAME]) ? string.Empty : _config[ConfigConstants.CONFIG_DESCRIPTIVE_NAME]; _logger = _loggerFactory.CreateLogger($"session:{_descriptiveName}"); _validated = validated; _logger.LogDebug("Configuration is validated: {0}", _validated); }
public Session( string name, IConfiguration config, IMetrics metrics, IServiceProvider services, bool validated) { Name = name; StartTime = DateTime.Now; IsValidated = validated; if (IsDefault && validated) { throw new ArgumentException("The default session cannot be validated"); } _config = config; _metrics = metrics; _services = services; _loggerFactory = services.GetService <ILoggerFactory>(); _parameterStore = services.GetService <IParameterStore>(); _networkStatus = new NetworkStatus(services.GetService <INetworkStatusProvider>()); _logger = _loggerFactory.CreateLogger(DisplayName); _logger.LogDebug("Configuration is validated: {0}", IsValidated); _bookmarkManager = new FileBookmarkManager(Utility.GetBookmarkDirectory(name), _loggerFactory.CreateLogger($"{DisplayName}:{nameof(IBookmarkManager)}"), services.GetService <IAppDataFileProvider>()); var factoryCatalogs = services.GetService <FactoryCatalogs>(); _sourceFactoryCatalog = factoryCatalogs.SourceFactoryCatalog; _sinkFactoryCatalog = factoryCatalogs.SinkFactoryCatalog; _credentialProviderFactoryCatalog = factoryCatalogs.CredentialProviderFactoryCatalog; _genericPluginFactoryCatalog = factoryCatalogs.GenericPluginFactoryCatalog; _pipeFactoryCatalog = factoryCatalogs.PipeFactoryCatalog; _recordParserCatalog = factoryCatalogs.RecordParserCatalog; }
public StreamHelper(IParameterStore parameterStore) { _parameterStore = parameterStore; }
public MeasChunkCreator(IParameterStore parameterStore) { _parameterStore = parameterStore; }
/// <summary> /// Create a new PersistentConfigFileIdMap /// </summary> /// <param name="filePath">Path to the file that backs the map</param> public PersistentConfigFileIdMap(IParameterStore store) { _store = store; _memoryMap = LoadMapping(); }
public TelemetricsSinkConnector(IPlugInContext context) : base(context) { _parameterStore = context.ParameterStore; _clientId = _parameterStore.GetParameter(ClientIdParameterName); }
public MySerialReader(IParameterStore parameterStore) { _parameterStore = parameterStore; }
public static string GetDefaultConfigFilePath(this IParameterStore store) => Path.Combine(store.GetParameter(ConfigDirPathKey), DefaultConfigFileName);
public StreamHelperUnitTests() { _parameterStoreDummy = Substitute.For <IParameterStore>(); }
public static string GetConfigDirPath(this IParameterStore store) => store.GetParameter(ConfigDirPathKey);
/// <inheritdoc/> public ISession Create(int id, IConfiguration config, DateTime startTime, ITypeLoader typeLoader, IParameterStore parameterStore, ILoggerFactory loggerFactory, INetworkStatusProvider networkStatusProvider, IConfigurationSection defaultCredentialsSection, bool validated) => new LogManager(id, config, startTime, typeLoader, parameterStore, loggerFactory, networkStatusProvider, defaultCredentialsSection, validated);
public static string GetExtraConfigDirPath(this IParameterStore store) => Path.Combine(store.GetParameter(ConfigDirPathKey), Utility.ExtraConfigDirectoryName);
public ConfigController(IParameterStore parameterStore) { _parameterStore = parameterStore; }