From bdac944e7b8320a9fa5175dba36cb7167c9fb3fd Mon Sep 17 00:00:00 2001 From: david Date: Sun, 22 Mar 2026 19:02:10 +0100 Subject: [PATCH] Add `BUILD_ID` tracking to metrics and error reports Introduced `BUILD_ID` to `SimpleMetrics` for better traceability. Updated `SimpleErrorTracker` to include `BUILD_ID` in error reports. --- core/src/main/java/dev/faststats/core/SimpleErrorTracker.java | 3 ++- core/src/main/java/dev/faststats/core/SimpleMetrics.java | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/dev/faststats/core/SimpleErrorTracker.java b/core/src/main/java/dev/faststats/core/SimpleErrorTracker.java index 22e7212..4fdbb7a 100644 --- a/core/src/main/java/dev/faststats/core/SimpleErrorTracker.java +++ b/core/src/main/java/dev/faststats/core/SimpleErrorTracker.java @@ -35,12 +35,13 @@ public void trackError(final Throwable error) { } } - public JsonArray getData() { + public JsonArray getData(final String buildId) { final var report = new JsonArray(reports.size()); reports.forEach((hash, object) -> { final var copy = object.deepCopy(); copy.addProperty("hash", hash); + copy.addProperty("buildId", buildId); final var count = collected.getOrDefault(hash, 1); if (count > 1) copy.addProperty("count", count); report.add(copy); diff --git a/core/src/main/java/dev/faststats/core/SimpleMetrics.java b/core/src/main/java/dev/faststats/core/SimpleMetrics.java index 9342bc6..38cadb7 100644 --- a/core/src/main/java/dev/faststats/core/SimpleMetrics.java +++ b/core/src/main/java/dev/faststats/core/SimpleMetrics.java @@ -51,6 +51,7 @@ public abstract class SimpleMetrics implements Metrics { private final String SDK_NAME; private final String SDK_VERSION; + private final String BUILD_ID; { final var properties = new Properties(); @@ -60,6 +61,7 @@ public abstract class SimpleMetrics implements Metrics { } this.SDK_NAME = properties.getProperty("name", "unknown"); this.SDK_VERSION = properties.getProperty("version", "unknown"); + this.BUILD_ID = properties.getProperty("build-id", "unknown"); } @Contract(mutates = "io") @@ -278,7 +280,7 @@ protected JsonObject createData() { data.add("data", metrics); getErrorTracker().map(SimpleErrorTracker.class::cast) - .map(SimpleErrorTracker::getData) + .map(tracker -> tracker.getData(BUILD_ID)) .filter(errors -> !errors.isEmpty()) .ifPresent(errors -> data.add("errors", errors)); return data;