Skip to content

Commit

Permalink
CarService - refactor to modern template (#489)
Browse files Browse the repository at this point in the history
  • Loading branch information
cijothomas committed Oct 19, 2022
1 parent d0279d8 commit 22833ab
Show file tree
Hide file tree
Showing 2 changed files with 62 additions and 91 deletions.
69 changes: 62 additions & 7 deletions src/cartservice/src/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,68 @@

using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
using cartservice;
using Microsoft.AspNetCore.Builder;
using cartservice.cartstore;
using System;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Diagnostics.HealthChecks;
using OpenTelemetry.Metrics;
using OpenTelemetry.Trace;
using cartservice.services;
using Microsoft.AspNetCore.Http;

CreateHostBuilder(args).Build().Run();
var builder = WebApplication.CreateBuilder(args);
string redisAddress = builder.Configuration["REDIS_ADDR"];
RedisCartStore cartStore = null;
if (string.IsNullOrEmpty(redisAddress))
{
Console.WriteLine("REDIS_ADDR environment variable is required.");
System.Environment.Exit(1);
}
cartStore = new RedisCartStore(redisAddress);

static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
// Initialize the redis store
cartStore.InitializeAsync().GetAwaiter().GetResult();
Console.WriteLine("Initialization completed");

builder.Services.AddSingleton<ICartStore>(cartStore);

builder.Services.AddOpenTelemetryTracing((builder) => builder
.AddRedisInstrumentation(
cartStore.GetConnection(),
options => options.SetVerboseDatabaseStatements = true)
.AddAspNetCoreInstrumentation()
.AddGrpcClientInstrumentation()
.AddHttpClientInstrumentation()
.AddOtlpExporter());

builder.Services.AddOpenTelemetryMetrics(builder =>
builder.AddRuntimeInstrumentation()
.AddAspNetCoreInstrumentation()
.AddOtlpExporter());

builder.Services.AddGrpc();
builder.Services.AddGrpcHealthChecks()
.AddCheck("Sample", () => HealthCheckResult.Healthy());

var app = builder.Build();

if (app.Environment.IsDevelopment())
{
webBuilder.UseStartup<Startup>();
});
app.UseDeveloperExceptionPage();
}

app.UseRouting();

app.UseEndpoints(endpoints =>
{
endpoints.MapGrpcService<CartService>();
endpoints.MapGrpcHealthChecksService();
endpoints.MapGet("/", async context =>
{
await context.Response.WriteAsync("Communication with gRPC endpoints must be made through a gRPC client. To learn how to create a client, visit: https://go.microsoft.com/fwlink/?linkid=2086909");
});
});

app.Run();
84 changes: 0 additions & 84 deletions src/cartservice/src/Startup.cs

This file was deleted.

0 comments on commit 22833ab

Please sign in to comment.