Docs » Using the µAPM User Interface » Inferred Services

Inferred Services 🔗

Traces can contain client spans with no corresponding server span. Typically, this means there’s a call into a service that is not traced. This can be because the service belongs to an external service provider (e.g., a PagerDuty API), or any service that isn’t traced for technical and/or organizational reasons. Databases often fall into this category. The existence of the client span lets us infer the existence of the service.

You can use µAPM to understand how calls to untraced services affect your service’s performance, so those services can be ruled in or out as a cause of increased error rate or latency.

For a “big picture” overview of your environment, see the Services page.

To instrument your code for inferred services in SignalFx microservices µAPM, see Inferred Services Instrumentation.

What is an inferred service? 🔗

SignalFx automatically detects many common types of inferred services, such as a web service, message queue, or caching server. When an inferred service is detected, the service node is shown with a dotted outline in the service map.

../../_images/service-map.png

In zoomed-out view, inferred services of the same type, connected to the same service(s), are grouped together (shown as a stacked icon) for all service maps. Note that message queues are the only inferred service types that are excluded from grouping.

../../_images/grouped-services.png

Note

Since we don’t have an instrumented span on the inferred service, we can’t create metric time series for inferred services based on traces. Therefore, inferred services do not show up in the Services table. In addition, built-in service dashboards are not available for inferred services.

Zooming into an inferred service 🔗

The zoomed-in view of an inferred service in the service map shows the service and its immediate dependencies.

../../_images/zoomed-in-2.png

For a group of inferred services that are clustered together in the service map, there is a link for each inferred service name at the top of the service map.

../../_images/group-of-seven.png

Click the link to zoom into the inferred service.

../../_images/zoom-in-dbInstance1.png

Tooltip information for inferred services 🔗

Hovering over an inferred service node in the service map displays a tooltip that shows information about the inferred service type. Possible values include database, cache, publish/subscribe, or http. Each service type is represented by a different shape. If the service type is unknown or unspecified, the type is not displayed. Metrics are not available for inferred services.

../../_images/tool-tip.png

View traces for inferred services 🔗

From the zoomed-in view of an inferred service in the service map, click View Traces to search across all traces and display a “slice and dice” view for that inferred service.

../../_images/view-traces.png

You can also view traces that go through inferred services by selecting them from the Service: Endpoint/Operation filter on the Traces tab.

../../_images/service-pulldown-traces.png

Note

If you filter on a particular inferred service within a group of inferred services, that service will show up separate from the grouped services in the filtered view.

../../_images/filter-trace.png

Hovering over the inferred service node in the Dependency Map displays a tooltip that shows information about the inferred service(s), including service type, service name(s), requests, error rate, and latency. Metrics are not available for inferred services.

../../_images/dependency-tooltip.png
../../_images/hover-tooltip-group.png

Inferred service names are shown in the trace group description.

../../_images/trace-group-description.png

Outlier analysis for inferred services 🔗


Outlier Analyzer is available in SignalFx Enterprise Edition.


When Top Operations are spans to inferred services, it is shown with an an arrow pointing to the inferred service name in the table.

../../_images/top-operations.png

View a Trace page for inferred services 🔗

When a span is a client span to an inferred service, it is shown with an arrow pointing to the inferred service in the View a Trace page.

../../_images/view-a-trace.png

Click on a span to view the full details of a span’s metadata in the sidebar. The following example illustrates a span from the signalboost service in which we inferred elasticsearch:elasticsearch-traces.

inferred service span sidebar information

Searching for spans on inferred services 🔗

You can search spans by service name by clicking in the Search Spans field, and either typing the service name or selecting the service name in the dropdown.

../../_images/search-spans.png

Top contributors for inferred services 🔗

When a span in the Top Contributors table is a client span to an inferred service, it is shown with an arrow pointing to the inferred service.

../../_images/top-contributors.png