Skip to content

Commit c77053f

Browse files
author
Jeel Mehta
committed
Testing
1 parent 9baec9a commit c77053f

21 files changed

+79
-28
lines changed

.github/workflows/node-ec2-adot-sigv4-test.yml

Lines changed: 37 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
# Read more about reusable workflows: https://docs.github.com/en/actions/using-workflows/reusing-workflows#overview
77
name: Node EC2 ADOT SigV4 Use Case
88
on:
9+
push:
10+
branches:
11+
- Node_SigV4_logs_release_testing
912
workflow_call:
1013
inputs:
1114
caller-workflow-name:
@@ -34,13 +37,14 @@ permissions:
3437
env:
3538
E2E_TEST_AWS_REGION: 'us-west-2'
3639
CALLER_WORKFLOW_NAME: ${{ inputs.caller-workflow-name }}
37-
NODE_VERSION: ${{ inputs.node-version }}
38-
CPU_ARCHITECTURE: ${{ inputs.cpu-architecture }}
39-
ADOT_INSTRUMENTATION_NAME: ${{ inputs.staging-instrumentation-name }}
40+
NODE_VERSION: ${{ inputs.node-version || 'none' }}
41+
CPU_ARCHITECTURE: ${{ inputs.cpu-architecture || 'x86_64' }}
42+
ADOT_INSTRUMENTATION_NAME: ${{ inputs.staging-instrumentation-name || 'aws-aws-distro-opentelemetry-node-autoinstrumentation-0.6.0-dev0.tgz' }}
4043
E2E_TEST_ACCOUNT_ID: ${{ secrets.APPLICATION_SIGNALS_E2E_TEST_ACCOUNT_ID }}
4144
E2E_TEST_ROLE_NAME: ${{ secrets.APPLICATION_SIGNALS_E2E_TEST_ROLE_NAME }}
4245
METRIC_NAMESPACE: ApplicationSignals
43-
LOG_GROUP_NAME: aws/spans
46+
SPANS_LOG_GROUP_NAME: aws/spans
47+
APPLICATION_LOGS_LOG_GROUP_NAME: otlp_logs # This log group was created manually to store application logs
4448
TEST_RESOURCES_FOLDER: ${GITHUB_WORKSPACE}
4549

4650
jobs:
@@ -80,11 +84,11 @@ jobs:
8084

