Skip to content
Snippets Groups Projects
Commit 86ac9dd1 authored by Alexandre TISON's avatar Alexandre TISON
Browse files

Testing with OpenTelemetry

parent a89d15d3
No related branches found
No related tags found
1 merge request!2JTango10: DevInfo & Telemetry upgrade
......@@ -9,6 +9,7 @@ import java.util.Map;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
import fr.esrf.TangoApi.telemetry.*;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import org.lsmp.djep.vectorJep.Dimensions;
......@@ -26,6 +27,7 @@ import org.nfunk.jep.SymbolTable;
import org.nfunk.jep.Variable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tango.server.ServerManager;
import org.tango.utils.CaseInsensitiveMap;
import org.tango.utils.DevFailedUtils;
......@@ -67,6 +69,7 @@ import fr.soleil.tango.parser.function.spectrum.VSinus;
public abstract class AJepParser {
private Logger logger = LoggerFactory.getLogger(AJepParser.class);
private final OpenTelemetry openTelemetry;
/**
* Use in throw DevFailed
*/
......@@ -103,6 +106,14 @@ public abstract class AJepParser {
this.constants = constants;
this.dataSource = dataSource;
this.openTelemetry = new OpenTelemetry(deviceName);
this.openTelemetry.setTangoDeviceName(deviceName);
this.openTelemetry.setTangoProcessId(ServerManager.getInstance().getPid());
this.openTelemetry.setTangoHostName(ServerManager.getInstance().getHostName());
this.openTelemetry.setTangoServerName(ServerManager.getInstance().getServerName());
this.openTelemetry.setTangoProcessKind(EProcessKind.SERVER);
this.openTelemetry.init();
jep = new VectorJep();
jep.addStandardFunctions();
jep.addStandardConstants();
......@@ -254,6 +265,9 @@ public abstract class AJepParser {
locker.lock();
}
try {
TangoContext ctx = openTelemetry.handleServer();
TangoSpan span = ctx.buildSpan("getValue (Eq)", sourceName, expressions); // static Method ?
try (TangoScope scope = span.makeCurrent()) {
// get results for tango attributes
for (final String variableName : variables.values()) {
if(!tangoVariable.containsKey(variableName)) {
......@@ -284,6 +298,13 @@ public abstract class AJepParser {
Object lastWriteResult = parse(name, expressions);
lastWriteResult = fromJepToStandardType(lastWriteResult);
return lastWriteResult;
} catch (final Exception e) {
span.recordException(e);
throw DevFailedUtils.newDevFailed(e);
} finally {
span.end();
}
} finally {
if (lock) {
locker.unlock();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment