Inferred services
Learn how Observe by Snowflake infers services from the spans of your instrumented services.
Observe by Snowflake infers databases, message brokers, and uninstrumented services from the spans your instrumented services send when they call out to them. They appear in APM alongside your instrumented services, so you can see your dependencies and how they perform without adding instrumentation to them.
How services are inferred
The following table summarizes how services are inferred.
| Service | Inferred from | Example |
|---|---|---|
| Database | Outbound client spans with database attributes such as db.system.name and db.statement. | PostgreSQL, MySQL, Redis, MongoDB |
| Message broker | Producer and consumer spans with messaging attributes such as messaging.system and messaging.destination.name for queue or topic level visibility. | Kafka, RabbitMQ, SQS |
| Uninstrumented service | Outbound remote spans with no matching span from the receiving service, identified by server.address and server.port. | Third-party APIs, legacy services, hosts not yet instrumented |
Inferred services only appear if an instrumented service calls them during the selected time range. Their RED metrics are measured from the caller's side, so they include network time and don't reflect what happens inside the service.
Where do inferred services appear?
Inferred services appear in the Service Maps, Database Inspector, Message Broker Inspector, and the Performance Breakdown chart.
Service Maps
All node types appear on the global, dependency, and endpoint-scoped maps, with RED metrics on each node and edge so you can see every external system a service relies on.
In this example, our Service Map is in Error rate mode. Inferred services, such as Kafka, show their logo inside the node. Uninstrumented services are shown with a dotted outline:

Here's how to read the nodes based on their color and outline. You can also hover on any node to view its tooltip to get clarity:
| Node | Description |
|---|---|
| Uninstrumented node in Service health mode | Purple dotted outline. |
| Uninstrumented node in Error rate mode | Light blue dotted outline, such as currency and flagd in this example. |
| Nodes with no service entry points in either Service health or Error rate mode | Dark blue dotted outline, such as fraud-detection, and the node with accounting in this example. |
Database Inspector
View the statements and operations run against each database, along with their latency and error rates.

Message Broker Inspector
Find the topics and queues each broker handles, and spot which ones are bottlenecks.

Performance breakdown chart
See how much of a service's time is spent waiting on databases, brokers, and external calls. Group by additional granularity like operation, queue, port.

Updated 7 days ago