You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+16-6Lines changed: 16 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,18 +17,28 @@ There are 2 types of lambda layers
17
17
18
18
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
19
19
20
+
## Combined Layers (New)
21
+
22
+
**Simplified Deployment**: We now offer combined layers that bundle both the language-specific instrumentation and the collector into a single layer. This approach:
23
+
- Reduces the number of layers from 2 to 1
24
+
- Simplifies configuration and deployment
25
+
- Maintains all the functionality of the separate layers
26
+
- Is available for Python, Node.js, Java, Ruby, and Go
27
+
28
+
Combined layers are ideal for users who want a simpler deployment model without sacrificing functionality. For detailed information about combined layers, see the language-specific README files below.
Copy file name to clipboardExpand all lines: go/README.md
+38Lines changed: 38 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,6 +11,44 @@ For other instrumentations, such as http, you'll need to include the correspondi
11
11
12
12
[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.
13
13
14
+
## Combined OpenTelemetry Lambda Layer
15
+
16
+
**New**: We now offer a simplified deployment option with a combined layer that includes the OpenTelemetry Collector. Since Go uses manual instrumentation, this layer provides the collector component to work with your manually instrumented Go Lambda functions.
17
+
18
+
### What's included in the combined layer:
19
+
-**OpenTelemetry Collector** - Built-in collector that exports telemetry data from your manually instrumented Go function to your configured backend
20
+
-**Optimized for Go** - Lightweight layer that complements manual instrumentation in Go applications
21
+
-**Configuration files** - Pre-configured collector settings optimized for Lambda environments
22
+
23
+
### Benefits:
24
+
-**Single layer deployment** - Just add the collector layer to your manually instrumented Go function
25
+
-**Simplified configuration** - Pre-configured for optimal Lambda performance
26
+
-**Production-ready** - Battle-tested collector configuration for serverless environments
27
+
28
+
### Usage:
29
+
Unlike other languages, Go requires manual instrumentation using the [OpenTelemetry Go SDK](https://github.com/open-telemetry/opentelemetry-go-contrib/tree/main/instrumentation/github.com/aws/aws-lambda-go/otellambda). The combined layer provides the collector component to export the telemetry data generated by your instrumented code.
30
+
31
+
To use:
32
+
1. Manually instrument your Go Lambda function using the OpenTelemetry Go SDK
33
+
2. Add the combined layer to your Lambda function
34
+
3. Configure the collector endpoint in your Go code to send telemetry to the local collector
35
+
36
+
For detailed build instructions, see the build script at `go/build-combined.sh` in this repository.
37
+
38
+
### Environment variables
39
+
40
+
Required:
41
+
-`LOGZIO_TRACES_TOKEN` – account token for traces
42
+
-`LOGZIO_METRICS_TOKEN` – account token for metrics
43
+
-`LOGZIO_LOGS_TOKEN` – account token for logs
44
+
-`LOGZIO_REGION` – Logz.io region code (for example, `us`, `eu`)
45
+
46
+
Optional:
47
+
-`OTEL_SERVICE_NAME` – explicit service name
48
+
-`OTEL_RESOURCE_ATTRIBUTES` – comma-separated resource attributes (for example, `service.name=my-func,env_id=${LOGZIO_ENV_ID},deployment.environment=${ENVIRONMENT}`)
49
+
-`LOGZIO_ENV_ID` – environment identifier you can include in `OTEL_RESOURCE_ATTRIBUTES` (for example, `env_id=prod`)
50
+
-`ENVIRONMENT` – logical environment name you can include in `OTEL_RESOURCE_ATTRIBUTES` (for example, `deployment.environment=prod`)
51
+
14
52
## Sample application
15
53
16
54
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.
Copy file name to clipboardExpand all lines: java/README.md
+40Lines changed: 40 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -59,6 +59,46 @@ For any other library, such as OkHttp, you will need to include the correspondin
59
59
from the [instrumentation project](https://github.com/open-telemetry/opentelemetry-java-instrumentation) and
60
60
modify your code to initialize it in your function.
61
61
62
+
### Combined layer
63
+
64
+
**New**: We now offer a simplified deployment option with a combined layer that bundles both the OpenTelemetry Java instrumentation (agent or wrapper) and the collector into a single layer. This reduces the number of layers you need to manage and simplifies your Lambda function configuration.
65
+
66
+
#### What's included in the combined layer:
67
+
-**Java OpenTelemetry Agent or Wrapper** - Both agent and wrapper variants are available
68
+
-**OpenTelemetry Collector** - Built-in collector that exports telemetry data to your configured backend
69
+
-**Auto-instrumentation** - Automatic instrumentation for supported Java libraries
70
+
-**AWS SDK instrumentation** - Pre-configured instrumentation for AWS SDK calls
71
+
72
+
#### Benefits:
73
+
-**Single layer deployment** - No need to manage separate collector and instrumentation layers
74
+
-**Simplified configuration** - Fewer environment variables and layer configurations
75
+
-**Reduced complexity** - Everything needed for observability in one package
76
+
-**Production-ready** - Includes all necessary components for complete observability
77
+
78
+
#### Usage:
79
+
To use the combined layer, add it to your Lambda function and set the appropriate `AWS_LAMBDA_EXEC_WRAPPER`:
80
+
-`/opt/otel-handler` - for regular handlers (implementing RequestHandler)
81
+
-`/opt/otel-sqs-handler` - for SQS-triggered functions
82
+
-`/opt/otel-proxy-handler` - for API Gateway proxied handlers
83
+
-`/opt/otel-stream-handler` - for streaming handlers
84
+
85
+
For detailed build instructions, see the build script at `java/build-combined.sh` in this repository.
86
+
87
+
### Environment variables
88
+
89
+
Required:
90
+
-`AWS_LAMBDA_EXEC_WRAPPER` – set to one of the provided handlers (for example, `/opt/otel-handler`)
91
+
-`LOGZIO_TRACES_TOKEN` – account token for traces
92
+
-`LOGZIO_METRICS_TOKEN` – account token for metrics
93
+
-`LOGZIO_LOGS_TOKEN` – account token for logs
94
+
-`LOGZIO_REGION` – Logz.io region code (for example, `us`, `eu`)
95
+
96
+
Optional:
97
+
-`OTEL_SERVICE_NAME` – explicit service name
98
+
-`OTEL_RESOURCE_ATTRIBUTES` – comma-separated resource attributes (for example, `service.name=my-func,env_id=${LOGZIO_ENV_ID},deployment.environment=${ENVIRONMENT}`)
99
+
-`LOGZIO_ENV_ID` – environment identifier you can include in `OTEL_RESOURCE_ATTRIBUTES` (for example, `env_id=prod`)
100
+
-`ENVIRONMENT` – logical environment name you can include in `OTEL_RESOURCE_ATTRIBUTES` (for example, `deployment.environment=prod`)
101
+
62
102
## Configuring Context Propagators
63
103
64
104
### If you emit your traces to AWS X-Ray (instead of a third-party service) and have enabled X-Ray Active Tracing
Copy file name to clipboardExpand all lines: nodejs/README.md
+35-1Lines changed: 35 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,7 +3,41 @@
3
3
Layer for running NodeJS applications on AWS Lambda with OpenTelemetry. Adding the layer and pointing to it with
4
4
the `AWS_LAMBDA_EXEC_WRAPPER` environment variable will initialize OpenTelemetry, enabling tracing with no code change.
5
5
6
-
To use, add the layer to your function configuration and then set `AWS_LAMBDA_EXEC_WRAPPER` to `/opt/otel-handler`.
6
+
## Combined OpenTelemetry Lambda Layer
7
+
8
+
**New**: We now offer a simplified deployment option with a combined layer that bundles both the OpenTelemetry Node.js instrumentation and the collector into a single layer. This reduces the number of layers you need to manage and simplifies your Lambda function configuration.
9
+
10
+
### What's included in the combined layer:
11
+
-**Node.js OpenTelemetry instrumentation** - Automatically instruments your Lambda function
12
+
-**OpenTelemetry Collector** - Built-in collector that exports telemetry data to your configured backend
13
+
-**Auto-instrumentation for popular libraries** - Includes AWS SDK v3 and a subset of popular Node.js libraries
14
+
-**ESM and CommonJS support** - Works with both module systems
15
+
16
+
### Benefits:
17
+
-**Single layer deployment** - No need to manage separate collector and instrumentation layers
18
+
-**Simplified configuration** - Fewer environment variables and layer configurations
0 commit comments