Hello all,
I have a question about a combination of Dynatrace and OpenTelemetry. By way of testing I've created a simple Spring application with one endpoint which is instrumented with OpenTelemetry(manually instrumented) and has a Dynatrace OneAgent on the host which also injects into the application.
Everything seems to be working and I get all the expected data into Dynatrace.
I do have two questions I hope someone can help me with.
For all Span Attributes the following message is shown in Dynatrace: "initial value not set" and there is a general message on the purepath as well with "Some attributes have not been set at span start. They cannot be used in Span capturing settings". I tried both custom Attributes and SemanticAttributes set like below and both have the same result.
parentSpan.setAttribute("http.dynaguild.name", name);
parentSpan.setAttribute(SemanticAttributes.ENDUSER_SCOPE, name);
Any idea what I am doing wrong, or what I should set?
And the second question is about nesting. I have two spans, a parent span and a child span. I think I set the parenting correctly but in Dynatrace they are not nested. I think all that is required is the following:
Span childSpan = tracer.spanBuilder("child-span").setParent(Context.current().with(parentSpan)).startSpan();
Any ideas?
Thanks in advance and kind regards,
Erik
Solved! Go to Solution.
Hi,
regarding "initial value not set", this means that the attribute is set after span creation, so the OneAgent does not know of it when he decides based on the "Span capturing" settings if the span should be captured or not.
Have you tried directly setting the attribute directly in the
tracer.spanBuilder("span").setAttribute(...)..
And regarding setting the parent, try this:
void parentOne() { Span parentSpan = tracer.spanBuilder("parent").startSpan(); try { childOne(parentSpan); } finally { parentSpan.end(); } } void childOne(Span parentSpan) { Span childSpan = tracer.spanBuilder("child") .setParent(Context.current().with(parentSpan)) .startSpan(); try { // do stuff } finally { childSpan.end(); } }
Let me know if it worked!
Cheers,
Josef
Hi @josef_schiessl ,
Thanks a lot for the reply!
Regarding your first point you are totally right, after also setting the Attributes when creating the Span the message dissapears 🙂
Regarding your second solution about setting the parent. Unfortunately that seems like what I was already doing and even after copying your code 1 on 1, I get the same results. Do you have any other idea what I can try?
Kind regards,
Erik
Hi Erik!
I just verfied this with the team and you are doing everything correct.
This is currently a limitation by the OneAgent, so spans are always reported in a flat hierarchy. But this is currently actively being worked on for all technologies. So this will work in the near future!
Cheers,
Josef
Thanks again for answering, much appreciated!
Any idea when this will be released? I know that the automatic instrumentation is planned for OneAgent 1.237. Will this feature then also be released?
Kind regards,
Erik
Hi,
I cannot give you an ETA - for Java it will not be in 1.237, but as I mentioned, its currently being worked on so it should not be too many versions from that.
Cheers,
Josef
Alright thanks! 🙂
No worries 🙂