When using service maps, you can't view the full set of entities or the relationships between entities that you expect to see.
Make sure that the entities are being monitored with an agent. If you have a mix of agents with some having distributed tracing turned on and some having it turned off, you will not see the relations between those agents. The solution for this scenario is to run all agents either with distributed tracing turned on (preferred) or turn it off for all agents. If this does not remedy the issue, the service you're trying to view may require manual instrumentation.
When you view applications and services that we automatically instrument in service maps, you'll usually see complete and detailed data for those nodes in the distributed tracing UI. However, you may notice that some of these services or applications are missing from service maps.
Some browser apps are exceptions to this, and may be missing because:
- Relationships for copy and paste browser agents are not detected.
- Only the relationships for injected browser agents is shown (the app the agent is injected into). Call relationships (for example, AJAX calling to other apps) are not displayed.
If services or apps are missing, you may want to implement custom instrumentation of applications or specific transactions to see more detail in traces. Some examples of when you may need to do this:
- Transactions not automatically instrumented. To ensure your application is automatically instrumented, read the compatibility and requirements documentation for the agent you're using. If an application isn't automatically instrumented, or if you'd like to add instrumentation of specific activity, see Custom instrumentation.
- All Go applications. The Go agent, unlike other agents, requires manual instrumentation of your code. For instructions, see Instrument a Go application.
- A service doesn't use HTTP. If a service doesn't communicate via HTTP, the agent won't send distributed tracing headers. This may be the case for some non-web applications or message queues. To remedy this, use the distributed tracing APIs to instrument either the calling or called application.