diff --git a/Repositories/FwMariaLookupRepo.cs b/Repositories/FwMariaLookupRepo.cs index 9a3250d..17b683e 100644 --- a/Repositories/FwMariaLookupRepo.cs +++ b/Repositories/FwMariaLookupRepo.cs @@ -26,7 +26,7 @@ namespace Repositories { if (Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") == "Development") { - _dbContext._connectionString = "SERVER=127.0.0.1;DATABASE=testdb;PORT=3306;USER=root;PASSWORD=example"; + _dbContext._connectionString = "SERVER=192.168.178.44;DATABASE=fwTest;PORT=3330;USER=root;PASSWORD=$64,Rf1209"; } else { @@ -55,7 +55,7 @@ namespace Repositories _logger.LogError(ex, "Error reading Lookup Data"); return new DataResult> { - UserMessage = "Daten für Lookups konnten nicht gelesen werden.", + UserMessage = "Daten f�r Lookups konnten nicht gelesen werden.", ServerMessage = ex.Message, GeneralResult = GeneralResults.DatabaseError, StackTrace = ex.StackTrace @@ -79,7 +79,7 @@ namespace Repositories _logger.LogError(ex, $"Error reading Lookup Category with Id: {id}"); return new DataResult { - UserMessage = $"Daten für Lookup Kategorie mit Id {id} konnten nicht gelesen werden.", + UserMessage = $"Daten f�r Lookup Kategorie mit Id {id} konnten nicht gelesen werden.", ServerMessage = ex.Message, GeneralResult = GeneralResults.DatabaseError, StackTrace = ex.StackTrace @@ -103,7 +103,7 @@ namespace Repositories _logger.LogError(ex, $"Error reading Lookup Category with Name: {categoryName}"); return new DataResult> { - UserMessage = $"Daten für Lookup Kategorie mit Namen {categoryName} konnten nicht gelesen werden.", + UserMessage = $"Daten f�r Lookup Kategorie mit Namen {categoryName} konnten nicht gelesen werden.", ServerMessage = ex.Message, GeneralResult = GeneralResults.DatabaseError, StackTrace = ex.StackTrace @@ -127,7 +127,7 @@ namespace Repositories _logger.LogError(ex, "Error reading active Lookup Data"); return new DataResult> { - UserMessage = "Daten für aktive Lookups konnten nicht gelesen werden.", + UserMessage = "Daten f�r aktive Lookups konnten nicht gelesen werden.", ServerMessage = ex.Message, GeneralResult = GeneralResults.DatabaseError, StackTrace = ex.StackTrace diff --git a/SearchWebApi/Controllers/LookupController.cs b/SearchWebApi/Controllers/LookupController.cs index f01aba0..922de00 100644 --- a/SearchWebApi/Controllers/LookupController.cs +++ b/SearchWebApi/Controllers/LookupController.cs @@ -26,7 +26,10 @@ namespace FwSearchApi.Controllers public async Task GetAllLookups() { var result = await _lookupLogic.GetAllLookups(); - _logger.LogInformation($"Lookups zur Verfügung gestellt von {nameof(GetAllLookups)}"); + if (result.GeneralResult != Datamodels.BusinessModels.GeneralResults.Success) { + throw new System.Exception("das war wohl nix"); + } + _logger.LogInformation($"Lookups zur Verf�gung gestellt von {nameof(GetAllLookups)}"); return new JsonResult(result); } diff --git a/SearchWebApi/Program.cs b/SearchWebApi/Program.cs index e0c58bf..e6b86b0 100644 --- a/SearchWebApi/Program.cs +++ b/SearchWebApi/Program.cs @@ -1,3 +1,5 @@ +using System.Collections.Immutable; +using System.Buffers; using System; using System.Collections.Generic; using System.Linq; @@ -7,6 +9,7 @@ using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; +using OpenTelemetry.Logs; using Serilog; namespace FwSearchApi @@ -21,22 +24,31 @@ namespace FwSearchApi public static void Main(string[] args) { - Log.Logger = new LoggerConfiguration() - .ReadFrom.Configuration(Configuration) - .CreateLogger(); - try { - CreateWebHostBuilder(args).Build().Run(); - } - finally{ - Log.CloseAndFlush(); - } + CreateHostBuilder(args).Build().Run(); } - public static IWebHostBuilder CreateWebHostBuilder(string[] args) => - WebHost.CreateDefaultBuilder(args) - .UseConfiguration(Configuration) - .UseStartup() - .UseSerilog() - .SuppressStatusMessages(true); + public static IHostBuilder CreateHostBuilder(string[] args) => + Host.CreateDefaultBuilder(args) + .ConfigureWebHostDefaults(webBuilder => + { + webBuilder.UseStartup(); + webBuilder.UseConfiguration(Configuration); + }) + .ConfigureLogging((context, builder) => + { + builder.ClearProviders(); + builder.AddConsole(); + + builder.AddOpenTelemetry(options => + { + options.IncludeScopes = true; + options.ParseStateValues = true; + options.IncludeFormattedMessage = true; + options.AddConsoleExporter(); + }); + + }); + + } } diff --git a/SearchWebApi/SearchWebApi.csproj b/SearchWebApi/SearchWebApi.csproj index 2cf927c..6173e22 100644 --- a/SearchWebApi/SearchWebApi.csproj +++ b/SearchWebApi/SearchWebApi.csproj @@ -2,12 +2,21 @@ netcoreapp3.1 + 10 + + + + + + + + diff --git a/SearchWebApi/Startup.cs b/SearchWebApi/Startup.cs index 0a614cd..b112648 100644 --- a/SearchWebApi/Startup.cs +++ b/SearchWebApi/Startup.cs @@ -15,6 +15,13 @@ using Repositories.Interfaces; using BusinessLogic.LookupLogic; using BusinessLogic.LookupLogic.Interfaces; using SearchLogic; +using OpenTelemetry.Exporter; +using OpenTelemetry.Instrumentation.AspNetCore; +using OpenTelemetry.Resources; +using OpenTelemetry.Trace; +using Elastic.Apm.AspNetCore; +using Elastic.Apm.EntityFrameworkCore; +using Elastic.Apm; namespace FwSearchApi { @@ -24,11 +31,10 @@ namespace FwSearchApi readonly ILogger _logger; public IConfiguration _configuration { get; } - public Startup(IConfiguration configuration, ILogger logger) + public Startup(IConfiguration configuration) { _configuration = configuration; - _logger = logger; - _logger.LogInformation("Starting up FeatureWerk Search API"); + } // This method gets called by the runtime. Use this method to add services to the container. @@ -45,7 +51,16 @@ namespace FwSearchApi services.AddTransient(); services.AddSwaggerGen(); - _logger.LogInformation("Services for FeatureWerkAPIs configured"); + services.AddOpenTelemetryTracing((builder) => builder + .AddAspNetCoreInstrumentation() + .AddHttpClientInstrumentation() + .AddConsoleExporter() + .AddOtlpExporter(otlpOptions => { + otlpOptions.Endpoint = new Uri("http://192.168.178.44:8200"); + })); + + + } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. @@ -58,6 +73,8 @@ namespace FwSearchApi app.UseSwagger(); + app.UseElasticApm(_configuration, new EfCoreDiagnosticsSubscriber()); + app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "FeatureWerk Search API V1"); diff --git a/SearchWebApi/appsettings.json b/SearchWebApi/appsettings.json index 214d63f..2780079 100644 --- a/SearchWebApi/appsettings.json +++ b/SearchWebApi/appsettings.json @@ -6,5 +6,13 @@ "Microsoft.Hosting.Lifetime": "Information" } }, + "ElasticApm": + { + "ServerUrl": "http://192.168.178.44:8200", + "SecretToken": "", + "ServiceName": "TxSearchApi", + "Environment": "Development", + "CaptureBody": "all" + }, "AllowedHosts": "*" }