Skip to content

Commit

Permalink
docs: update README
Browse files Browse the repository at this point in the history
Adds `xray-lite-aws-sdk/README.md`.

Introduces `xray-lite-aws-sdk` in `README.md`.
Bumps the version in the installation instruction to v0.0.7.
  • Loading branch information
kikuomax committed Mar 14, 2024
1 parent 9f0951f commit 7072b54
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 3 deletions.
13 changes: 10 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,21 @@

> [AWS X-Ray](https://aws.amazon.com/xray/) daemon client for Rust applications on [AWS Lambda](https://aws.amazon.com/lambda/)
## Installing
## Installing `xray-lite`

Add the following to your `Cargo.toml` file:

```toml
[dependencies]
xray-lite = { git = "https://github.com/codemonger-io/xray-lite.git", tag = "v0.0.6" }
xray-lite = { git = "https://github.com/codemonger-io/xray-lite.git", tag = "v0.0.7" }
```

## Usage

### Subsegment of AWS service operation

**The [`xray-lite-aws-sdk`](./xray-lite-aws-sdk) extension is recommended for tracing requests through [AWS SDK for Rust](https://aws.amazon.com/sdk-for-rust/).**

Here is an example to record a subsegment of an AWS service operation within a Lambda function invocation instrumented with AWS X-Ray:

```rust
Expand Down Expand Up @@ -106,9 +108,14 @@ fn do_something(context: &impl Context) {
}
```

## Extensions

- [`xray-lite-aws-sdk`](./xray-lite-aws-sdk/): extension for [AWS SDK for Rust](https://aws.amazon.com/sdk-for-rust/)

## API Documentation

<https://codemonger-io.github.io/xray-lite/api/xray_lite/>
- [`xray-lite`](https://codemonger-io.github.io/xray-lite/api/xray_lite/)
- [`xray-lite-aws-sdk`](https://codemonger-io.github.io/xray-lite/api/xray_lite_aws_sdk/)

## Acknowledgements

Expand Down
46 changes: 46 additions & 0 deletions xray-lite-aws-sdk/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# `xray-lite-aws-sdk`

`xray-lite-aws-sdk` is an extension of [`xray-lite`](../) for [AWS SDK for Rust](https://aws.amazon.com/sdk-for-rust/).

## Installing `xray-lite-aws-sdk`

Add the following to your `Cargo.toml` file:

```toml
[dependencies]
xray-lite-aws-sdk = { git = "https://github.com/codemonger-io/xray-lite.git", tag = "aws-sdk-v0.0.1" }
```

## Usage

With this crate, you can easily add the X-Ray tracing capability to your AWS service requests through [AWS SDK for Rust](https://aws.amazon.com/sdk-for-rust/).
It utilizes the [interceptor](https://docs.rs/aws-smithy-runtime-api/latest/aws_smithy_runtime_api/client/interceptors/trait.Intercept.html) which can be attached to `CustomizableOperation` available via the `customize` method of any request builder; e.g., [`aws_sdk_s3::operation::get_object::builders::GetObjectFluentBuilder::customize`](https://docs.rs/aws-sdk-s3/latest/aws_sdk_s3/operation/get_object/builders/struct.GetObjectFluentBuilder.html#method.customize)

The following example shows how to report a subsegment for each attempt of the S3 GetObject operation:

```rust
use aws_config::BehaviorVersion;
use xray_lite::{Client, SubsegmentContext};
use xray_lite_aws_sdk::ContextExt as _;

async fn get_object_from_s3() {
let xray_client = Client::from_lambda_env().unwrap();
let xray_context = SubsegmentContext::from_lambda_env(xray_client).unwrap();

let config = aws_config::load_defaults(BehaviorVersion::latest()).await;
let s3_client = aws_sdk_s3::Client::new(&config);
s3_client
.get_object()
.bucket("the-bucket-name")
.key("the-object-key")
.customize()
.interceptor(xray_context.intercept_operation("S3", "GetObject"))
.send()
.await
.unwrap();
}
```

## API Documentation

<https://codemonger-io.github.io/xray-lite/api/xray_lite_aws_sdk/>

0 comments on commit 7072b54

Please sign in to comment.