8185
- name: Set Get ADOT Instrumentation command environment variable
8286
run: |
83-
if [ "${{ github.event.repository.name }}" = "aws-otel-js-instrumentation" ]; then
84-
echo GET_ADOT_INSTRUMENTATION_COMMAND="aws s3 cp s3://adot-autoinstrumentation-node-staging/${{ env.ADOT_INSTRUMENTATION_NAME }} ./${{ env.ADOT_INSTRUMENTATION_NAME }} --region us-east-1 && npm install ${{ env.ADOT_INSTRUMENTATION_NAME }}" >> $GITHUB_ENV
85-
else
86-
echo GET_ADOT_INSTRUMENTATION_COMMAND="npm install ${{ env.ADOT_INSTRUMENTATION_NAME }}" >> $GITHUB_ENV
87-
fi
87+
# if [ "${{ github.event.repository.name }}" = "aws-otel-js-instrumentation" ]; then
88+
echo GET_ADOT_INSTRUMENTATION_COMMAND="aws s3 cp s3://adot-autoinstrumentation-node-staging/${{ env.ADOT_INSTRUMENTATION_NAME }} ./${{ env.ADOT_INSTRUMENTATION_NAME }} --region us-east-1 && npm install ${{ env.ADOT_INSTRUMENTATION_NAME }}" >> $GITHUB_ENV
89+
# else
90+
# echo GET_ADOT_INSTRUMENTATION_COMMAND="npm install ${{ env.ADOT_INSTRUMENTATION_NAME }}" >> $GITHUB_ENV
91+
# fi
8892
8993
- name: Set up terraform
9094
uses: ./.github/workflows/actions/execute_and_retry
@@ -121,6 +125,7 @@ jobs:
121125
-var="get_adot_instrumentation_command=${{ env.GET_ADOT_INSTRUMENTATION_COMMAND }}" \
122126
-var="language_version=${{ env.NODE_VERSION }}" \
123127
-var="cpu_architecture=${{ env.CPU_ARCHITECTURE }}" \
128+
-var="application_logs_log_group=${{ env.APPLICATION_LOGS_LOG_GROUP_NAME }}" \
124129
|| deployment_failed=$?
125130
126131
if [ $deployment_failed -eq 1 ]; then
@@ -171,14 +176,14 @@ jobs:
171176
# Validation for pulse telemetry data
172177
- name: Validate generated EMF logs
173178
id: log-validation
174-
run: ./gradlew validator:run --args='-c node/ec2/adot-sigv4/log-validation.yml
179+
run: ./gradlew validator:run --args='-c node/ec2/adot-aws-otlp/log-validation.yml
175180
--testing-id ${{ env.TESTING_ID }}
176181
--endpoint http://${{ env.MAIN_SERVICE_ENDPOINT }}
177182
--remote-service-deployment-name ${{ env.REMOTE_SERVICE_IP }}:8001
178183
--region ${{ env.E2E_TEST_AWS_REGION }}
179184
--account-id ${{ env.E2E_TEST_ACCOUNT_ID }}
180185
--metric-namespace ${{ env.METRIC_NAMESPACE }}
181-
--log-group ${{ env.LOG_GROUP_NAME }}
186+
--log-group ${{ env.SPANS_LOG_GROUP_NAME }}
182187
--service-name node-sample-application-${{ env.TESTING_ID }}
183188
--remote-service-name node-sample-remote-application-${{ env.TESTING_ID }}
184189
--query-string ip=${{ env.REMOTE_SERVICE_IP }}&testingId=${{ env.TESTING_ID }}
@@ -189,14 +194,14 @@ jobs:
189194
- name: Validate generated metrics
190195
id: metric-validation
191196
if: (success() || steps.log-validation.outcome == 'failure') && !cancelled()
192-
run: ./gradlew validator:run --args='-c node/ec2/adot-sigv4/metric-validation.yml
197+
run: ./gradlew validator:run --args='-c node/ec2/adot-aws-otlp/metric-validation.yml
193198
--testing-id ${{ env.TESTING_ID }}
194199
--endpoint http://${{ env.MAIN_SERVICE_ENDPOINT }}
195200
--remote-service-deployment-name node-sample-remote-application-${{ env.TESTING_ID }}
196201
--region ${{ env.E2E_TEST_AWS_REGION }}
197202
--account-id ${{ env.E2E_TEST_ACCOUNT_ID }}
198203
--metric-namespace ${{ env.METRIC_NAMESPACE }}
199-
--log-group ${{ env.LOG_GROUP_NAME }}
204+
--log-group ${{ env.SPANS_LOG_GROUP_NAME }}
200205
--service-name node-sample-application-${{ env.TESTING_ID }}
201206
--remote-service-name node-sample-remote-application-${{ env.TESTING_ID }}
202207
--query-string ip=${{ env.REMOTE_SERVICE_IP }}&testingId=${{ env.TESTING_ID }}
@@ -207,21 +212,38 @@ jobs:
207212
- name: Validate generated traces
208213
id: trace-validation
209214
if: (success() || steps.log-validation.outcome == 'failure' || steps.metric-validation.outcome == 'failure') && !cancelled()
210-
run: ./gradlew validator:run --args='-c node/ec2/adot-sigv4/trace-validation.yml
215+
run: ./gradlew validator:run --args='-c node/ec2/adot-aws-otlp/trace-validation.yml
211216
--testing-id ${{ env.TESTING_ID }}
212217
--endpoint http://${{ env.MAIN_SERVICE_ENDPOINT }}
213218
--remote-service-deployment-name ${{ env.REMOTE_SERVICE_IP }}:8001
214219
--region ${{ env.E2E_TEST_AWS_REGION }}
215220
--account-id ${{ env.E2E_TEST_ACCOUNT_ID }}
216221
--metric-namespace ${{ env.METRIC_NAMESPACE }}
217-
--log-group ${{ env.LOG_GROUP_NAME }}
222+
--log-group ${{ env.SPANS_LOG_GROUP_NAME }}
218223
--service-name node-sample-application-${{ env.TESTING_ID }}
219224
--remote-service-name node-sample-remote-application-${{ env.TESTING_ID }}
220225
--query-string ip=${{ env.REMOTE_SERVICE_IP }}&testingId=${{ env.TESTING_ID }}
221226
--instance-ami ${{ env.EC2_INSTANCE_AMI }}
222227
--instance-id ${{ env.MAIN_SERVICE_INSTANCE_ID }}
223228
--rollup'
224229

