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

Updated E2E DotNet Operation after route template fix #306

Merged
merged 11 commits into from
Nov 22, 2024

Conversation

AsakerMohd
Copy link
Contributor

@AsakerMohd AsakerMohd commented Oct 30, 2024

Description of changes:
Made changes to APIs to fix failing E2E tests after updating the aws.local.operation to have the proper route template.

Rollback procedure:

Can we safely revert this commit if needed

Yes.

Ensure you've run the following tests on your changes and include the link below:

To do so, create a test.yml file with name: Test and workflow description to test your changes, then remove the file for your PR. Link your test run in your PR description. This process is a short term solution while we work on creating a staging environment for testing.

NOTE: TESTS RUNNING ON A SINGLE EKS CLUSTER CANNOT BE RUN IN PARALLEL. See the needs keyword to run tests in succession.

  • Run Java EKS on e2e-playground in us-east-1 and eu-central-2
  • Run Python EKS on e2e-playground in us-east-1 and eu-central-2
  • Run metric limiter on EKS cluster e2e-playground in us-east-1 and eu-central-2
  • Run EC2 tests in all regions
  • Run K8s on a separate K8s cluster (check IAD test account for master node endpoints; these will change as we create and destroy clusters for OS patching)

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

@AsakerMohd AsakerMohd merged commit ab5e4f3 into main Nov 22, 2024
1 check passed
@AsakerMohd AsakerMohd deleted the dotnetE2ERouteFix branch November 22, 2024 19:27
Jeel-mehta pushed a commit to Jeel-mehta/aws-application-signals-test-framework that referenced this pull request Dec 24, 2024
…ity#306)

*Description of changes:*
Made changes to APIs to fix failing E2E tests after updating the
aws.local.operation to have the proper route template.

*Rollback procedure:*

>Can we safely revert this commit if needed

Yes.

*Ensure you've run the following tests on your changes and include the
link below:*

To do so, create a `test.yml` file with `name: Test` and workflow
description to test your changes, then remove the file for your PR. Link
your test run in your PR description. This process is a short term
solution while we work on creating a staging environment for testing.

NOTE: TESTS RUNNING ON A SINGLE EKS CLUSTER CANNOT BE RUN IN PARALLEL.
See the
[needs](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idneeds)
keyword to run tests in succession.
- Run Java EKS on `e2e-playground` in us-east-1 and eu-central-2
- Run Python EKS on `e2e-playground` in us-east-1 and eu-central-2
- Run metric limiter on EKS cluster `e2e-playground` in us-east-1 and
eu-central-2
- Run EC2 tests in all regions
- Run K8s on a separate K8s cluster (check IAD test account for master
node endpoints; these will change as we create and destroy clusters for
OS patching)

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

