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

Merge main to v2.0.x #1031

Closed
wants to merge 10 commits into from
Closed

Merge main to v2.0.x #1031

wants to merge 10 commits into from

Conversation

harrryr
Copy link
Contributor

@harrryr harrryr commented Feb 28, 2025

Issue #, if available:
Unable to merge contents of release/v2.0.x before merging content of main to release/v2.0.x first

image

Description of changes:
Created a branch from release/v2.0.x called v2.0.x-merge-main, then pulled the latest main changes to v2.0.x-merge-main. Will now add these changes to release/v2.0.x
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

srprash and others added 10 commits January 10, 2025 10:40
The sample app doesn't need ADOT Javaagent instrumentation, rather it
depends on instrumentaiton via lambda layer. SO it makes sense to not
depend on adot javaagent build for building this sample app.


By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license.
Adding a manually triggered workflow to release the java lambda layers
to multiple regions.

Tested by running the workflow in my fork, and confirmed that the layer
was successfully published in `us-east-1`.
GH run:
https://github.com/srprash/aws-otel-java-instrumentation/actions/runs/12738121465


By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license.
…stBuckets API call (#1003)

Related to
#1002,
we want to use native Java Http Client instead of OkHttp in the sample
app.

Also, I noticed that the other language sample apps
([Python](https://github.com/aws-observability/aws-otel-python-instrumentation/blob/main/lambda-layer/sample-apps/function/lambda_function.py#L15))
does a `ListBuckets` call whereas this sample app is doing `ListBucket`
call. So updating that to be consistent with others.


By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license.
Bumps [io.grpc:protoc-gen-grpc-java](https://github.com/grpc/grpc-java)
from 1.56.1 to 1.69.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/grpc/grpc-java/releases">io.grpc:protoc-gen-grpc-java's
releases</a>.</em></p>
<blockquote>
<h2>v1.69.1</h2>
<h2>Bug Fixes</h2>
<ul>
<li>okhttp: Improve certificate handling by rejecting non-ASCII subject
alternative names and hostnames as seen in CVE-2021-0341 (<a
href="https://redirect.github.com/grpc/grpc-java/issues/11749">#11749</a>)
(a0982ca0a). Hostnames are considered trusted and CAs are required to
use punycode for non-ASCII hostnames, so this is expected to provide
defense-in-depth. See also the <a
href="https://gosecure.ai/blog/2020/10/27/weakness-in-java-tls-host-verification/">related
GoSecure blog post</a> and the <a
href="https://android.googlesource.com/platform/external/okhttp/+/ddc934efe3ed06ce34f3724d41cfbdcd7e7358fc">AOSP
fix</a></li>
<li>xds: Preserve nonce when unsubscribing last watcher of a particular
type so that new discovery requests of that type are handled correctly
(1cf1927d1). This (along with 1cf1927d1) fixes a nonce-handling
regression introduced in 1.66.0 that could cause resources to appear to
not exist until re-creating the ADS stream. Triggering the behavior
required specific config changes. It is easiest to trigger when clusters
use EDS and routes are changed from one cluster to another. The error
“found 0 leaf (logical DNS or EDS) clusters for root cluster” might then
be seen</li>
<li>xds: Remember nonces for unknown types (6c12c2bd2)</li>
<li>xds: Unexpected types in the bootstrap’s server_features should be
ignored (e8ff6da2c). They were previously required to be strings</li>
<li>xds: Fixed unsupported unsigned 32 bits issue for circuit breaker
(<a
href="https://redirect.github.com/grpc/grpc-java/issues/11735">#11735</a>)
(f8f613984). This fixes clients treating large max_requests as “no
requests” and failing all requests</li>
<li>xds: Remove xds authority label from metric registration (<a
href="https://redirect.github.com/grpc/grpc-java/issues/11760">#11760</a>)
(6516c7387). This fixes the error “Incorrect number of required labels
provided. Expected: 4” introduced in 1.69.0</li>
</ul>
<h2>v1.69.0</h2>
<p><strong>v1.69.0</strong></p>
<p>New Features</p>
<ul>
<li>api: Allow <code>LoadBalancer</code>s to specify an authority
per-RPC.(<a
href="https://redirect.github.com/grpc/grpc-java/issues/11631">#11631</a>)
(c167ead85) CallOptions.withAuthority() has higher precedence.</li>
<li>netty: Add soft Metadata size limit enforcement. (<a
href="https://redirect.github.com/grpc/grpc-java/issues/11603">#11603</a>)
(735b3f3fe) The soft limit is a lower size limit that fails an
increasing percentage of RPCs as the Metadata size approaches the upper
limit. This can be used as an “early warning” that the Metadata size is
growing too large</li>
<li>alts: support altsCallCredentials in
<code>GoogleDefaultChannelCredentials</code> (<a
href="https://redirect.github.com/grpc/grpc-java/issues/11634">#11634</a>)
(ba8ab796e)</li>
<li>xds: Add grpc.xds_client metrics, as documented by <a
href="https://grpc.io/docs/guides/opentelemetry-metrics/#xdsclient-instruments">OpenTelemetry
Metrics</a> (<a
href="https://redirect.github.com/grpc/grpc-java/issues/11661">#11661</a>)
(20d09cee5). <code>grpc.xds.authority</code> is not yet available</li>
</ul>
<p>Bug Fixes</p>
<ul>
<li>api: When forwarding from <code>Listener</code> onAddresses to
<code>Listener2</code> continue to use onResult (<a
href="https://redirect.github.com/grpc/grpc-java/issues/11666">#11666</a>)
(dae078c0a). This fixes a 1.68.1 &quot;IllegalStateException: Not called
from the SynchronizationContext&quot; regression (<a
href="https://redirect.github.com/grpc/grpc-java/issues/11662">#11662</a>)
that could be seen in certain custom NameResolvers</li>
<li>okhttp: If the frame handler thread is null do not schedule it on
the executor (ef1fe8737). This fixes a 1.68.1 NullPointerException
regression when a custom transportExecutor was provided to the channel
and it did not have enough threads to run new tasks</li>
</ul>
<p>Improvements</p>
<ul>
<li>api: Add <code>java.time.Duration</code> overloads to
<code>CallOptions</code>, <code>AbstractStub</code> methods that take
TimeUnit and a time value (<a
href="https://redirect.github.com/grpc/grpc-java/issues/11562">#11562</a>)
(766b92379)</li>
<li>core: Make timestamp usage in Channelz use nanos from
Java.time.Instant when available (<a
href="https://redirect.github.com/grpc/grpc-java/issues/11604">#11604</a>)
(9176b5528). This increases the timestamp precision from
milliseconds</li>
<li>okhttp: Fix for ipv6 link local with scope (<a
href="https://redirect.github.com/grpc/grpc-java/issues/11725">#11725</a><a
href="grpc/grpc-java@e98e744">)
(e98e7445b)</a></li>
<li>binder: Let <code>AndroidComponentAddress</code> specify a target
UserHandle (<a
href="https://redirect.github.com/grpc/grpc-java/issues/11670">#11670</a>)
(e58c998a4)</li>
<li>servlet: Deframe failures should be logged on the server as warnings
(<a
href="https://redirect.github.com/grpc/grpc-java/issues/11645">#11645</a>)
(a5db67d0c)</li>
<li>s2a: Rename the Bazel target s2av2_credentials to s2a (29dd9bad3).
The target s2a had been referenced by IO_GRPC_GRPC_JAVA_OVERRIDE_TARGETS
but didn’t previously exist</li>
<li>services: Make channelz work with proto lite (<a
href="https://redirect.github.com/grpc/grpc-java/issues/11685">#11685</a>)
(b1703345f). This compatibility is on the source level. There is not a
pre-built binary on Maven Central that supports proto lite</li>
<li>services: Deprecate ProtoReflectionService (<a
href="https://redirect.github.com/grpc/grpc-java/issues/11681">#11681</a>)
(921f88ae3). The class implements the deprecated v1alpha of the
reflection protocol. Prefer ProtoReflectionServiceV1, which implements
the v1 version of the reflection protocol</li>
</ul>
<p>Dependencies</p>
<ul>
<li>Upgrade proto-google-common-protos to 2.48.0 (1993e68b0)</li>
<li>Upgrade google-auth-library to 1.24.1 (1993e68b0)</li>
<li>Upgrade error_prone_annotations to 2.30.0 (1993e68b0)</li>
<li>Upgrade Guava to 33.3.1-android (1993e68b0)</li>
<li>Upgrade opentelemetry-api to 1.43.0 (1993e68b0)</li>
<li>xds: Remove Bazel dependency on xds v2 (664f1fcf8). This had been
done for the Maven Central binaries in 1.63.0, but had been missed for
Bazel builds</li>
</ul>
<p>Documentation</p>
<ul>
<li>binder: Update error codes doc for new &quot;Safer Intent&quot;
rules. (<a
href="https://redirect.github.com/grpc/grpc-java/issues/11639">#11639</a>)
(fe350cfd5)</li>
<li>examples: Use xds-enabled server and xds credentials in
example-gcp-csm-observability (<a
href="https://redirect.github.com/grpc/grpc-java/issues/11706">#11706</a>)
(a79982c7f)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/grpc/grpc-java/commit/5e14f9974ec0ff67c6f6a4c747969ba637911622"><code>5e14f99</code></a>
Bump version to 1.69.1</li>
<li><a
href="https://github.com/grpc/grpc-java/commit/d13bc2597bc78053ad255344f2fda10c3ed88448"><code>d13bc25</code></a>
Update README etc to reference 1.69.1</li>
<li><a
href="https://github.com/grpc/grpc-java/commit/05d9628e8681e82a025ac001eab73648bac063bc"><code>05d9628</code></a>
fix security issue with okhttp (<a
href="https://redirect.github.com/grpc/grpc-java/issues/11749">#11749</a>)</li>
<li><a
href="https://github.com/grpc/grpc-java/commit/112dccbb6a43cd92fcc4c3f1de9396e95e1e0880"><code>112dccb</code></a>
xds: fixed unsupported unsigned 32 bits issue for circuit breaker (<a
href="https://redirect.github.com/grpc/grpc-java/issues/11735">#11735</a>)</li>
<li><a
href="https://github.com/grpc/grpc-java/commit/0de7bfefb9f5627851d116da09126d119d8a94a2"><code>0de7bfe</code></a>
xds: Remove xds authority label from metric registration</li>
<li><a
href="https://github.com/grpc/grpc-java/commit/e3e343db8e09c0bc2f7a2ad30da6934778c3a8a8"><code>e3e343d</code></a>
xds: Remember nonces for unknown types</li>
<li><a
href="https://github.com/grpc/grpc-java/commit/aba8a0c30620d534ed52c76fc672f567375a5310"><code>aba8a0c</code></a>
xds: Preserve nonce when unsubscribing type</li>
<li><a
href="https://github.com/grpc/grpc-java/commit/ded82e209cff42aac9e6e1dae20c6538837b0bb5"><code>ded82e2</code></a>
xds: Unexpected types in server_features should be ignored</li>
<li><a
href="https://github.com/grpc/grpc-java/commit/eccb137e4bd34b99e16c03122569bef0313d72e3"><code>eccb137</code></a>
Bump version to 1.69.1-SNAPSHOT</li>
<li><a
href="https://github.com/grpc/grpc-java/commit/34a7cffcf3dca012cd3e48da14d127c3afd924bf"><code>34a7cff</code></a>
Bump version to 1.69.0</li>
<li>Additional commits viewable in <a
href="https://github.com/grpc/grpc-java/compare/v1.56.1...v1.69.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=io.grpc:protoc-gen-grpc-java&package-manager=gradle&previous-version=1.56.1&new-version=1.69.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
*Issue #, if available:*
The current nstrumentation was lacking ubuntu test
*Description of changes:*
Added the ubuntu test to the instrumentation
This is the workflow link:
https://github.com/Jeel-mehta/aws-application-signals-test-framework/actions/runs/13001021774

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license.

Co-authored-by: Jeel Mehta <[email protected]>
*Issue #, if available:*
The `upload-artifacts` and the `download-artifacts` v3 are deprecated
and causing the workflows to be stopped.
https://github.blog/changelog/2024-04-16-deprecation-notice-v3-of-the-artifact-actions/


By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license.
*Issue #, if available:*
ADOT SDK resource detectors by default have enabled a few AWS resource
detector which will call EC2 metadata API endpoints. These activities
have been captured by auto-instrumentation and generated AppSignals
metrics.

These calls should be present in traces, but not in metrics. 

*Description of changes:*
Suppress AwsSpanMetricsProcessor from generating metrics when the
RemoteService points to `169.254.169.254`

*Testing*
Deployed two EC2 instance with Java sample application and ADOT Java 
- `sample-application-2025-02-06-test`: ADOT Java with changes in this
PR
- `sample-application-2025-02-06`: Public latest ADOT Java

*Traces:*
Present from both EC2 instance

![image](https://github.com/user-attachments/assets/9c10a81d-0336-473f-81f3-9d4e61069401)

![image](https://github.com/user-attachments/assets/8be02cc9-dddb-4461-834e-98ad65d5a23f)

*Metrics*:
Present only for `sample-application-2025-02-06`:

![image](https://github.com/user-attachments/assets/97d29884-7133-47b5-aa0e-c5ac7a09cc3e)

*Logs*:
Present only for `sample-application-2025-02-06`:




By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license.
*Description of changes:*
Enabling baggage propagator to support Lineage propagation:
open-telemetry/opentelemetry-java-contrib#1671


By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license.
Issue #, if available:
Adding SigV4 Authentication extension for Exporting traces to OTLP
CloudWatch endpoint without needing to explictily install the collector.

Description of changes:
Added a new class that extends upstream's OTLP http span exporter.
Overrides the export method so that if the endpoint is CW, we add an
extra step of injecting SigV4 authentication to the headers.

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license.

---------

Co-authored-by: Mahad Janjua <[email protected]>
@harrryr harrryr requested a review from a team as a code owner February 28, 2025 23:06
@harrryr harrryr changed the title V2.0.x merge main Merge main to v2.0.x Feb 28, 2025
@codecov-commenter
Copy link

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

Attention: Patch coverage is 54.79452% with 33 lines in your changes missing coverage. Please review.

Please upload report for BASE (release/v2.0.x@3aceb87). Learn more about missing BASE report.

Files with missing lines Patch % Lines
...metry/javaagent/providers/OtlpAwsSpanExporter.java 63.63% 19 Missing and 1 partial ⚠️
...iders/AwsApplicationSignalsCustomizerProvider.java 0.00% 10 Missing and 1 partial ⚠️
...y/javaagent/providers/AwsSpanMetricsProcessor.java 66.66% 0 Missing and 2 partials ⚠️

❗ Your organization needs to install the Codecov GitHub app to enable full functionality.

Additional details and impacted files
@@                Coverage Diff                @@
##             release/v2.0.x    #1031   +/-   ##
=================================================
  Coverage                  ?   68.56%           
  Complexity                ?      328           
=================================================
  Files                     ?       27           
  Lines                     ?     1244           
  Branches                  ?      170           
=================================================
  Hits                      ?      853           
  Misses                    ?      334           
  Partials                  ?       57           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@harrryr harrryr closed this Mar 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants