summary |
shortlog | log |
commit |
commitdiff |
tree
first ⋅ prev ⋅ next
Fred Hebert [Tue, 4 Mar 2014 13:50:28 +0000 (08:50 -0500)]
Bump to 2.1.0
New since 2.0.x:
- queue_fun.awk
- recon_trace
- doc changes
Fred Hebert [Tue, 4 Mar 2014 13:39:55 +0000 (08:39 -0500)]
Merge branch 'tracing'
Fred Hebert [Tue, 4 Mar 2014 13:39:25 +0000 (08:39 -0500)]
Docs overhaul for recon_trace
Fred Hebert [Sat, 1 Mar 2014 22:08:20 +0000 (22:08 +0000)]
Docs & Cleanup
Documentation added, with examples and everything
Cleanup of internal code and moving functions around for a better
organization.
Fred Hebert [Sat, 1 Mar 2014 16:55:45 +0000 (16:55 +0000)]
Allow multiple pidspecs to be specified
This lets someone trace a group of processes, or make more complex rules
like `[new, SomeOldPid]`, which would allow to trace a single existing
pid and all the new ones that will come from now on.
Fred Hebert [Sat, 1 Mar 2014 00:43:33 +0000 (00:43 +0000)]
Be flexible on traceable pid input format
Fred Hebert [Fri, 28 Feb 2014 05:23:34 +0000 (05:23 +0000)]
Allow customizations and options for traces
Options are restricted to calls, and reworded to fit recon's pattern
from basic traces.
The options include:
- pid choice (all, existing, new, Pid)
- timestamp source (in the traces, or added by the formatter)
- args representation (arity or literal args)
- tracing pattern scope (fully qualified calls or local ones also)
Default values will have to be decided.
This patch also includes:
- basic type specs
- fixes to enable arity tracing
Fred Hebert [Fri, 28 Feb 2014 04:27:39 +0000 (04:27 +0000)]
Allow multiple patterns to be traceable
This reworks the API by adding more options -- passing in tuples and/or
lists of tuples representing the MFAs available in calls/4 and calls/5,
and adding a more generic calls/2.
Internally, the order is reversed on a few calls so that all patterns
are added at once, and then processes enabled, allowing a once-at-a-time
trigger of all submitted patterns.
Fred Hebert [Thu, 27 Feb 2014 05:31:11 +0000 (05:31 +0000)]
Initial tracing helpers commit
Fred Hebert [Mon, 10 Feb 2014 12:55:20 +0000 (07:55 -0500)]
Merge pull request #8 from nox/docs-overview-fix-code-block
Fix code block syntax in overview.edoc
Anthony Ramine [Sun, 9 Feb 2014 03:33:06 +0000 (04:33 +0100)]
Fix code block syntax in overview.edoc
Fred Hebert [Wed, 5 Feb 2014 13:45:27 +0000 (08:45 -0500)]
Adding script to match funcalls & msg queues
The awk script allows to go through a crash dump and show the function
currently executing for a process with a large mailbox.
This can hilight, for example, whenever processes die when they overload
the `user' process and are all stock in an io call, or any similar case.
Fred Hebert [Wed, 29 Jan 2014 13:59:02 +0000 (13:59 +0000)]
Bump to 2.0.2
Michal Ptaszek [Wed, 29 Jan 2014 07:18:44 +0000 (08:18 +0100)]
Make recon_alloc:allocators/0 more efficient
Michal Ptaszek [Tue, 28 Jan 2014 18:16:12 +0000 (19:16 +0100)]
Do not crash when allocator info is missing
Fred Hebert [Fri, 13 Dec 2013 13:38:10 +0000 (08:38 -0500)]
Bump to 2.0.1 with R16B03 support
Fred Hebert [Fri, 13 Dec 2013 13:36:15 +0000 (05:36 -0800)]
Merge pull request #6 from garazdawi/master
Update for R16B03
Lukas Larsson [Thu, 12 Dec 2013 13:26:31 +0000 (14:26 +0100)]
Update for R16B03
R16B03 introduced a new feature which is part of the
erlang:system_info(allocator) feature list. All previous
features could be inspected by system_info({allocator,A}),
but sys_aligned_alloc cannot. So the way in which we figure
out the available allocators has been updated.
Fred Hebert [Thu, 21 Nov 2013 18:43:02 +0000 (13:43 -0500)]
Of course, I make a typo on the 2.0.0 changelog!
Fred Hebert [Thu, 21 Nov 2013 18:36:31 +0000 (13:36 -0500)]
Bump to version 2.0.0
Fred Hebert [Thu, 21 Nov 2013 13:54:40 +0000 (08:54 -0500)]
Fix division by zero on usage/2 call
This always used integers, but with the new unit setting for
recon_alloc, it is now possible to get floating point values in there.
This makes the call handle them.
Fred Hebert [Fri, 15 Nov 2013 03:38:55 +0000 (22:38 -0500)]
Adding binary_memory handling for recon:info/2,4
This was requested in issue #5 and allows the user to get information on
the total amount of refc binaries used by a process. The code also puts
some scaffolding in place in order to possibly add similar exceptions
later on if need arises.
Tests included.
Fred Hebert [Thu, 14 Nov 2013 17:37:10 +0000 (12:37 -0500)]
Adding binary_memory handling for proc_attrs
This was requested in issue #5 and allows the user to call
`recon:procs_count` and `recon:procs_window` and sort processes by
the amount of binary memory they refer to.
Fred Hebert [Mon, 4 Nov 2013 14:41:35 +0000 (09:41 -0500)]
Add recon:get_state/2 to allow custom timeouts
If some calls are epxected to take more than 5s, the current get_state
function is useless. This patch allows a customizeable timeout instead.
Fred Hebert [Thu, 31 Oct 2013 00:57:01 +0000 (20:57 -0400)]
Trailing whitespace removal
Fred Hebert [Tue, 29 Oct 2013 22:06:25 +0000 (18:06 -0400)]
Doc fixes
Fred Hebert [Tue, 29 Oct 2013 19:35:01 +0000 (15:35 -0400)]
Dropping parallelism from port_info
This allows better backwards compatibility with all OTP versions
Fred Hebert [Sat, 26 Oct 2013 17:50:02 +0000 (13:50 -0400)]
Newest rebar version
Fred Hebert [Sat, 26 Oct 2013 17:49:46 +0000 (13:49 -0400)]
Expanding tests for v2.0
Fred Hebert [Thu, 24 Oct 2013 01:31:23 +0000 (21:31 -0400)]
Add shorthand recon_alloc:memory/1
Keeps basic backwards compatibility for the sake of it.
Lukas Larsson [Mon, 14 Oct 2013 09:03:37 +0000 (11:03 +0200)]
Add unit conversion for easier comparisons
When working with memory analysis, number often are quite big and become hard
to compare. Therefore it is nice to be able to work in giga/mega/kilo-bytes
depending on what memory you are currently looking at.
This commit adds support for changing which unit is used by all functions that
return a memory size.
Lukas Larsson [Wed, 16 Oct 2013 14:22:37 +0000 (16:22 +0200)]
Added current and max options to sbcs_to_mbcs
This is a backwards incompatible change
Lukas Larsson [Wed, 16 Oct 2013 14:22:10 +0000 (16:22 +0200)]
Rewrite of recon_alloc:memory
Added a two new options; allocated_types and allocated_instances
that can be used to figure out which allocator types/instances most
data lies in.
Added a new parameter to specify whether you want the current or max
value. This works like sbcs_to_mbcs and you want it for the same reasons.
Change memory(used,_) to use the total block size rather than
erlang:memory(total). This number should be the same, but you can also
get the max value.
These changes are backwards incompatible with the old API
Lukas Larsson [Wed, 16 Oct 2013 14:17:04 +0000 (16:17 +0200)]
Update docs for sbcs_to_mbcs
Lukas Larsson [Wed, 16 Oct 2013 14:15:58 +0000 (16:15 +0200)]
Change average_sizes to average_block_sizes
When figuring out what sizes to have in your lmbcs, smbcs or sbct it
is the average block size that is interesting. This is because we
usually want to modify the limits to fit as many blocks as we want in
one carrier. The average carrier size is easy enough to figure out by
just looking at the configurations of the allocators.
This is a backwards incompatible change.
Fred Hebert [Sat, 26 Oct 2013 03:13:46 +0000 (23:13 -0400)]
Adding recon suite
Fred Hebert [Fri, 25 Oct 2013 02:01:49 +0000 (22:01 -0400)]
Adding recon_alloc tests
Fred Hebert [Tue, 15 Oct 2013 17:37:21 +0000 (13:37 -0400)]
Bump to 1.2.0 -- Adding snapshots to recon_alloc
This commit does a few minor fixes to @garazdawi's snapshot addition by
adding a few export clauses, adding or changing the documentation a bit,
and bumping the version number to 1.2.0
Lukas Larsson [Fri, 11 Oct 2013 13:27:33 +0000 (15:27 +0200)]
Add snapshot functionality for offline inspections
When trying to debug memory issues it is not always possible to do
so on the target system. Snapshots in recon_alloc allows the user to
easily save a memory snapshot on the target node and then later analyze
it on some other machine.
The names of the functions in the API (i.e. snapshot_Action) was chosen in
order for the functions to be grouped in the documentation and not clutter
it.
See the documentation in snapshot_load/1 for an example use-case.
Fred Hebert [Mon, 7 Oct 2013 11:46:28 +0000 (04:46 -0700)]
Merge pull request #2 from alco/patch-1
Remove the dot after "vs" for better doc output
Alexei Sholik [Mon, 7 Oct 2013 09:59:08 +0000 (12:59 +0300)]
Remove the dot after "vs" for better doc output
12:50 nox: MononcQc: sbcs_to_mbcs/0: "compares the amount of single block carriers (sbcs) vs. the number of multiblock carriers (mbcs) for each individual allocator in allocator()."
12:50 nox: the first dot after "vs" makes edoc keep only "compares the amount of single block carriers (sbcs) vs." as the function summary
Fred Hebert [Mon, 23 Sep 2013 18:56:38 +0000 (14:56 -0400)]
v1.1.0 no longer a WIP
Fred Hebert [Mon, 23 Sep 2013 01:23:20 +0000 (21:23 -0400)]
bump vsn to 1.1.0
Fred Hebert [Mon, 23 Sep 2013 01:22:02 +0000 (21:22 -0400)]
Merge branch 'allocators'
Conflicts:
.gitignore
Fred Hebert [Sat, 21 Sep 2013 14:31:46 +0000 (10:31 -0400)]
Fixing doc format for edoc
Fred Hebert [Sat, 21 Sep 2013 14:11:17 +0000 (10:11 -0400)]
Updating docs for port_info/1-2 functions
Fred Hebert [Sat, 21 Sep 2013 13:41:30 +0000 (09:41 -0400)]
Adding port_info/1-2 to recon
similar to recon:info/1-2, but for ports, with some port
implementation-specific stats included.
Also extends the recon_lib:term_to_port/1 accepted types.
Fred Hebert [Fri, 20 Sep 2013 13:20:01 +0000 (09:20 -0400)]
Improved documentation and glossary
Fred Hebert [Thu, 19 Sep 2013 11:32:07 +0000 (04:32 -0700)]
Merge pull request #1 from garazdawi/patch-1
The "main multiblock carrier" refers to the initial static carrier
Lukas Larsson [Thu, 19 Sep 2013 08:03:54 +0000 (10:03 +0200)]
The "main carrier" normally refers to the initial static carrier
Fred Hebert [Thu, 19 Sep 2013 03:01:26 +0000 (23:01 -0400)]
Improving documentation for recon_alloc
Adding tips and pointers of what to do to solve problems that can be
found using the functions, following helpful advice from @garazdawi.
Fred Hebert [Tue, 10 Sep 2013 04:10:39 +0000 (00:10 -0400)]
Correcting calls usage
According to erlang:system_info/1 documentation, the format of
calls tuples is `{Key, GigaCalls, Calls}`. The module formerly
used only the `Calls` value, which would have given ridiculous cache hit
values if `GigaCalls` were to become used on a given node.
Fred Hebert [Tue, 10 Sep 2013 03:56:32 +0000 (23:56 -0400)]
Adding sbcs_to_mbcs/0 function
This function checks the ratio of sbcs to mbcs block counts to
figure out if the lmbcs value for a specific kind of allocator
is too low.
Fred Hebert [Tue, 10 Sep 2013 03:21:52 +0000 (23:21 -0400)]
Adding docs, fixing APIs
We drop the dump format support -- not useful and conflicting if only
part of the functions can support it (i.e. not memory/1)
Fred Hebert [Tue, 10 Sep 2013 01:30:54 +0000 (21:30 -0400)]
adding recon_lib:term_to_port/1
Fred Hebert [Sun, 8 Sep 2013 18:07:41 +0000 (14:07 -0400)]
Prototype memory allocator analysis
Still just dabbling with diagnostics
Fred Hebert [Thu, 5 Sep 2013 16:29:16 +0000 (12:29 -0400)]
bump to 1.0.0: adding info/2, info/4
Fred Hebert [Fri, 30 Aug 2013 13:30:00 +0000 (09:30 -0400)]
Making app_deps.erl script support releases
Assuming releases have an apps/ + deps/ structure. apps/ is optional, of
course.
Fred Hebert [Thu, 15 Aug 2013 18:17:33 +0000 (14:17 -0400)]
bin_leak issues over long process lists solved.
nodes with lots of processes can see the GC call fail if said
processes failed between long calls within the `bin_leak` function call.
This patch inserts correct dummy values to avoid the issue.
Fred Hebert [Fri, 9 Aug 2013 17:45:00 +0000 (13:45 -0400)]
Fix recon_lib failing on long ports or proc lists
Nodes with lots of processes or ports can see their proc_count,
proc_window, inet_count, or inet_window functions fail due to a race
condition where:
1. The list of ports or processes is created;
2. The ports or processes are iteratively polled for their properties;
3. Some port or process closes;
4. A badmatch error occurs and the entire function fails.
The error specifically happens in the functions of arity 2 in recon_lib
that made the fetch to each port or process.
The interface of these functions are getting changed to:
- account for the error
- return {ok, State} or {error, Reason} depending on the case
Moreover, the functions of arity 1 in recon_lib that make use of them
are changing so that their list comprehension filters bad data --
which we do not care about anyway.
A similar change is included to respect the new API in recon's refc
binary leak function.
Fred Hebert [Fri, 9 Aug 2013 15:29:19 +0000 (11:29 -0400)]
Better pid handling and conversion
factored out some logic from recon:info/1 into recon_lib:term_to_pid
and allowed arbitrary terms to be used for pids in recon:get_state/1.
Fred Hebert [Wed, 7 Aug 2013 23:08:58 +0000 (19:08 -0400)]
Typoes, more of them always.
Fred Hebert [Wed, 7 Aug 2013 00:31:29 +0000 (20:31 -0400)]
bump to 0.3.0
Fred Hebert [Thu, 1 Aug 2013 20:38:07 +0000 (16:38 -0400)]
Doc fixes, again.
Fred Hebert [Thu, 1 Aug 2013 20:27:18 +0000 (16:27 -0400)]
Adding source link in EDoc.
Fred Hebert [Thu, 1 Aug 2013 20:20:48 +0000 (16:20 -0400)]
Stupid typoes
Fred Hebert [Thu, 1 Aug 2013 20:16:45 +0000 (16:16 -0400)]
Point to github pages for docs
Fred Hebert [Thu, 1 Aug 2013 20:08:25 +0000 (16:08 -0400)]
Adding github static site generator
The generator is not very good, and the design is fairly bad.
It's more or less a placeholder for something when more/better docs
is needed, if the project ever gathers users.
The script will generate content from the EDoc documentation, apply the
styles from site/screen.css and make something nicer than the default
OTP frame-based layout.
Fred Hebert [Thu, 1 Aug 2013 20:05:50 +0000 (16:05 -0400)]
More docs.
Fred Hebert [Tue, 30 Jul 2013 01:18:02 +0000 (21:18 -0400)]
Adding inet_count/2 and inet_window/3 functions
Similar to existing process functions, but for open TCP, UDP, and SCTP
connections.
Fred Hebert [Tue, 30 Jul 2013 01:16:39 +0000 (21:16 -0400)]
Fixing specs & reorder arguments
The proc_window arguments were the wrong way around for the 2nd and 3rd
ones, compared to the type spec.
Fred Hebert [Fri, 19 Jul 2013 21:21:24 +0000 (17:21 -0400)]
Version bump to 0.2.0
Fred Hebert [Fri, 19 Jul 2013 21:20:55 +0000 (17:20 -0400)]
Adding node stats functions
- adds a time_fold and time_map in recon_lib
- typespecs fixed
Fred Hebert [Fri, 19 Jul 2013 20:08:43 +0000 (16:08 -0400)]
Add RPC functions
Fred Hebert [Fri, 19 Jul 2013 19:36:52 +0000 (15:36 -0400)]
Allow to print the source of a module
Fred Hebert [Fri, 19 Jul 2013 19:19:50 +0000 (15:19 -0400)]
Better abstracting, added Doc
Fred Hebert [Fri, 19 Jul 2013 17:50:44 +0000 (13:50 -0400)]
Docs improvements
Fred Hebert [Fri, 19 Jul 2013 17:42:53 +0000 (13:42 -0400)]
BSD 3-clause license
Fred Hebert [Fri, 19 Jul 2013 17:42:21 +0000 (13:42 -0400)]
Adding scripts
- app_deps for application dependencies
- erl_crashdump_analyzer.sh for quick crashdump diagnostics
Fred Hebert [Fri, 19 Jul 2013 16:22:27 +0000 (12:22 -0400)]
Make EDoc generation work and the recommended info
Fred Hebert [Fri, 19 Jul 2013 16:15:06 +0000 (12:15 -0400)]
Adding functions & Doc
New functions for get_state and finding binary leaks
Fred Hebert [Fri, 19 Jul 2013 16:13:39 +0000 (12:13 -0400)]
Deleting accessor functions, adding docs
Fred Hebert [Fri, 19 Jul 2013 16:09:12 +0000 (12:09 -0400)]
Support more pid forms for info/1-3
Also documentation inline.
Fred Hebert [Mon, 8 Jul 2013 14:44:19 +0000 (10:44 -0400)]
Adding warning of incomplete documentation
Fred Hebert [Mon, 8 Jul 2013 14:42:54 +0000 (10:42 -0400)]
Refactoring count & window functions to be generic
Also added shorthand for memory metrics on top of reductions
Fred Hebert [Mon, 8 Jul 2013 14:08:36 +0000 (10:08 -0400)]
More efficient way to look up process_info
Erlang already supports looking up lists of attributes rather than
making N calls for each attribute individually.
Fred Hebert [Fri, 24 May 2013 12:34:07 +0000 (08:34 -0400)]
Add reductions/1, fix reductions sort order
reductions/1 is similar to reductions/2 but doesn't work over a time
window.
both functions sorted on the pid instead of the reduction count.
Reduction count is now the only item used for sorting.
Fred Hebert [Tue, 21 May 2013 00:24:27 +0000 (20:24 -0400)]
Adding port-counting functions
TCP, UDP, SCTP, Files, and global count. Nice to find leaks.
Fred Hebert [Mon, 20 May 2013 23:41:28 +0000 (19:41 -0400)]
Remote code loading fun
Fred Hebert [Mon, 20 May 2013 22:03:00 +0000 (18:03 -0400)]
Reworking structure, adding info/1-3
Fred Hebert [Mon, 6 Aug 2012 18:22:16 +0000 (14:22 -0400)]
delete useless files following renames
I feel shame!
Fred Hebert [Mon, 6 Aug 2012 17:48:45 +0000 (13:48 -0400)]
Initial commit