nextcloud / nextcloud/server

Add OTEL tracing export

Open
#41,157 5 comments 6 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

0. Needs triage enhancement
Dominant language
PHP
Stars
36.9k
Forks
5.2k
Avg merge
2d 3h
Merged PRs (30d)
713

Description

Hello,

I was curious how interested you are in adding tracing with the OTEL libraries. I know we already have tracing thanks to PHP’s xdebug and I have already used it and it does the job. But the experience could be so much better.

At work we use the Golang OTEL library and, although I wasn’t convinced in the beginning, I must admit having traces flowing automatically from our apps to our Grafana instance (using Tempo) and having logs, metrics and traces all linked together is really, really great.

I checked the PHP OTEL library and they are even more mature than the Go ones. Also, it looks like we can have automatic instrumentation like xdebug does.

I did not try implementing anything yet and instead of dumping a PR out of the blue, I wanted to know if you were interested in having a PR adding tracing using the PHP OTEL library. If so, I’ve got no timeline guarantees but I’ll start work on this.

Btw, this all came from me wanting to squeeze out more performance from the WebDAV Nextcloud implementation.

EDIT: looking at some of the bugs and issues raised here and in the forum, I’m convinced a lot of these could be diagnosed thanks to traces.

EDIT2: also I’m maybe not seeing the full picture here. How do ppl usually track down performance issues in Nextcloud? So there’s xdebug, some amount of monitoring metrics, some logs, then more monitoring on external things used by Nextcloud like disk I/O, CPU and memory usage, etc. Apart from xdebug, I don’t see these as telling you exactly where the issue lies but instead as helpers to pinpoint where to look. Am I missing something?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the PHP OTEL library documentation, especially automatic instrumentation, and compare it with the existing xdebug-based tracing described in the issue. Define the supported export path and integration scope before implementation; done should include traces flowing from Nextcloud and a way to verify them alongside logs and metrics.

Written by the indexing model from the issue text.

Assessment

Tech stack
php
Domain
observability
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.