I'll give both nhttpsnoop and older versions of node a try shortly, haven't
had a chance to get back at it since last night. I'll reply if anything
interesting turns up.

Thanks!

On Mon, Feb 5, 2018 at 2:42 PM, David Pacheco <[email protected]> wrote:

> On Sun, Feb 4, 2018 at 8:02 AM, Brad Gardner <[email protected]> wrote:
>
>> Hello!
>>
>> I'm working on learning to use DTrace to profile NodeJS applications and
>> have hit a wall that I'm hoping to get some additional insight on.
>>
>> I have a NodeJS application that is sending an HTTP request to
>> https://example.com every 5 seconds. This is working and getting a
>> proper response.
>>
>> *I'm using the following DTrace script:*
>>
>> #pragma D option quiet
>>
>> node*:::http-client-request
>> {
>>                 printf("Connection to %s:%d on fd %d - Request %s: %s\n",
>>                     args[1]->remoteAddress, args[1]->remotePort,
>> args[1]->fd,
>>                     args[0]->method, args[0]->url);
>> }
>>
>> *Output:*
>>
>> [root@00-0c-29-ab-31-af /development]# dtrace -s ./test.d
>> Connection to undefined:0 on fd 0 - Request GET: /
>> Connection to undefined:0 on fd 0 - Request GET: /
>> Connection to undefined:0 on fd 0 - Request GET: /
>>
>> It appears to me that all of the args[1] properties are not assigned and
>> giving back default values (undefined or 0 depending on type).
>>
>> *The documentation for this probe lists the arguments:*
>>
>> 12437  node35247              node _ZN4node26DTRACE_HTTP_CLIENT_R
>> EQUESTERKN2v820FunctionCallbackInfoINS0_5ValueEEE http-client-request
>>
>>         Probe Description Attributes
>>                 Identifier Names: Private
>>                 Data Semantics:   Private
>>                 Dependency Class: Unknown
>>
>>         Argument Attributes
>>                 Identifier Names: Evolving
>>                 Data Semantics:   Evolving
>>                 Dependency Class: ISA
>>
>>         Argument Types
>>                 args[0]: node_http_request_t *
>>                 args[1]: node_connection_t *
>>                 args[2]: string
>>                 args[3]: int
>>                 args[4]: string
>>                 args[5]: string
>>                 args[6]: int
>>
>>
>> The node_http_request_t struct properties appear to work, while the
>> node_connection_t properties do not.
>>
>> I'm not sure where to go next in debugging this, or determining what I've
>> misconfigured.
>>
>> This is running on a SmartOS VM, running NodeJS 8.4.
>>
>> Any insight, or a kick in the right direction would be greatly
>> appreciated.
>>
>
>
> It's been a while since I dug into the internals, and I usually use
> "nhttpsnoop" when I use these probes.  But what you're doing seems
> reasonable.   Does it work reliably with an older version (such as Node
> 0.10)?
>
> -- Dave
>



-------------------------------------------
dtrace-discuss
Archives: https://www.listbox.com/member/archive/184261/=now
RSS Feed: https://www.listbox.com/member/archive/rss/184261/25769126-e243886f
Modify Your Subscription: 
https://www.listbox.com/member/?member_id=25769126&id_secret=25769126-8d47a7b2
Powered by Listbox: http://www.listbox.com

Reply via email to