Вход на сайт

Просмотр новости

Найдите то, что Вас интересует

Tracing calls through backend components

Дата публикации: 20-08-2026 10:26:25

The goal of the project was to implement distributed tracing across the main backend components of Jitsi. In short, distributed tracing is a technique for tracing requests across distributed components by generating events in each […]
The post Tracing calls through backend components appeared first on Jitsi.


Основное содержимое страницы с новостью.

Blog

Published on: August 20, 2026 by Julián González CalderónCategories: Featured | GSoC

The goal of the project was to implement distributed tracing across the main backend components of Jitsi. In short, distributed tracing is a technique for tracing requests across distributed components by generating events in each component and stitching them together using identifiers. The idea was not to fully integrate distributed tracing into the whole system but to have end-to-end traces for common flows that can be used as a base for future tracing.

The following flows are now traced:

  • Creating a conference
  • Joining a conference, which also includes inviting JVB
  • Leaving or ending a conference
  • Inviting a Jibri recorder

For example, when a client joins a conference, it first joins the MUC room, then Prosody notifies Jicofo, who allocates a bridge and initiates a jingle session. Tracing this involved injecting code in the Meet client, Prosody, Jicofo, and JVB. The trace looks like this:

jicofo: conference.member-joined

There were two main challenges while implementing this. The first challenge was understanding the whole system. What does each component do? How does it interact with the other components? When does it do so? As the amount of code required for this to work was small, the difficult part was actually finding exactly where to put it.

The second challenge was finding a way of propagating context. It was not enough to record the main steps of each component, but we also needed a way to stitch them together. As all communication is done through Prosody, I implemented an XMPP extension inspired by the W3C standard: https://github.com/jitsi/jitsi-xmpp-extensions/pull/146.

To enable tracing, we need a tracing backend (Tempo), an OpenTelemetry collector (Alloy), and a frontend (Grafana). An example of how to set everything up can be found in docker-jitsi-meet: https://github.com/jitsi/docker-jitsi-meet/pull/2303.

For next steps, this should be enabled in production to start gathering real data and understand which information is more valuable. There are also many other flows that could be traced but fall outside the scope of this project: inviting a transcriber, inviting SIP participants (Jigasi), changes in room metadata, etc.

Below is a list of all the PRs that were developed as part of the project.

Схожие новости

#Наименование новостиТональностьИнформативностьДата публикации
1A new architecture for transcription (and more)08.414-07-2026
2Introducing Multi-screen support for Jitsi Meet09.3301-10-2026
3Google Summer of Code 2026 – Meet This Year’s Projects!!011.8708-07-2026
4Introducing Document PiP for browser meetings011.3702-09-2026
5Branch Target Reuse, nový útok typu Spectre v2 cílící na JIT kompilátory09.1930-09-2026
6xk6-sip: SIP-телефония как код013.0525-09-2026
7Feedback wanted: compio-pool, a thread-per-core connection pool for !Send connections017.8908-10-2026
8xk6-sip: мониторинг нагрузочного тестирования VoIP/SIP-звонков017.2126-09-2026
9Branch Target Reuse, BTR: New Spectre V2 Attack Targeting JIT Compilers09.1329-09-2026
10Process Orchestration: Execution Models, Observability, and Production Challenges07.1611-09-2026

Классификация: Пресс-релизы. Схожих патентов: 0. Схожих новостей: 10. Тональность: 0. Информативность: 5.55. Источник: jitsi.org.