atomikos / transactions-essentials

Development repository for next major release of
https://www.atomikos.com/Main/TransactionsEssentials
Other
461 stars 139 forks source link

OTel support built-in. #184

Open Exnadella opened 1 year ago

Exnadella commented 1 year ago

Is your feature request related to a problem? Please describe.

We are currently facing a challenge related to tracing during our integration with Honeycomb using Opentelemetry. We're encountering an issue where multiple processes are created that can't retain the initialized span, when using atomikos.

Describe the solution you'd like I have sought assistance on this matter by posting in the CNCF - Otel-Java Channel on Slack. We're particularly keen on understanding whether Atomikos offers any features that are related to OpenTelemetry.

Describe alternatives you've considered On a related note, we are unable to develop a single Unit Test to span both MySQL and Redis. We noted that TestContainer has rolled out services for both MySQL and Redis, where a fresh container database can be initialized for each method or class as required for running the tests. Does the latest version of Atomikos include these features?

Additional context Add any other context or screenshots about the feature request here.

Additionally, I'm planning an upgrade to Spring 3.1.0, which offers support for JakartaEE and GraalVM. In this context, I was wondering if the most recent versions of Atomikos, 6.0.0 or 6.0.109, resolve any issues pertaining to JakartaEE, GraalVM, or OpenTelemetry, Testcontainers provided by AtomicJars.

GuyPardon commented 1 year ago

Our commercial solution supports opentracing and micrometer. We haven't tried OpenTelemetry but we can have a look.

JakartaEE and Spring 3 are supported in our 6.0 release.

Not sure I understand your question / point regarding TestContainer, can you elaborate?

Thanks

Exnadella commented 1 year ago

Hi Guy,

Thank you for your reply. Testcontainers make it possible to inject Docker containers at the class and method levels, thereby enabling us to run Junit5 tests seamlessly across various databases. If required, we don't need databases in the development environment. All necessary databases can be created and terminated at the time of test executions. https://testcontainers.com/cloud/ https://testcontainers.com/ https://testcontainers.com/modules/ https://www.atomicjar.com

John Watson has kindly offered to assist with Atomikos - OpenTelemetry. They've successfully instrumented approximately 120, which includes around 60 that we are currently utilizing.

[image: image.png]

Should Jakartee be accessible, we'd be interested in upgrading our app to the most recent version of Spring Boot, incorporating both GraalVM and TomcatEE. My main requirement would be to operate it using Paketo-Buildpacks inside the OKE cluster with LogCloudDS.

I have attached the Excel which explains the different instrumentations of various artifacts.

Thanks & Regards,

Ranganath Nadella,

On Tue, Jun 13, 2023 at 4:29 PM GuyPardon @.***> wrote:

Our commercial solution supports opentracing and micrometer. We haven't tried OpenTelemetry but we can have a look.

JakartaEE and Spring 3 are supported in our 6.0 release.

Not sure I understand your question / point regarding TestContainer, can you elaborate?

Thanks

— Reply to this email directly, view it on GitHub https://github.com/atomikos/transactions-essentials/issues/184#issuecomment-1589544687, or unsubscribe https://github.com/notifications/unsubscribe-auth/AFMIPFVQEQMA5JIY63S5RVTXLCBNVANCNFSM6AAAAAAZFBLXUQ . You are receiving this because you authored the thread.Message ID: @.***>

GuyPardon commented 1 year ago

Happy to discuss with John Watson what would be missing in our codebase.

For TestContainers: we are not that familiar with it so not sure what we can do?

Exnadella commented 1 year ago

We're still working out how to incorporate them. I've observed a few demonstrations where MySQL and Redis databases are declared as objects, allowing us to execute tests within them. I'm confident that Atomikos will be capable of operating on these, as they are essentially databases housed within containers. Every test case can inject an individual database for a DAO.