Skip to content

Commit

Permalink
docs: update readme to clarify that the collector layer should be use…
Browse files Browse the repository at this point in the history
…d alongside language layers (#1665)

* docs: update readme to clarify that the collector layer should be used alongside language layers

* Add clarification of auto vs manual instrumentation for go/dotnet applications
  • Loading branch information
arun-annamalai authored Jan 16, 2025
1 parent 69be75c commit e0a5edf
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 11 deletions.
25 changes: 16 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,20 +8,27 @@

## OpenTelemetry Lambda Layers

The OpenTelemetry Lambda Layers provide the OpenTelemetry (OTel) code to export telemetry asynchronously from AWS Lambda functions. It does this by embedding a stripped-down version of [OpenTelemetry Collector Contrib](/~https://github.com/open-telemetry/opentelemetry-collector-contrib) inside an [AWS Lambda Extension Layer](https://aws.amazon.com/blogs/compute/introducing-aws-lambda-extensions-in-preview/).
The OpenTelemetry Lambda Layers provide the OpenTelemetry (OTel) code to export telemetry asynchronously from AWS Lambda functions. It does this by embedding a stripped-down version of [OpenTelemetry Collector Contrib](/~https://github.com/open-telemetry/opentelemetry-collector-contrib) inside an [AWS Lambda Extension Layer](https://aws.amazon.com/blogs/compute/introducing-aws-lambda-extensions-in-preview/). This allows Lambda functions to use OpenTelemetry to send traces and metrics to any configured backend.

Some layers include the corresponding OTel language SDK for the Lambda. This allows Lambda functions to use OpenTelemetry to send traces and metrics to any configured backend.
There are 2 types of lambda layers
1. Collector Layer - Embeds a stripped down version of the OpenTelemetry Collector
2. Language Specific Layer - Includes language specific nuances to allow lambda functions to automatically consume context from upstream callers, create spans, and automatically instrument the AWS SDK

## Extension Layer Language Support
These 2 layers are meant to be used in conjunction to instrument your lambda functions. The reason that the collector is not embedded in specific language layers is to give users flexibility

* ### [Python + Collector Lambda Layer](python/README.md)
* ### [Java + Collector Lambda Layer](java/README.md)
* ### [NodeJS + Collector Lambda Layer](nodejs/README.md)
* ### [.NET + Collector Lambda Layer](dotnet/README.md)
* ### [Ruby + Collector Lambda Layer](ruby/README.md)
* ### [Go + Collector Lambda Layer](go/README.md)
## Collector Layer
* ### [Collector Lambda Layer](collector/README.md)

## Extension Layer Language Support
* ### [Python Lambda Layer](python/README.md)
* ### [Java Lambda Layer](java/README.md)
* ### [NodeJS Lambda Layer](nodejs/README.md)
* ### [Ruby Lambda Layer](ruby/README.md)

## Additional language tooling not currently supported
* ### [Go Lambda Library](go/README.md)
* ### [.NET Lambda Layer](dotnet/README.md)

## FAQ

* **What exporters/receivers/processors are included from the OpenTelemetry Collector?**
Expand Down
2 changes: 1 addition & 1 deletion dotnet/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# OpenTelemetry Lambda .NET

Nuget package and layer for running .NET applications on AWS Lambda with OpenTelemetry.
Nuget package for running .NET applications on AWS Lambda with OpenTelemetry.

## Provided SDK

Expand Down
6 changes: 5 additions & 1 deletion go/README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
# OpenTelemetry Lambda Go

Layer for running Go applications on AWS Lambda with OpenTelemetry.
Examples of Go applications on AWS Lambda with OpenTelemetry.

## Provided SDK

[OpenTelemetry Lambda SDK for Go](/~https://github.com/open-telemetry/opentelemetry-go-contrib/tree/main/instrumentation/github.com/aws/aws-lambda-go/otellambda) includes tracing APIs to instrument Lambda handler.
For other instrumentations, such as http, you'll need to include the corresponding library instrumentation from the [instrumentation project](/~https://github.com/open-telemetry/opentelemetry-go) and modify your code to use it in your function.

## Provided Layer

[OpenTelemetry Lambda Layer for Collector](https://aws-otel.github.io/docs/getting-started/lambda/lambda-go#lambda-layer) includes OpenTelemetry Collector for Lambda components. Follow [user guide](https://aws-otel.github.io/docs/getting-started/lambda/lambda-go#enable-tracing) to apply this layer to your Lambda handler that's already been instrumented with OpenTelemetry Lambda .NET SDK to enable end-to-end tracing.

## Sample application

The [sample application](/~https://github.com/open-telemetry/opentelemetry-lambda/tree/main/go/sample-apps/function/function.go) shows the manual instrumentations of OpenTelemetry Lambda Go SDK on a Lambda handler that triggers downstream requests to AWS S3 and HTTP.

0 comments on commit e0a5edf

Please sign in to comment.