Skip to content

Update Lambda layer versions and runtimes, and add a current Go guide - #863

Closed
wisemanIV wants to merge 2 commits into
aws-otel:mainfrom
wisemanIV:lambda-go-and-versions
Closed

wisemanIV wants to merge 2 commits into
aws-otel:mainfrom
wisemanIV:lambda-go-and-versions

Conversation

@wisemanIV

Copy link
Copy Markdown
Contributor

Summary

Updates the Lambda pages to match the published ADOT Lambda layers and current Lambda runtimes, and replaces the legacy Go guide with a tested setup that sends traces to the X-Ray OTLP endpoint.

Layer versions and runtimes

  • Java ARNs: updated to v2.32.0 (AWSOpenTelemetryDistroJava:19 in most Regions) for all 35 Regions, from the v2.32.0 release notes. Python (:32), JavaScript (:16), and .NET (:15) were already current.

  • Supported runtimes: the table now lists the runtimes each layer declares and Lambda supports, with a new Architectures column:

    Layer Runtimes Architectures
    Python 3.10–3.14 (adds 3.14) x86_64, arm64
    Node.js 22.x, 24.x (adds 24.x; removes 18.x and 20.x, which Lambda has deprecated) x86_64, arm64
    Java 11, 17, 21, 25 (adds 25) x86_64, arm64
    .NET 8, 10 (adds 10) x86_64 only
  • New notes under Supported Runtimes:

    • Java instrumentation applies only to handlers that implement RequestHandler or RequestStreamHandler; other handlers run but produce no spans.
    • The .NET layer is x86_64 only.
    • Go, Rust, Ruby, and other provided.al2023 functions have no Application Signals layer. The note links to the Go guide.

Go guide

The previous guide targeted provided.al2, which Lambda has deprecated, and used the collector layer's default awsxray exporter. The new guide covers:

  • provided.al2023, on x86_64 or arm64.
  • The OpenTelemetry Go SDK with otellambda/xrayconfig, plus otelhttp for outgoing requests.
  • The ADOT Collector Lambda layer (aws-otel-collector-<arch>-ver-0-156-0:4, still the latest), with a collector.yaml that exports to https://xray.<region>.amazonaws.com/v1/traces through otlp_http and sigv4auth. The file is loaded with OPENTELEMETRY_COLLECTOR_CONFIG_URI=/var/task/collector.yaml.
  • OTEL_SERVICE_NAME. Without it, Go SDK spans have no service.name.

Testing

End to end in us-east-1 (Transaction Search enabled), each function invoked 5 times. All test resources were deleted afterwards.

Function Layer Result
Python 3.13 AWSOpenTelemetryDistroPython:32 5/5; server and client spans in aws/spans; listed in Application Signals (lambda:default) with Latency, Error, Fault, Throttle
Node.js 22 AWSOpenTelemetryDistroJs:16 Same
Java 21 AWSOpenTelemetryDistroJava:18 and :19 Same on both (RequestStreamHandler handler)
.NET 8 AWSOpenTelemetryDistroDotNet:15 Same
Go (provided.al2023) aws-otel-collector-amd64-ver-0-156-0:4 with the guide's collector.yaml 5/5; otellambda server and otelhttp client spans in aws/spans, with service.name from OTEL_SERVICE_NAME; collector logged no warnings; listed in Application Signals with the same metrics

The guide's Go code and collector.yaml are identical to the tested files. The site builds with these changes merged onto #862, with no new warnings, and all internal links on both pages resolve.

Merge order

This branch is based on main. #862 also edits four lines of lambda-go.mdx (its banner and two links), which this PR replaces, so whichever merges second needs a rebase that keeps this version of the Go page. The other files merge cleanly with #862.

Follow-ups (not in this PR)

  • .NET: a handler that takes System.IO.Stream failed under the ADOT .NET wrapper, which deserializes the event into the handler's parameter type. This was seen with a non-standard package and needs checking with a standard one.
  • Java: span scope versions are 2.31.1-adot-lambda1-alpha and 2.32.0-adot-lambda1-alpha. Is the "alpha" suffix intended?
  • Layer coverage: Python 3.15 and Node.js 26.x are supported by Lambda but not yet declared by the layers.

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

- Update the Java layer ARNs to v2.32.0 (AWSOpenTelemetryDistroJava:19
  in most Regions) from the release notes.
- Align the supported runtimes table with the runtimes the layers
  declare and Lambda supports: add Python 3.14, Node.js 24, Java 25, and
  .NET 10, remove the deprecated Node.js 18 and 20, and add an
  architectures column (.NET is x86_64 only).
- Note that Java instrumentation requires a RequestHandler or
  RequestStreamHandler handler, and that Go, Rust, Ruby, and other
  provided.al2023 functions have no Application Signals layer.
- Rewrite the Go guide for provided.al2023: OpenTelemetry Go SDK with
  otellambda, and the ADOT Collector Lambda layer configured to send
  traces to the X-Ray OTLP endpoint with SigV4.
@wisemanIV
wisemanIV requested review from a team as code owners October 27, 2026 12:56
Describe https://xray.<region>.amazonaws.com/v1/traces as the CloudWatch
OTLP traces endpoint rather than presenting AWS X-Ray as a separate
destination.
@wisemanIV

Copy link
Copy Markdown
Contributor Author

Merged into #862 so the documentation changes ship in one pull request. The Lambda updates and the Go guide are in #862 (commit fa15c05), and this pull request's description and testing are included there.

@wisemanIV wisemanIV closed this Oct 29, 2026
Aigeec-AWS pushed a commit that referenced this pull request Oct 31, 2026
Bring in the Lambda layer version and runtime updates and the rewritten
Go guide from #863, so that the documentation changes ship in one pull
request. The Go guide replaces this branch's earlier edits to the old
Go page.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant