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

One Logging Bridge per Language #1865

Open
Tracked by #1857
jpkrohling opened this issue Jan 12, 2024 · 15 comments · Fixed by #1886
Open
Tracked by #1857

One Logging Bridge per Language #1865

jpkrohling opened this issue Jan 12, 2024 · 15 comments · Fixed by #1886
Assignees
Labels

Comments

@jpkrohling
Copy link
Member

jpkrohling commented Jan 12, 2024

@jpkrohling has volunteered to be the sponsor for this.

@jpkrohling jpkrohling mentioned this issue Jan 12, 2024
15 tasks
@jpkrohling jpkrohling self-assigned this Jan 12, 2024
@jpkrohling
Copy link
Member Author

Created: #1970

@jpkrohling jpkrohling reopened this Jan 22, 2024
@jpkrohling jpkrohling changed the title One Logging Bridge API implementation per SDK One Logging Bridge per Language Jan 22, 2024
jpkrohling added a commit to jpkrohling/community that referenced this issue Jan 22, 2024
jpkrohling added a commit to jpkrohling/community that referenced this issue Jan 24, 2024
@jpkrohling
Copy link
Member Author

This is in the scope for an LFX mentorship: cncf/mentoring#1134

@svrnm svrnm added the roadmap label Jan 24, 2024
@Sanket-0510
Copy link

Hey, from my understanding the projects aims to cover logging bridges for each language as discussed in #1970 for .NET we already have ILogger which gives log bridge capability. Python SIG provides logging.handler same with Rust tokio-tacing does the job.

Now it comes to languages like c++, go,etc. will have to build the required logging bridge.
I'll explore logging bridge in go for starting to get the understanding.taking refference of this issue, open-telemetry/opentelemetry-go-contrib#5138.

Do you know of any other sources or files I should look into to understand this better? I'm thinking about joining the LFX mentorship to dive deeper into this. If you have any suggestions for beginner-friendly issues to start with or anything related to logging bridges, I'd really appreciate it.

Thanks a bunch!

@jpkrohling
Copy link
Member Author

jpkrohling commented Jan 25, 2024

That's great to hear! Given that your interest is in Go, we can talk about it on the concrete issue for slog.

@jpkrohling
Copy link
Member Author

I realized that a few things I wrote on the target issue applies to other languages as well, so, here it is:

Recommended reading:
https://opentelemetry.io/docs/specs/otel/ (especially the Bridge API part)

And perhaps before that, I'd also recommend getting familiar with OpenTelemetry, if you aren't already:
https://opentelemetry.io/docs/what-is-opentelemetry/

It might also help to understand what OpenTelemetry is by taking a look at the demo:
https://github.com/open-telemetry/opentelemetry-demo

@djaglowski
Copy link
Member

djaglowski commented Jan 25, 2024

To clarify, the goal here is to get to at least one logging bridge per language, right? That is, we're not suggesting that only one logging library per language will be supported in the long term?

@verma-kunal
Copy link

verma-kunal commented Jan 26, 2024

I realized that a few things I wrote on the target issue applies to other languages as well, so, here it is:

Recommended reading: https://opentelemetry.io/docs/specs/otel/ (especially the Bridge API part)

And perhaps before that, I'd also recommend getting familiar with OpenTelemetry, if you aren't already: https://opentelemetry.io/docs/what-is-opentelemetry/

It might also help to understand what OpenTelemetry is by taking a look at the demo: https://github.com/open-telemetry/opentelemetry-demo

Hi @jpkrohling , thanks for sharing these resources! I'm interested to contribute to this task, specifically in Go. Will go through these & understand what needs to done and work on a strong proposal for the same!

Additionally, would love to know which specific SIG (from the list given here) would this task come under? It would be great to attend their meetings to have discussions or ask doubts.
Thanks

@Sanket-0510
Copy link

Sanket-0510 commented Jan 26, 2024

I realized that a few things I wrote on the target issue applies to other languages as well, so, here it is:

Recommended reading: https://opentelemetry.io/docs/specs/otel/ (especially the Bridge API part)

And perhaps before that, I'd also recommend getting familiar with OpenTelemetry, if you aren't already: https://opentelemetry.io/docs/what-is-opentelemetry/

It might also help to understand what OpenTelemetry is by taking a look at the demo: https://github.com/open-telemetry/opentelemetry-demo

Greetings @jpkrohling.
Thank you so much for sharing the resources I really got an Idea about the project, about Open Telemetry in general. I am looking forward to join and contribute to this thriving community and project helping folks to enhance services by providing the best in class observability solutions.

