* [lttng-dev] babeltrace2 python api related question @ 2022-08-10 7:01 zenan via lttng-dev 2022-08-10 14:07 ` Philippe Proulx via lttng-dev 0 siblings, 1 reply; 5+ messages in thread From: zenan via lttng-dev @ 2022-08-10 7:01 UTC (permalink / raw) To: lttng-dev [-- Attachment #1.1: Type: text/plain, Size: 374 bytes --] Hi there, I’m trying to use babeltrace2 python bindings to track live lttng trace, as shown in some examples in the documents, I tried to use ctf.lttng-live( ctf.fs in the documents) plugin as source, and use text.pretty as sink, but it didn’t work out as I expected. So does the api support tracking live lttng trace and print them out yet? Yours sincerely [-- Attachment #1.2: Type: text/html, Size: 2303 bytes --] [-- Attachment #2: Type: text/plain, Size: 156 bytes --] _______________________________________________ lttng-dev mailing list lttng-dev@lists.lttng.org https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [lttng-dev] babeltrace2 python api related question 2022-08-10 7:01 [lttng-dev] babeltrace2 python api related question zenan via lttng-dev @ 2022-08-10 14:07 ` Philippe Proulx via lttng-dev 2022-08-14 8:48 ` zenan via lttng-dev 0 siblings, 1 reply; 5+ messages in thread From: Philippe Proulx via lttng-dev @ 2022-08-10 14:07 UTC (permalink / raw) To: zenan; +Cc: lttng-dev On Wed, Aug 10, 2022 at 9:54 AM zenan via lttng-dev <lttng-dev@lists.lttng.org> wrote: > > > > Hi there, > > I’m trying to use babeltrace2 python bindings to track live lttng trace, as shown in some examples in the documents, I tried to use ctf.lttng-live( ctf.fs in the documents) plugin as source, and use text.pretty as sink, but it didn’t work out as I expected. So does the api support tracking live lttng trace and print them out yet? > > What did you try exactly? I need command lines and/or some code (keep it minimal) to help you. Philippe > > > > Yours sincerely > > _______________________________________________ > lttng-dev mailing list > lttng-dev@lists.lttng.org > https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev _______________________________________________ lttng-dev mailing list lttng-dev@lists.lttng.org https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev ^ permalink raw reply [flat|nested] 5+ messages in thread
* [lttng-dev] babeltrace2 python api related question 2022-08-10 14:07 ` Philippe Proulx via lttng-dev @ 2022-08-14 8:48 ` zenan via lttng-dev 2022-08-15 20:29 ` Philippe Proulx via lttng-dev 0 siblings, 1 reply; 5+ messages in thread From: zenan via lttng-dev @ 2022-08-14 8:48 UTC (permalink / raw) To: Philippe Proulx, lttng-dev [-- Attachment #1.1: Type: text/plain, Size: 2582 bytes --] In command line, I use “babeltrace2 net://somehost/some-session” to read live lttng session trace, and I want to use python bindings to do the same, is it possible? here is my code: import bt2 import sys # Create an empty graph. graph = bt2.Graph() # Add a `source.text.dmesg` component. # # graph.add_component() returns the created and added component. # # Such a component reads Linux kernel ring buffer messages (see # `dmesg(1)`) from the standard input and creates corresponding event # messages. See `babeltrace2-source.text.dmesg(7)`. # # `my source` is the unique name of this component within `graph`. # the original source code here in the example is: # comp_cls = bt2.find_plugin('text').source_component_classes['dmesg'] # src_comp = graph.add_component(comp_cls,'my source') comp_cls = bt2.find_plugin('ctf').source_component_classes['lttng-live'] src_comp = graph.add_component(comp_cls, 'my source', params = { 'inputs': [sys.argv[1]], }) # Add a `sink.text.pretty` component. # # Such a component pretty-prints event messages on the standard output # (one message per line). See `babeltrace2-sink.text.pretty(7)`. # # The `babeltrace2 convert` CLI command uses a `sink.text.pretty` # sink component by default. comp_cls = bt2.find_plugin('text').sink_component_classes['pretty'] sink_comp = graph.add_component(comp_cls, 'my sink') # Connect the `out` output port of the `source.text.dmesg` component # to the `in` input port of the `sink.text.pretty` component. graph.connect_ports(src_comp.output_ports['out'], sink_comp.input_ports['in']) # Run the trace processing graph. graph.run() 发件人: Philippe Proulx 发送时间: 2022年8月10日 22:08 收件人: zenan 抄送: lttng-dev@lists.lttng.org 主题: Re: [lttng-dev] babeltrace2 python api related question On Wed, Aug 10, 2022 at 9:54 AM zenan via lttng-dev <lttng-dev@lists.lttng.org> wrote: > > > > Hi there, > > I’m trying to use babeltrace2 python bindings to track live lttng trace, as shown in some examples in the documents, I tried to use ctf.lttng-live( ctf.fs in the documents) plugin as source, and use text.pretty as sink, but it didn’t work out as I expected. So does the api support tracking live lttng trace and print them out yet? > > What did you try exactly? I need command lines and/or some code (keep it minimal) to help you. Philippe > > > > Yours sincerely > > _______________________________________________ > lttng-dev mailing list > lttng-dev@lists.lttng.org > https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev [-- Attachment #1.2: Type: text/html, Size: 8340 bytes --] [-- Attachment #2: Type: text/plain, Size: 156 bytes --] _______________________________________________ lttng-dev mailing list lttng-dev@lists.lttng.org https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [lttng-dev] babeltrace2 python api related question 2022-08-14 8:48 ` zenan via lttng-dev @ 2022-08-15 20:29 ` Philippe Proulx via lttng-dev 2022-08-16 2:29 ` 蛋丁 via lttng-dev 0 siblings, 1 reply; 5+ messages in thread From: Philippe Proulx via lttng-dev @ 2022-08-15 20:29 UTC (permalink / raw) To: zenan; +Cc: lttng-dev On Sun, Aug 14, 2022 at 4:48 AM zenan <dantefu9001@163.com> wrote: > > In command line, I use “babeltrace2 net://somehost/some-session” to read live lttng session trace, and I want to use python bindings to do the same, is it possible? > > here is my code: Almost there. Some `src.ctf.lttng-live` component and message iterator methods may return a "try again" status code (I don't remember exactly under which circumstances). This propagates to bt_graph_run() [1] (in C) eventually which itself returns `BT_GRAPH_RUN_STATUS_AGAIN`. The Python bt2.Graph.run() method translates this status code to throwing `bt2.TryAgain`. Just catch those `bt2.TryAgain`, wait a bit, and call `graph.run()` again: # Run the trace processing graph. while True: try: graph.run() except bt2.TryAgain: time.sleep(.1) Works for me. If you ever need to access the messages themselves instead of forwarding them to a `sink.text.pretty` component, then use a `bt2.TraceCollectionMessageIterator` instance [2]. Hope it helps, Phil [1]: https://babeltrace.org/docs/v2.0/libbabeltrace2/group__api-graph.html#gad2e1c1ab20d1400af1b552e70b3d567c [2]: https://babeltrace.org/docs/v2.0/python/bt2/examples.html#iterate-trace-events > > import bt2 > import sys > > # Create an empty graph. > graph = bt2.Graph() > > # Add a `source.text.dmesg` component. > # > # graph.add_component() returns the created and added component. > # > # Such a component reads Linux kernel ring buffer messages (see > # `dmesg(1)`) from the standard input and creates corresponding event > # messages. See `babeltrace2-source.text.dmesg(7)`. > # > # `my source` is the unique name of this component within `graph`. > > # the original source code here in the example is: > # comp_cls = bt2.find_plugin('text').source_component_classes['dmesg'] > # src_comp = graph.add_component(comp_cls,'my source') > comp_cls = bt2.find_plugin('ctf').source_component_classes['lttng-live'] > src_comp = graph.add_component(comp_cls, 'my source', params = { > 'inputs': [sys.argv[1]], > }) > > # Add a `sink.text.pretty` component. > # > # Such a component pretty-prints event messages on the standard output > # (one message per line). See `babeltrace2-sink.text.pretty(7)`. > # > # The `babeltrace2 convert` CLI command uses a `sink.text.pretty` > # sink component by default. > comp_cls = bt2.find_plugin('text').sink_component_classes['pretty'] > sink_comp = graph.add_component(comp_cls, 'my sink') > > # Connect the `out` output port of the `source.text.dmesg` component > # to the `in` input port of the `sink.text.pretty` component. > graph.connect_ports(src_comp.output_ports['out'], sink_comp.input_ports['in']) > > # Run the trace processing graph. > graph.run() > > > > > > 发件人: Philippe Proulx > 发送时间: 2022年8月10日 22:08 > 收件人: zenan > 抄送: lttng-dev@lists.lttng.org > 主题: Re: [lttng-dev] babeltrace2 python api related question > > > > On Wed, Aug 10, 2022 at 9:54 AM zenan via lttng-dev > > <lttng-dev@lists.lttng.org> wrote: > > > > > > > > > > > > Hi there, > > > > > > I’m trying to use babeltrace2 python bindings to track live lttng trace, as shown in some examples in the documents, I tried to use ctf.lttng-live( ctf.fs in the documents) plugin as source, and use text.pretty as sink, but it didn’t work out as I expected. So does the api support tracking live lttng trace and print them out yet? > > > > > > > > > > What did you try exactly? > > > > I need command lines and/or some code (keep it minimal) to help you. > > > > Philippe > > > > > > > > > > > > > > Yours sincerely > > > > > > _______________________________________________ > > > lttng-dev mailing list > > > lttng-dev@lists.lttng.org > > > https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev > > _______________________________________________ lttng-dev mailing list lttng-dev@lists.lttng.org https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [lttng-dev] babeltrace2 python api related question 2022-08-15 20:29 ` Philippe Proulx via lttng-dev @ 2022-08-16 2:29 ` 蛋丁 via lttng-dev 0 siblings, 0 replies; 5+ messages in thread From: 蛋丁 via lttng-dev @ 2022-08-16 2:29 UTC (permalink / raw) To: Philippe Proulx; +Cc: lttng-dev [-- Attachment #1.1: Type: text/plain, Size: 4071 bytes --] It works, thank you for helping out!!! At 2022-08-16 04:29:51, "Philippe Proulx" <eeppeliteloop@gmail.com> wrote: >On Sun, Aug 14, 2022 at 4:48 AM zenan <dantefu9001@163.com> wrote: >> >> In command line, I use “babeltrace2 net://somehost/some-session” to read live lttng session trace, and I want to use python bindings to do the same, is it possible? >> >> here is my code: > >Almost there. > >Some `src.ctf.lttng-live` component and message iterator methods may >return a "try again" status code (I don't remember exactly under which >circumstances). This propagates to bt_graph_run() [1] (in C) eventually >which itself returns `BT_GRAPH_RUN_STATUS_AGAIN`. The Python >bt2.Graph.run() method translates this status code to throwing >`bt2.TryAgain`. > >Just catch those `bt2.TryAgain`, wait a bit, and call `graph.run()` >again: > > # Run the trace processing graph. > while True: > try: > graph.run() > except bt2.TryAgain: > time.sleep(.1) > >Works for me. > >If you ever need to access the messages themselves instead of forwarding >them to a `sink.text.pretty` component, then use a >`bt2.TraceCollectionMessageIterator` instance [2]. > >Hope it helps, > >Phil > >[1]: https://babeltrace.org/docs/v2.0/libbabeltrace2/group__api-graph.html#gad2e1c1ab20d1400af1b552e70b3d567c >[2]: https://babeltrace.org/docs/v2.0/python/bt2/examples.html#iterate-trace-events > >> >> import bt2 >> import sys >> >> # Create an empty graph. >> graph = bt2.Graph() >> >> # Add a `source.text.dmesg` component. >> # >> # graph.add_component() returns the created and added component. >> # >> # Such a component reads Linux kernel ring buffer messages (see >> # `dmesg(1)`) from the standard input and creates corresponding event >> # messages. See `babeltrace2-source.text.dmesg(7)`. >> # >> # `my source` is the unique name of this component within `graph`. >> >> # the original source code here in the example is: >> # comp_cls = bt2.find_plugin('text').source_component_classes['dmesg'] >> # src_comp = graph.add_component(comp_cls,'my source') >> comp_cls = bt2.find_plugin('ctf').source_component_classes['lttng-live'] >> src_comp = graph.add_component(comp_cls, 'my source', params = { >> 'inputs': [sys.argv[1]], >> }) >> >> # Add a `sink.text.pretty` component. >> # >> # Such a component pretty-prints event messages on the standard output >> # (one message per line). See `babeltrace2-sink.text.pretty(7)`. >> # >> # The `babeltrace2 convert` CLI command uses a `sink.text.pretty` >> # sink component by default. >> comp_cls = bt2.find_plugin('text').sink_component_classes['pretty'] >> sink_comp = graph.add_component(comp_cls, 'my sink') >> >> # Connect the `out` output port of the `source.text.dmesg` component >> # to the `in` input port of the `sink.text.pretty` component. >> graph.connect_ports(src_comp.output_ports['out'], sink_comp.input_ports['in']) >> >> # Run the trace processing graph. >> graph.run() >> >> >> >> >> >> 发件人: Philippe Proulx >> 发送时间: 2022年8月10日 22:08 >> 收件人: zenan >> 抄送: lttng-dev@lists.lttng.org >> 主题: Re: [lttng-dev] babeltrace2 python api related question >> >> >> >> On Wed, Aug 10, 2022 at 9:54 AM zenan via lttng-dev >> >> <lttng-dev@lists.lttng.org> wrote: >> >> > >> >> > >> >> > >> >> > Hi there, >> >> > >> >> > I’m trying to use babeltrace2 python bindings to track live lttng trace, as shown in some examples in the documents, I tried to use ctf.lttng-live( ctf.fs in the documents) plugin as source, and use text.pretty as sink, but it didn’t work out as I expected. So does the api support tracking live lttng trace and print them out yet? >> >> > >> >> > >> >> >> >> What did you try exactly? >> >> >> >> I need command lines and/or some code (keep it minimal) to help you. >> >> >> >> Philippe >> >> >> >> > >> >> > >> >> > >> >> > Yours sincerely >> >> > >> >> > _______________________________________________ >> >> > lttng-dev mailing list >> >> > lttng-dev@lists.lttng.org >> >> > https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev >> >> [-- Attachment #1.2: Type: text/html, Size: 5194 bytes --] [-- Attachment #2: Type: text/plain, Size: 156 bytes --] _______________________________________________ lttng-dev mailing list lttng-dev@lists.lttng.org https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2022-08-16 17:50 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2022-08-10 7:01 [lttng-dev] babeltrace2 python api related question zenan via lttng-dev 2022-08-10 14:07 ` Philippe Proulx via lttng-dev 2022-08-14 8:48 ` zenan via lttng-dev 2022-08-15 20:29 ` Philippe Proulx via lttng-dev 2022-08-16 2:29 ` 蛋丁 via lttng-dev
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox