public AzureBlobStorageLog(AzureBlobStorageLogConfiguration configuration, OperationContext context, IClock clock, IAbsFileSystem fileSystem, ITelemetryFieldsProvider telemetryFieldsProvider, AzureBlobStorageCredentials credentials) { _configuration = configuration; _context = context; _clock = clock; _fileSystem = fileSystem; _telemetryFieldsProvider = telemetryFieldsProvider; var cloudBlobClient = credentials.CreateCloudBlobClient(); _container = cloudBlobClient.GetContainerReference(configuration.ContainerName); _writeQueue = NagleQueue <string> .CreateUnstarted( configuration.WriteMaxDegreeOfParallelism, configuration.WriteMaxInterval, configuration.WriteMaxBatchSize); _uploadQueue = NagleQueue <LogFile> .CreateUnstarted( configuration.UploadMaxDegreeOfParallelism, configuration.UploadMaxInterval, 1); // TODO: this component doesn't have a quota, which could potentially be useful. If Azure Blob Storage // becomes unavailable for an extended period of time, we might cause disk space issues. }
public AzureBlobStorageLog( AzureBlobStorageLogConfiguration configuration, OperationContext context, IClock clock, IAbsFileSystem fileSystem, ITelemetryFieldsProvider telemetryFieldsProvider, CloudBlobContainer container, IReadOnlyDictionary <string, string> additionalBlobMetadata) { _configuration = configuration; _context = context; _clock = clock; _fileSystem = fileSystem; _telemetryFieldsProvider = telemetryFieldsProvider; _container = container; _additionalBlobMetadata = additionalBlobMetadata; _writeQueue = NagleQueue <string> .CreateUnstarted( configuration.WriteMaxDegreeOfParallelism, configuration.WriteMaxInterval, configuration.WriteMaxBatchSize); _uploadQueue = NagleQueue <LogFile> .CreateUnstarted( configuration.UploadMaxDegreeOfParallelism, configuration.UploadMaxInterval, 1); // TODO: this component doesn't have a quota, which could potentially be useful. If Azure Blob Storage // becomes unavailable for an extended period of time, we might cause disk space issues. }
public AzureBlobStorageLog( AzureBlobStorageLogConfiguration configuration, OperationContext context, IClock clock, IAbsFileSystem fileSystem, ITelemetryFieldsProvider telemetryFieldsProvider, AzureBlobStorageCredentials credentials, IReadOnlyDictionary <string, string> additionalBlobMetadata) : this(configuration, context, clock, fileSystem, telemetryFieldsProvider, credentials.CreateCloudBlobClient().GetContainerReference(configuration.ContainerName), additionalBlobMetadata) { }