-
Notifications
You must be signed in to change notification settings - Fork 903
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
Move towards Log API/SDK stabilization #2911
Comments
I support this. Let's discuss in the SIG meeting today.
I think this means the entire
I think there is less pressure for stabilizing the SDK spec. Do need to decide on for example batching processor defaults right now? Seems like a low priority decision. I would rather spend our efforts on figuring out the Events API first since this is where most of the unknowns are. |
One thing we need to decide now: in a hypothetical scenario where we eventually come to a decision that we don't need an "Events API" at all would the current structure of LoggerProvider/Logger API work fine on its own even if we delete everything related to "Events" from the API? We may decide to support "Events" using some other form of helpers instead of making it a sibling API of Logger so we need to be prepared for such deletion. |
Marking
Yes, this is my hope.
Ideally we move towards stabilizing the SDK to the extent possible as well. A stable SDK spec allows for a stable release of OTLP log exporters. |
I've opened #2955 to discuss issue 5 in this list:
|
Fixes #3003 Contributes to #2911 ## Changes This PR moves and reorganizes parts of the specification relevant to exporting OTLP data to a file. * Removes the "Build-in exporters" section from the Log SDK. The OTLP exporter has its own specification covering all signals. The part regarding a file exporter is not unique to logs. Exporting OTLP data to a file is also applicable to trace and metric data. * Moves the file describing OTLP JSON serialization under the `protocol` subdirectory. As discussed in the Logs SIG (12/7/2022), this file provides a foundation for further progress on specifying an OTLP file exporter.
@jack-berg I added 2 items for Java in the Remaining issues in the description. Please check the boxes when/if it is done. |
@open-telemetry/dotnet-maintainers I added 2 items for .Net in the Remaining issues in the description. Please check the boxes when/if it is done. |
@open-telemetry/python-maintainers I added 2 items for Python in the Remaining issues in the description. Please check the boxes when/if it is done. |
@tigrannajaryan could you elaborate on this? There's test code that validates trace context inject. Not sure if you're looking for something different / more specific. |
@jack-berg ideally we would want a minimal standalone example, but test code is probably also good enough. I just wanted to make sure we clearly demonstrate that trace context injection works with the current design. Please feel free to tick the boxes for Java. |
Handler implementation here. Where do we link the example? Here is an example that demonstrates https://github.com/open-telemetry/opentelemetry-python/tree/main/docs/examples/logs
API and SDK prototype implementation. The above example shows how to use API + SDK + Handler + Exporter to glue everything up to send data to the collector I think both items can be ticked. |
@tigrannajaryan I can't tick the boxes because of a permissions issue. Please tick the two items for Python. |
I have just tried the latest Python example and can confirm it works as expected, including the trace context in logs. I marked Python items done. Thanks. |
There's a working example here as well that uses the same instrumentation, but applies it automatically using the java agent. It exports spans/metrics/logs to a collector running with the logging exporter. If you exercise the the app by invoking its endpoint, it will log a message in the context of a span, which you can see in the logs of the collector. I'm going to check the boxes because while its always good to have more examples, I think the docs and the test code are a good enough description. |
@alanwest can you please tell if any of these are done? If not I will create separate issues for tracking. |
@CodeBlanch please ping me after you check .net prototype so that I can mark the relevant checkboxes. |
@tigrannajaryan Here is the .NET prototype (main-logs branch):
I did those a while back before the split out of the Events API but as far as LoggerProvider/Logger/LogRecord it is all there and the spec met our needs for the prototype 👍 |
Adding functional examples demonstrating the log4j and logback appenders. Partially motivated by the goal of [stabilizing log bridge API and SDK](open-telemetry/opentelemetry-specification#2911), partially to make it abundantly how to use our log solutions. --------- Co-authored-by: Trask Stalnaker <[email protected]>
I am adding #3301 as a pre-requisite. |
does Log API/SDK stabilization include Trace Context in Legacy Formats? if so, can you add consideration of #3303 as a pre-requisite? |
@trask that's a good callout. Thinking about it more, this seems like its more appropriate to define as part of semantic conventions, or perhaps as a section under compatibility. I don't think we should gate the Logs Bridge API / SDK stability on this. |
Added #3386 as a requirement. |
Added #3387 to the checklist. |
Added #3385 to the checklist. |
Added #3394 to the checklist. |
@open-telemetry/dotnet-maintainers, @open-telemetry/python-maintainers, @open-telemetry/javascript-maintainers, @open-telemetry/cpp-maintainers: a couple of changes have been made recently to the log bridge API / SDK spec. Can you review #3386, #3397, #3385 and ensure that they are implementable, and confirm by commenting on this issue?
|
Need to also merge #3383 |
As far as I can tell this should be no problem for the JS implementation. |
Looks fine to me as well |
All items in #2911 have been completed and I believe logs can now be marked stable.
Completed in #3376! |
…y#3031) Fixes open-telemetry#3003 Contributes to open-telemetry#2911 ## Changes This PR moves and reorganizes parts of the specification relevant to exporting OTLP data to a file. * Removes the "Build-in exporters" section from the Log SDK. The OTLP exporter has its own specification covering all signals. The part regarding a file exporter is not unique to logs. Exporting OTLP data to a file is also applicable to trace and metric data. * Moves the file describing OTLP JSON serialization under the `protocol` subdirectory. As discussed in the Logs SIG (12/7/2022), this file provides a foundation for further progress on specifying an OTLP file exporter.
All items in open-telemetry#2911 have been completed and I believe logs can now be marked stable.
OpenTelemetry's vision for supporting logs is clear:
A number of prototypes exist demonstrating the Log API's utility in implementing log appenders for existing logging libraries.
We have also received end user feedback suggesting a demand for a stable release of these log appenders.
I believe the API and SDK components as specified are nearly sufficient and we should consider making them stable. The
LoggerProvider
andLogger
APIs are necessary for developing log appenders. The SDK components (i.e., log processors, exporters, etc) nicely mirrors the trace specification.Below I've attempted to capture a list of remaining issues. If folks have additional things to add, please share!
Remaining issues
The text was updated successfully, but these errors were encountered: