RousselTMLEARNING

Observability

Service types in Dynatrace: web, database, messaging, custom and unified services

What a service is for Dynatrace, the automatically detected service types (web requests, web services, databases, messaging, remote calls, unified services), custom services and detection rules.

1. What is a service? #

The logical level of requests.

Definition #

For Dynatrace, a service is an entry point that receives requests: a web application, an API, a message consumer, a database seen from the application. It sits above processes: one process group can expose several services, and a service can run in many instances.

Services are linked by distributed traces (PurePaths) and appear in the Smartscape topology: this is what lets Davis follow how a problem spreads.

2. Automatically detected types #

Depending on the technology.

Main types #

TypeWhat creates itExamples
Web requestsinstrumented HTTP entry pointSpring, ASP.NET Core, Express REST APIs
Web servicescontract-described services (SOAP, WCF)SOAP, WCF
Databasecalls to a database from the applicationPostgreSQL, Oracle, MongoDB, Redis
Messagingmessage consumptionKafka, JMS, RabbitMQ
Remote callsRPC protocolsgRPC, RMI
Unified servicesOpenTelemetry traces or span dataOTel-instrumented services
External (opaque) servicesoutgoing calls to an unmonitored systempartner API, SaaS
Good to know: A cache such as Redis or a queue such as Kafka is not a separate “service type”: seen from the application, Redis appears as a database, and Kafka message consumption as a messaging service. Containers are infrastructure entities, not services.
Depending on the version: Unified services and span-based service detection come with the new platform; exact type names may vary depending on the environment version.

3. Custom services and rules #

When automatic detection is not enough.

Custom services #

Processing without a standard entry point (Java batch, scheduled task, home-made listener) does not appear as a service. A custom service declares an entry method (class and method): each call then becomes a service request, with its timings and errors.

Detection and naming rules #

Detection rules let you merge identical services (same application on several ports) or split them (one application serving several customers). Naming rules replace technical names with meaningful ones.

Good practice: Name services after the business function and environment (for example payment-api [prod]): alerts, SLOs and dashboards become readable by everyone.

Commands to know #

Select services with an entity selector (API v2, configuration):

type(SERVICE),serviceType(DATABASE_SERVICE)
type(SERVICE),tag("env:prod"),entityName.startsWith("paiement")
type(SERVICE),fromRelationships.runsOnProcessGroupInstance(type(PROCESS_GROUP_INSTANCE),tag("team:shop"))
curl -H "Authorization: Api-Token $DT_TOKEN" \
  "$DT_URL/api/v2/entities?entitySelector=type(SERVICE),serviceType(DATABASE_SERVICE)&fields=properties.serviceType"

Full syntax: Mastering entity selectors.

Related articles

Accessing the Dynatrace playground and getting started

The Dynatrace playground is a demo environment full of real data: how to access it, what it allows and does n…

Grail buckets in Dynatrace: creation, routing, retention, rights and costs

Complete guide to Grail buckets: purpose, default buckets, creation in Storage management, with the API or Te…

The Dynatrace QuickStart app: getting your first data in minutes

Discover the QuickStart app: add data with Auto Discovery or a dedicated tile, read Findings, explore with da…

Keep learning

Support us

♥ SUPPORT US

Support RousselTM Learning

Courses, articles, labs and certificates stay free with no intrusive ads. A voluntary contribution, of any amount you choose, pays for hosting, lab environments and new content.

Contribute with PayPal Any amount · card or PayPal accountLearn more
QR code PayPal
Or scan this QR code with your phone

Thank you, every contribution counts!