This is an automated email from the ASF dual-hosted git repository.
kturner pushed a commit to branch 2.1
in repository https://gitbox.apache.org/repos/asf/accumulo.git
The following commit(s) were added to refs/heads/2.1 by this push:
new 920085e17a improves tracing of fate operations (#5362)
920085e17a is described below
commit 920085e17abce257858c6045f2c1b473e0ff6db0
Author: Keith Turner <[email protected]>
AuthorDate: Fri Feb 28 10:28:49 2025 -0500
improves tracing of fate operations (#5362)
Made three improvments to tracing of fate operations. Included the fate
id in tracing of fate operations. The tracing data for fate operations
would include the class name twice, changed this to `<class
name>::<method name>`. Included the delay that isReady returns in the
trace data.
---
.../accumulo/manager/tableOps/TraceRepo.java | 25 ++++++++++++++++++----
1 file changed, 21 insertions(+), 4 deletions(-)
diff --git
a/server/manager/src/main/java/org/apache/accumulo/manager/tableOps/TraceRepo.java
b/server/manager/src/main/java/org/apache/accumulo/manager/tableOps/TraceRepo.java
index 06bd812e26..fa2c7e193f 100644
---
a/server/manager/src/main/java/org/apache/accumulo/manager/tableOps/TraceRepo.java
+++
b/server/manager/src/main/java/org/apache/accumulo/manager/tableOps/TraceRepo.java
@@ -18,6 +18,7 @@
*/
package org.apache.accumulo.manager.tableOps;
+import org.apache.accumulo.core.fate.FateTxId;
import org.apache.accumulo.core.fate.Repo;
import org.apache.accumulo.core.trace.TraceUtil;
import org.apache.accumulo.core.trace.thrift.TInfo;
@@ -30,6 +31,9 @@ import io.opentelemetry.context.Scope;
public class TraceRepo<T> implements Repo<T> {
+ private static final String ID_ATTR = "accumulo.fate.id";
+ private static final String DELAY_ATTR = "accumulo.fate.delay";
+
private static final long serialVersionUID = 1L;
TInfo tinfo;
@@ -40,11 +44,22 @@ public class TraceRepo<T> implements Repo<T> {
tinfo = TraceUtil.traceInfo();
}
+ private static void setAttributes(long tid, Span span) {
+ if (span.isRecording()) {
+ span.setAttribute(ID_ATTR, FateTxId.formatTid(tid));
+ }
+ }
+
@Override
public long isReady(long tid, T environment) throws Exception {
- Span span = TraceUtil.startFateSpan(repo.getClass(), repo.getName(),
tinfo);
+ Span span = TraceUtil.startFateSpan(repo.getClass(), "isReady", tinfo);
try (Scope scope = span.makeCurrent()) {
- return repo.isReady(tid, environment);
+ setAttributes(tid, span);
+ var delay = repo.isReady(tid, environment);
+ if (span.isRecording()) {
+ span.setAttribute(DELAY_ATTR, delay + "ms");
+ }
+ return delay;
} catch (Exception e) {
TraceUtil.setException(span, e, true);
throw e;
@@ -55,8 +70,9 @@ public class TraceRepo<T> implements Repo<T> {
@Override
public Repo<T> call(long tid, T environment) throws Exception {
- Span span = TraceUtil.startFateSpan(repo.getClass(), repo.getName(),
tinfo);
+ Span span = TraceUtil.startFateSpan(repo.getClass(), "call", tinfo);
try (Scope scope = span.makeCurrent()) {
+ setAttributes(tid, span);
Repo<T> result = repo.call(tid, environment);
if (result == null) {
return null;
@@ -72,8 +88,9 @@ public class TraceRepo<T> implements Repo<T> {
@Override
public void undo(long tid, T environment) throws Exception {
- Span span = TraceUtil.startFateSpan(repo.getClass(), repo.getName(),
tinfo);
+ Span span = TraceUtil.startFateSpan(repo.getClass(), "undo", tinfo);
try (Scope scope = span.makeCurrent()) {
+ setAttributes(tid, span);
repo.undo(tid, environment);
} catch (Exception e) {
TraceUtil.setException(span, e, true);