#tracing #logging #metrics #telemetry #plugin-system

tracing-attributes-hyper

No-op 属性占位符,用于 Hyper 编译时跟踪插件系统

1 个不稳定版本

0.0.0 2022年2月27日

#plugin-system 中排名第 41

MIT 许可证

9KB

tracing-attributes-hyper

此 crate 正在开发中,应在版本 > 0.0 之前使用

一个 proc-macro crate,为 Tracing 提供在 Hyper 中的占位符跨度。

许多项目更喜欢或需要应用程序生成特定的结构化日志数据。此外,定制的跟踪逻辑通常不能发布到注册表中。

Hyper 不对您的应用程序施加跟踪数据偏好。Hyper 不要求您的跟踪逻辑被发布。

相反,此 crate 作为占位符,您的应用程序将

  1. [dependencies] 部分:重定向到已发布的 crate,或
  2. [patch] 部分:重定向到已发布的 crate(例如 github 等)。

此模式重新利用 Cargo 的 [patch](以及 [dependencies])从 [覆盖依赖项],作为 Hyper 跟踪的编译时插件系统。

Hyper 使用 tracing-attributes-http crate 的子集,因此这是一个功能默认值。

示例

已发布

如果 Hyper 跟踪插件已发布到 crates.io

[dependencies]
tracing-attributes-hyper = { version = "0.2", package = "tracing-attributes-http" }

未发布

将未发布的 Hyper 跟踪逻辑统一插入所有项目中(见以下说明),稳定 在 Rust 版本 >= 1.56

# ~/.cargo/config.toml
# Your Cargo configuration details

[patch.crates-io]
tracing-attributes-hyper = {
    git = https://github.com/taqtiqa-mark/tracing-attributes-http,
    features = ["otel"]
  }

将特定于一个项目的未发布跟踪逻辑插入

# Cargo.toml
[package]
# Your Hyper based application details

[patch.crates-io]
tracing-attributes-hyper = {
    git = https://github.com/taqtiqa-mark/tracing-attributes-http,
    features = ["otel", "http-optional"]
  }

注意:

如果给定的依赖项在 cargo 配置文件和 Cargo.toml 文件中都被修复,则使用配置文件中的修复。如果有多个配置文件修复了同一个依赖项,则使用标准的 cargo 配置合并,优先使用当前目录下定义的值,其中 $HOME/.cargo/config.toml 的优先级最低。

开发

为了发布 crate

cargo login <api-token>
cargo publish
cargo publish --dry-run

许可协议

许可协议为以下之一

任选其一。

贡献

除非您明确声明,否则您提交给作品以供包含的任何贡献(根据 Apache-2.0 许可协议定义),都应按照上述方式许可,不附加任何额外条款或条件。

依赖项

~1.5MB
~36K SLoC