230+
- name: Validate generated otlp logs
231+
id: application-log-validation
232+
run: ./gradlew validator:run --args='-c node/ec2/adot-aws-otlp/application-log-validation.yml
233+
--testing-id ${{ env.TESTING_ID }}
234+
--endpoint http://${{ env.MAIN_SERVICE_ENDPOINT }}
235+
--remote-service-deployment-name ${{ env.REMOTE_SERVICE_IP }}:8080
236+
--region ${{ env.E2E_TEST_AWS_REGION }}
237+
--account-id ${{ env.E2E_TEST_ACCOUNT_ID }}
238+
--metric-namespace ${{ env.METRIC_NAMESPACE }}
239+
--log-group ${{ env.APPLICATION_LOGS_LOG_GROUP_NAME }}
240+
--service-name sample-application-${{ env.TESTING_ID }}
241+
--remote-service-name sample-remote-application-${{ env.TESTING_ID }}
242+
--query-string ip=${{ env.REMOTE_SERVICE_IP }}&testingId=${{ env.TESTING_ID }}
243+
--instance-ami ${{ env.EC2_INSTANCE_AMI }}
244+
--instance-id ${{ env.MAIN_SERVICE_INSTANCE_ID }}
245+
--rollup'
246+
225247
- name: Refresh AWS Credentials
226248
if: ${{ always() }}
227249
uses: aws-actions/configure-aws-credentials@v4

terraform/node/ec2/adot-sigv4/main.tf

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,11 +154,14 @@ resource "null_resource" "main_service_setup" {
154154
# Note: We use OTEL_NODE_DISABLED_INSTRUMENTATIONS=fs,dns,express to avoid
155155
# having to validate around the telemetry generated for middleware
156156
tmux send-keys -t frontend 'export OTEL_AWS_APPLICATION_SIGNALS_ENABLED=false' C-m
157-
tmux send-keys -t frontend 'export OTEL_LOGS_EXPORTER=none' C-m
157+
tmux send-keys -t frontend 'export OTEL_LOGS_EXPORTER=otlp' C-m
158158
tmux send-keys -t frontend 'export OTEL_METRICS_EXPORTER=none' C-m
159159
tmux send-keys -t frontend 'export OTEL_TRACES_EXPORTER=otlp' C-m
160160
tmux send-keys -t frontend 'export OTEL_EXPORTER_OTLP_TRACES_PROTOCOL=http/protobuf' C-m
161+
tmux send-keys -t frontend 'export OTEL_EXPORTER_OTLP_LOGS_PROTOCOL=http/protobuf' C-m
161162
tmux send-keys -t frontend 'export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://xray.${var.aws_region}.amazonaws.com/v1/traces' C-m
163+
tmux send-keys -t frontend 'export OTEL_EXPORTER_OTLP_LOGS_ENDPOINT=https://logs.${var.aws_region}.amazonaws.com/v1/logs' C-m
164+
tmux send-keys -t frontend 'export OTEL_EXPORTER_OTLP_LOGS_HEADERS=x-aws-log-group=${var.application_logs_log_group},x-aws-log-stream=default' C-m
162165
tmux send-keys -t frontend 'export OTEL_NODE_DISABLED_INSTRUMENTATIONS=fs,dns,express' C-m
163166
tmux send-keys -t frontend 'export OTEL_SERVICE_NAME=node-sample-application-${var.test_id}' C-m
164167
tmux send-keys -t frontend 'export OTEL_TRACES_SAMPLER=always_on' C-m

terraform/node/ec2/adot-sigv4/variables.tf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,4 +45,8 @@ variable "get_adot_instrumentation_command" {
4545

4646
variable "canary_type" {
4747
default = "node-ec2-default"
48+
}
49+
50+
variable "application_logs_log_group" {
51+
default = "otlp_logs"
4852
}

validator/src/main/java/com/amazon/aoc/fileconfigs/PredefinedExpectedTemplate.java

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -454,23 +454,26 @@ public enum PredefinedExpectedTemplate implements FileConfig {
454454

455455
/** Node EC2 ADOT SigV4 (Stand Alone ADOT) Test Case Validations */
456456
NODE_EC2_ADOT_SIGV4_OUTGOING_HTTP_CALL_LOG(
457-
"/expected-data-template/node/ec2/adot-sigv4/outgoing-http-call-log.mustache"),
457+
"/expected-data-template/node/ec2/adot-aws-otlp/outgoing-http-call-log.mustache"),
458458
NODE_EC2_ADOT_SIGV4_OUTGOING_HTTP_CALL_METRIC(
459-
"/expected-data-template/node/ec2/adot-sigv4/outgoing-http-call-metric.mustache"),
459+
"/expected-data-template/node/ec2/adot-aws-otlp/outgoing-http-call-metric.mustache"),
460460
NODE_EC2_ADOT_SIGV4_OUTGOING_HTTP_CALL_TRACE(
461-
"/expected-data-template/node/ec2/adot-sigv4/outgoing-http-call-trace.mustache"),
461+
"/expected-data-template/node/ec2/adot-aws-otlp/outgoing-http-call-trace.mustache"),
462462

