Skip to content

Commit 1d2a767

Browse files
committed
add JS genesis release test
1 parent fea6e35 commit 1d2a767

File tree

8 files changed

+20
-33
lines changed

8 files changed

+20
-33
lines changed

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

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ on:
66
workflow_dispatch: # be able to run the workflow on demand
77
push:
88
branches:
9-
- genesis-release-test
9+
- genesis-js-release-test
1010
workflow_call:
1111
inputs:
1212
caller-workflow-name:
@@ -32,7 +32,7 @@ env:
3232
SAMPLE_APP_ZIP: s3://aws-appsignals-sample-app-prod-us-east-1/node-sample-app.zip
3333

3434
jobs:
35-
python-ec2-adot-genai:
35+
node-ec2-adot-genesis:
3636
runs-on: ubuntu-latest
3737
timeout-minutes: 30
3838
steps:
@@ -93,22 +93,22 @@ jobs:
9393
- name: Initiate Terraform
9494
uses: ./.github/workflows/actions/execute_and_retry
9595
with:
96-
command: "cd ${{ env.TEST_RESOURCES_FOLDER }}/terraform/python/ec2/adot-genai && terraform init && terraform validate"
96+
command: "cd ${{ env.TEST_RESOURCES_FOLDER }}/terraform/node/ec2/adot-genai && terraform init && terraform validate"
9797
cleanup: "rm -rf .terraform && rm -rf .terraform.lock.hcl"
9898
max_retry: 6
9999

100100
- name: Deploy service via terraform
101-
working-directory: terraform/python/ec2/adot-genai
101+
working-directory: terraform/node/ec2/adot-genai
102102
run: |
103103
terraform apply -auto-approve \
104104
-var="aws_region=${{ env.E2E_TEST_AWS_REGION }}" \
105105
-var="test_id=${{ env.TESTING_ID }}" \
106106
-var="service_zip_url=${{ env.SAMPLE_APP_ZIP }}" \
107107
-var="trace_id=${{ env.TRACE_ID_HEADER }}" \
108-
-var="get_adot_wheel_command=${{ env.GET_ADOT_WHEEL_COMMAND }}" \
108+
-var="get_adot_wheel_command=${{ env.GET_ADOT_INSTRUMENTATION_COMMAND }}" \
109109
110110
- name: Get deployment info
111-
working-directory: terraform/python/ec2/adot-genai
111+
working-directory: terraform/node/ec2/adot-genai
112112
run: |
113113
echo "INSTANCE_IP=$(terraform output langchain_service_public_ip)" >> $GITHUB_ENV
114114
echo "INSTANCE_ID=$(terraform output langchain_service_instance_id)" >> $GITHUB_ENV
@@ -117,7 +117,7 @@ jobs:
117117
run: sleep 300
118118

119119
- name: Validate generated logs
120-
run: ./gradlew validator:run --args='-c python/ec2/adot-genai/log-validation.yml
120+
run: ./gradlew validator:run --args='-c node/ec2/adot-genai/log-validation.yml
121121
--testing-id ${{ env.TESTING_ID }}
122122
--endpoint http://${{ env.INSTANCE_IP }}:8000
123123
--region ${{ env.E2E_TEST_AWS_REGION }}
@@ -129,7 +129,7 @@ jobs:
129129

130130
- name: Validate generated traces
131131
if: (success() || failure()) && !cancelled()
132-
run: ./gradlew validator:run --args='-c python/ec2/adot-genai/trace-validation.yml
132+
run: ./gradlew validator:run --args='-c node/ec2/adot-genai/trace-validation.yml
133133
--testing-id ${{ env.TESTING_ID }}
134134
--endpoint http://${{ env.INSTANCE_IP }}:8000
135135
--region ${{ env.E2E_TEST_AWS_REGION }}
@@ -140,7 +140,7 @@ jobs:
140140

141141
- name: Validate generated metrics
142142
if: (success() || failure()) && !cancelled()
143-
run: ./gradlew validator:run --args='-c python/ec2/adot-genai/metric-validation.yml
143+
run: ./gradlew validator:run --args='-c node/ec2/adot-genai/metric-validation.yml
144144
--testing-id ${{ env.TESTING_ID }}
145145
--endpoint http://${{ env.INSTANCE_IP }}:8000
146146
--region ${{ env.E2E_TEST_AWS_REGION }}
@@ -152,7 +152,7 @@ jobs:
152152
- name: Cleanup
153153
if: always()
154154
continue-on-error: true
155-
working-directory: terraform/python/ec2/adot-genai
155+
working-directory: terraform/node/ec2/adot-genai
156156
run: |
157157
terraform destroy -auto-approve \
158158
-var="aws_region=${{ env.E2E_TEST_AWS_REGION }}" \

