使用 babeltrace API 计算流中的所有事件

维塔利克·布沙耶夫

我有一个LTTNg跟踪,我正在使用 babeltrace API 对其进行解析。所以我想知道是否可以在不迭代它们的情况下计算跟踪(或流)中的所有事件。我可以使用 publilc API 的哪些函数来做到这一点?

埃普

CTF 的本质使得无法在恒定时间内对给定数据包的事件记录进行计数。数据包的上下文可能以某种方式包含一个事件记录计数字段,但没有指定,因此通用工具不会使用它。

因此,不幸的是,计算事件的唯一方法是迭代事件记录。最简单的方法是统计工具text格式babeltrace(1)打印的行数

babeltrace /path/to/ctf/trace/directory | wc --lines

只要每个打印的事件记录有一行,这种情况就可以工作,除非事件记录包含具有换行符的字符串字段(当前未在文本输出中转义),否则就是这种情况。

您可能还希望考虑丢弃的事件记录。它们不会由 打印到标准输出babeltrace(1),但是当检测到它们时,该工具会打印一条消息,包括标准错误的计数。

当前babeltrace(1)工具无法仅打印属于给定数据流的数据包的事件记录。如果您需要这个,我建议您删除所有数据流文件,除了需要事件记录计数的数据流文件,然后再次运行上面的命令。

还要考虑 Babeltrace Python 绑定,例如(测试):

import babeltrace


def count_ctf_event_records(path):
    trace_collection = babeltrace.TraceCollection()
    trace_collection.add_trace(path, 'ctf')
    return sum(1 for event in trace_collection.events)


if __name__ == '__main__':
    import sys

    print(count_ctf_event_records(sys.argv[1]))

另存为count.py,你可以试试这个:

python3 count.py /path/to/ctf/trace/directory

使用 Python 绑定计算特定数据流的事件记录作为练习留给读者。

话虽如此,我不知道 Python 绑定方法是否比babeltrace(1)一种更快

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用API从Google Plus社区获取所有事件

来自分类Dev

如何使用 babeltrace python 绑定从 lttng ctf 跟踪中获取 debug_info?

来自分类Dev

如何使用Google Calendar API从Google Calendar获取所有事件

来自分类Dev

如何使用 opengraph api 从 facebook 页面获取所有事件

来自分类Dev

对所有事件使用jQuery .on()

来自分类Dev

Office 365 APIs Preview中的日历REST API-并非所有事件

来自分类Dev

通过API将整个Google日历(所有事件)导出到文件中

来自分类Dev

如何使用Chrome查看DOM中的所有事件处理程序

来自分类Dev

获取接下来 24 小时的所有事件,包括 Office365 API 中的当前事件

来自分类Dev

使用rfind,流程挑战查找所有事件?

来自分类Dev

使用rfind,流程挑战查找所有事件?

来自分类Dev

列出我可以使用的所有事件?

来自分类Dev

在 Google Action 中使用 API.AI 启动带有事件的 Intent

来自分类Dev

使用流API在列表中查找项目的所有索引

来自分类Dev

如何在node js中使用tronweb获取tron网络中合同的所有事件日志?

来自分类Dev

使用MySQL记录所有表上的所有事件

来自分类Dev

Google API ruby客户端显然无法获取所有事件

来自分类Dev

Google API ruby客户端显然无法获取所有事件

来自分类Dev

克隆容器以供重新使用,以后不附加所有事件和元素

来自分类Dev

fullcalendar-如何使用ajax在日历上加载所有事件

来自分类Dev

使用Sysmon进行网络监视不会监视所有事件

来自分类Dev

如何使用Ansible在未知计算机上收集所有事实?

来自分类Dev

即使使用匿名函数或绑定注册OpenLayers事件,JavaScript闭合也会在循环内触发所有事件

来自分类Dev

如何在 r 中使用 plotly 显示每个事件本身的所有事件持续时间

来自分类Dev

在使用流API的Java 8中,如何从Map返回实例并需要进行多次计算

来自分类Dev

如何使用lua api读取表格中的所有项目?

来自分类Dev

使用php从json api数组中获取所有内容

来自分类Dev

YouTube API具有事件的多个视频

来自分类Dev

Flask(使用看门狗)和uWSGI-文件系统中没有事件

Related 相关文章

  1. 1

    使用API从Google Plus社区获取所有事件

  2. 2

    如何使用 babeltrace python 绑定从 lttng ctf 跟踪中获取 debug_info?

  3. 3

    如何使用Google Calendar API从Google Calendar获取所有事件

  4. 4

    如何使用 opengraph api 从 facebook 页面获取所有事件

  5. 5

    对所有事件使用jQuery .on()

  6. 6

    Office 365 APIs Preview中的日历REST API-并非所有事件

  7. 7

    通过API将整个Google日历(所有事件)导出到文件中

  8. 8

    如何使用Chrome查看DOM中的所有事件处理程序

  9. 9

    获取接下来 24 小时的所有事件,包括 Office365 API 中的当前事件

  10. 10

    使用rfind,流程挑战查找所有事件?

  11. 11

    使用rfind,流程挑战查找所有事件?

  12. 12

    列出我可以使用的所有事件?

  13. 13

    在 Google Action 中使用 API.AI 启动带有事件的 Intent

  14. 14

    使用流API在列表中查找项目的所有索引

  15. 15

    如何在node js中使用tronweb获取tron网络中合同的所有事件日志?

  16. 16

    使用MySQL记录所有表上的所有事件

  17. 17

    Google API ruby客户端显然无法获取所有事件

  18. 18

    Google API ruby客户端显然无法获取所有事件

  19. 19

    克隆容器以供重新使用,以后不附加所有事件和元素

  20. 20

    fullcalendar-如何使用ajax在日历上加载所有事件

  21. 21

    使用Sysmon进行网络监视不会监视所有事件

  22. 22

    如何使用Ansible在未知计算机上收集所有事实?

  23. 23

    即使使用匿名函数或绑定注册OpenLayers事件,JavaScript闭合也会在循环内触发所有事件

  24. 24

    如何在 r 中使用 plotly 显示每个事件本身的所有事件持续时间

  25. 25

    在使用流API的Java 8中,如何从Map返回实例并需要进行多次计算

  26. 26

    如何使用lua api读取表格中的所有项目?

  27. 27

    使用php从json api数组中获取所有内容

  28. 28

    YouTube API具有事件的多个视频

  29. 29

    Flask(使用看门狗)和uWSGI-文件系统中没有事件

热门标签

归档