Skip to content

Commit 5622948

Browse files
committed
Test validation adjustments, workflow adjustments
update emf dimensions, add resourcedetection processor switch to otlp endpoint update collector config tmp use jj22ee script for ocb use generic platform, update test validations to remove some expected metadata expected UnmappedOperation, maybe expect no RemoteEnvironment, RemoteService uses IP --remote-service-ip addition client-call has only 1 EMF entry update metrics with UnmappedOperation query RemoteServiceIp remove local InternalOperation in client-call change region to us-east-1 change otel col test cluster name fix update validations for traces update metadata in entity trace touch-ups workflow touch ups undo hardcoded region cron job wip additions update account to use, update region cron job remove hardcoded namespace
1 parent 3cc5c2e commit 5622948

20 files changed

+373
-837
lines changed

.github/workflows/java-eks-otlp-ocb-canary.yml

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,9 @@
88
## Logs, metrics, and traces are all validated.
99
name: Java EKS OTLP/OCB Enablement Canary Test
1010
on:
11-
# TODO: Reintroduce cron-job
12-
# schedule:
13-
# - cron: '12,37 * * * *' # run the workflow at 12th and 37th minute of every hour
11+
schedule:
12+
- cron: '12,37 * * * *' # run the workflow at 12th and 37th minute of every hour
1413
workflow_dispatch: # be able to run the workflow on demand
15-
push:
16-
branches:
17-
- otlp-ocb
1814

1915
permissions:
2016
id-token: write
@@ -25,8 +21,8 @@ jobs:
2521
strategy:
2622
fail-fast: false
2723
matrix:
28-
aws-region: ['us-west-1']
29-
# TODO: Reintroduce all regions (one more first, then all except eu-central-2, then eu-central-2 when infra is deployed)
24+
aws-region: ['us-east-1']
25+
# TODO: Reintroduce all regions
3026
# aws-region: ['af-south-1','ap-east-1','ap-northeast-1','ap-northeast-2','ap-northeast-3','ap-south-1','ap-south-2','ap-southeast-1',
3127
# 'ap-southeast-2','ap-southeast-3','ap-southeast-4','ca-central-1','eu-central-1','eu-central-2','eu-north-1',
3228
# 'eu-south-1','eu-south-2','eu-west-1','eu-west-2','eu-west-3','il-central-1','me-central-1','me-south-1', 'sa-east-1',

.github/workflows/java-eks-otlp-ocb-test.yml

Lines changed: 27 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,9 @@ on:
3030
type: string
3131
outputs:
3232
job-started:
33-
value: ${{ jobs.metric-limiter.outputs.job-started }}
33+
value: ${{ jobs.java-eks-otlp-ocb.outputs.job-started }}
3434
validation-result:
35-
value: ${{ jobs.metric-limiter.outputs.validation-result }}
35+
value: ${{ jobs.java-eks-otlp-ocb.outputs.validation-result }}
3636

3737
permissions:
3838
id-token: write
@@ -54,7 +54,7 @@ env:
5454
TEST_RESOURCES_FOLDER: ${GITHUB_WORKSPACE}
5555

5656
jobs:
57-
test:
57+
java-eks-otlp-ocb:
5858
runs-on: ubuntu-latest
5959
timeout-minutes: 30
6060
outputs:
@@ -65,12 +65,10 @@ jobs:
6565
id: job-started
6666
run: echo "job-started=true" >> $GITHUB_OUTPUT
6767

68-
# TODO: Put back namespace
6968
- name: Generate testing id and sample app namespace
7069
run: |
7170
echo TESTING_ID="${{ github.job }}-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}" >> $GITHUB_ENV
72-
echo SAMPLE_APP_NAMESPACE="default" >> $GITHUB_ENV
73-
# echo SAMPLE_APP_NAMESPACE="ns-${{ github.run_id }}-${{ github.run_number }}" >> $GITHUB_ENV
71+
echo SAMPLE_APP_NAMESPACE="ns-${{ github.run_id }}-${{ github.run_number }}" >> $GITHUB_ENV
7472
7573
- uses: actions/checkout@v4
7674
with:
@@ -90,14 +88,6 @@ jobs:
9088
max_retry: 3
9189
sleep_time: 60
9290

