Can you give us some more details of your setup? ie. Agent you are using, versions, how are you instrumenting you code, how are your microservices built, etc.
Also how is Service A calling Service B? ie. if you are using Java which library are you specifically using. The call would show depending wether that library is auto-instrumented or not.
I'm using 6.4 of the ELK stack. My two microservices are written in Node.js (javascript). They are instrumented with the following package:
"elastic-apm-node": "^1.11.0",
They have the following code at the top of the
// Add this to the VERY top of the first file loaded in your app
var apm = require('elastic-apm-node').start({
// Set required service name (allowed characters: a-z, A-Z, 0-9, -, _, and space)
serviceName: 'microserviceA',
// Set custom APM Server URL (default: http://localhost:8200)
serverUrl: 'http://apm:8200'
});
microserviceA and microserviceB both speak REST and make calls to each other via an node.js http client. The one we are using is: const httpClient = require('request-promise-native');
i see the average transaction time for a service, but is there no way to see the average of each span?
when i click view spans, it looks like it is specifying a specific span as opposed to some aggregate of spans. I have to explicitly remove the filter. is that normal?
Thomas here, jumping in for Alvaro. If I understand you correctly, you're interested in seeing a "span waterfall" showing all the spans in the trace originating in service A, calling service B, entering service B, and including the spans in service B as well - all on the same screen. This requires a feature called distributed tracing. The span visualization you linked to in the Kibana documentation is for a single service only.
Elastic APM does not yet support distributed tracing. So we can't currently show you all services involved in the request/trace on the same screen. We do record the transaction in each individual service for you, and we do show the external call as a span from one service to the next, but we do not tie them together in the UI.
We are however working on releasing support for distributed tracing soon, so this will be supported in the future. But for now you'll have to manually connect the dots unfortunately, which I know is probably not what you wanted.
I'm sorry of course if I misunderstood your question. If so please let me know
I can't give you any timeframe unfortunately as things can change. But it's one of the next big features we'll be releasing, so it's hopefully not going to be long.
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.