View Source Traces

RTC Engine uses membrane_opentelemetry to generate OpenTelemetry traces and spans. You can enable traces in your config.exs:

config :membrane_opentelemetry, enabled: true

Besides this you need to put :opentelemetry config in config/runtime.exs, for example

config :opentelemetry, :resource,
  service: [
    name: "membrane_rtc_engine",
    namespace: "membrane"
  ],
  processors: [
    otel_batch_processor: %{
      exporter: {:otel_exporter_stdout, []}
    }
  ]

Where:

  • service - name and namespace of the service. They are used for easier distinction from other services. You can read more here
  • processors - defines when spans should be exported. otel_simple_procesor flushes each span immediately after ending it while otel_batch_processor buffers several spans and flushes them in a batch. For more see otel_simple_processor or otel_batch_processor
  • exporter - defines where spans should be exported. otel_exporter_stdout prints spans to stdout but there are other exporters that can visualize traces in a human readable format like Zipkin

To see more about :opentelemetry config, you can go to the OpenTelemetry documentation

You can also go to membrane_videoroom for more examples.