Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
3765758
refactor: migrate availability chart from VisX to Chakra UI v3 charts
abishekve Sep 19, 2025
ce1c3e2
fix: endpoint details page scroll fix
abishekve Sep 19, 2025
571c585
fix: dashboard button
abishekve Sep 19, 2025
0cc07c9
added reddit link
abishekve Sep 19, 2025
d988f74
collapsible
abishekve Sep 20, 2025
a7c71ec
made the recent perfomacne as collapsible
abishekve Sep 20, 2025
b07aa4d
added a md file for icmp fallback
abishekve Sep 26, 2025
eea29ac
updated entity, db context and migration for ICMP fallback and outage…
abishekve Sep 26, 2025
4a87654
feat: icmp fallback if tcp and http fails(down)
abishekve Sep 26, 2025
e764056
updated the fall back result in outage
abishekve Sep 26, 2025
e4429f2
icmp fallback time out made half of the primary timeout
abishekve Sep 26, 2025
8fc54a4
code refactored
abishekve Sep 26, 2025
8e20d4c
code refactord
abishekve Sep 26, 2025
b031116
udpate the models
abishekve Sep 29, 2025
aacc52a
code refactored
abishekve Sep 29, 2025
3db5565
icpm fallback works correctyl need to display it in teh forntend
abishekve Sep 29, 2025
72c459e
udpated the enpoint and status service
abishekve Sep 29, 2025
62356bd
Merge branch 'master' of https://github.com/MachDatum/ThingConnect.Pu…
abishekve Sep 30, 2025
e9ecd40
renamed outage classifaciton status classification
abishekve Sep 30, 2025
01b8348
refactor the dto models
abishekve Sep 30, 2025
12a5f4c
reverted the serivce
abishekve Sep 30, 2025
683f134
Merge branch 'master' of https://github.com/MachDatum/ThingConnect.Pu…
abishekve Oct 1, 2025
d563269
udpated the controller serivce
abishekve Oct 3, 2025
0b261d8
history service udpated
abishekve Oct 3, 2025
10f52a5
updated the frontend intefaces according to the backend
abishekve Oct 3, 2025
ef56238
updated the ui for dashboard based on the api schema for status service.
abishekve Oct 3, 2025
c59590e
udpated the enpoints details page.
abishekve Oct 3, 2025
a85e46e
Merge branch 'barchart' of https://github.com/MachDatum/ThingConnect.…
abishekve Oct 3, 2025
ba8dcc6
updated the ui for history page?
abishekve Oct 3, 2025
54efb2e
build issue fixed
abishekve Oct 3, 2025
2423539
udpated the rollup service
abishekve Oct 3, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 27 additions & 1 deletion ThingConnect.Pulse.Server/Data/Entities.cs
Original file line number Diff line number Diff line change
@@ -1,9 +1,27 @@
// ThingConnect Pulse - EF Core Entities (v1)
// ThingConnect Pulse - EF Core Entities (v2)
// Updated for ICMP Fallback + Outage Classification
namespace ThingConnect.Pulse.Server.Data;

public enum ProbeType { icmp, tcp, http }
public enum UpDown { up, down }

/// <summary>
/// Status classification for failed probe analysis.
/// </summary>
public enum Classification
{
None = -1, // Explicitly healthy, no outage detected
Unknown = 0, // Not enough information to classify
Network = 1, // Host unreachable (ICMP + service fail)
Service = 2, // Service down, host reachable via ICMP
Intermittent = 3, // Flapping / unstable
Performance = 4, // RTT above threshold
PartialService = 5, // HTTP error, TCP works
DnsResolution = 6, // DNS fails, IP works
Congestion = 7, // Correlated latency
Maintenance = 8 // Planned downtime
}

public record GroupVm(string Id, string Name, string? ParentId, string? Color);
public record EndpointVm(Guid Id, string Name, GroupVm Group, ProbeType Type, string Host,
int? Port, string? HttpPath, string? HttpMatch,
Expand Down Expand Up @@ -50,6 +68,13 @@ public sealed class CheckResultRaw
public UpDown Status { get; set; }
public double? RttMs { get; set; }
public string? Error { get; set; }

// πŸ”Ή New fields for fallback probe
public bool? FallbackAttempted { get; set; }
public UpDown? FallbackStatus { get; set; }
public double? FallbackRttMs { get; set; }
public string? FallbackError { get; set; }
public Classification? Classification { get; set; }
}

public sealed class Outage
Expand All @@ -61,6 +86,7 @@ public sealed class Outage
public long? EndedTs { get; set; }
public int? DurationSeconds { get; set; }
public string? LastError { get; set; }
public Classification? Classification { get; set; }

/// <summary>
/// Gets or sets timestamp when monitoring was lost during this outage (service downtime).
Expand Down
15 changes: 15 additions & 0 deletions ThingConnect.Pulse.Server/Data/PulseDbContext.cs
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,17 @@ protected override void OnModelCreating(ModelBuilder b)
e.HasKey(x => x.Id);
e.Property(x => x.Status).HasConversion<string>().IsRequired();
e.Property(x => x.RttMs).HasColumnType("double precision");

// New Fallback fields
e.Property(x => x.FallbackAttempted);
e.Property(x => x.FallbackStatus).HasConversion<string>();
e.Property(x => x.FallbackRttMs).HasColumnType("double precision");
e.Property(x => x.FallbackError);

// Classification field
e.Property(x => x.Classification)
.HasConversion<int?>();

e.HasIndex(x => new { x.EndpointId, x.Ts });
});

Expand All @@ -74,6 +85,10 @@ protected override void OnModelCreating(ModelBuilder b)
e.HasKey(x => x.Id);
e.HasIndex(x => new { x.EndpointId, x.StartedTs });
e.HasIndex(x => new { x.EndpointId, x.EndedTs });

// New Classification field
e.Property(x => x.Classification)
.HasConversion<int?>();
});

b.Entity<Rollup15m>(e =>
Expand Down
Loading
Loading