Grafana Cloud

Uninstrumented services

Uninstrumented services are external services that Application Observability detects from client-side telemetry data. These services don’t have direct instrumentation, but Application Observability infers their presence from the spans generated by instrumented services that communicate with them.

Common examples of uninstrumented services include:

  • Third-party APIs, for example, payment gateways or authentication providers
  • External databases
  • Message queues
  • Other services outside your control

What’s available for uninstrumented services

For uninstrumented services, Application Observability displays a limited view that includes:

  • RED (Rate, Errors, Duration) metrics
  • Inbound connection tables showing which services call the uninstrumented service

Outbound connection tables typically show no data for uninstrumented services.

To view uninstrumented services in the services catalog, use the toggle in the top right to select Uninstrumented or All.

How uninstrumented services are detected

Application Observability detects uninstrumented services using the service graph metrics processor. This processor analyzes trace data to identify services referenced in spans, even when those services don’t send telemetry directly.

Service naming with Grafana Cloud Traces

If you use Grafana Cloud Traces for metrics generation, the uninstrumented service name is determined by the first available attribute in this order:

  1. peer.service
  2. db.namespace
  3. db.name
  4. db.system
  5. db.system.name
  6. messaging.system
  7. db.url
  8. server.address
  9. net.peer.name

The service graph processor uses the first attribute it finds from this list as the service name.

Service naming with OpenTelemetry Collector

If you use the OpenTelemetry Collector or Grafana Alloy, configure your service graph connector with the virtual_node_peer_attributes setting.

The following example shows the default configuration. Modify the order or add attributes based on your requirements:

YAML
virtual_node_peer_attributes:
  - peer.service
  - db.namespace
  - db.name
  - db.system
  - db.system.name
  - messaging.system
  - db.url
  - server.address
  - net.peer.name

The attributes are evaluated in order, and the first match determines the uninstrumented service name.

Next steps