From 68f63d833e022bd0ee3e218fb15adfe8db1e7726 Mon Sep 17 00:00:00 2001 From: somiljain2006 Date: Thu, 12 Mar 2026 23:38:54 +0530 Subject: [PATCH 01/10] Fix Grafana explore URL generation and add Tempo datasource UID support --- .../opentelemetry/backend/GrafanaBackend.java | 48 ++++++++++++++----- .../backend/GrafanaBackend/config.jelly | 4 ++ .../backend/GrafanaBackendTest.java | 41 +++++++++++++++- 3 files changed, 79 insertions(+), 14 deletions(-) diff --git a/src/main/java/io/jenkins/plugins/opentelemetry/backend/GrafanaBackend.java b/src/main/java/io/jenkins/plugins/opentelemetry/backend/GrafanaBackend.java index 37f182618..082bbb217 100644 --- a/src/main/java/io/jenkins/plugins/opentelemetry/backend/GrafanaBackend.java +++ b/src/main/java/io/jenkins/plugins/opentelemetry/backend/GrafanaBackend.java @@ -58,6 +58,7 @@ public class GrafanaBackend extends ObservabilityBackend { private String grafanaMetricsDashboard; private String tempoDataSourceIdentifier = DEFAULT_TEMPO_DATA_SOURCE_IDENTIFIER; + private String tempoDataSourceUid; private String grafanaOrgId = DEFAULT_GRAFANA_ORG_ID; @@ -71,14 +72,15 @@ public GrafanaBackend() {} @Nullable @Override public String getTraceVisualisationUrlTemplate() { - return "${" + TemplateBindings.GRAFANA_BASE_URL + "}" + "/explore?orgId=" + return "${" + TemplateBindings.GRAFANA_BASE_URL + "}" + "/explore?schemaVersion=1&orgId=" + "${" - + TemplateBindings.GRAFANA_ORG_ID + "}" + "&left=%7B%22datasource%22:%22" + + TemplateBindings.GRAFANA_ORG_ID + "}" + "&panes=%7B%22pane1%22:%7B%22datasource%22:%22" + "${" - + TemplateBindings.GRAFANA_TEMPO_DATASOURCE_IDENTIFIER + "}" + + TemplateBindings.GRAFANA_TEMPO_DATASOURCE_UID + "}" + "%22,%22queries%22:%5B%7B%22refId%22:%22A%22,%22datasource%22:%7B%22type%22:%22tempo%22,%22uid%22:%22" + "${" - + TemplateBindings.GRAFANA_TEMPO_DATASOURCE_IDENTIFIER + "}" + "%22%7D,%22queryType%22:%22${" + + TemplateBindings.GRAFANA_TEMPO_DATASOURCE_UID + "}" + + "%22%7D,%22queryType%22:%22${" + TemplateBindings.GRAFANA_TEMPO_QUERY_TYPE + "}%22,%22query%22:%22" + "${traceId}" + "%22%7D%5D,%22range%22:%7B%22from%22:%22" + "${" @@ -88,7 +90,7 @@ public String getTraceVisualisationUrlTemplate() { + "${" + TemplateBindings.START_TIME + ".plusSeconds(600).atZone(java.util.TimeZone.getDefault().toZoneId()).toInstant().toEpochMilli()}" - + "%22%7D%7D"; + + "%22%7D%7D%7D"; } /** @@ -126,12 +128,14 @@ public boolean equals(Object o) { return Objects.equals(grafanaOrgId, that.grafanaOrgId) && Objects.equals(grafanaBaseUrl, that.grafanaBaseUrl) && Objects.equals(tempoDataSourceIdentifier, that.tempoDataSourceIdentifier) + && Objects.equals(tempoDataSourceUid, that.tempoDataSourceUid) && Objects.equals(tempoQueryType, that.tempoQueryType); } @Override public int hashCode() { - return Objects.hash(grafanaBaseUrl, tempoDataSourceIdentifier, grafanaOrgId, tempoQueryType); + return Objects.hash( + grafanaBaseUrl, tempoDataSourceIdentifier, tempoDataSourceUid, grafanaOrgId, tempoQueryType); } @Override @@ -144,12 +148,22 @@ public Map mergeBindings(Map bindings) { @Override public Map getBindings() { Map bindings = Map.of( - TemplateBindings.BACKEND_NAME, getName(), - TemplateBindings.BACKEND_24_24_ICON_URL, "/plugin/opentelemetry/images/24x24/grafana.png", - TemplateBindings.GRAFANA_BASE_URL, this.getGrafanaBaseUrl(), - TemplateBindings.GRAFANA_ORG_ID, String.valueOf(this.getGrafanaOrgId()), - TemplateBindings.GRAFANA_TEMPO_DATASOURCE_IDENTIFIER, this.getTempoDataSourceIdentifier(), - TemplateBindings.GRAFANA_TEMPO_QUERY_TYPE, this.getTempoQueryType()); + TemplateBindings.BACKEND_NAME, + getName(), + TemplateBindings.BACKEND_24_24_ICON_URL, + "/plugin/opentelemetry/images/24x24/grafana.png", + TemplateBindings.GRAFANA_BASE_URL, + this.getGrafanaBaseUrl(), + TemplateBindings.GRAFANA_ORG_ID, + String.valueOf(this.getGrafanaOrgId()), + TemplateBindings.GRAFANA_TEMPO_DATASOURCE_IDENTIFIER, + this.getTempoDataSourceIdentifier(), + TemplateBindings.GRAFANA_TEMPO_DATASOURCE_UID, + StringUtils.isNotBlank(this.getTempoDataSourceUid()) + ? this.getTempoDataSourceUid() + : this.getTempoDataSourceIdentifier(), + TemplateBindings.GRAFANA_TEMPO_QUERY_TYPE, + this.getTempoQueryType()); if (grafanaLogsBackend instanceof TemplateBindingsProvider) { Map logsBackendBindings = ((TemplateBindingsProvider) grafanaLogsBackend).getBindings(); @@ -188,6 +202,15 @@ public void setTempoDataSourceIdentifier(String tempoDataSourceIdentifier) { this.tempoDataSourceIdentifier = tempoDataSourceIdentifier; } + public String getTempoDataSourceUid() { + return tempoDataSourceUid; + } + + @DataBoundSetter + public void setTempoDataSourceUid(String tempoDataSourceUid) { + this.tempoDataSourceUid = tempoDataSourceUid; + } + @DataBoundSetter public void setGrafanaMetricsDashboard(String grafanaMetricsDashboard) { this.grafanaMetricsDashboard = grafanaMetricsDashboard; @@ -280,6 +303,7 @@ public ListBoxModel doFillTempoQueryTypeItems() { public interface TemplateBindings extends ObservabilityBackend.TemplateBindings { String GRAFANA_BASE_URL = "grafanaBaseUrl"; String GRAFANA_TEMPO_DATASOURCE_IDENTIFIER = "grafanaTempoDatasourceIdentifier"; + String GRAFANA_TEMPO_DATASOURCE_UID = "grafanaTempoDatasourceUid"; String GRAFANA_LOKI_DATASOURCE_IDENTIFIER = "grafanaLokiDatasourceIdentifier"; String GRAFANA_ORG_ID = "grafanaOrgId"; String GRAFANA_TEMPO_QUERY_TYPE = "grafanaTempoQueryType"; diff --git a/src/main/resources/io/jenkins/plugins/opentelemetry/backend/GrafanaBackend/config.jelly b/src/main/resources/io/jenkins/plugins/opentelemetry/backend/GrafanaBackend/config.jelly index 146d53a2e..36ec2f781 100644 --- a/src/main/resources/io/jenkins/plugins/opentelemetry/backend/GrafanaBackend/config.jelly +++ b/src/main/resources/io/jenkins/plugins/opentelemetry/backend/GrafanaBackend/config.jelly @@ -26,6 +26,10 @@ description="Identifier of the Tempo datasource in which the Jenkins pipeline build traces are stored."> + + + diff --git a/src/test/java/io/jenkins/plugins/opentelemetry/backend/GrafanaBackendTest.java b/src/test/java/io/jenkins/plugins/opentelemetry/backend/GrafanaBackendTest.java index 49feea795..cc9d6b701 100644 --- a/src/test/java/io/jenkins/plugins/opentelemetry/backend/GrafanaBackendTest.java +++ b/src/test/java/io/jenkins/plugins/opentelemetry/backend/GrafanaBackendTest.java @@ -5,16 +5,47 @@ package io.jenkins.plugins.opentelemetry.backend; +import static org.junit.jupiter.api.Assertions.assertTrue; + import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.HashMap; import java.util.Map; +import java.util.Objects; import org.junit.jupiter.api.Test; public class GrafanaBackendTest { @Test public void testTraceUrl() { + GrafanaBackend grafanaBackend = new GrafanaBackend(); + grafanaBackend.setGrafanaBaseUrl("https://cleclerc.grafana.net"); + grafanaBackend.setGrafanaOrgId("1"); + grafanaBackend.setTempoDataSourceIdentifier("grafanacloud-traces"); + grafanaBackend.setTempoDataSourceUid("my-awesome-custom-uid"); + grafanaBackend.setTempoQueryType("traceql"); + + LocalDateTime buildTime = + LocalDateTime.parse("2023-02-05 23:31:52.610", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS")); + + Map bindings = new HashMap<>(); + bindings.put("serviceName", "jenkins"); + bindings.put("rootSpanName", "BUILD my-app"); + bindings.put("traceId", "f464e1f32444443d3fc00fdb19e5c124"); + bindings.put("spanId", "00799ea60984f33f"); + bindings.put("startTime", buildTime); + + String actualUrl = grafanaBackend.getTraceVisualisationUrl(bindings); + System.out.println(actualUrl); + + assertTrue(Objects.requireNonNull(actualUrl).contains("schemaVersion=1"), "URL must contain schemaVersion=1"); + assertTrue(actualUrl.contains("panes="), "URL must use 'panes' instead of 'left'"); + assertTrue(actualUrl.contains("my-awesome-custom-uid"), "URL must contain the new Tempo UID"); + assertTrue(actualUrl.contains("f464e1f32444443d3fc00fdb19e5c124"), "URL must contain the exact traceId"); + } + + @Test + public void testTraceUrlFallbackToIdentifier() { GrafanaBackend grafanaBackend = new GrafanaBackend(); grafanaBackend.setGrafanaBaseUrl("https://cleclerc.grafana.net"); grafanaBackend.setGrafanaOrgId("1"); @@ -31,7 +62,13 @@ public void testTraceUrl() { bindings.put("spanId", "00799ea60984f33f"); bindings.put("startTime", buildTime); - String actualTraceVisualisationUrl = grafanaBackend.getTraceVisualisationUrl(bindings); - System.out.println(actualTraceVisualisationUrl); + String actualUrl = grafanaBackend.getTraceVisualisationUrl(bindings); + + assertTrue(Objects.requireNonNull(actualUrl).contains("schemaVersion=1"), "URL must contain schemaVersion=1"); + assertTrue(actualUrl.contains("panes="), "URL must use 'panes' instead of 'left'"); + assertTrue( + actualUrl.contains("grafanacloud-traces"), + "URL must fall back to the tempoDataSourceIdentifier when UID is missing"); + assertTrue(actualUrl.contains("f464e1f32444443d3fc00fdb19e5c124"), "URL must contain the exact traceId"); } } From 58be2276134a09f1fc294e99813da9571c3726aa Mon Sep 17 00:00:00 2001 From: somiljain2006 Date: Fri, 13 Mar 2026 01:56:04 +0530 Subject: [PATCH 02/10] chore: trigger CI From 8bd647bd65d9918917bde56018972430b75c1cc2 Mon Sep 17 00:00:00 2001 From: somiljain2006 Date: Fri, 13 Mar 2026 01:58:23 +0530 Subject: [PATCH 03/10] Added test --- .../backend/GrafanaBackendTest.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/test/java/io/jenkins/plugins/opentelemetry/backend/GrafanaBackendTest.java b/src/test/java/io/jenkins/plugins/opentelemetry/backend/GrafanaBackendTest.java index cc9d6b701..69261086b 100644 --- a/src/test/java/io/jenkins/plugins/opentelemetry/backend/GrafanaBackendTest.java +++ b/src/test/java/io/jenkins/plugins/opentelemetry/backend/GrafanaBackendTest.java @@ -5,6 +5,7 @@ package io.jenkins.plugins.opentelemetry.backend; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; import java.time.LocalDateTime; @@ -71,4 +72,24 @@ public void testTraceUrlFallbackToIdentifier() { "URL must fall back to the tempoDataSourceIdentifier when UID is missing"); assertTrue(actualUrl.contains("f464e1f32444443d3fc00fdb19e5c124"), "URL must contain the exact traceId"); } + + @Test + public void testEqualsAndHashCode() { + GrafanaBackend backend1 = new GrafanaBackend(); + backend1.setGrafanaBaseUrl("http://grafana"); + backend1.setGrafanaOrgId("1"); + backend1.setTempoDataSourceIdentifier("tempo"); + backend1.setTempoDataSourceUid("tempo-uid"); + backend1.setTempoQueryType("traceql"); + + GrafanaBackend backend2 = new GrafanaBackend(); + backend2.setGrafanaBaseUrl("http://grafana"); + backend2.setGrafanaOrgId("1"); + backend2.setTempoDataSourceIdentifier("tempo"); + backend2.setTempoDataSourceUid("tempo-uid"); + backend2.setTempoQueryType("traceql"); + + assertEquals(backend1, backend2); + assertEquals(backend1.hashCode(), backend2.hashCode()); + } } From bea433660593a8e77ca14a2946741e6735647249 Mon Sep 17 00:00:00 2001 From: somiljain2006 Date: Fri, 13 Mar 2026 18:10:06 +0530 Subject: [PATCH 04/10] rerun CI From 85b37f86137a19100f87b36d3f01aa51a9cf1adb Mon Sep 17 00:00:00 2001 From: somiljain2006 Date: Tue, 17 Mar 2026 01:01:31 +0530 Subject: [PATCH 05/10] Move the fallback from runtime logic into persistence migration. --- .../opentelemetry/backend/GrafanaBackend.java | 36 +++++++++++++------ .../backend/GrafanaBackend/config.jelly | 6 +--- .../backend/GrafanaBackendTest.java | 4 +-- 3 files changed, 27 insertions(+), 19 deletions(-) diff --git a/src/main/java/io/jenkins/plugins/opentelemetry/backend/GrafanaBackend.java b/src/main/java/io/jenkins/plugins/opentelemetry/backend/GrafanaBackend.java index 082bbb217..78bd075ec 100644 --- a/src/main/java/io/jenkins/plugins/opentelemetry/backend/GrafanaBackend.java +++ b/src/main/java/io/jenkins/plugins/opentelemetry/backend/GrafanaBackend.java @@ -57,8 +57,11 @@ public class GrafanaBackend extends ObservabilityBackend { private String grafanaBaseUrl; private String grafanaMetricsDashboard; - private String tempoDataSourceIdentifier = DEFAULT_TEMPO_DATA_SOURCE_IDENTIFIER; - private String tempoDataSourceUid; + + @Deprecated + private String tempoDataSourceIdentifier; + + private String tempoDataSourceUid = DEFAULT_TEMPO_DATA_SOURCE_IDENTIFIER; private String grafanaOrgId = DEFAULT_GRAFANA_ORG_ID; @@ -69,6 +72,16 @@ public class GrafanaBackend extends ObservabilityBackend { @DataBoundConstructor public GrafanaBackend() {} + protected Object readResolve() { + if (tempoDataSourceIdentifier != null) { + if (tempoDataSourceUid == null || tempoDataSourceUid.equals(DEFAULT_TEMPO_DATA_SOURCE_IDENTIFIER)) { + this.tempoDataSourceUid = tempoDataSourceIdentifier; + } + this.tempoDataSourceIdentifier = null; + } + return this; + } + @Nullable @Override public String getTraceVisualisationUrlTemplate() { @@ -127,15 +140,13 @@ public boolean equals(Object o) { GrafanaBackend that = (GrafanaBackend) o; return Objects.equals(grafanaOrgId, that.grafanaOrgId) && Objects.equals(grafanaBaseUrl, that.grafanaBaseUrl) - && Objects.equals(tempoDataSourceIdentifier, that.tempoDataSourceIdentifier) && Objects.equals(tempoDataSourceUid, that.tempoDataSourceUid) && Objects.equals(tempoQueryType, that.tempoQueryType); } @Override public int hashCode() { - return Objects.hash( - grafanaBaseUrl, tempoDataSourceIdentifier, tempoDataSourceUid, grafanaOrgId, tempoQueryType); + return Objects.hash(grafanaBaseUrl, tempoDataSourceUid, grafanaOrgId, tempoQueryType); } @Override @@ -157,11 +168,9 @@ public Map getBindings() { TemplateBindings.GRAFANA_ORG_ID, String.valueOf(this.getGrafanaOrgId()), TemplateBindings.GRAFANA_TEMPO_DATASOURCE_IDENTIFIER, - this.getTempoDataSourceIdentifier(), + this.getTempoDataSourceUid(), TemplateBindings.GRAFANA_TEMPO_DATASOURCE_UID, - StringUtils.isNotBlank(this.getTempoDataSourceUid()) - ? this.getTempoDataSourceUid() - : this.getTempoDataSourceIdentifier(), + this.getTempoDataSourceUid(), TemplateBindings.GRAFANA_TEMPO_QUERY_TYPE, this.getTempoQueryType()); @@ -192,12 +201,12 @@ public void setGrafanaBaseUrl(String grafanaBaseUrl) { this.grafanaBaseUrl = grafanaBaseUrl; } - @DataBoundSetter + @Deprecated public String getTempoDataSourceIdentifier() { return tempoDataSourceIdentifier; } - @DataBoundSetter + @Deprecated public void setTempoDataSourceIdentifier(String tempoDataSourceIdentifier) { this.tempoDataSourceIdentifier = tempoDataSourceIdentifier; } @@ -273,6 +282,11 @@ public String getDefaultTempoDataSourceIdentifier() { return DEFAULT_TEMPO_DATA_SOURCE_IDENTIFIER; } + @SuppressWarnings("unused") + public String getDefaultTempoDataSourceUid() { + return DEFAULT_TEMPO_DATA_SOURCE_IDENTIFIER; + } + public String getDefaultTempoQueryType() { return DEFAULT_TEMPO_QUERY_TYPE; } diff --git a/src/main/resources/io/jenkins/plugins/opentelemetry/backend/GrafanaBackend/config.jelly b/src/main/resources/io/jenkins/plugins/opentelemetry/backend/GrafanaBackend/config.jelly index 36ec2f781..79f22100a 100644 --- a/src/main/resources/io/jenkins/plugins/opentelemetry/backend/GrafanaBackend/config.jelly +++ b/src/main/resources/io/jenkins/plugins/opentelemetry/backend/GrafanaBackend/config.jelly @@ -22,13 +22,9 @@

Grafana

- - - - + diff --git a/src/test/java/io/jenkins/plugins/opentelemetry/backend/GrafanaBackendTest.java b/src/test/java/io/jenkins/plugins/opentelemetry/backend/GrafanaBackendTest.java index 69261086b..0a0e5f47f 100644 --- a/src/test/java/io/jenkins/plugins/opentelemetry/backend/GrafanaBackendTest.java +++ b/src/test/java/io/jenkins/plugins/opentelemetry/backend/GrafanaBackendTest.java @@ -22,7 +22,6 @@ public void testTraceUrl() { GrafanaBackend grafanaBackend = new GrafanaBackend(); grafanaBackend.setGrafanaBaseUrl("https://cleclerc.grafana.net"); grafanaBackend.setGrafanaOrgId("1"); - grafanaBackend.setTempoDataSourceIdentifier("grafanacloud-traces"); grafanaBackend.setTempoDataSourceUid("my-awesome-custom-uid"); grafanaBackend.setTempoQueryType("traceql"); @@ -46,6 +45,7 @@ public void testTraceUrl() { } @Test + @SuppressWarnings("deprecation") public void testTraceUrlFallbackToIdentifier() { GrafanaBackend grafanaBackend = new GrafanaBackend(); grafanaBackend.setGrafanaBaseUrl("https://cleclerc.grafana.net"); @@ -78,14 +78,12 @@ public void testEqualsAndHashCode() { GrafanaBackend backend1 = new GrafanaBackend(); backend1.setGrafanaBaseUrl("http://grafana"); backend1.setGrafanaOrgId("1"); - backend1.setTempoDataSourceIdentifier("tempo"); backend1.setTempoDataSourceUid("tempo-uid"); backend1.setTempoQueryType("traceql"); GrafanaBackend backend2 = new GrafanaBackend(); backend2.setGrafanaBaseUrl("http://grafana"); backend2.setGrafanaOrgId("1"); - backend2.setTempoDataSourceIdentifier("tempo"); backend2.setTempoDataSourceUid("tempo-uid"); backend2.setTempoQueryType("traceql"); From 1a6ef2db8608f6d5b503bb045eab90c966b8e8dc Mon Sep 17 00:00:00 2001 From: somiljain2006 Date: Tue, 17 Mar 2026 01:54:44 +0530 Subject: [PATCH 06/10] Added more tests --- .../opentelemetry/backend/GrafanaBackend.java | 1 + .../backend/GrafanaBackendTest.java | 42 +++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/src/main/java/io/jenkins/plugins/opentelemetry/backend/GrafanaBackend.java b/src/main/java/io/jenkins/plugins/opentelemetry/backend/GrafanaBackend.java index 78bd075ec..f917b9aea 100644 --- a/src/main/java/io/jenkins/plugins/opentelemetry/backend/GrafanaBackend.java +++ b/src/main/java/io/jenkins/plugins/opentelemetry/backend/GrafanaBackend.java @@ -72,6 +72,7 @@ public class GrafanaBackend extends ObservabilityBackend { @DataBoundConstructor public GrafanaBackend() {} + @SuppressWarnings("unused") protected Object readResolve() { if (tempoDataSourceIdentifier != null) { if (tempoDataSourceUid == null || tempoDataSourceUid.equals(DEFAULT_TEMPO_DATA_SOURCE_IDENTIFIER)) { diff --git a/src/test/java/io/jenkins/plugins/opentelemetry/backend/GrafanaBackendTest.java b/src/test/java/io/jenkins/plugins/opentelemetry/backend/GrafanaBackendTest.java index 0a0e5f47f..05eddae77 100644 --- a/src/test/java/io/jenkins/plugins/opentelemetry/backend/GrafanaBackendTest.java +++ b/src/test/java/io/jenkins/plugins/opentelemetry/backend/GrafanaBackendTest.java @@ -90,4 +90,46 @@ public void testEqualsAndHashCode() { assertEquals(backend1, backend2); assertEquals(backend1.hashCode(), backend2.hashCode()); } + + @Test + @SuppressWarnings("deprecation") + public void testReadResolveMigratesIdentifierToUid() { + GrafanaBackend backend = new GrafanaBackend(); + + backend.setTempoDataSourceIdentifier("old-datasource-id"); + backend.readResolve(); + + assertEquals("old-datasource-id", backend.getTempoDataSourceUid()); + } + + @Test + @SuppressWarnings("deprecation") + public void testReadResolveDoesNotOverrideExistingUid() { + GrafanaBackend backend = new GrafanaBackend(); + + backend.setTempoDataSourceIdentifier("old-id"); + backend.setTempoDataSourceUid("new-uid"); + backend.readResolve(); + + assertEquals("new-uid", backend.getTempoDataSourceUid()); + } + + @Test + public void testDescriptorDefaultTempoDataSourceUid() { + GrafanaBackend.DescriptorImpl descriptor = new GrafanaBackend.DescriptorImpl(); + + assertEquals( + "grafanacloud-traces", + descriptor.getDefaultTempoDataSourceUid() + ); + } + + @Test + public void testDescriptorDefaults() { + GrafanaBackend.DescriptorImpl descriptor = new GrafanaBackend.DescriptorImpl(); + + assertEquals("grafanacloud-traces", descriptor.getDefaultTempoDataSourceUid()); + assertEquals("1", descriptor.getDefaultGrafanaOrgId()); + assertEquals("traceql", descriptor.getDefaultTempoQueryType()); + } } From 29cd0f09ba1938c524fd8d601ab17ef9cfbbc980 Mon Sep 17 00:00:00 2001 From: somiljain2006 Date: Tue, 17 Mar 2026 01:56:51 +0530 Subject: [PATCH 07/10] Remove unnecessary annotation --- .../plugins/opentelemetry/backend/GrafanaBackend.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/main/java/io/jenkins/plugins/opentelemetry/backend/GrafanaBackend.java b/src/main/java/io/jenkins/plugins/opentelemetry/backend/GrafanaBackend.java index f917b9aea..c0f3166dc 100644 --- a/src/main/java/io/jenkins/plugins/opentelemetry/backend/GrafanaBackend.java +++ b/src/main/java/io/jenkins/plugins/opentelemetry/backend/GrafanaBackend.java @@ -72,15 +72,13 @@ public class GrafanaBackend extends ObservabilityBackend { @DataBoundConstructor public GrafanaBackend() {} - @SuppressWarnings("unused") - protected Object readResolve() { + protected void readResolve() { if (tempoDataSourceIdentifier != null) { if (tempoDataSourceUid == null || tempoDataSourceUid.equals(DEFAULT_TEMPO_DATA_SOURCE_IDENTIFIER)) { this.tempoDataSourceUid = tempoDataSourceIdentifier; } this.tempoDataSourceIdentifier = null; } - return this; } @Nullable @@ -283,7 +281,6 @@ public String getDefaultTempoDataSourceIdentifier() { return DEFAULT_TEMPO_DATA_SOURCE_IDENTIFIER; } - @SuppressWarnings("unused") public String getDefaultTempoDataSourceUid() { return DEFAULT_TEMPO_DATA_SOURCE_IDENTIFIER; } From 0f09515807183960094f7eeb7e8de73a7b28a331 Mon Sep 17 00:00:00 2001 From: somiljain2006 Date: Tue, 17 Mar 2026 02:34:25 +0530 Subject: [PATCH 08/10] Fixed formatting errors --- .../plugins/opentelemetry/backend/GrafanaBackendTest.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/test/java/io/jenkins/plugins/opentelemetry/backend/GrafanaBackendTest.java b/src/test/java/io/jenkins/plugins/opentelemetry/backend/GrafanaBackendTest.java index 05eddae77..697096b35 100644 --- a/src/test/java/io/jenkins/plugins/opentelemetry/backend/GrafanaBackendTest.java +++ b/src/test/java/io/jenkins/plugins/opentelemetry/backend/GrafanaBackendTest.java @@ -118,10 +118,7 @@ public void testReadResolveDoesNotOverrideExistingUid() { public void testDescriptorDefaultTempoDataSourceUid() { GrafanaBackend.DescriptorImpl descriptor = new GrafanaBackend.DescriptorImpl(); - assertEquals( - "grafanacloud-traces", - descriptor.getDefaultTempoDataSourceUid() - ); + assertEquals("grafanacloud-traces", descriptor.getDefaultTempoDataSourceUid()); } @Test From eaef14eeabf758efd579bbd6bbd71148f3b8f38c Mon Sep 17 00:00:00 2001 From: somiljain2006 Date: Mon, 23 Mar 2026 12:42:17 +0530 Subject: [PATCH 09/10] Rerun CI From d8ff6acfc7ba02eefd27d3ba0357ab25eaeeadc7 Mon Sep 17 00:00:00 2001 From: somiljain2006 Date: Mon, 23 Mar 2026 20:45:45 +0530 Subject: [PATCH 10/10] Rerun CI