Gain visibility into hosted databases, cloud services APIs, and message systems with Inferred Services
by Talia Moyal
At Lightstep, we know the value of full-system observability, but understand that there are points in microservice architectures that are outside of a team’s instrumentation scope. So when some of our customers asked for help gaining visibility into the components of their system that they weren’t able to instrument explicitly, we knew there had to be a solution.
Whether cloud services APIs, databases, or message systems, Lightstep can now provide rich developer-centric insights into how those resources are affecting every aspect of your application’s performance.
To address these low-visibility points in the system, you can now define service boundaries with tags, allowing Inferred services to be generated in the Service Diagram, helping developers see beyond their instrumentation limitations.
How it works
To identify an inferred service, you need:
- A tag (specific key:value) that must be on the leaf span
- A tag key that labels the inferred service
For example, if a request is calling out to a SQL database, you might create (or already have) a
db.type tag with a value of
sql. Lightstep will collect information for any span that uses that tag name/value pair, and allow you to visualize performance at the inferred service boundary, as illustrated by the
sql service contributing to latency in the gif below.
Once the tags are in place, the Lightstep platform simply needs to know to be on the lookout for these tags as an Inferred Service. To do this, specify the tags in the Inferred Service Settings section in your Lightstep Project Settings –– and that’s it!
Note: Instrumentation requirements may vary. For example, standard Google Cloud libraries in Go and the jdbc library for Java will already have tags that enable inferred services.
Gotta catch ‘em all
Software development moves fast and relies on a vast network of connected services, many of which are outside of your direct control as a developer (see: Deep Systems).
Don’t let databases, caches, or external APIs be blind spots. With Lightstep, you can track the performance of these hard-to-instrument dependencies like any other piece of your stack.