Ruby OpenTracing (obsolète)

OpenTracing fournit des API et des outils d'instrumentation indépendants des fournisseurs pour le traçage distribué. Le gem Instana Ruby implémente ces API et vous permet d'utiliser le gem Instana avec vos appels OpenTracing. Les applications existantes qui utilisent l'interface OpenTracing API ou celles qui souhaitent ajouter cette fonctionnalité peuvent facilement intégrer ce gem Ruby.

Remarque : la méthode ` OpenTracing ` est obsolète. Instana La prise en charge d' OpenTracing devrait prendre fin en juin 2025.

Pour plus d'informations sur l' OpenTracing,, consultez le site OpenTracing.

Pour obtenir les meilleurs résultats avec OpenTracing,, veuillez prendre connaissance des bonnes pratiques décrites sur cette page : OpenTracing.

Pour commencer, définissez le traceur « Instana » comme traceur global pour « OpenTracing: »

require 'opentracing'
OpenTracing.global_tracer = ::Instana.tracer

Le code d' OpenTracing ation peut alors être exécuté normalement :

begin
  span = OpenTracing.start_span('job')
  # The code to be instrumented
  @id = User.find_by_name('john.smith')
  span.set_tag(:job_id, @id)
rescue => e
  span.set_tag(:error, e.message)
ensure
  span.finish
end

Exemple

Voici un exemple très simplifié de code pour appeler les API OpenTracing.

# Note:  The instana gem automatically sets the Instana tracer
# to `OpenTracing.global_tracer`.  Once the gem is loaded, you can
# immediately start making OpenTracing calls.
#
require "opentracing"

entry_span = OpenTracing.start_span("HandMadeRackServer")

entry_span.set_tag(:'http.method', :get)
entry_span.set_tag(:'http.url', "/users")
entry_span.set_tag(:'span.kind', "entry")

intermediate_span = OpenTracing.start_span("myintermediate", :child_of => entry_span)
intermediate_span.finish()

db_span = OpenTracing.start_span('mydbspan', :child_of => entry_span)
db_span.set_tag(:'db.instance', "users")
db_span.set_tag(:'db.statement', "SELECT * FROM user_table")
db_span.set_tag(:'db.type', "mysql")
db_span.set_tag(:'db.user', "mysql_login")
db_span.set_tag(:'span.kind', "exit")
db_span.finish()

intermediate_span = OpenTracing.start_span("myintermediate", :child_of => entry_span)
intermediate_span.log("ALLOK", :message => "All seems ok")
intermediate_span.finish()

entry_span.set_tag(:'http.status_code', 200)
entry_span.finish()