Beispiel #1
0
        // This method gets called by the runtime. Use this method to configure Orleans.
        public static void ConfigureOrleans(HostBuilderContext ctx, ISiloBuilder builder)
        {
            var configuration      = ctx.Configuration;
            var topicConfiguration = new TopicCreationConfig
            {
                AutoCreate = true,
                Partitions = 8
            };

            builder.ConfigureCluster(configuration)
            .UseDashboard(x => x.HostSelf = false)
            .ConfigureEndpoints()
            .AddAssemblies(typeof(UserRegistrationStatusGrain))
            .AddKafka(Constants.StreamProviderName)
            .WithOptions(options =>
            {
                options.FromConfiguration(ctx.Configuration);
                options.AddTopic(nameof(UserVerificationEvent), topicConfiguration);
                options.AddTopic(nameof(UserRegisteredEvent), topicConfiguration);
            })
            .AddJson()
            .Build()
            .AddMemoryGrainStorage("PubSubStore")
            .AddMemoryGrainStorageAsDefault()
            .UseMembershipProvider(configuration, x =>
            {
                x.ConfigureConsulClustering(configuration);
                x.ConfigureKubernetesClustering(configuration);
            })
            .UseLinuxEnvironmentStatistics()
            .AddPrometheusTelemetry();
        }
Beispiel #2
0
        // This method gets called by the runtime. Use this method to configure Orleans.
        public static void ConfigureOrleans(HostBuilderContext ctx, ISiloBuilder builder)
        {
            var configuration      = ctx.Configuration;
            var topicConfiguration = new TopicCreationConfig
            {
                AutoCreate = true,
                Partitions = 8
            };

            builder.ConfigureCluster(configuration)
            .UseDashboard(x => x.HostSelf = false)
            .ConfigureEndpoints()
            .AddAssemblies(typeof(HelloWorldGrain))
            .AddKafka(Constants.StreamProviderName)
            .WithOptions(options =>
            {
                options.FromConfiguration(ctx.Configuration);
                // Add Topics
                // options.AddTopic(nameof(Event), topicConfiguration);
            })
            .AddJson()
            .Build()
            .AddMemoryGrainStorage("PubSubStore")
            .AddMemoryGrainStorageAsDefault()
            .UseMembershipProvider(configuration, x =>
            {
                x.ConfigureConsulClustering(configuration);
                x.ConfigureKubernetesClustering(configuration);
            });
        }
 private static void ConfigureServices(Microsoft.Extensions.Hosting.HostBuilderContext context, IServiceCollection services, string instrumentationKey)
 {
     services.ConfigureFormatter <ApplicationInsightsTelemetryConsumerOptions>();
     services.Configure <TelemetryOptions>(options => options.AddConsumer <AITelemetryConsumer>());
     if (!string.IsNullOrWhiteSpace(instrumentationKey))
     {
         services.Configure <ApplicationInsightsTelemetryConsumerOptions>(options => options.InstrumentationKey = instrumentationKey);
     }
 }
Beispiel #4
0
        public IServiceProvider BuildServiceProvider(HostBuilderContext context)
        {
            var services = new ServiceCollection();

            foreach (var configure in _configurators)
            {
                configure(context, services);
            }

            return(services.BuildServiceProvider());
        }
        // This method gets called by the runtime. Use this method to configure Orleans.
        public static void ConfigureOrleans(HostBuilderContext ctx, ISiloBuilder builder)
        {
            var serviceId = new Randomizer().String2(8);
            var clusterId = new Randomizer().String2(8);
            var options   = ctx.Configuration.GetSection(MetricsSilo).Get <EndpointOptions>() ?? new EndpointOptions();

            builder.ConfigureCluster(ctx.Configuration)
            .ConfigureEndpoints(ctx.Configuration.GetSection(MetricsSilo))
            .UseLocalhostClustering(options.SiloPort, options.GatewayPort, null, serviceId, clusterId)
            .AddPrometheusTelemetry(ctx.Configuration);
        }
Beispiel #6
0
        // This method gets called by the runtime. Use this method to configure Orleans.
        public static void ConfigureOrleans(HostBuilderContext ctx, ISiloBuilder builder)
        {
            var serviceId = new Randomizer().String2(8);
            var clusterId = new Randomizer().String2(8);
            var options   = ctx.Configuration.GetSection("Orleans:HealthCheckCoHostedSilo").Get <EndpointOptions>() ?? new EndpointOptions();

            builder.ConfigureCluster(ctx.Configuration)
            .ConfigureEndpoints(ctx.Configuration.GetSection("Orleans:HealthCheckCoHostedSilo"))
            .UseLocalhostClustering(options.SiloPort, options.GatewayPort, null, serviceId, clusterId)
            .AddHealthCheckDependencies();
        }
        public ServiceHostBuilder()
        {
            this.m_properties = new System.Collections.Generic.Dictionary <object, object>();
            this.m_context    = new Microsoft.Extensions.Hosting.HostBuilderContext(this.m_properties);
            this.m_context.HostingEnvironment = new HostingEnvironment();

            this.m_hostServices         = new Microsoft.Extensions.DependencyInjection.ServiceCollection();
            this.m_configurationBuilder = new Microsoft.Extensions.Configuration.ConfigurationBuilder();

            this.m_hostBuilder = new Microsoft.Extensions.Hosting.HostBuilder();
        }
