- fix bug in seed flight for read database

- fix bug sqlserver health check
- add OpenTelemetry Instrumentation GrpcNetClient
This commit is contained in:
meysamhadeli 2022-10-16 01:23:05 +03:30
parent 7b1fb70a2e
commit d530af9eb3
7 changed files with 26 additions and 13 deletions

View File

@ -24,6 +24,7 @@
<PackageReference Include="Grpc.Core.Testing" Version="2.46.5" /> <PackageReference Include="Grpc.Core.Testing" Version="2.46.5" />
<PackageReference Include="Mongo2Go" Version="3.1.3" /> <PackageReference Include="Mongo2Go" Version="3.1.3" />
<PackageReference Include="NSubstitute" Version="4.3.0" /> <PackageReference Include="NSubstitute" Version="4.3.0" />
<PackageReference Include="OpenTelemetry.Instrumentation.GrpcNetClient" Version="1.0.0-rc9.7" />
<PackageReference Include="Polly" Version="7.2.3" /> <PackageReference Include="Polly" Version="7.2.3" />
<PackageReference Include="protobuf-net.BuildTools" Version="3.0.115"> <PackageReference Include="protobuf-net.BuildTools" Version="3.0.115">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
@ -95,11 +96,11 @@
<PackageReference Include="prometheus-net" Version="6.0.0" /> <PackageReference Include="prometheus-net" Version="6.0.0" />
<PackageReference Include="prometheus-net.AspNetCore" Version="6.0.0" /> <PackageReference Include="prometheus-net.AspNetCore" Version="6.0.0" />
<PackageReference Include="OpenTelemetry" Version="1.2.0-rc3" /> <PackageReference Include="OpenTelemetry" Version="1.4.0-beta.1" />
<PackageReference Include="OpenTelemetry.Exporter.Jaeger" Version="1.2.0-rc3" /> <PackageReference Include="OpenTelemetry.Exporter.Jaeger" Version="1.4.0-beta.1" />
<PackageReference Include="OpenTelemetry.Extensions.Hosting" Version="1.0.0-rc9" /> <PackageReference Include="OpenTelemetry.Extensions.Hosting" Version="1.0.0-rc9.7" />
<PackageReference Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.0.0-rc9" /> <PackageReference Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.0.0-rc9.7" />
<PackageReference Include="OpenTelemetry.Instrumentation.Http" Version="1.0.0-rc9" /> <PackageReference Include="OpenTelemetry.Instrumentation.Http" Version="1.0.0-rc9.7" />
<PackageReference Include="Microsoft.VisualStudio.Threading.Analyzers" Version="17.0.64"> <PackageReference Include="Microsoft.VisualStudio.Threading.Analyzers" Version="17.0.64">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>

View File