Enable runtime metrics in canaries (aws-observability#326)

*Description of changes:*
1. Enable runtime metrics in existing Python and Java canaries.
2. Upgrade ECR image to use G1GC as default GC.
3. Use `Always` ImagePullPolicy for k8s workloads.

*Rollback procedure:*

<Can we safely revert this commit if needed? If not, detail what must be
done to safely revert and why it is needed.>

*Ensure you've run the following tests on your changes and include the
link below:*

ECR

https://github.com/aws-observability/aws-application-signals-test-framework/actions/runs/11967144237

Python eks

https://github.com/aws-observability/aws-application-signals-test-framework/actions/runs/11963840109

Python ec2

https://github.com/aws-observability/aws-application-signals-test-framework/actions/runs/11963729958

Python ecs

https://github.com/aws-observability/aws-application-signals-test-framework/actions/runs/11963731839

Python k8s

https://github.com/aws-observability/aws-application-signals-test-framework/actions/runs/11963859634

Java eks

https://github.com/aws-observability/aws-application-signals-test-framework/actions/runs/11977537794

Java ec2

https://github.com/aws-observability/aws-application-signals-test-framework/actions/runs/11964002141

Java ecs

https://github.com/aws-observability/aws-application-signals-test-framework/actions/runs/11967188838

Java k8s

https://github.com/aws-observability/aws-application-signals-test-framework/actions/runs/11967448835

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

Co-authored-by: Harry <[email protected]>

Test

Test

Build image version 6.0

Trying to handle different versions dynamically

Test for dynamic language version

Uploading images to main and remote services

Updating image tag

Deploy traffic generator

Testing version 6.0

Cancelling scheduled runs

stopping scheduled runs

Testing version 6.0 e2e test

Testing version 8.0

Testing s3 deployment

Test

Testing

Testing ec2 setup

Testing EC2

Test EC2

Testing default EC2

Testing default EC2 setup

Testing eks

Testing EKS with Dotnet version 8.0

Testing EC2 setup for version 6.0

Testing EC2 setup for version 6.0

Testing default Ec2 setup for version 6.0

Running default EC2 e2e test

Testing default EC2 test for version 6.0

Final test on ec2 cluster with version 6.0

Final test on ec2 with version 8.0

Dynamically handling both versions for ec2 instance

Testing dynamic handling of language versions for sample app

Deploying sample apps for both version

Running e2e test on ec2 instance

Trying e2e ec2 test

Testing 1

Testing ec2 default test

[OTLP/OCB] Add e2e canary tests running on Java/EKS using OTLP endpoint (aws-observability#328)

*Issue description:*

Add test case for OTLP+OCB testing
- Add e2e test Canary running in IAD in new OTLP specific test accounts
- Added validation files
- Note - The diffs compared to non-OTLP are numerous. [See majority of
the diffs
here](aws-observability@5622948).
- Added terraform files
- Include test resources specific for OTLP+OCB testing:
  - `terraform/java/eks-otlp-ocb/util/appsignals-collector.yaml`
- Contains OCB Collector and auto-instrumentation configurations for use
on EKS
  - `terraform/java/eks-otlp-ocb/util/enable-app-signals-ocb.sh`
- Enablement script to install OpenTelemetry Operator in EKS cluster and
sets up IAM Service Account.

Update Validator
- support `remoteServiceIp` input
- if provided, query metrics for remoteServiceNames with
`remoteServiceIp`
- Changes to
`validator/src/main/java/com/amazon/aoc/models/xray/Entity.java`
- Validate `metadata` as Map<String, Object> instead of Map<String,
Map<String, Object>>. This change is needed for OTLP+OCB test cases, and
has been validated to work with the existing non-OTLP test cases.

*Description of changes:*

*Rollback procedure:*

- We safely revert this commit if needed

*Ensure you've run the following tests on your changes and include the
link below:*

- Test ran in new OTLP account (Java+EKS):
https://github.com/aws-observability/aws-application-signals-test-framework/actions/runs/12058149370

- Run Java EKS on `e2e-playground` in us-east-1
https://github.com/aws-observability/aws-application-signals-test-framework/actions/runs/12061315729
- Run Python EKS on `e2e-playground` in us-east-1
https://github.com/aws-observability/aws-application-signals-test-framework/actions/runs/12061315729
- ~~Run metric limiter on EKS cluster `e2e-playground` in us-east-1 and
eu-central-2~~
- Run EC2 tests in all regions
https://github.com/aws-observability/aws-application-signals-test-framework/actions/runs/12060250860/job/33630333497
- ~~Run K8s on a separate K8s cluster (check IAD test account for master
node endpoints; these will change as we create and destroy clusters for
OS patching)~~

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]>

Update validation result success condition for OTLP/OCB (aws-observability#329)

*Issue description:*

*Description of changes:*
- In `"Save test results"` of OCB+OTLP EKS workflow, update logic for
setting `"validation-result=success"` to be more similar to other
workflows.
  - [Current OTLP Java EKS test

](https://github.com/aws-observability/aws-application-signals-test-framework/blob/3a14868c977cdad993100ed03a5f365ff0751bbb/.github/workflows/java-eks-otlp-ocb-test.yml#L339)
- [Compared to regular Java
EKS](https://github.com/aws-observability/aws-application-signals-test-framework/blob/3a14868c977cdad993100ed03a5f365ff0751bbb/.github/workflows/java-eks-test.yml#L455)

*Rollback procedure:*

N/A

*Ensure you've run the following tests on your changes and include the
link below:*

https://github.com/aws-observability/aws-application-signals-test-framework/actions/runs/12188286530/job/34000954449#step:31:1

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

Changed volume size from 5 to 35GB for Windows EC2 tests (aws-observability#331)

*Description of changes:*
Windows EC2 tests were failing due to capacity issues. Updated the
terraform script to increase the capacity and did a test run and it's
now passing:

https://github.com/aws-observability/aws-application-signals-test-framework/actions/runs/12243621218/job/34153583025

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

Bump path-to-regexp and express in /sample-apps/node/remote-service (aws-observability#330)

Update node express version - dependabot security (aws-observability#334)

*Issue description:*
Dependabot security telling us to upgrade express version for node, but
it is unable to generate the PR.

https://github.com/aws-observability/aws-application-signals-test-framework/security/dependabot/17

*Description of changes:*
Updated express to 4.21.2, matching PR as this one:
https://github.com/aws-observability/aws-application-signals-test-framework/pull/330/files

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

Added Dotnet Lambda E2E Tests (aws-observability#332)

*Description of changes:*
This change adds workflow files and terraform scripts that builds the
infrastructure (lambda function and lambda layer) for DotNet lambda
layer. For now, the cron schedule in
[dotnet-lambda-canary.yml](https://github.com/aws-observability/aws-application-signals-test-framework/compare/dotnetLambdaE2E?expand=1#diff-7f7da6fc2394c58665b91c661888dfc9afec0edf64c1a53701e56a7fcdf943bd)
is disabled which means that tests won't run yet. We will need to wait
until we officially release the lambda layer. However, I updated the
aws-otel-dotnet-instrumentation build workflow to run the lambda tests
on main build/merge.

Testing:
Check this run for details, especially dotnet-lambda-default step:
https://github.com/aws-observability/aws-otel-dotnet-instrumentation/actions/runs/12283246401/job/34276401374.
This verifies that E2E tests work and that it runs as part of the main
build for the `aws-otel-dotnet-instrumentation`. (I disabled other E2E
tests for the run above just to save time.)

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

[EKS] Fix: Ensure concurrency tag includes cluster name (aws-observability#335)

Ensure concurrency tag includes cluster name so that if the cluster is
used in another branch the tests still don't run at the same time.

Revert PR

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

Fixed lambda sample app upload workflow (aws-observability#337)

*Description of changes:*
While doing some tests, found out that the lambda sample app workflow
upload wasn't working as expected. I fixed it in this PR and tested it
here:
https://github.com/aws-observability/aws-application-signals-test-framework/actions/runs/12398929067/job/34612754042

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

Update E2E test to ADOT Java V2.x change  (aws-observability#336)

*Description of changes:*
This PR update the Java E2E test to match with existing ADOT Java v1.x
agent as well as upcoming ADOT Java v2.x agent with the following
change:
1.Enable controller telemetry using env variable
`OTEL_INSTRUMENTATION_COMMON_EXPERIMENTAL_CONTROLLER_TELEMETRY_ENABLED`,
which is disabled by default.

https://opentelemetry.io/docs/zero-code/java/agent/disable/#suppressing-controller-andor-view-spans
2. update `http.request.url` in trace validator. As in v2.x, the
http.target attribute is deprecated, the parameter won't be propagated
into `http.request.url`. ([Related CW agent
code](https://github.com/amazon-contributing/opentelemetry-collector-contrib/blob/8e059f1441dbfc24b52d9716a95a7799565679de/exporter/awsxrayexporter/internal/translator/http.go#L74))
3. Comment out the check for `aws.xray. auto_instrumentation`, it is
created from
[CWagent](https://github.com/amazon-contributing/opentelemetry-collector-contrib/blob/8e059f1441dbfc24b52d9716a95a7799565679de/exporter/awsxrayexporter/internal/translator/aws.go#L254),
which is depend on upstream attribute telemetry.auto.version , but
upstream recently rename it to telemetry.distro.version. Uncomment after
the CW agent is updated to read new attribute.

<Can we safely revert this commit if needed? If not, detail what must be
done to safely revert and why it is needed.>
Yes

*Ensure you've run the following tests on your changes and include the
link below:*
Running the E2E test with existing Java v1.x agent:
- EC2:
https://github.com/aws-observability/aws-application-signals-test-framework/actions/runs/12383147122
- EKS:
https://github.com/aws-observability/aws-application-signals-test-framework/actions/runs/12383150295/job/34565294933
(Only succeed in us-east-1 as the playground cluster is only exist in
IAD)
- K8S:
https://github.com/aws-observability/aws-application-signals-test-framework/actions/runs/12383258067
- ECS:
https://github.com/aws-observability/aws-application-signals-test-framework/actions/runs/12383148625

Running the E2E test with new Java v2.x agent:
- EC2:
https://github.com/aws-observability/aws-application-signals-test-framework/actions/runs/12378967612
- EKS:
https://github.com/aws-observability/aws-application-signals-test-framework/actions/runs/12382416662
- K8S:
https://github.com/aws-observability/aws-application-signals-test-framework/actions/runs/12378972156
- ECS:
https://github.com/aws-observability/aws-application-signals-test-framework/actions/runs/12378968843

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

Stopping java eks oltp ocb canary

Sample app deployment for ec2

Reverting back changes on this branch
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.

2 participants