recon, 在生产中,用于调试Erlang的函数和脚本的集合

分享于 

7分钟阅读

GitHub

  繁體 雙語
Collection of functions and scripts to debug Erlang in production.
  • 源代码名称:recon
  • 源代码网址:http://www.github.com/ferd/recon
  • recon源代码文档
  • recon源代码下载
  • Git URL:
    git://www.github.com/ferd/recon.git
    Git Clone代码到本地:
    git clone http://www.github.com/ferd/recon
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/ferd/recon
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    侦察

    Recon希望是一组能够在生产中使用来诊断Erlang问题或者安全检查生产环境的工具。

    要构建库:

     
    rebar3 compile
    
    
    
     

    可以在 http://ferd.github.io/recon/ 获得该库的文档。

    建议你使用标签,如果不希望这里库出血边缘和开发内容。

    当前状态

    Build Status

    支持的版本:R15B02和 up

    变更日志

    分支按版本组织。 master 包含出血边缘,2.x 包含到最新版本的所有稳定变化,1.x 包含第一个版本的攻击的所有稳定变化。

    2.x

    • 2.3.5
      • 修复timefold迭代中的第一个问题,通过在采样前休眠来避免调用站点处的错误
    • 2.3.4
      • 修复了一些下游包装尝试的edoc标签
    • 2.3.3
      • 修复 bin_leak rcl错误
      • recon_alloc:allocators/1的修复( 包括R16兼容性)
      • 修正调度程序墙上时间计算中的错误
      • term_to_pid 支持二进制文件
    • 2.3.2
      • 允许 recon_trace 中的return_to 选项
      • 更有效的排序和端口属性排序功能( 感谢 @zhongwencool 和 @pichi) )
      • 允许在 recon_trace:calls/2-3 中使用 return_trace,而不是 fun(_) -> return_trace() end
    • 2.3.1
      • 更新了 app_deps 脚本以运行rebar3依赖项
      • 次要文档更新
    • 2.3.0
      • Doc在 recon:proc_countrecon:proc_window 语义方面变得更加清晰。
      • 修复文档错误
      • 修正等待进程死亡时的潜在竞争条件
      • 添加一个允许发送跟踪输出的选项,而不是 group_leader() ( 感谢 @djnym) )
      • 添加在跟踪时传递自定义格式化程序函数的能力( 感谢 @iilyak)
    • 2.2.1
      • recon:port_types/0recon_lib:count/1的固定类型规格,感谢 @lucafavatella
      • 次要文档修复。
    • 2.2.0:
      • 添加计划程序信息度量以获得比顶部和CPU更精确的图片。
      • 扩展 recon_trace:calls/2 接口以允许多个匹配规范,目前仅允许 calls/3
      • 支持 erts_allocmbcs_pool 数据,以及一些内部重构,感谢 Lukas Larsson。
    • 2.1.2:
      • 修复R15B02和up的测试
      • 为R15B03的recon_alloc 操作修复向磁盘转储的向后兼容性
    • 2.1.1:
      • recon_trace:mfa() 类型重命名为 recon_trace:tspec() 以避免在旧的Erlang版本中出现问题( 请感谢 Roberto Aloi )
    • 2.1.0:
      • 添加 recon_trace 脚本以允许对生产节点上的函数调用进行安全跟踪。
      • 添加 queue_fun.awk 脚本以检查故障转储中具有大型邮箱的进程的运行函数。
    • 2.0.2:
      • 当某些预期分配器不返回结果时,防止 recon_alloc 中出现崩溃( 感谢 Michal Ptaszek )
    • 2.0.1:
      • recon_alloc 中添加对R16B03的支持。
    • 2.0.0:
      • 测试套件已经添加
      • recon_alloc的主要重写,感谢 Lukas Larsson。 更改的内容包括:
        • average_sizes/0 被重命名为 average_block_sizes/1,现在接受关键字 currentmax
        • 文档更新。
        • memory/1allocated_typesallocated_instances 中有新选项。
        • 已经添加 memory/2,它允许在 currentmax 值之间进行选择。 memory(Term)memory(Term, current) 等效。
        • 允许 sbcs_to_mbcs/0 接受参数 currentmax
        • 增加了单位转换函数 set_unit/1,允许以字节( 默认值),千字节,兆字节和兆字节的形式获取 recon_alloc 结果,以帮助提高可读性。
      • 如果有人使用了内部 rebar 版本,则更新它。
      • recon:port_info/1meta 类别中默认不包含 parallelism 选项,因为这会损害某些安装的向后兼容性。
      • 添加 recon:get_state/2 以指定超时。 recon:get_state/1 保持它的5000毫秒超时。
      • recon:info/2,4recon:proc_count/2recon:proc_window/3 中添加了一个名为 binary_memory的伪属性。 这里属性允许获取refc二进制文件用于进程的内存量,并根据计数和 Windows 对它的进行排序。

    1.x

    • 1.2.0:
      • 添加 recon_alloc:snapshot* 函数,允许在磁盘上执行内存分配快照,保存,重新加载和按需分析。 感谢 Lukas Larsson对此功能的支持。
      • port_info 中删除 parallelism 数据,以便更好地向后兼容,减少信息丢失。
    • 1.1.0:
      • 添加 recon_lib:term_to_port 以将字符串转换回可用端口。
      • 添加 recon:port_info/1recon:port_info/2
      • 添加 recon_alloc 模块
    • 1.0.0: 添加 info/2info/4。 为了避免在类型和特定进程属性之间进行冲突时,memory 信息类型被重命名为 memory_used。 模块导出的类型也会得到更新。
    • 0.4.2: 扩展 app_deps.erl 以读取发行版的应用程序/目录
    • 0.4.1: 固定 Bug,如果说在 bin_leak 函数调用中的长调用失败,那么有大量进程的节点会失败。
    • 0.4.0: 固定 Bug,它的中大量进程或者端口可以看到它的计数或者窗口函数失败,因为在函数启动和。 这最终将 recon_lib 中的API更改为窗口和计数函数,作为一个参数作为参数。
    • 0.3.1: 把 recon:info/1 中的一些逻辑分解成 recon_lib:term_to_pid,并允许在 recon:get_state/1 中使用任意术语进行 pid。

    COL  Collect  FUNC  函数  collection  DEB  
    相关文章