Beispiel #8
0
        // This method gets called by the runtime. Use this method to configure Orleans.
        public static void ConfigureOrleans(HostBuilderContext ctx, ISiloBuilder builder)
        {
            builder.ConfigureCluster(ctx.Configuration)
            .ConfigureDashboard(ctx.Configuration)
            .ConfigureEndpoints(ctx.Configuration)
            .UseLocalhostClustering()
            .AddMemoryGrainStorageAsDefault()
            .AddAssemblies(typeof(ProducerGrain))
            .AddSimpleMessageStreamProvider(Constants.SMSProviderName)
            .AddMemoryGrainStorage(Constants.StreamsMemoryStorageName)
            .AddMemoryGrainStorage(StorageProvidersConstants.InMemory)
            .UseMongoDBClient(GetConnectionString(ctx.Configuration, StorageProvidersConstants.MongoDb))
            .AddMongoDBGrainStorage(StorageProvidersConstants.MongoDb, options =>
            {
                options.DatabaseName            = StorageProvidersConstants.DatabaseName;
                options.CreateShardKeyForCosmos = true;

                options.ConfigureJsonSerializerSettings = settings =>
                {
                    settings.NullValueHandling      = NullValueHandling.Include;
                    settings.ObjectCreationHandling = ObjectCreationHandling.Replace;
                    settings.DefaultValueHandling   = DefaultValueHandling.Populate;
                };
            })
            .AddDynamoDBGrainStorage(StorageProvidersConstants.DynamoDb, options =>
            {
                options.UseJson = true;
                options.Service = GetConnectionString(ctx.Configuration, StorageProvidersConstants.DynamoDb);
            })
            .AddNpgsqlGrainStorage(StorageProvidersConstants.Postgres, ctx.Configuration)
            .AddKafka(Constants.KafkaProviderName)
            .WithOptions(options =>
            {
                options.FromConfiguration(ctx.Configuration);
                options.ConsumeMode = ConsumeMode.StreamEnd;

                options.AddTopicStream(Constants.MessageNamespace, ctx.Configuration);
            })
            .AddJson()
            .Build()
            .AddRedisGrainStorage(StorageProvidersConstants.Redis)
            .Build(config => config.Configure(opts =>
            {
                opts.Servers = new List <string> {
                    GetConnectionString(ctx.Configuration, StorageProvidersConstants.Redis)
                };
                opts.ClientName = StorageProvidersConstants.Redis;
                opts.KeyPrefix  = "OrleansGrainStorage";
                opts.HumanReadableSerialization = true;
            })
                   );
        }
 private static void ConfigureServices(Microsoft.Extensions.Hosting.HostBuilderContext context, IServiceCollection services, Uri elasticSearchUri, string indexPrefix, string dateFormatter, int bufferWaitSeconds, int bufferSize)
 {
     services.ConfigureFormatter <ElasticsearchTelemetryConsumerOptions>();
     services.Configure <TelemetryOptions>(options => options.AddConsumer <ElasticsearchTelemetryConsumer>());
     services.Configure <ElasticsearchTelemetryConsumerOptions>(options =>
     {
         options.ElasticSearchUri  = elasticSearchUri;
         options.IndexPrefix       = indexPrefix;
         options.DateFormatter     = dateFormatter;
         options.BufferWaitSeconds = bufferWaitSeconds;
         options.BufferSize        = bufferSize;
     });
 }
        public void Build(HostBuilderContext context, IServiceCollection serviceCollection)
        {
            foreach (var configurationDelegate in configureSiloDelegates)
            {
                configurationDelegate(context, this);
            }

            serviceCollection.AddHostedService <SiloHost>();

            this.ConfigureDefaults();
            this.ConfigureApplicationParts(parts => parts.ConfigureDefaults());

            foreach (var configurationDelegate in configureServicesDelegates)
            {
                configurationDelegate(context, serviceCollection);
            }
        }
Beispiel #11
0
        public IServiceProvider BuildServiceProvider(HostBuilderContext context, ISiloBuilder silo)
        {
            var services = new ServiceCollection();

            services.AddSingleton(typeof(IKeyedServiceCollection <,>), typeof(KeyedServiceCollection <,>));

            foreach (var configure in _serviceConfigurators)
            {
                configure(context, services);
            }

            foreach (var configure in _siloConfigurators)
            {
                configure(context, silo);
            }

            return(services.BuildServiceProvider());
        }
 private static void ConfigureServices(Microsoft.Extensions.Hosting.HostBuilderContext context, IServiceCollection services)
 {
     services.Configure <TelemetryOptions>(options => options.AddConsumer <OrleansPerfCounterTelemetryConsumer>());
 }
 protected override void OnLoadCustomService(Microsoft.Extensions.Hosting.HostBuilderContext builder, Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection)
 {
     serviceCollection.AddSingleton <IPackageProviderService>(packageProviderService);
 }
 /// <summary>
 /// Returns the <see cref="ApplicationPartManager"/> for the provided context.
 /// </summary>
 /// <param name="context">The context.</param>
 /// <returns>The <see cref="ApplicationPartManager"/> belonging to the provided context.</returns>
 public static ApplicationPartManager GetApplicationPartManager(this Microsoft.Extensions.Hosting.HostBuilderContext context) => GetApplicationPartManager(context.Properties);