Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support tracing in SDK and add loading to OpenTelemetry client #376

Open
Gazizonoki opened this issue Feb 15, 2025 · 1 comment
Open

Support tracing in SDK and add loading to OpenTelemetry client #376

Gazizonoki opened this issue Feb 15, 2025 · 1 comment
Assignees
Labels
enhancement New feature or request student-projects

Comments

@Gazizonoki
Copy link
Collaborator

Gazizonoki commented Feb 15, 2025

Трейсинг - очень мощный инструмент Observability, позволяет расследовать проблемы с запросами.

По-простому, это распределенный stacktrace, который сохраняет вызовы между сервисами. Подробнее можно почитать про это тут

План работы:

  1. Поддержать передачу trace_id в gRPC заголовке traceparent: Add traceparent to TRequestSettings #326. Это позволит соединить спаны клиента и сервера YDB в единый трейс.
  2. Поддержать загрузку спанов уже от самого SDK:
    • Мы не можем завязываться на один клиент отгрузки трейсов, так что надо придумать единый интерфейс, который мы будем реализовывать в различных плагинах (паттерн Адаптер). Можно посмотреть на YDB Go SDK, или на другие драйвера БД.
    • Реализовать плагин для OpenTelemetry клиента. Он будет реализовывать общий интерфейс, пользователи будут передавать его в NYdb::TDriver. Можно выбрать другой OpenTelemetry клиент, если он будет популярнее, тут есть простор для исследования.
    • Разметить вызовы SDK спанами и отгружать их в плагин, который нам передал пользователь. Со спанами важно соблюдать баланс, их должно быть достаточно, чтобы понимать, что было с запросом в SDK, но и не слишком много, чтобы не перегрузить трейс спанами от SDK
@Gazizonoki Gazizonoki added enhancement New feature or request student-projects labels Feb 15, 2025
@Gazizonoki Gazizonoki assigned Gazizonoki and unassigned Gazizonoki Feb 15, 2025
@zarinatlupova
Copy link

Взяла эту задачу

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request student-projects
Projects
None yet
Development

No branches or pull requests

2 participants