-
Notifications
You must be signed in to change notification settings - Fork 916
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
Automatically Generate Instrumentation Documentation #13449
Conversation
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.
great PR!
...tation-docs/src/main/java/io/opentelemetry/instrumentation/docs/DocGeneratorApplication.java
Outdated
Show resolved
Hide resolved
it can be used now: https://github.com/grafana/otel-checker?tab=readme-ov-file#java (it includes the file from this PR directly) |
…ng to account for logback
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.
nice! I'd propose to make the one change from JAVAAGENT/LIBRARY to javaagent/library if that makes sense to you, and then we merge as a baseline and consider the other comments as just ideas for follow-ups
docs/instrumentation-list.yaml
Outdated
JAVAAGENT: | ||
- com.alibaba:druid:(,) | ||
LIBRARY: | ||
- com.alibaba:druid:1.0.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.
just a preference:
JAVAAGENT: | |
- com.alibaba:druid:(,) | |
LIBRARY: | |
- com.alibaba:druid:1.0.0 | |
javaagent: | |
- com.alibaba:druid:(,) | |
library: | |
- com.alibaba:druid:1.0.0 |
srcPath: instrumentation/apache-httpclient/apache-httpclient-4.3 | ||
target_versions: | ||
LIBRARY: | ||
- org.apache.httpcomponents:httpclient:4.3 |
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.
we could potentially find the upperbound via the latestDepTestLibrary
declaration
srcPath: instrumentation/apache-httpclient/apache-httpclient-4.0 | ||
target_versions: | ||
JAVAAGENT: | ||
- io.dropwizard:dropwizard-client:(,3.0.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.
might be nice to exclude dropwizard here somehow
- org.elasticsearch:elasticsearch:[6.0.0,8.0.0) | ||
- org.elasticsearch.client:transport:[6.0.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.
might be nice to only include the "primary" target somehow
- org.elasticsearch:elasticsearch:[6.0.0,8.0.0) | |
- org.elasticsearch.client:transport:[6.0.0,) | |
- org.elasticsearch.client:transport:[6.0.0,) |
- com.twitter:finagle-http_2.13:[23.11.0,] | ||
- com.twitter:finagle-http_2.12:[23.11.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.
makes sense to keep both of these though (since just reflecting different scala versions)
JAVAAGENT: | ||
- com.github.oshi:oshi-core:[5.3.1,) | ||
LIBRARY: | ||
- com.github.oshi:oshi-core:$oshiVersion |
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'd be in favor of just bumping oshi min version to 5.5.0 and getting rid of the conditional for arm mac, it's still reasonably old version and I don't think it's a very popular instrumentation
…mentation into generate-docs
Related to #13468
This was a bit of an experiment to see how far I could get with doing some basic code analysis to programmatically identify metadata about different instrumentations in order to automate some documentation.
What this does:
instrumentation
directory to identify each instrumentation, which group or "namespace" they belong to, and extracts information about whether it has library or javaagent support.docs/instrumentation-list.yaml
One idea is that we could run this as part of our release process and as instrumentations change between versions, this should give us a diff with insights into the library versions. It can hopefully also be used to automate the start of some other documentation, like individual instrumentation readme's, our supported libraries page, or information on the documentation website.
@zeitlinger is also experimenting with some other potential use cases.