This repo hosts documentation and sample apps for the ADOT Ruby library which provides the AWS service integrations for traces and metrics for the OpenTelemetry Ruby library. The library can be configured to support trace applications with the AWS X-Ray service. This way, traces generated by OpenTelemetry Ruby can be queried in the AWS X-Ray console where users can see information such as the duration, method invoked, status codes, and more.
This repository contains sample applications that are instrumented with ADOT Ruby. GitHub workflows on this repository continuously validate the integration experience of these sample apps with the AWS X-Ray backend using the ADOT Test Framework. Use this repo to raise issues regarding ADOT Ruby integration or to discuss adding enhancements that cannot be covered by OpenTelemetry Ruby. ADOT is in preview for Ruby metrics.
This repo is regularly monitored by the AWS Observability team.
OpenTelemetry is an open source project that give users better observability into their system. OpenTelemetry collects distributed traces and metrics from several popular packages your application is already using and exports the information to backends. As a backend, AWS X-Ray makes it easy to visualize and query traces in a user-friendly console packed with features to help users understand what happened during traced calls. Learn more about AWS X-Ray in the developer guide.
When OpenTelemetry exports traces to the AWS X-Ray Console, the traces include parameters used in the call, results, exceptions, and more in the trace attributes. Read more about standardized attributes on the OpenTelemetry Specification Semantic Conventions for traces.
To fully take advantage of the features of ADOT Ruby with AWS X-Ray, we recommend you use both the X-Ray IDs Generator and the X-Ray Propagator when configuring the OpenTelemetry Ruby SDK. The X-Ray IDs Generator makes sure Trace IDs are in the format AWS X-Ray expects, and the X-Ray Propagator adds a X-Ray Tracing Header to outgoing requests so that the same context is propagated across different services and you get a connected view of all the traces in the X-Ray console.
To send traces to AWS X-Ray, use the ADOT Collector. The ADOT Collector includes packages from the OpenTelemetry Collector to allow exporting to AWS X-Ray. ADOT Ruby is configured to export traces to the ADOT Collector and the collector uses its provided permissions and configuration to send those traces to AWS X-Ray.
Check out our public documentation for tracing applications with ADOT Ruby to help you get started.
See a sample app manually instrumented with ADOT Ruby that you can run yourself to understand the necessary setup for ADOT Ruby.
Ruby 2.5+ is required to use OpenTelemetry Ruby. Check your currently installed Ruby version using ruby -v
.
Find out more about AWS X-Ray Tracing with Opentelemetry Ruby at the following links.
If you discover a potential security issue in this project we ask that you notify AWS/Amazon Security via our vulnerability reporting page. Please do not create a public github issue.
This project is licensed under the Apache-2.0 License.
Please note that as per policy, we're providing support via GitHub on a best effort basis. However, if you have AWS Enterprise Support you can create a ticket and we will provide direct support within the respective SLAs.