#tracing #tracing-subscriber #ffi

tracing-ext-ffi-subscriber

用于FFI主机分析器的简单转发跟踪订阅者

3个不稳定版本

0.2.0 2023年7月19日
0.1.1-pre12022年6月1日
0.1.0 2022年5月24日

#271性能分析

Download history 10/week @ 2024-03-09 1/week @ 2024-03-16 39/week @ 2024-03-30 7/week @ 2024-04-06 30/week @ 2024-04-13

148 每月下载量

MIT/Apache

24KB
275

⏱️ tracing-ext-ffi-subscriber

用于通过FFI将Rust库中的跨度传递到宿主应用程序中的分析工具的订阅者。

Embark Embark Crates.io Docs dependency status Build status

这是一个简单的crate,用于在Rust集成到现有框架时,将跟踪生态系统生成的跨度传递到C或C++分析系统。要帮助与其他工具集成,您可以使用环境变量TRACING_FFI_RELATIVE_OUT_DIR来配置包含文件相对于构建输出的位置(OUT_DIR)。例如,TRACING_FFI_RELATIVE_OUT_DIR = "../../../../../include"通常会导致生成的文件位于与您的Cargo.toml相邻的include目录中。

示例用法

#include <Profiling.h>
#include <tracing_ffi.h>
#include <myrustlib.h>

int main(int argc, const char* argv[]) {
    tracing_ffi_ReturnCode result = tracing_ffi_install_global_with_enable(
        profiling_begin_named_scope,
        profiling_end_named_scope,
        profiling_is_enabled,
    );

    if (result != tracing_ffi_ReturnCode_Success) {
        return (int)result;
    }

    myrustlib_execute(10, 20);

    profiling_write_file("profile.json");
}

当然,您也可以从Rust代码中配置它,并绕过C-api。在这种情况下,直接使用subscriber::ExternFFISpanSubscriber,并使用您首选的tracing方法进行安装。

贡献

Contributor Covenant

我们欢迎社区对此项目的贡献。

有关如何开始的信息,请参阅我们的贡献指南。在您做出任何贡献之前,请阅读我们的贡献条款

任何有意提交以包含在Embark Studios项目中的贡献,均应遵守Rust标准许可模式(MIT OR Apache 2.0),因此将双重许可,如下所述,不附加任何额外条款或条件。

许可证

此贡献根据以下任一许可进行双重许可:

任选其一。

为了明确起见,“您的”指的是Embark或任何其他贡献许可方/用户。

依赖关系

~0.8–7MB
~39K SLoC