coinbase / coinbase/temporal-ruby

OpenTracing / Context propagation support

Offen
#175 2 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Ruby
Sterne
287
Forks
113
Ø Merge
6 T. 11 Std.
Gemergte PRs (30 T.)
1

Beschreibung

As suggested by @jeffschoner-stripe and @drewhoskins-stripe, I am creating a github issue to discuss the topic of context propagation for the Ruby SDK.

# Tracing Proposal

## Why
Distributed applications are more difficult to measure and debug due
to the distributed nature of their processing. One cannot simply
attach to the running process with a debugger and capture state
since that state may be spread across multiple processes or systems.
Temporal, by its nature, is distributed. Any application written using
Temporal will also be distributed. In order to trace through the
behavior of the business logic implemented as workflow(s) and
activit(ies) we should provide support for OpenTracing and other
related tracing mechanisms.

The [Java](https://github.com/temporalio/sdk-java/tree/master/temporal-opentracing), [Go](https://docs.temporal.io/docs/go/tracing/), and [Typescript](https://docs.temporal.io/docs/typescript/interceptors) SDKs all support OpenTracing today via
context propagation. The Ruby SDK can support Tracing today without
any changes merely by allowing the programmer to pass the Tracing
context as an argument to every workflow and activity. This is sloppy
and error prone, so we should mimic the facilities exposed by the
aforementioned SDKs and allow the context to propagate automatically
using the Temporal headers.

## What
This defines the interface for passing in OpenTracing contexts to
the Temporal system. Upon configuration, the propagation of this
information should be automatic and transparent to the programmer.
Aside from initial configuration, methods should be exposed on
the workflow and activity that allow for adding to the existing
(if any) context.

### Workflow Configuration
Will fill this out in next edit... thinking about it.

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Es werden keine Dateien oder Tests genannt; beginne mit der Überprüfung des Ruby SDK-Workflows und der Aktivitätskonfiguration sowie der Handhabung von Temporal-Headern. Das Issue ist noch nicht zur Implementierung bereit: Die Schnittstelle für die Workflow-Konfiguration ist noch nicht fertiggestellt, und für den Abschluss wäre ein abgestimmtes Design für die automatische Kontextweitergabe sowie für Workflow- und Activity-Methoden zum Erweitern des bestehenden Kontexts erforderlich.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
ruby
Bereich
distributed-systems, observability-sre
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
20/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.