463-
NODE_EC2_ADOT_SIGV4_AWS_SDK_CALL_LOG("/expected-data-template/node/ec2/adot-sigv4/aws-sdk-call-log.mustache"),
464-
NODE_EC2_ADOT_SIGV4_AWS_SDK_CALL_METRIC("/expected-data-template/node/ec2/adot-sigv4/aws-sdk-call-metric.mustache"),
465-
NODE_EC2_ADOT_SIGV4_AWS_SDK_CALL_TRACE("/expected-data-template/node/ec2/adot-sigv4/aws-sdk-call-trace.mustache"),
463+
NODE_EC2_ADOT_SIGV4_AWS_SDK_CALL_LOG("/expected-data-template/node/ec2/adot-aws-otlp/aws-sdk-call-log.mustache"),
464+
NODE_EC2_ADOT_SIGV4_AWS_SDK_CALL_METRIC("/expected-data-template/node/ec2/adot-aws-otlp/aws-sdk-call-metric.mustache"),
465+
NODE_EC2_ADOT_SIGV4_AWS_SDK_CALL_TRACE("/expected-data-template/node/ec2/adot-aws-otlp/aws-sdk-call-trace.mustache"),
466466

467-
NODE_EC2_ADOT_SIGV4_REMOTE_SERVICE_LOG("/expected-data-template/node/ec2/adot-sigv4/remote-service-log.mustache"),
468-
NODE_EC2_ADOT_SIGV4_REMOTE_SERVICE_METRIC("/expected-data-template/node/ec2/adot-sigv4/remote-service-metric.mustache"),
469-
NODE_EC2_ADOT_SIGV4_REMOTE_SERVICE_TRACE("/expected-data-template/node/ec2/adot-sigv4/remote-service-trace.mustache"),
467+
NODE_EC2_ADOT_SIGV4_REMOTE_SERVICE_LOG("/expected-data-template/node/ec2/adot-aws-otlp/remote-service-log.mustache"),
468+
NODE_EC2_ADOT_SIGV4_REMOTE_SERVICE_METRIC("/expected-data-template/node/ec2/adot-aws-otlp/remote-service-metric.mustache"),
469+
NODE_EC2_ADOT_SIGV4_REMOTE_SERVICE_TRACE("/expected-data-template/node/ec2/adot-aws-otlp/remote-service-trace.mustache"),
470470

471-
NODE_EC2_ADOT_SIGV4_CLIENT_CALL_LOG("/expected-data-template/node/ec2/adot-sigv4/client-call-log.mustache"),
472-
NODE_EC2_ADOT_SIGV4_CLIENT_CALL_METRIC("/expected-data-template/node/ec2/adot-sigv4/client-call-metric.mustache"),
473-
NODE_EC2_ADOT_SIGV4_CLIENT_CALL_TRACE("/expected-data-template/node/ec2/adot-sigv4/client-call-trace.mustache"),
471+
NODE_EC2_ADOT_SIGV4_CLIENT_CALL_LOG("/expected-data-template/node/ec2/adot-aws-otlp/client-call-log.mustache"),
472+
NODE_EC2_ADOT_SIGV4_CLIENT_CALL_METRIC("/expected-data-template/node/ec2/adot-aws-otlp/client-call-metric.mustache"),
473+
NODE_EC2_ADOT_SIGV4_CLIENT_CALL_TRACE("/expected-data-template/node/ec2/adot-aws-otlp/client-call-trace.mustache"),
474+
475+
/** Node EC2 ADOT SigV4 Log Exporter Test Case Validation */
476+
NODE_EC2_ADOT_OTLP_LOG("/expected-data-template/node/ec2/adot-aws-otlp/application-log.mustache"),
474477

475478
/** Node ECS Test Case Validations */
476479
NODE_ECS_HC_CALL_LOG("/expected-data-template/node/ecs/hc-log.mustache"),
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
[{
2+
"resource": {
3+
"attributes": {
4+
"service.name": "{{serviceName}}",
5+
"cloud.provider": "aws",
6+
"cloud.region": "{{region}}",
7+
"cloud.account.id": "{{accountId}}",
8+
"cloud.platform": "aws_ec2"
9+
}
10+
},
11+
"severityNumber": "^[0-9]+$",
12+
"severityText": "{{severityText}}",
13+
"body": "This is a custom log for validation testing",
14+
"traceId": "{{traceId}}",
15+
"spanId": "{{spanId}}"
16+
}]

0 commit comments

Comments
 (0)