Can Wire Data Be APM?
I recently read something – a blog, a tweet, a LinkedIn article perhaps –
describing the use of wire data to analyze application performance. I
remember that the author’s use of the term “APM” in this context caused
one reader to comment, complaining that “you can’t call wire data APM.”
This was around the same time I referred casually to Dynatrace’s wire data
offering (Data Center Real User Monitoring, or DC RUM) as both “APM for IT
Operations” and “probe-based APM.” So that complaint has stuck with me,
prompting me to ask – and offer an answer to – the question.
It depends, of course, on answers to related questions. How do you define
APM? What role does APM play in your organization? What APM insights can wire
data provide? Let’s take a brief look at each of these.
What is APM to you?
In very general terms (Wikipedia is great for this), APM ... (more)
When we think of application performance problems that are network-related,
we often immediately think of bandwidth and congestion as likely culprits;
faster speeds and less traffic will solve everything, right? This is
reminiscent of recent ISP wars; which is better, DSL or cable modems? Cable
modem proponents touted the higher bandwidth while DSL proponents warned of
the dangers of sharing the network with your potentially bandwidth-hogging
neighbors. In this blog entry, we'll examine these two closely-related
constraints, beginning the series of performance analyses using the ... (more)
In Part II, we discussed performance constraints caused by both bandwidth and
congestion. Purposely omitted was a discussion about packet loss - which is
often an inevitable result of heavy network congestion. I'll use this blog
entry on TCP slow-start to introduce the Congestion Window (CWD), which is
fundamental for Part IV's in-depth review of Packet Loss.
TCP uses a slow-start algorithm as it tries to understand the characteristics
(bandwidth, latency, congestion) of the path supporting a new TCP connection.
In most cases, TCP has no inherent understanding of th... (more)
In Part IV, we wrapped up our discussions on bandwidth, congestion and packet
loss. In Part V, we examine the four types of processing delays visible on
the network, using the request/reply paradigm we outlined in Part I.
Server Processing (Between Flows)
From the network's perspective, we allocate the time period between the end
of a request flow and the beginning of the corresponding reply flow to server
processing. Generally speaking, the server doesn't begin processing a request
until it has received the entire flow, i.e., the last packet in the request
message; similarly, th... (more)
In Part V, we discussed processing delays caused by "slow" client and server
nodes. In Part VI, we'll discuss the Nagle algorithm, a behavior that can
have a devastating impact on performance and, in many ways, appear to be a
Common TCP ACK Timing
Beyond being important for (reasonably) accurate packet flow diagrams,
understanding "normal" TCP ACK timing can help in the effective diagnosis of
certain types of performance problems. These include those introduced by the
Nagle algorithm, which we will discuss here, and application windowing, to be
discussed in Par... (more)