Slide 1

Slide 1 text

OpenTelemetry with Ruby @kyanagimoto Jaeger also 9th Feb, 2021 Nikotama.rb #15

Slide 2

Slide 2 text

OpenTelemetry? • CNCF project • OpenCensus + OpenTracing • Observability • Traces, Metrics, Logs

Slide 3

Slide 3 text

“Let’s create sample project!”

Slide 4

Slide 4 text

docker run —rm -d --name jaeger \ -p 5775:5775/udp \ -p 6831:6831/udp \ -p 6832:6832/udp \ -p 5778:5778 \ -p 16686:16686 \ -p 14268:14268 \ -p 14250:14250 \ -p 9411:9411 \ jaegertracing/all-in-one:1.21 Port meanings: https://www.jaegertracing.io/docs/1.21/getting-started/#all-in-one

Slide 5

Slide 5 text

Demo App https://guides.rubyonrails.org/getting_started.html

Slide 6

Slide 6 text

Gem f ile gem 'opentelemetry-sdk' gem 'opentelemetry-exporter-jaeger' gem 'opentelemetry-instrumentation-mysql2' gem 'opentelemetry-instrumentation-rails'

Slide 7

Slide 7 text

con f ig/application.rb require_relative "boot" require "rails/all" require 'opentelemetry/sdk' require ‘opentelemetry/exporter/jaeger' # Require the gems listed in Gem f ile, including any gems # you've limited to :test, :development, or :production. Bundler.require(*Rails.groups) OpenTelemetry::SDK.con f igure do |c| c.use_all c.add_span_processor( OpenTelemetry::SDK::Trace::Export::BatchSpanProcessor.new( exporter: OpenTelemetry::Exporter::Jaeger::AgentExporter.new(host: '0.0.0.0', port: 6831) ) ) c.service_name = 'sample-app' c.service_version = '0.0.1' end module RailsSample class Application < Rails::Application # Initialize con f iguration defaults for originally generated Rails version. con f ig.load_defaults 6.1 # Con f iguration for the application, engines, and railties goes here. # # These settings can be overridden in speci f ic environments using the f iles # in con f ig/environments, which are processed later. # f

Slide 8

Slide 8 text

Let’s access http://localhost:16686/trace

Slide 9

Slide 9 text

No content