Skip to content

Commit 08ca678

Browse files
Merge pull request #239 from TransactionProcessing/task/#238_sentry_integration
Add Sentry error tracking and versioning updates
2 parents afa7d67 + bd50e19 commit 08ca678

6 files changed

Lines changed: 50 additions & 9 deletions

File tree

.github/workflows/createrelease.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,13 @@ jobs:
4747
4848
- name: Publish API
4949
if: ${{ github.event.release.prerelease == false }}
50-
run: dotnet publish "CallbackHandler/CallbackHandler.csproj" --configuration Release --output publishOutput -r win-x64 --self-contained false
50+
run: dotnet publish "CallbackHandler/CallbackHandler.csproj"
51+
--configuration Release --output publishOutput -r win-x64
52+
--self-contained false
53+
-p:Version=${{ steps.get_version.outputs.VERSION }}
54+
-p:AssemblyVersion${{ steps.get_version.outputs.VERSION }}
55+
-p:FileVersion=${{ steps.get_version.outputs.VERSION }}
56+
-p:InformationalVersion${{ steps.get_version.outputs.VERSION }}
5157

5258
- name: Build Release Package
5359
run: |

CallbackHandler/CallbackHandler.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
<PackageReference Include="AspNetCore.HealthChecks.UI.Client" Version="9.0.0" />
1313
<PackageReference Include="MediatR" Version="14.1.0" />
1414
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.23.0" />
15+
<PackageReference Include="Sentry.AspNetCore" Version="6.2.0" />
1516
<PackageReference Include="Shared" Version="2026.3.1" />
1617
<PackageReference Include="Shared.Results.Web" Version="2026.3.1" />
1718
<PackageReference Include="SimpleResults.AspNetCore" Version="4.0.0" />

CallbackHandler/Handlers/CallbackHandlers.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,19 @@
33
using CallbackHandlers.Models;
44
using MediatR;
55
using Microsoft.AspNetCore.Http;
6+
using Microsoft.AspNetCore.Http.HttpResults;
67
using Microsoft.AspNetCore.Mvc;
78
using Newtonsoft.Json;
9+
using Sentry;
810
using Shared.Results;
11+
using Shared.Results.Web;
912
using SimpleResults;
1013
using System;
1114
using System.Collections.Generic;
1215
using System.Linq;
1316
using System.Net;
1417
using System.Threading;
1518
using System.Threading.Tasks;
16-
using Microsoft.AspNetCore.Http.HttpResults;
17-
using Shared.Results.Web;
1819

1920
namespace CallbackHandler.Handlers;
2021

@@ -26,6 +27,10 @@ public static async Task<IResult> RecordCallback(Deposit depositCallback,
2627
{
2728
Guid callbackId = Guid.NewGuid();
2829

30+
if (depositCallback.Reference == "ExceptionTest") {
31+
throw new Exception("This is a test exception");
32+
}
33+
2934
CallbackCommands.RecordCallbackCommand request = new(
3035
callbackId,
3136
JsonConvert.SerializeObject(depositCallback),

CallbackHandler/Program.cs

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,28 @@
22
using Microsoft.Extensions.Configuration;
33
using Microsoft.Extensions.Hosting;
44
using Microsoft.Extensions.Logging;
5+
using NLog.Extensions.Logging;
6+
using Shared.General;
7+
using Shared.Logger;
8+
using Shared.Middleware;
59
using System;
610
using System.Collections.Generic;
711
using System.Linq;
812
using System.Threading.Tasks;
9-
using NLog.Extensions.Logging;
10-
using Shared.Logger;
11-
using Shared.Middleware;
13+
using JasperFx.CommandLine.Descriptions;
1214

1315
namespace CallbackHandler
1416
{
1517
using Lamar.Microsoft.DependencyInjection;
1618
using Microsoft.Extensions.DependencyInjection;
19+
using Microsoft.Extensions.Options;
1720
using NLog;
21+
using Sentry.Extensibility;
1822
using Shared.DomainDrivenDesign.EventSourcing;
1923
using Shared.EventStore.Aggregate;
2024
using System.Diagnostics.CodeAnalysis;
2125
using System.IO;
26+
using System.Reflection;
2227

2328
[ExcludeFromCodeCoverage]
2429
public class Program
@@ -68,7 +73,30 @@ public static IHostBuilder CreateHostBuilder(string[] args)
6873
webBuilder.UseStartup<Startup>();
6974
webBuilder.UseConfiguration(config);
7075
webBuilder.UseKestrel();
76+
77+
IConfigurationSection isSentryConfigured = config.GetSection("SentryConfiguration");
78+
if (isSentryConfigured.Exists()) {
79+
webBuilder.Configure((context,
80+
app) => {
81+
if (context.HostingEnvironment.IsDevelopment() == false) {
82+
Version version = Assembly.GetExecutingAssembly().GetName().Version;
83+
84+
webBuilder.UseSentry(o => {
85+
86+
o.Dsn = ConfigurationReader.GetValueFromSection<String>("SentryConfiguration", "Dsn");
87+
o.SendDefaultPii = true; // required for body + user data
88+
o.MaxRequestBodySize = RequestSize.Always;
89+
o.CaptureBlockingCalls = true;
90+
//o.CaptureFailedRequests = true;
91+
o.Release = version != null ? version.ToString() : "unknown";
92+
93+
});
94+
}
95+
});
96+
97+
}
7198
});
99+
72100
return hostBuilder;
73101
}
74102

CallbackHandler/Startup.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1+
using CallbackHandler.Endpoints;
12
using Microsoft.AspNetCore.Builder;
23
using Microsoft.AspNetCore.Hosting;
34
using Microsoft.Extensions.Configuration;
45
using Microsoft.Extensions.Hosting;
5-
using CallbackHandler.Endpoints;
66

77
namespace CallbackHandler
88
{
@@ -11,6 +11,7 @@ namespace CallbackHandler
1111
using Lamar;
1212
using Microsoft.AspNetCore.Diagnostics.HealthChecks;
1313
using Microsoft.Extensions.Logging;
14+
using Sentry;
1415
using Shared.EventStore.Aggregate;
1516
using Shared.Extensions;
1617
using Shared.General;
@@ -80,7 +81,7 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerF
8081

8182
Logger.Initialise(logger);
8283
Startup.Configuration.LogConfiguration(Logger.LogWarning);
83-
84+
8485
ConfigurationReader.Initialise(Startup.Configuration);
8586
app.UseMiddleware<TenantMiddleware>();
8687
app.AddRequestResponseLogging();

CallbackHandler/appsettings.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
2+
33
}

0 commit comments

Comments
 (0)