At start I was bit confused about open-telemetry, what it is and what exactly it does but after demo and setup its all clear.

And I would suggest people really give a watch to this videos https://youtu.be/coPrhP_7lVU?si=J38_h9vW3W4pO_of
to get a general overview of Open-Telemetry.

mtwo added a commit that referenced this issue Jan 26, 2024
* Roadmap project: One Logging Bridge per Language

Closes #1865

Signed-off-by: Juraci Paixão Kröhling <[email protected]>

* Applied changes from review

Signed-off-by: Juraci Paixão Kröhling <[email protected]>

* Add swift

Signed-off-by: Juraci Paixão Kröhling <[email protected]>

* add links to the individual language items

Signed-off-by: Juraci Paixão Kröhling <[email protected]>

---------

Signed-off-by: Juraci Paixão Kröhling <[email protected]>
Co-authored-by: Morgan McLean <[email protected]>
@enesonus
Copy link

Hi, to be able to have a cleaner view of what is going to be achieved and focused on LFX Mentorship project I made some research and found out that there are some SDK implementations of logging bridges (some of them do not specify stability level) which are indicated as not implemented in this issue. These are:

C++

We have an example that uses a LogRecordExporter and registers a Logger Provider. Stability level is not mentioned.

Java

In the opentelemetry-java SDK repository there is Logging Bridge API's components implementation files . It was lacking a readme inside it's own repo but in the opentelemetry-java-examples they have a log-appender example and at opentelemetry.io we see SdkLoggerProvider class inside the Usage part. I also found some repositories (1, 2) using the SdkLoggerProvider class but I couldn't find any information on stability level. Also check this they are currently using java log report.

Javascript

Here is the SDK of JS LoggerProvider. It also has an example inside repository (This example needs some refinement at the README part IMO). It states clearly that the implementation is currently experimental and under active development i.e. may have some breaking changes

PHP

We have a LoggerProvider configured inside the SDK Builder example usage at opentelemetry.io. Here is the LoggerProvider class implementation that implements LoggerProviderInterface . I couldn't find any info regarding stability level.

I am not sure if these information are sufficient to have them marked as done but I thought it would be helpful.

For Erlang, Go, Ruby and Swift OpenTelemetry does not seem to have a Logging Bridge implemented. I am planning to apply for LFX Mentorship at this Mar-May batch. I have some experience with Go and slog. I would be very happy to implement the Go Logging bridge. If possible, I would also like to improve Java and Python's Logging bridge implementations or documentation.

@Sanket-0510
Copy link

Sanket-0510 commented Jan 27, 2024

To clarify, the goal here is to get to at least one logging bridge per language, right? That is, we're not suggesting that only one logging library per language will be supported in the long term?

I think you are very much correct. Having support for more than one library will be very much needed after Looking at the deprecation and support loss caused by languages version and associated frameworks and libraries

@jpkrohling
Copy link
Member Author

@djaglowski, yes, sorry, I should have made it clearer here. The project that got merged states this:

During the joint TC/GC call on Jan 11 2024, we agreed on a few items we'd like to accomplish this year. One such item was creating at least one logging bridge per Language SIG, so that our end-users can start using OTLP Logging natively in their applications.

@enesonus, I believe one of the first tasks (for me) is to identify which languages are lacking a bridge which ones we'll focus during the internship. People from the community are helping there as well already, which is why I closed a few items already. Your information will help me confirm with the SIGs whether I should mark them as "done" already.

@EshaanAgg
Copy link

Hi! Just a small suggestion from my end! Can we consider creating (or migrating the existing JS bridge) to a TypeScipt bridge? This way it could be utilized by JS/TS developers alike, and even the developers who want to use JS would get neat autocompletion and inference in their IDE's because of their editor's LSPs, that too without any additional steps!

@Bakugo90
Copy link

Bakugo90 commented Feb 7, 2024

Hello @jpkrohling,
Thank you for the information provided.

I have experience in PHP and application development for iOS platforms.
Therefore an implementation or improvement of the Logging bridge in PHP and Swift would interest me for the LFX mentorship to come.
Hi @Sanket-0510, happy to see you here.

@jpkrohling
Copy link
Member Author

This shouldn't be closed at this point.

@jpkrohling jpkrohling reopened this Feb 26, 2024
@nachoBonafonte
Copy link
Member

Hello @jpkrohlin, the otel-swift project confirm that we are interested in receiving a contribution related to new logging bridges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

9 participants