coinbase / coinbase/temporal-ruby

OpenTracing / Context propagation support

Đang mở
#175 2 bình luận 1 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Ruby
Star
287
Fork
113
Merge trung bình
6 ngày 11 giờ
Pull request đã merge (30 ngày)
1

Mô tả

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.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Không có tệp hoặc kiểm thử nào được nêu; hãy bắt đầu bằng việc xem xét workflow và cấu hình activity của Ruby SDK, cũng như cách xử lý các header của Temporal. Issue này vẫn chưa sẵn sàng để triển khai: interface cấu hình workflow vẫn chưa hoàn thiện, và để hoàn thành sẽ cần một thiết kế được thống nhất cho việc truyền context tự động, cùng với các phương thức workflow và activity để mở rộng context hiện có.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
ruby
Lĩnh vực
distributed-systems, observability-sre
Loại issue
Tính năng
Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Cần làm rõ
Mức phù hợp với người mới
20/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.