@ -24,13 +24,14 @@ public static class Extensions
var logOptions = services.GetOptions<LogOptions>("LogOptions"); var logOptions = services.GetOptions<LogOptions>("LogOptions");
var healthChecksBuilder = services.AddHealthChecks() var healthChecksBuilder = services.AddHealthChecks()
.AddSqlServer(sqlOptions.DefaultConnection)
.AddRabbitMQ(rabbitConnectionString: $"amqp://{rabbitMqOptions.UserName}:{rabbitMqOptions.Password}@{rabbitMqOptions.HostName}") .AddRabbitMQ(rabbitConnectionString: $"amqp://{rabbitMqOptions.UserName}:{rabbitMqOptions.Password}@{rabbitMqOptions.HostName}")
.AddElasticsearch(logOptions.Elastic.ElasticServiceUrl); .AddElasticsearch(logOptions.Elastic.ElasticServiceUrl);
if (mongoOptions.ConnectionString is not null) if (mongoOptions.ConnectionString is not null)
healthChecksBuilder.AddMongoDb(mongoOptions.ConnectionString); healthChecksBuilder.AddMongoDb(mongoOptions.ConnectionString);
if (sqlOptions.DefaultConnection is not null)
healthChecksBuilder.AddSqlServer(sqlOptions.DefaultConnection);
services.AddHealthChecksUI(setup => services.AddHealthChecksUI(setup =>
{ {

View File

@ -11,6 +11,7 @@ public static class Extensions
public static IServiceCollection AddCustomOpenTelemetry(this IServiceCollection services) public static IServiceCollection AddCustomOpenTelemetry(this IServiceCollection services)
{ {
services.AddOpenTelemetryTracing(builder => builder services.AddOpenTelemetryTracing(builder => builder
.AddGrpcClientInstrumentation()
.AddMassTransitInstrumentation() .AddMassTransitInstrumentation()
.AddAspNetCoreInstrumentation() .AddAspNetCoreInstrumentation()
.AddHttpClientInstrumentation() .AddHttpClientInstrumentation()

View File

@ -13,6 +13,8 @@ using Flight.Seats.Models;
using Flight.Seats.Models.Reads; using Flight.Seats.Models.Reads;
using MapsterMapper; using MapsterMapper;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using MongoDB.Driver;
using MongoDB.Driver.Linq;
namespace Flight.Data.Seed; namespace Flight.Data.Seed;
@ -51,7 +53,9 @@ public class FlightDataSeeder : IDataSeeder
await _flightDbContext.Airports.AddRangeAsync(airports); await _flightDbContext.Airports.AddRangeAsync(airports);
await _flightDbContext.SaveChangesAsync(); await _flightDbContext.SaveChangesAsync();
await _flightReadDbContext.Airport.InsertManyAsync(_mapper.Map<List<AirportReadModel>>(airports));
if (!await _flightReadDbContext.Airport.AsQueryable().AnyAsync())
await _flightReadDbContext.Airport.InsertManyAsync(_mapper.Map<List<AirportReadModel>>(airports));
} }
} }
@ -68,7 +72,9 @@ public class FlightDataSeeder : IDataSeeder
await _flightDbContext.Aircraft.AddRangeAsync(aircrafts); await _flightDbContext.Aircraft.AddRangeAsync(aircrafts);
await _flightDbContext.SaveChangesAsync(); await _flightDbContext.SaveChangesAsync();
await _flightReadDbContext.Aircraft.InsertManyAsync(_mapper.Map<List<AircraftReadModel>>(aircrafts));
if (!await _flightReadDbContext.Aircraft.AsQueryable().AnyAsync())
await _flightReadDbContext.Aircraft.InsertManyAsync(_mapper.Map<List<AircraftReadModel>>(aircrafts));
} }
} }
@ -79,7 +85,7 @@ public class FlightDataSeeder : IDataSeeder
{ {
var seats = new List<Seat> var seats = new List<Seat>
{ {
Seat.Create(1 ,"12A", Seats.Enums.SeatType.Window, Seats.Enums.SeatClass.Economy, 1), Seat.Create(1, "12A", Seats.Enums.SeatType.Window, Seats.Enums.SeatClass.Economy, 1),
Seat.Create(2, "12B", Seats.Enums.SeatType.Window, Seats.Enums.SeatClass.Economy, 1), Seat.Create(2, "12B", Seats.Enums.SeatType.Window, Seats.Enums.SeatClass.Economy, 1),
Seat.Create(3, "12C", Seats.Enums.SeatType.Middle, Seats.Enums.SeatClass.Economy, 1), Seat.Create(3, "12C", Seats.Enums.SeatType.Middle, Seats.Enums.SeatClass.Economy, 1),
Seat.Create(4, "12D", Seats.Enums.SeatType.Middle, Seats.Enums.SeatClass.Economy, 1), Seat.Create(4, "12D", Seats.Enums.SeatType.Middle, Seats.Enums.SeatClass.Economy, 1),
@ -89,7 +95,9 @@ public class FlightDataSeeder : IDataSeeder
await _flightDbContext.Seats.AddRangeAsync(seats); await _flightDbContext.Seats.AddRangeAsync(seats);
await _flightDbContext.SaveChangesAsync(); await _flightDbContext.SaveChangesAsync();
await _flightReadDbContext.Seat.InsertManyAsync(_mapper.Map<List<SeatReadModel>>(seats));
if (!await _flightReadDbContext.Seat.AsQueryable().AnyAsync())
await _flightReadDbContext.Seat.InsertManyAsync(_mapper.Map<List<SeatReadModel>>(seats));
} }
} }
@ -107,7 +115,9 @@ public class FlightDataSeeder : IDataSeeder
}; };
await _flightDbContext.Flights.AddRangeAsync(flights); await _flightDbContext.Flights.AddRangeAsync(flights);
await _flightDbContext.SaveChangesAsync(); await _flightDbContext.SaveChangesAsync();
await _flightReadDbContext.Flight.InsertManyAsync(_mapper.Map<List<FlightReadModel>>(flights));
if (!await _flightReadDbContext.Flight.AsQueryable().AnyAsync())
await _flightReadDbContext.Flight.InsertManyAsync(_mapper.Map<List<FlightReadModel>>(flights));
} }
} }
} }

View File

@ -15,6 +15,7 @@ using FluentValidation;
using Hellang.Middleware.ProblemDetails; using Hellang.Middleware.ProblemDetails;
using Identity; using Identity;
using Identity.Data; using Identity.Data;
using Identity.Data.Seed;
using Identity.Extensions; using Identity.Extensions;
using Microsoft.AspNetCore.Mvc.ApiExplorer; using Microsoft.AspNetCore.Mvc.ApiExplorer;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;

View File

@ -7,7 +7,7 @@ using Identity.Identity.Constants;
using Identity.Identity.Models; using Identity.Identity.Models;
using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Identity;
namespace Identity.Data; namespace Identity.Data.Seed;
public class IdentityDataSeeder : IDataSeeder public class IdentityDataSeeder : IDataSeeder
{ {

View File

@ -16,7 +16,6 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Folder Include="Data\Configurations" />
<Folder Include="Data\Migrations" /> <Folder Include="Data\Migrations" />
</ItemGroup> </ItemGroup>