93-
- name: Download enablement script
94-
uses: ./.github/workflows/actions/execute_and_retry
95-
with:
96-
pre-command: "mkdir enablement-script && cd enablement-script"
97-
command: "wget https://raw.githubusercontent.com/aws-observability/application-signals-demo/refs/heads/ocb/scripts/eks/appsignals/enable-app-signals-ocb.sh"
98-
cleanup: "rm -f enable-app-signals-ocb.sh"
99-
post-command: "chmod +x enable-app-signals-ocb.sh"
100-
10191
- name: Configure AWS Credentials
10292
uses: aws-actions/configure-aws-credentials@v4
10393
with:
@@ -108,7 +98,7 @@ jobs:
10898
uses: aws-actions/aws-secretsmanager-get-secrets@v2
10999
with:
110100
secret-ids: |
111-
ACCOUNT_ID, region-account/${{ env.E2E_TEST_AWS_REGION }}
101+
ACCOUNT_ID, otlp-region-account/gamma-${{ env.E2E_TEST_AWS_REGION }}
112102
JAVA_MAIN_SAMPLE_APP_IMAGE, e2e-test/java-main-sample-app-image
113103
JAVA_REMOTE_SAMPLE_APP_IMAGE, e2e-test/java-remote-sample-app-image
114104
@@ -149,20 +139,21 @@ jobs:
149139
run: kubectl get namespace | awk '/^ns-[0-9]+-[0-9]+/{print $1}' | xargs --no-run-if-empty kubectl delete namespace
150140

151141
# Set up App Signals permissions and resources
142+
# Renamed `service-account` to `sa` to get under 128 character limit for CFN stack names, which includes the namespace
152143
- name: Create role for AWS access from the sample app
153144
id: create_service_account
154145
uses: ./.github/workflows/actions/execute_and_retry
155146
with:
156147
command: "eksctl create iamserviceaccount \
157-
--name service-account-${{ env.TESTING_ID }} \
148+
--name sa-${{ env.TESTING_ID }} \
158149
--namespace ${{ env.SAMPLE_APP_NAMESPACE }} \
159150
--cluster ${{ env.CLUSTER_NAME }} \
160151
--role-name eks-s3-access-${{ env.TESTING_ID }} \
161152
--attach-policy-arn arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess \
162153
--region ${{ env.E2E_TEST_AWS_REGION }} \
163154
--approve"
164155
cleanup: "eksctl delete iamserviceaccount \
165-
--name service-account-${{ env.TESTING_ID }} \
156+
--name sa-${{ env.TESTING_ID }} \
166157
--namespace ${{ env.SAMPLE_APP_NAMESPACE }} \
167158
--cluster ${{ env.CLUSTER_NAME }} \
168159
--region ${{ env.E2E_TEST_AWS_REGION }}"
@@ -192,7 +183,7 @@ jobs:
192183
- name: Install OTel Operator using enablement script
193184
uses: ./.github/workflows/actions/execute_and_retry
194185
with:
195-
command: "${{ env.TEST_RESOURCES_FOLDER }}/enablement-script/enable-app-signals-ocb.sh \
186+
command: "${{ env.TEST_RESOURCES_FOLDER }}/terraform/java/eks-otlp-ocb/util/enable-app-signals-ocb.sh \
196187
${{ env.CLUSTER_NAME }} \
197188
${{ env.E2E_TEST_AWS_REGION }} \
198189
${{ env.SAMPLE_APP_NAMESPACE }}"
@@ -202,7 +193,10 @@ jobs:
202193
- name: Install OTel Collector
203194
uses: ./.github/workflows/actions/execute_and_retry
204195
with:
205-
command: "cd ${{ env.TEST_RESOURCES_FOLDER }}/terraform/java/eks-otlp-ocb/util && kubectl apply -f ./appsignals-collector.yaml -n ${{ env.SAMPLE_APP_NAMESPACE }}"
196+
command: "cd ${{ env.TEST_RESOURCES_FOLDER }}/terraform/java/eks-otlp-ocb/util && \
197+
sed -i -e 's/${E2E_TEST_AWS_REGION}/${{ env.E2E_TEST_AWS_REGION }}/g' ./appsignals-collector.yaml && \
198+
sed -i -e 's/${SAMPLE_APP_NAMESPACE}/${{ env.SAMPLE_APP_NAMESPACE }}/g' ./appsignals-collector.yaml && \
199+
kubectl apply -f ./appsignals-collector.yaml -n ${{ env.SAMPLE_APP_NAMESPACE }}"
206200
cleanup: "kubectl delete -f ./appsignals-collector.yaml -n ${{ env.SAMPLE_APP_NAMESPACE }} && \
207201
aws eks update-kubeconfig --name ${{ env.CLUSTER_NAME }} --region ${{ env.E2E_TEST_AWS_REGION }}"
208202
max_retry: 3
@@ -220,7 +214,7 @@ jobs:
220214
-var=\"eks_cluster_name=${{ env.CLUSTER_NAME }}\" \
221215
-var=\"eks_cluster_context_name=$(kubectl config current-context)\" \
222216
-var=\"test_namespace=${{ env.SAMPLE_APP_NAMESPACE }}\" \
223-
-var=\"service_account_aws_access=service-account-${{ env.TESTING_ID }}\" \
217+
-var=\"service_account_aws_access=sa-${{ env.TESTING_ID }}\" \
224218
-var=\"sample_app_image=${{ env.MAIN_SAMPLE_APP_IMAGE_ARN }}\" \
225219
-var=\"sample_remote_app_image=${{ env.REMOTE_SAMPLE_APP_IMAGE_ARN }}\" \
226220
-var='account_id=${{ env.ACCOUNT_ID }}'"
@@ -230,7 +224,7 @@ jobs:
230224
-var=\"kube_directory_path=${{ github.workspace }}/.kube\" \
231225
-var=\"eks_cluster_name=${{ env.CLUSTER_NAME }}\" \
232226
-var=\"test_namespace=${{ env.SAMPLE_APP_NAMESPACE }}\" \
233-
-var=\"service_account_aws_access=service-account-${{ env.TESTING_ID }}\" \
227+
-var=\"service_account_aws_access=sa-${{ env.TESTING_ID }}\" \
234228
-var=\"sample_app_image=${{ env.MAIN_SAMPLE_APP_IMAGE_ARN }}\" \
235229
-var=\"sample_remote_app_image=${{ env.REMOTE_SAMPLE_APP_IMAGE_ARN }}\""
236230
max_retry: 2
@@ -271,60 +265,54 @@ jobs:
271265
run: ./gradlew validator:run --args='-c java/eks-otlp-ocb/log-validation.yml
272266
--testing-id ${{ env.TESTING_ID }}
273267
--endpoint http://${{ env.APP_ENDPOINT }}
274-
--region us-west-2
268+
--region ${{ env.E2E_TEST_AWS_REGION }}
275269
--account-id ${{ env.ACCOUNT_ID }}
276270
--metric-namespace ${{ env.METRIC_NAMESPACE }}
277271
--log-group ${{ env.LOG_GROUP_NAME }}
278272
--app-namespace ${{ env.SAMPLE_APP_NAMESPACE }}
279-
--platform-info appsignals-ocb-demo
273+
--platform-info ${{ env.CLUSTER_NAME }}
280274
--service-name sample-application-${{ env.TESTING_ID }}
281275
--remote-service-deployment-name ${{ env.REMOTE_SERVICE_DEPLOYMENT_NAME }}
276+
--remote-service-ip ${{ env.REMOTE_SERVICE_POD_IP }}
282277
--query-string ip=${{ env.REMOTE_SERVICE_POD_IP }}&testingId=${{ env.TESTING_ID }}
283278
--rollup'
284-
# TODO: Undo hardcode
285-
# --platform-info ${{ env.CLUSTER_NAME }}
286-
# --region ${{ env.E2E_TEST_AWS_REGION }}
287279

