Code Monkey home page Code Monkey logo

aws-otel-ruby's Introduction

AWS Distro for OpenTelemetry Ruby Language

Introduction

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.

How it works

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.

Getting Started

Check out our public documentation for tracing applications with ADOT Ruby to help you get started.

Sample Application - Manual instrumentation

See a sample app manually instrumented with ADOT Ruby that you can run yourself to understand the necessary setup for ADOT Ruby.

Requirements

Ruby 2.5+ is required to use OpenTelemetry Ruby. Check your currently installed Ruby version using ruby -v.

Useful Links

Find out more about AWS X-Ray Tracing with Opentelemetry Ruby at the following links.

Security

See CONTRIBUTING for more information.

License

This project is licensed under the Apache-2.0 License.

Support

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.

aws-otel-ruby's People

Contributors

dependabot[bot] avatar nathanielrn avatar bryan-aguilar avatar erichsueh3 avatar amazon-auto avatar anuraaga avatar bhautikpip avatar rapphil avatar vasireddy99 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.