* [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