6个版本
0.1.5 | 2024年2月5日 |
---|---|
0.1.4 | 2023年10月19日 |
0.1.2 | 2023年7月24日 |
0.1.1 | 2023年5月7日 |
#160 在 调试 分类中
每月下载 711 次
26KB
498 代码行
tracing-cloudwatch
tracing-cloudwatch是一个自定义的tracing-subscriber层,用于将您的应用程序的跟踪事件(日志)发送到AWS CloudWatch Logs。
使用方法
使用AWS SDK
需要awssdk
功能
use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt};
#[tokio::main]
async fn main() {
let config = aws_config::load_from_env().await;
let cw_client = aws_sdk_cloudwatchlogs::Client::new(&config);
tracing_subscriber::registry::Registry::default()
.with(
tracing_cloudwatch::layer().with_client(
cw_client,
tracing_cloudwatch::ExportConfig::default()
.with_batch_size(5)
.with_interval(std::time::Duration::from_secs(1))
.with_log_group_name("tracing-cloudwatch")
.with_log_stream_name("stream-1"),
)
.with_code_location(true)
.with_target(false),
)
.init();
}
使用Rusoto
需要rusoto
功能
use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt};
#[tokio::main]
async fn main() {
let cw_client = rusoto_logs::CloudWatchLogsClient::new(rusoto_core::Region::ApNortheast1);
tracing_subscriber::registry::Registry::default()
.with(
tracing_cloudwatch::layer().with_client(
cw_client,
tracing_cloudwatch::ExportConfig::default()
.with_batch_size(5)
.with_interval(std::time::Duration::from_secs(1))
.with_log_group_name("tracing-cloudwatch")
.with_log_stream_name("stream-1"),
)
.with_code_location(true)
.with_target(false),
)
.init();
}
所需权限
目前需要以下AWS IAM权限
logs:PutLogEvents
CloudWatch Log Groups and Streams
此crate不会创建日志组和日志流,因此如果指定的日志组和日志流不存在,将引发错误。
重试和超时
在crate中未实现任何自定义重试逻辑或超时设置。我们假设这些配置通过SDK客户端处理。
例如,在AWS SDK中,您可以使用timeout_config
和retry_config
设置这些配置。
许可证
此项目采用MIT许可证。
依赖项
~4–20MB
~251K SLoC