288280
- name: Call endpoints and validate generated metrics
289281
id: metric-validation
290282
if: (steps.deploy-sample-app.outcome == 'success' || steps.log-validation.outcome == 'failure') && !cancelled()
291283
run: ./gradlew validator:run --args='-c java/eks-otlp-ocb/metric-validation.yml
292284
--testing-id ${{ env.TESTING_ID }}
293285
--endpoint http://${{ env.APP_ENDPOINT }}
294-
--region us-west-2
286+
--region ${{ env.E2E_TEST_AWS_REGION }}
295287
--account-id ${{ env.ACCOUNT_ID }}
296288
--metric-namespace ${{ env.METRIC_NAMESPACE }}
297289
--log-group ${{ env.LOG_GROUP_NAME }}
298290
--app-namespace ${{ env.SAMPLE_APP_NAMESPACE }}
299-
--platform-info appsignals-ocb-demo
291+
--platform-info ${{ env.CLUSTER_NAME }}
300292
--service-name sample-application-${{ env.TESTING_ID }}
301293
--remote-service-name sample-remote-application-${{ env.TESTING_ID }}
302294
--remote-service-deployment-name ${{ env.REMOTE_SERVICE_DEPLOYMENT_NAME }}
295+
--remote-service-ip ${{ env.REMOTE_SERVICE_POD_IP }}
303296
--query-string ip=${{ env.REMOTE_SERVICE_POD_IP }}&testingId=${{ env.TESTING_ID }}
304297
--rollup'
305-
# TODO: Undo hardcodes:
306-
# --platform-info ${{ env.CLUSTER_NAME }}
307-
# --region ${{ env.E2E_TEST_AWS_REGION }}
308298

