Modern distributed systems rely heavily on asynchronous communication through message queues and streaming platforms. Understanding message flow, throughput, and processing failures is critical for maintaining system reliability.
Monitoring service message processing in Dynatrace addresses this need by providing comprehensive visibility into message-based transactions across your microservices architecture, helping you track throughput, identify bottlenecks, and resolve processing issues.
In Dynatrace, message processing refers to any transaction involving message queues or streaming platforms like Kafka, RabbitMQ, ActiveMQ, and AWS SQS. This includes messages published to topics, received from queues, and processed by consuming services.
Service message processing monitoring helps you understand how messages flow through your distributed systems, detect processing bottlenecks, and identify failures in asynchronous communication patterns.
You can access service message processing directly from
Services, or through custom dashboards and alerts configured to monitor messaging metrics.
This feature is designed for SREs, developers, and platform engineers who need visibility into asynchronous communication patterns and message processing health.
Service message processing monitoring provides:
Dynatrace provides four core metrics for monitoring message processing:
| Metric | Description | Unit |
|---|---|---|
dt.service.messaging.publish.count | Messages sent to queues/topics | count |
dt.service.messaging.receive.count | Messages received from queues/topics | count |
dt.service.messaging.process.count | Messages successfully processed | count |
dt.service.messaging.process.failure_count | Messages that failed processing | count |
| Dimension | Description | Example values |
|---|---|---|
messaging.destination.name | Queue or topic name | authorQueue, orderEvents |
dt.entity.service | Service identifier | spring-kafka-producer |
messaging.system | Messaging platform | kafka, rabbitmq, aws_sqs |
aws.account.id | AWS account identifier | 123456789012 |
aws.region | AWS region | us-east-1 |
k8s.cluster.name | Kubernetes cluster name | prod-cluster |
k8s.namespace.name | Kubernetes namespace | payment-services |
To begin monitoring service message processing
Services, select the Explorer tab, and select Message processing.Monitor service messaging throughput:
timeseries throughput = sum(dt.service.messaging.process.count),by: {dt.smartscape.service}| lookup [smartscapeNodes "SERVICE" | fields name,id],sourceField:dt.smartscape.service, lookupField:id| fieldsAdd `Service` = lookup.name, dt.smartscape.service| summarize throughput = sum(throughput[]),by: { timeframe, interval, `Service`, dt.smartscape.service }
Calculate service messaging failure rate:
timeseries { throughput = sum(dt.service.messaging.process.count),failure_count = sum(dt.service.messaging.process.failure_count) },by: {dt.smartscape.service}, nonempty:true, union:true| lookup [ smartscapeNodes "SERVICE" | fields name, id],sourceField:dt.smartscape.service, lookupField:id| fieldsAdd `Service` = lookup.name, dt.smartscape.service| summarize failure_rate = sum((failure_count[] / throughput[]) * 100),by: { timeframe, interval, `Service`, dt.smartscape.service }
Services