-
Notifications
You must be signed in to change notification settings - Fork 2.7k
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
Initial Observability extension - devservices, devresources, LGTM #38448
Conversation
Just remembered I can add back the devresource vs devservice (autodiscovery) tests -- but need to adjust them to LGTM usage. |
Documentation is WIP -- first lets discuss if the concept is suitable enough to handle the things we want with observability and then hopefully beyond. |
🙈 The PR is closed and the preview is expired. |
integration-tests/observability-lgtm/src/main/resources/application.properties
Outdated
Show resolved
Hide resolved
extensions/observability-devservices/testlibs/devresource/pom.xml
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
.idea files should be removed from git.
/** | ||
* @return container id, if exists | ||
*/ | ||
public Optional<String> locateContainer(String serviceName, boolean shared, LaunchMode launchMode, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what about "tests"?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tests for an existing container usage?
Do we have some already?
I guess I need to force the redeploy / restart of the test somehow,
and see if the container is still up-n-running?
|
||
// Images | ||
|
||
public static final String LGTM = "grafana/otel-lgtm:0.2.0"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
prefix it with docker.io
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
public class ConfigUtils { | ||
|
||
public static boolean isEnabled(ContainerConfig config) { | ||
if (config != null && config.enabled()) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
do you want to check the Quarkus runtime classloader or build classloader?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I actually forgot to delete this class, as it's not used anymore.
|
||
@BuildSteps(onlyIfNot = IsNormal.class, onlyIf = { GlobalDevServicesConfig.Enabled.class, | ||
ObservabilityProcessor.IsEnabled.class }) | ||
class ObservabilityProcessor { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe you should add DevService in the name?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Renamed.
|
||
@BuildStep | ||
FeatureBuildItem feature() { | ||
return new FeatureBuildItem(Feature.OBSERVABILITY); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we need this feature?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess it doesn't hurt, if you want to reference it in some other extension?
Or what's the use case then?
(I saw that all of the extension processors had this ...)
Yeah, no idea how they ended up in in the first place. |
002fbba
to
6f43cf8
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
@alesj Can you please add a guide with documentation on how to use the extension? |
Well, it won't be just |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
ee83dfc
to
4dbf540
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Grafana OTel LGTM additional Documentation Fix enforcer configuration and make names consistent Update descriptors with latest dependency state Abstract Testcontainers usage, own Container SPI.
Status for workflow
|
Status for workflow
|
Status | Name | Step | Failures | Logs | Raw logs | Build scan |
---|---|---|---|---|---|---|
✖ | MicroProfile TCKs Tests | Verify |
Failures | Logs | Raw logs | 🔍 |
Full information is available in the Build summary check run.
You can consult the Develocity build scans.
Failures
⚙️ MicroProfile TCKs Tests #
- Failing: tcks/microprofile-opentelemetry
📦 tcks/microprofile-opentelemetry
✖ org.eclipse.microprofile.telemetry.tracing.tck.async.JaxRsClientAsyncTest.testIntegrationWithJaxRsClientAsync
- History - More details - Source on GitHub
java.util.concurrent.RejectedExecutionException: event executor terminated
at io.netty.util.concurrent.SingleThreadEventExecutor.reject(SingleThreadEventExecutor.java:934)
at io.netty.util.concurrent.SingleThreadEventExecutor.offerTask(SingleThreadEventExecutor.java:351)
at io.netty.util.concurrent.SingleThreadEventExecutor.addTask(SingleThreadEventExecutor.java:344)
at io.netty.util.concurrent.SingleThreadEventExecutor.execute(SingleThreadEventExecutor.java:836)
at io.netty.util.concurrent.SingleThreadEventExecutor.execute0(SingleThreadEventExecutor.java:827)
at io.netty.util.concurrent.SingleThreadEventExecutor.execute(SingleThreadEventExecutor.java:817)
at io.vertx.core.impl.EventLoopExecutor.execute(EventLoopExecutor.java:35)
Thanks very much @alesj for the effort! |
This is a simpler version of the previous (see below) PR.
This one just includes LGTM (https://github.com/grafana/docker-otel-lgtm) support with the new
devresource
mechanism.The stuff mentioned below will be added in the next PR(s).
Fixes #26445
This adds dynamic lookup of possible
observability
dev resources / services.It also adds REST clients for PromQL (Prometheus query language) and VictoriaMetrics REST api support; push, etc
The dev resources / services can be run in 3 different ways
QuarkusTestResource
dev resource(1) can be configured
(2) depends what's available on the classpath
(3) needs to be explicitly used in QuarkusTestResource
Currently supported dev services
It should be easy to add new / other
observability
dev services in the future,e.g. currently missing Prometheus, etc
by adding a new DevResourceLifecycleManager implementation.
Current TODO list