Exemple #1
0
        static async Task Main(string[] args)
        {
            int               threads           = AppConfig.GetOptionalSetting <int>("Threads") ?? 32;
            ILogger           logger            = AppConfig.CreateLogger("Storage");
            string            workloadType      = AppConfig.GetSetting("Workload");
            CancellationToken cancellationToken = AppConfig.GetCancellationToken();

            string connectionString = AppConfig.GetSetting("StorageConnectionString");

            var storage = CloudStorageAccount.Parse(connectionString);
            var client  = storage.CreateCloudBlobClient();

            var container = client.GetContainerReference("performance");
            await container.CreateIfNotExistsAsync(cancellationToken).ConfigureAwait(false);

            if (workloadType == "latency")
            {
                var workload = new LatencyWorkload(logger, "Storage");
                await workload.InvokeAsync(threads, (value) => WriteAsync(container, value, cancellationToken), cancellationToken).ConfigureAwait(false);
            }
            if (workloadType == "throughput")
            {
                var workload = new ThroughputWorkload(logger, "Storage");
                await workload.InvokeAsync(threads, () => WriteAsync(container, cancellationToken), cancellationToken).ConfigureAwait(false);
            }
        }
Exemple #2
0
        static async Task Main(string[] args)
        {
            int               threads           = AppConfig.GetOptionalSetting <int>("Threads") ?? 8;
            ILogger           logger            = AppConfig.CreateLogger("CosmosDB");
            string            workloadType      = AppConfig.GetSetting("Workload");
            CancellationToken cancellationToken = AppConfig.GetCancellationToken();

            Uri    endpoint     = new Uri(AppConfig.GetSetting("CosmosDbEndpoint"));
            string key          = AppConfig.GetSetting("CosmosDbKey");
            string databaseId   = AppConfig.GetSetting("CosmosDbDatabaseId");
            string collectionId = AppConfig.GetSetting("CosmosDbCollectionId");

            var client = new DocumentClient(endpoint, key, new ConnectionPolicy
            {
                ConnectionMode     = ConnectionMode.Direct,
                ConnectionProtocol = Protocol.Tcp,
            });

            var collectionUri = UriFactory.CreateDocumentCollectionUri(databaseId, collectionId);
            var collection    = await client.ReadDocumentCollectionAsync(collectionUri).ConfigureAwait(false);

            if (workloadType == "latency")
            {
                var workload = new LatencyWorkload(logger, "CosmosDB");
                await workload.InvokeAsync(threads, (value) => WriteAsync(client, collection, value, cancellationToken), cancellationToken).ConfigureAwait(false);
            }
            if (workloadType == "throughput")
            {
                var workload = new ThroughputWorkload(logger, "CosmosDB", IsThrottlingException);
                await workload.InvokeAsync(threads, () => WriteAsync(client, collection, cancellationToken), cancellationToken).ConfigureAwait(false);
            }
        }
Exemple #3
0
        static async Task Main(string[] args)
        {
            int               threads           = AppConfig.GetOptionalSetting <int>("Threads") ?? 32;
            ILogger           logger            = AppConfig.CreateLogger("SQL");
            string            workloadType      = AppConfig.GetSetting("Workload");
            CancellationToken cancellationToken = AppConfig.GetCancellationToken();

            string connectionString = AppConfig.GetSetting("SqlConnectionString");

            await CreateDatabaseAsync(connectionString).ConfigureAwait(false);

            if (workloadType == "latency")
            {
                var workload = new LatencyWorkload(logger, "SQL");
                await workload.InvokeAsync(threads, (value) => WriteAsync(connectionString, value, cancellationToken), cancellationToken).ConfigureAwait(false);
            }
            if (workloadType == "throughput")
            {
                var workload = new ThroughputWorkload(logger, "SQL");
                await workload.InvokeAsync(threads, () => WriteAsync(connectionString, cancellationToken), cancellationToken).ConfigureAwait(false);
            }
        }
        static async Task Main(string[] args)
        {
            int               threads           = AppConfig.GetOptionalSetting <int>("Threads") ?? 32;
            ILogger           logger            = AppConfig.CreateLogger("EventHub");
            string            workloadType      = AppConfig.GetSetting("Workload");
            CancellationToken cancellationToken = AppConfig.GetCancellationToken();

            string connectionString = AppConfig.GetSetting("EventHubConnectionString");

            var client = EventHubClient.CreateFromConnectionString(connectionString);

            if (workloadType == "latency")
            {
                var workload = new LatencyWorkload(logger, "EventHub");
                await workload.InvokeAsync(threads, (value) => WriteAsync(client, value, cancellationToken), cancellationToken).ConfigureAwait(false);
            }
            if (workloadType == "throughput")
            {
                var workload = new ThroughputWorkload(logger, "EventHub", IsThrottlingException);
                await workload.InvokeAsync(threads, () => WriteAsync(client, cancellationToken), cancellationToken).ConfigureAwait(false);
            }
        }
        static async Task Main(string[] args)
        {
            int               threads           = AppConfig.GetOptionalSetting <int>("Threads") ?? 32;
            ILogger           logger            = AppConfig.CreateLogger("ServiceBus");
            string            workloadType      = AppConfig.GetSetting("Workload");
            CancellationToken cancellationToken = AppConfig.GetCancellationToken();

            string connectionString = AppConfig.GetSetting("ServiceBusConnectionString");

            var client = new MessageSender(new ServiceBusConnectionStringBuilder(connectionString), RetryPolicy.NoRetry);

            if (workloadType == "latency")
            {
                var workload = new LatencyWorkload(logger, "ServiceBus");
                await workload.InvokeAsync(threads, (value) => WriteAsync(client, value, cancellationToken), cancellationToken).ConfigureAwait(false);
            }
            if (workloadType == "throughput")
            {
                var workload = new ThroughputWorkload(logger, "ServiceBus", IsThrottlingException);
                await workload.InvokeAsync(threads, () => WriteAsync(client, cancellationToken), cancellationToken).ConfigureAwait(false);
            }
        }