open-telemetry / opentelemetry-php

The OpenTelemetry PHP Library
https://opentelemetry.io/docs/instrumentation/php/
Apache License 2.0
748 stars 186 forks source link

[opentelemetry-php-contrib] OtelSdkBundle roadmap questions #1203

Open ojrzenski opened 10 months ago

ojrzenski commented 10 months ago

Hi, I'd like to use OtelSdkBundle to start adopting opentelemetry. Currently there is abandoned package open-telemetry/contrib-sdk-bundle which suggests using open-telemetry/symfony-sdk-bundle.
This package directs to a read-only repository containing two bundles:

The first one open-telemetry/contrib-sdk-bundle in its readme mentions the uprising Instrumentation bundle (I guess the second one) which will add instrumentation for symfony project.

I have a few questions:

  1. Is there any timeline for a stable release? When we can expect to see version 1.0.0?
  2. What is the scope for the stable version for open-telemetry/contrib-sdk-bundle?
  3. Is there any publicly available roadmap where we can track development progress?
  4. What is the scope for the stable version of open-telemetry/contrib-symfony-instrumentation-bundle?
  5. In terms of backward compatibility: should we expect any breaking changes before version 1.0.0? I know that semantic versioning allows breaking changes before stable release but I'm asking about Your plans/policy. Do You have a large refactor in mind that could lead to breaking change in the public API?
bobstrecansky commented 10 months ago

Answers below inline.

Is there any timeline for a stable release? When we can expect to see version 1.0.0?

A 1.0.0 release is imminent. I think it's just pageantry at this point. I don't expect much if anything to change before a 1.0.0 release.

What is the scope for the stable version for open-telemetry/contrib-sdk-bundle?

I don't think there are any other issues we need to close before we declare this stable.

Is there any publicly available roadmap where we can track development progress?

We don't have a roadmap created.

What is the scope for the stable version of open-telemetry/contrib-symfony-instrumentation-bundle?

I don't think there are any other issues we need to close before we declare this stable.

In terms of backward compatibility: should we expect any breaking changes before version 1.0.0? I know that semantic versioning allows breaking changes before stable release but I'm asking about Your plans/policy. Do You have a large refactor in mind that could lead to breaking change in the public API?

I wouldn't expect any breaking changes in the public API anytime soon.

mateusz-kolecki commented 10 months ago

Hmm... to be honest I'm quite confused. It looks to me that not everything is ready for 1.0. The code in https://github.com/opentelemetry-php/contrib-sdk-bundle doesn't look like a finished product (but maybe I'm wrong ;)):

For me, it would be nice to use the bundle without the need to install the new PHP extension and have all those nice features (messenger, HTTP client, doctrine, ...). Currently, it does not look like this is ready.

I'm not trying to say that someone is doing bad things. I'm just seeking the information and the current status. I think that You are doing a great library and I'm interested in using it. I'm also thinking about contributing during my work hours but to convince my employer to give me time for that I need more specific information about status and goals.

Swahjak commented 10 months ago

I'm in a similar situation as @mateusz-kolecki, although I don't mind adding the ext-opentelemetry. It is quite unclear as to what does what and what is recommended, or better said; what is the complete solution. I.e. do I require the the bundles, or just the auto instrumentation? Also it seems very limited as to what is being traced right now (but, as said, that might not have been part of the scope).

brettmc commented 9 months ago

Hello. I think Bob may have been thinking of the symfony auto-instrumentation module, and not the sdk bundle, when he said a stable release was imminent. The sdk bundle needs some love and attention; I couldn't even say if it's fit for purpose as it stands.

The OtelSdkBundle pre-dates the opentelemetry extension and was built against an alpha version of the API/SDK.

do I require the the bundles, or just the auto instrumentation?

They are two completely different approaches to instrumentation. Both approaches are valid and can coexist. You'd choose one or the other, @Swahjak : either use the bundle(s), or auto-instrumentation extension + auto-instrumentation module for Symfony. The auto-instrumentation module is more recent and I'm much more confident in it, it's really just awaiting some good field testing and feedback before I'm happy to tag a GA.

Is there any timeline for a stable release? When we can expect to see version 1.0.0?

To be honest, the original author disappeared part-way through developing. All we were left with was a couple of github issues detailing some TODOs. The core of OpenTelemetry for PHP (API + SDK + exporters) has changed and evolved a lot since then. A few people have supplied PRs to get the tests running since, but what it really needs is for somebody with a vision for what it should be like to push it towards GA.

That's where you could help. None of the maintainers are particularly experienced with Symfony, but we'd be delighted to hear from somebody keen to work on it. If somebody can come up with the "this is what I think it should do", then we can help with the API/SDK side.

I'd suggest that the first thing to do is see if the current version works reliably against a Symfony app at emitting some basic telemetry (traces). That by itself could be enough for 1.0.0 - a single root span and correctly sending trace propagation headers for outbound http requests is as much as some of the existing auto-instrumentation modules do.

gaelreyrol commented 9 months ago

It might not be the right issue to talk about it but I am working on a Symfony bundle to fully support the instrumentation of its components and provide services as a Symfony developer would expect it. It still needs a few weeks of work to publish an alpha release.

Here is the alpha milestone I defined: https://github.com/FriendsOfOpenTelemetry/opentelemetry-bundle/milestone/1

There is also a demo app to live test the bundle: https://github.com/FriendsOfOpenTelemetry/symfony-demo

brettmc commented 9 months ago

I'd never looked at it before, but the original author of the SDK bundle left an example: https://github.com/opentelemetry-php/otel-sdk-bundle-example-sf5 It starts up and generates traces - so perhaps everything is not as dire as I imagined.