sample-apps/node/genai-service/index.js

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,6 @@ const PORT = parseInt(process.env.SAMPLE_APP_PORT || '8000', 10);
1111
const llm = new BedrockChat({
1212
model: "anthropic.claude-3-sonnet-20240229-v1:0",
1313
region: "us-east-1",
14-
credentials: {
15-
accessKeyId: process.env.BEDROCK_AWS_ACCESS_KEY_ID,
16-
secretAccessKey: process.env.BEDROCK_AWS_SECRET_ACCESS_KEY,
17-
},
1814
temperature: 0.7,
1915
});
2016

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

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,10 @@ unzip genai-service.zip
8383
# Navigate to genai-service directory and install dependencies
8484
cd genai-service
8585
npm install
86+
npm install express @langchain/community @langchain/core @traceloop/node-server-sdk pino
87+
88+
# Download and install ADOT instrumentation
89+
${var.get_adot_wheel_command}
8690
8791
export AWS_REGION=${var.aws_region}
8892
export OTEL_EXPORTER_OTLP_LOGS_HEADERS="x-aws-log-group=test/genesis,x-aws-log-stream=default,x-aws-metric-namespace=genesis"
@@ -93,38 +97,26 @@ export AGENT_OBSERVABILITY_ENABLED="true"
9397
cd /app/genai-service
9498
nohup node --require '@aws/aws-distro-opentelemetry-node-autoinstrumentation/register' --require ./customInstrumentation.js index.js > /var/log/langchain-service.log 2>&1 &
9599
96-
# Upload cloud-init logs to S3
97-
aws s3 cp /var/log/cloud-init.log s3://adot-genai-js-test/cloud-init-logs/${var.test_id}/cloud-init.log
98-
aws s3 cp /var/log/cloud-init-output.log s3://adot-genai-js-test/cloud-init-logs/${var.test_id}/cloud-init-output.log
99-
100100
# Wait for service to be ready
101-
echo "Waiting for service to be ready..."
102101
for i in {1..60}; do
103102
if curl -s http://localhost:8000/health > /dev/null 2>&1; then
104-
echo "Service is ready!"
105103
break
106104
fi
107-
echo "Attempt $i: Service not ready, waiting 5 seconds..."
108105
sleep 5
109106
done
110107
111108
# Generate traffic directly
112-
echo "Starting traffic generator..."
113109
nohup bash -c '
114110
for i in {1..5}; do
115111
message="What is the weather like today?"
116-
echo "[$(date)] Request $i: $message"
117112
curl -s -X POST http://localhost:8000/ai-chat \
118113
-H "Content-Type: application/json" \
119114
-H "X-Amzn-Trace-Id: ${var.trace_id}" \
120115
-d "{\"message\": \"$message\"}" \
121-
-m 30 \
122-
echo "Request $i completed"
116+
-m 30 > /dev/null 2>&1
123117
sleep 10
124118
done
125-
echo "Traffic generator completed"
126-
' > /var/log/traffic-generator.log 2>&1 &
127-
119+
' > /dev/null 2>&1 &
128120
EOF
129121
)
130122

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,6 @@ variable "trace_id" {
3939
}
4040

4141
variable "get_adot_wheel_command" {
42-
description = "Command to get and install ADOT wheel"
43-
default = "python3.12 -m pip install aws-opentelemetry-distro"
42+
description = "Command to get and install ADOT instrumentation"
43+
default = "npm install @aws/aws-distro-opentelemetry-node-autoinstrumentation"
4444
}

validator/src/main/resources/expected-data-template/node/ec2/adot-genai/genai-log.mustache

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
[{
22
"resource": {
33
"attributes": {
4-
"aws.local.service": "{{serviceName}}",
54
"aws.service.type": "gen_ai_agent",
65
"service.name": "{{serviceName}}"
76
}
87
},
98
"scope": {
10-
"name": "openinference.instrumentation.langchain"
9+
"name": "@traceloop/instrumentation-langchain"
1110
},
1211
"severityNumber": "^[0-9]+$",
1312
"severityText": ".*",
@@ -30,7 +29,7 @@
3029
}
3130
},
3231
"attributes": {
33-
"event.name": "openinference.instrumentation.langchain"
32+
"event.name": "@traceloop/instrumentation-langchain"
3433
},
3534
"traceId": "{{traceId}}"
3635
}]

validator/src/main/resources/validations/node/adot-genai/log-validation.yml renamed to validator/src/main/resources/validations/node/ec2/adot-genai/log-validation.yml

File renamed without changes.

validator/src/main/resources/validations/node/adot-genai/metric-validation.yml renamed to validator/src/main/resources/validations/node/ec2/adot-genai/metric-validation.yml

File renamed without changes.

validator/src/main/resources/validations/node/adot-genai/trace-validation.yml renamed to validator/src/main/resources/validations/node/ec2/adot-genai/trace-validation.yml

File renamed without changes.

0 commit comments

Comments
 (0)