[LTTng学习之旅]------Trace控制--初阶

25 篇文章 6 订阅

Start a session daemon

在使用lttng命令行工具之前,需要先有一个session daemon。

每一个user,都可以有一个自己的session daemon。但是对内核进行trace,必须要root的session daemon。

大多数情况,因为创建record session的指令lttng create会隐式创建一个session daemon。所以本指令不需要执行。也就是说第一步都去执行lttng create了。

指令:

lttng-sessiond --daemonize

--daemonize是指在后台守护进程运行,不加就是在终端内运行。

管理 recording session

recording session是处在用户和session daemon中间的中介。

默认指令:

lttng create

The name of the created recording session is auto followed by the creation date.

trace数据在$LTTNG_HOME/lttng-traces/NAME-DATE-TIME 下。

指定名称和路径:

lttng create my-session --output=/tmp/some-directory

建立之后,会把新建的record session当做当前record session。运用lttng命令行不指定record session会默认和当前record session交互。

To list all the existing recording sessions for your Unix user, or for all users if your Unix user is root:

lttng list

关闭record session,写入trace数据:

lttng destroy

lttng destory 隐式包含lttng stop。

列出可用观测点

可以列出正在运行的可观测用户程序和内核可用观测点。

lttng list加上各种参数:

lttng list --kernel
		   --kernel --syscall
		   --userspace
		   ---------------------
		   java python的先不写了

管理 recording event rule

ER说的很玄乎,但是实际上看起来,就是使能哪些观测点,加上一些类似正则表达式的过滤规则(如果要搞得这么复杂的话)。

Event rule(ER)是 attach到channel上的是。channel是包含在record session里的。

第一次使用lttng enable event,如果没有channel,会自动新建一个default channel。就是channel0。然后操作都是针对这个默认channel来的。

A recording event rule is always enabled at creation time.

使用举例:

lttng enable-event --kernel sched_switch

lttng enable-event --kernel --syscall open,write,read,close

lttng enable-event --kernel sched_switch --filter='prev_comm == "bash"'

lttng enable-event --kernel --all \
                   --filter='$ctx.tid == 1988 || $ctx.tid == 1534'

lttng enable-event --jul my_logger \
                   --filter='$app.retriever:cur_msg_id > 3'

lttng enable-event --userspace my_app:'*' --loglevel=INFO

lttng enable-event --userspace my_app:'*' \
                   --exclude=my_app:set_user,my_app:handle_sig

lttng enable-event --userspace my_app:my_tracepoint \
                   --channel=my-channel

lttng enable-event --kernel \
                   --userspace-probe=/usr/lib/libc.so.6:malloc \
                   libc_malloc

lttng enable-event --kernel \
                   --userspace-probe=sdt:serv:server:accept_request \
                   server_accept_request


所有ER最后形成一份事件白名单,如果多条ER形容的是同一个结果,这个event也只产生一次。

Disable a recording event rule:

lttng-disable-event(1) can only find recording event rules to disable by their instrumentation point type and event name conditions.

lttng disable-event --kernel --channel=my-chan --all-events

lttng disable-event --python my-logger

status of a recording session

当前session状态:

lttng status

别的session状态:

lttng list SESSION

Start and stop a recording session

Once you create a recording session and create one or more recording event rules, you can start and stop the tracers for this recording session.

针对当前record session:

lttng start

lttng stop

如果有event丢失或者sub buffer丢失,stop的时候会打印warnning。

stop会写trace数据让数据可读。

lttng destory隐式包含stop。

Clear a recording session

clear 就是在不中断lttng记录活动的同时删除记录数据。

当前 record session:
lttng clear

全部:
lttng clear --all

建立新的channel

Note that LTTng can automatically create a default channel when you create a recording event rule. Therefore, you only need to create a channel when you need non-default attributes.

只在有必要使用非默认channel属性的时候有必要设置:

--------------------------------------------------------------------
lttng enable-channel --userspace --num-subbuf=4 --subbuf-size=1M \
                     --buffers-pid my-channel

--------------------------------------------------------------------
lttng create
lttng enable-channel --userspace --blocking-timeout=inf blocking-chan
lttng enable-event --userspace --channel=blocking-chan --all
lttng start

LTTNG_UST_ALLOW_BLOCKING=1 my-app

--------------------------------------------------------------------
lttng enable-channel --kernel --tracefile-count=8 \
                     --tracefile-size=4194304 my-channel
--------------------------------------------------------------------
lttng enable-channel --userspace --overwrite my-channel
--------------------------------------------------------------------
一个ER附在多个channel上 可以被记录多次
lttng enable-event --userspace --channel=my-channel app:tp
lttng enable-event --userspace --channel=other-channel app:tp
--------------------------------------------------------------------

禁用通道
lttng disable-channel --kernel my-channel
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小羊苏C

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值