Articles of 跟踪

nginx / redis和处理URL跟踪参数

我在我的网站上使用nginx和redis。 对于我的网站上的几个项目,我想添加跟踪参数到他们的url,以便当用户点击一个项目时,我可以收集用户请求的内容用户服务的统计数据。 我正在寻找如何从nginx获取redis中的统计信息的方法,也就是说,不需要打开后台应用程序。 例如,假设我在页面上有几行表格,每个表格都以行/列格式保存着项目。 因此,对于{table:2,row:1,column:3}中的项目,如果实际的url是:www.mysite.com/news/dodi,那么我想要embeddedurl:www.mysite.com/news /多迪/天= 29?表= 2&行= 1&柱= 3。 当用户点击它时,nginx会触发redis来获取内容,并更新相应的统计信息(这里可以是第29天,第2天……)。 任何build议我如何实现这一点,而不击中背景应用程序?

用Babeltrace构buildPerf(Perf到CTF转换)

我正在尝试使用TraceCompass来进一步调查我的系统跟踪。 为此,您需要CTF格式,并且在Linux中有两种可能的方式来获取它:afaik: 使用LTTng来追踪和使用CTF格式 使用“perf数据转换”来创build来自perf.data的CTF数据 我一直在尝试使用第二个选项,因为第一个选项需要安装跟踪点,而我从perf获取的内容对我来说已经足够了。 所以假设我有我的perf.data可用,应用 perf data convert –to-ctf=./ctf 导致: 没有编译版本的支持。从lwn挖掘在线资源,我发现,这种转换不是没有babeltrace可用。 为了安装babeltrace,我尝试了以下方法: 第一个: sudo apt-get install libbabeltrace-ctf-dev libbabeltrace-ctf1 libbabeltrace1 libbabeltrace-dev python3-babeltrace 这并没有完全解决的问题: 没有版本支持编译在。 第二个 我已经尝试从源代码构buildbabeltrace。 我挖掘并预先发现了它的所有依赖关系: sudo apt-get install dh-autoreconf bison libdw-dev libelf-dev flex uuid-dev libpopt-dev git clone git://git.efficios.com/babeltrace.git cd babeltrace ./bootstrap sudo ./configure –prefix=/opt/libbabeltrace LDFLAGS=-L/usr/local/lib sudo make -j4 prefix=/opt/libbabeltrace sudo make install prefix=/opt/libbabeltrace […]

我们需要什么样的特权才能在linux中跟踪进程

我们似乎可以跟踪跟踪function的其他进程? 操作系统有义务提供这样的接口。 显然我们可以在系统调用的时候获得隐藏密码等数据,这是一个风险。 有没有一种机制来防止追踪过程?

石蕊rt调度痕迹

我想收集我的RT任务(截止date – 完成)的调度信息。 当我按照https://wiki.litmus-rt.org/litmus/Tracing上的教程,我收到错误:“无法打开feathertrace设备(/ dev / litmus / sched_trace13):没有这样的文件或目录”。 我知道教程指出,sched_trace设备的默认位置可能需要更改,但我似乎无法find正确的位置。 我想我要做的事情应该相当容易,我错过了什么?

ltrace(库跟踪工具)如何工作?

ltrace如何工作? 它如何发现程序的调用库函数? 所有对库函数的调用都有通用的代码path吗? 也许ltrace在这个公共代码path中设置断点? 谢谢!

跟踪程序中的所有调用?

程序安装在2台电脑上。 某个图书馆在一台电脑上正常工作,但在另一台电脑上却不工作。 我想知道一个图书馆是否失踪。 我正在使用strace,所以我可以看到程序在运行时正在调用哪些库。 所有由strace提到的库都是正确的,但strace还能检测到一个库是否调用另一个库或文件? 任何方式来检测这种情况?

如何跟踪所有本地函数调用并退出,并将其logging到文件中进行检查

我想在Linux下跟踪一个C程序,logging所有的函数调用,并以树的forms返回。 例如,源代码: void a () { printf("a\n"); } void b () { printf("b\n"); } void c () { a(); b(); } int main() { a(); b(); c(); } 我想要一个输出如下: call main call a exit a call b exit b call c call a exit a call b exit b exit c exit main 这是一个理想的输出。 我只想获得本地函数调用和返回的所有过程,所以类似的输出也是受欢迎的。

Linux跟踪进程访问的所有文件?

有没有办法跟踪给定进程的所有文件I / O? 我真正需要的是从给定进程读取/写入文件的位置(理想情况下,如果是读取或写入操作,尽pipe这不重要)。 我可以运行该stream程并跟踪它,而不需要附加到现有stream程,我认为这个stream程要简单得多。 有没有什么包装实用程序,我可以运行一个进程,虽然这将监视文件访问?

lttng中错误的时间戳

我正在尝试使用lttng来分析远程系统上的调度。 但是,使用babeltrace将跟踪显示为文本格式显示所有logging的事件具有相同的时间戳。 因此,TraceCompass中的可视化失败。 thomas@horrorshow: babeltrace ~/temp/lttng/my-trace/MySystem/my-session-20170608-133943/ | head [13:41:59.444999936] (+?.?????????) MySystem sched_stat_runtime: { cpu_id = 0 }, { comm = "lttng-sessiond", tid = 1533, runtime = 5016120, vruntime = 451268995605 } [13:41:59.444999936] (+0.000000000) MySystem sched_waking: { cpu_id = 0 }, { comm = "lttng-consumerd", tid = 1547, prio = 20, target_cpu = 0 } [13:41:59.444999936] […]

在Linux上收集有关线程调度的信息

我想收集有关我的线程计划(和预定)以及Linux上哪些CPU的信息。 我很高兴收集信息并将其存储在一个文件中,以便以后离线分析,因为我需要将调度信息与我的代码生成的其他事件源合并。 理想情况下,信息将由程序本身收集,因为我打算大部分时间使用机器上的所有内核,并且使用外部进程进行采样会干扰我想测量的执行。 那么这在Linux上是可能的吗? 有什么select?