309299
- name: Call endpoints and validate generated traces
310300
id: trace-validation
311301
if: (steps.deploy-sample-app.outcome == 'success' || steps.log-validation.outcome == 'failure' || steps.metric-validation.outcome == 'failure') && !cancelled()
312302
run: ./gradlew validator:run --args='-c java/eks-otlp-ocb/trace-validation.yml
313303
--testing-id ${{ env.TESTING_ID }}
314304
--endpoint http://${{ env.APP_ENDPOINT }}
315-
--region us-west-2
305+
--region ${{ env.E2E_TEST_AWS_REGION }}
316306
--account-id ${{ env.ACCOUNT_ID }}
317307
--metric-namespace ${{ env.METRIC_NAMESPACE }}
318308
--log-group ${{ env.LOG_GROUP_NAME }}
319309
--app-namespace ${{ env.SAMPLE_APP_NAMESPACE }}
320-
--platform-info appsignals-ocb-demo
310+
--platform-info ${{ env.CLUSTER_NAME }}
321311
--service-name sample-application-${{ env.TESTING_ID }}
322312
--remote-service-deployment-name ${{ env.REMOTE_SERVICE_DEPLOYMENT_NAME }}
313+
--remote-service-ip ${{ env.REMOTE_SERVICE_POD_IP }}
323314
--query-string ip=${{ env.REMOTE_SERVICE_POD_IP }}&testingId=${{ env.TESTING_ID }}
324315
--rollup'
325-
# TODO: Undo hardcode
326-
# --platform-info ${{ env.CLUSTER_NAME }}
327-
# --region ${{ env.E2E_TEST_AWS_REGION }}
328316

329317
- name: Refresh AWS Credentials
330318
if: ${{ github.event.repository.name == 'aws-application-signals-test-framework' }}
@@ -343,8 +331,6 @@ jobs:
343331
echo "validation-result=failure" >> $GITHUB_OUTPUT
344332
fi
345333
346-
# TODO: Simplify cleanup
347-
# Can just use `kubectl delete ns -n ${{ env.SAMPLE_APP_NAMESPACE }}` once the namespace is no longer hardcoded
348334
- name: Clean up
349335
if: always()
350336
continue-on-error: true
@@ -354,13 +340,7 @@ jobs:
354340
aws eks update-kubeconfig --name ${{ env.CLUSTER_NAME }} --region ${{ env.E2E_TEST_AWS_REGION }}
355341
eksctl delete iamserviceaccount --name cloudwatch-agent --namespace amazon-cloudwatch --cluster ${{ env.CLUSTER_NAME }} --region ${{ env.E2E_TEST_AWS_REGION }}
356342
kubectl delete ns opentelemetry-operator-system
357-
kubectl delete service appsignals-collector -n ${{ env.SAMPLE_APP_NAMESPACE }}
358-
kubectl delete service appsignals-collector-headless -n ${{ env.SAMPLE_APP_NAMESPACE }}
359-
kubectl delete service appsignals-collector-monitoring -n ${{ env.SAMPLE_APP_NAMESPACE }}
360-
kubectl delete deploy --all -n ${{ env.SAMPLE_APP_NAMESPACE }}
361-
kubectl delete service sample-remote-app-service -n ${{ env.SAMPLE_APP_NAMESPACE }}
362-
kubectl delete service sample-app-service -n ${{ env.SAMPLE_APP_NAMESPACE }}
363-
kubectl delete -f ./appsignals-collector.yaml -n ${{ env.SAMPLE_APP_NAMESPACE }}
343+
kubectl delete ns -n ${{ env.SAMPLE_APP_NAMESPACE }}
364344
aws eks update-kubeconfig --name ${{ env.CLUSTER_NAME }} --region ${{ env.E2E_TEST_AWS_REGION }}
365345
366346
- name: Terraform destroy
@@ -375,7 +355,7 @@ jobs:
375355
-var="kube_directory_path=${{ github.workspace }}/.kube" \
376356
-var="eks_cluster_name=${{ env.CLUSTER_NAME }}" \
377357
-var="test_namespace=${{ env.SAMPLE_APP_NAMESPACE }}" \
378-
-var="service_account_aws_access=service-account-${{ env.TESTING_ID }}" \
358+
-var="service_account_aws_access=sa-${{ env.TESTING_ID }}" \
379359
-var="sample_app_image=${{ env.MAIN_SAMPLE_APP_IMAGE_ARN }}" \
380360
-var="sample_remote_app_image=${{ env.REMOTE_SAMPLE_APP_IMAGE_ARN }}"
381361
@@ -384,7 +364,7 @@ jobs:
384364
continue-on-error: true
385365
run: |
386366
eksctl delete iamserviceaccount \
387-
--name service-account-${{ env.TESTING_ID }} \
367+
--name sa-${{ env.TESTING_ID }} \
388368
--namespace ${{ env.SAMPLE_APP_NAMESPACE }} \
389369
--cluster ${{ env.CLUSTER_NAME }} \
390370
--region ${{ env.E2E_TEST_AWS_REGION }}

0 commit comments

Comments
 (0)