ah-net
Tracks async hook events related to network operations.
Installation
npm install ah-net
API
NetworkActivityCollector
Instantiates a NetworkActivityCollector.
Most of the actual processing of resources is performed by th @see NetworkResourceProcessor.
Extends ActivityCollector and thus exposes the same public API with added functionality.
Parameters
-
$0.start
Array<number> the start time of the process, i.e. the result ofprocess.hrtime()
-
$0.stackCapturer
StackCapturer? see ah-stack-capturer which configures how and when stacks traces are captured and processed.By default a StackCapturer is used that captures stacks for all events for file system related types:FSREQWRAP
,FSREQUESTWRAP
and some others likeTickObject
s that also are related, i.e. if they contain information related to streams. (optional, defaultStackCapturer
) -
$0.bufferLength
number? determines how many elements of Buffers are captured. By default not Buffer data is captured. (optional, default0
) -
$0.stringLength
number? determines how much of each string is captured. By default no string data is captured. (optional, default0
) -
$0.captureArguments
boolean? iftrue
arguments of callbacks are captured when they are processed. (optional, defaultfalse
) -
$0.captureSource
boolean? iftrue
the source code of callbacks is captured when they are processed. (optional, defaultfalse
)
NetworkResourceProcessor
Extends ResourceProcessor
The Network processor grabs information off the network socket itself, the server if present.
In the case of an http request the HTTPPARSR resource is present. It has a lot of useful properties attached to it, including incoming and outgoing http messages.
Below is a condensed outline of the HTTPARSER properties that are most relevant:
{
socket: {
_httpMessage {
_header
, statusMessage
, statusCode
, _headerSent
, finished
...
}
, _handle: { fd, reading, _parent }
, server: { _connectionKey }
}
, incoming {
httpVersion*
, headers: { host, connection }
, upgrade
, url
, method
, statusCode
, statusMessage
}
}
License
MIT