diff --git a/.github/workflows/python-ec2-adot-sigv4-test.yml b/.github/workflows/python-ec2-adot-sigv4-test.yml index 6e976f4aa..886c9bafd 100644 --- a/.github/workflows/python-ec2-adot-sigv4-test.yml +++ b/.github/workflows/python-ec2-adot-sigv4-test.yml @@ -40,6 +40,7 @@ env: E2E_TEST_ROLE_NAME: ${{ secrets.APPLICATION_SIGNALS_E2E_TEST_ROLE_NAME }} METRIC_NAMESPACE: ApplicationSignals LOG_GROUP_NAME: aws/spans + TEST_LOG_GROUP_NAME: otlp_logs TEST_RESOURCES_FOLDER: ${GITHUB_WORKSPACE} jobs: @@ -121,6 +122,7 @@ jobs: -var="get_adot_wheel_command=${{ env.GET_ADOT_WHEEL_COMMAND }}" \ -var="language_version=${{ env.PYTHON_VERSION }}" \ -var="cpu_architecture=${{ env.CPU_ARCHITECTURE }}" \ + -var="test_log_group=${{ env.TEST_LOG_GROUP_NAME }}" \ || deployment_failed=$? if [ $deployment_failed -eq 1 ]; then @@ -170,7 +172,7 @@ jobs: # Validation for pulse telemetry data - name: Validate generated EMF logs id: log-validation - run: ./gradlew validator:run --args='-c python/ec2/adot-sigv4/log-validation.yml + run: ./gradlew validator:run --args='-c python/ec2/adot-aws-otlp/log-validation.yml --testing-id ${{ env.TESTING_ID }} --endpoint http://localhost:8000 --remote-service-deployment-name ${{ env.REMOTE_SERVICE_IP }}:8001 @@ -187,7 +189,7 @@ jobs: - name: Validate generated metrics id: metric-validation if: (success() || steps.log-validation.outcome == 'failure') && !cancelled() - run: ./gradlew validator:run --args='-c python/ec2/adot-sigv4/metric-validation.yml + run: ./gradlew validator:run --args='-c python/ec2/adot-aws-otlp/metric-validation.yml --testing-id ${{ env.TESTING_ID }} --endpoint http://localhost:8000 --remote-service-deployment-name python-sample-remote-application-${{ env.TESTING_ID }} @@ -204,7 +206,7 @@ jobs: - name: Validate generated traces id: trace-validation if: (success() || steps.log-validation.outcome == 'failure' || steps.metric-validation.outcome == 'failure') && !cancelled() - run: ./gradlew validator:run --args='-c python/ec2/adot-sigv4/trace-validation.yml + run: ./gradlew validator:run --args='-c python/ec2/adot-aws-otlp/trace-validation.yml --testing-id ${{ env.TESTING_ID }} --endpoint http://localhost:8000 --remote-service-deployment-name ${{ env.REMOTE_SERVICE_IP }}:8001 @@ -218,6 +220,23 @@ jobs: --instance-ami ${{ env.EC2_INSTANCE_AMI }} --instance-id ${{ env.MAIN_SERVICE_INSTANCE_ID }} --rollup' + + - name: Validate generated otlp logs + id: log-validation-1 + run: ./gradlew validator:run --args='-c python/ec2/adot-aws-otlp/logs/log-validation.yml + --testing-id ${{ env.TESTING_ID }} + --endpoint http://localhost:8000 + --remote-service-deployment-name ${{ env.REMOTE_SERVICE_IP }}:8001 + --region ${{ env.E2E_TEST_AWS_REGION }} + --account-id ${{ env.E2E_TEST_ACCOUNT_ID }} + --metric-namespace ${{ env.METRIC_NAMESPACE }} + --log-group ${{ env.TEST_LOG_GROUP_NAME }} + --service-name python-sample-application-${{ env.TESTING_ID }} + --remote-service-name python-sample-remote-application-${{ env.TESTING_ID }} + --query-string ip=${{ env.REMOTE_SERVICE_IP }}&testingId=${{ env.TESTING_ID }} + --instance-ami ${{ env.EC2_INSTANCE_AMI }} + --instance-id ${{ env.MAIN_SERVICE_INSTANCE_ID }} + --rollup' - name: Refresh AWS Credentials if: always() diff --git a/terraform/python/ec2/adot-sigv4/main.tf b/terraform/python/ec2/adot-sigv4/main.tf index 50b51e36f..3489cc282 100644 --- a/terraform/python/ec2/adot-sigv4/main.tf +++ b/terraform/python/ec2/adot-sigv4/main.tf @@ -163,10 +163,13 @@ resource "null_resource" "main_service_setup" { export OTEL_PYTHON_CONFIGURATOR="aws_configurator" export OTEL_AWS_APPLICATION_SIGNALS_ENABLED=false export OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf \ - export OTEL_LOGS_EXPORT=none \ + export OTEL_LOGS_EXPORTER=otlp \ export OTEL_METRICS_EXPORTER=none \ - export OTEL_TRACES_EXPORTER=otlp + export OTEL_TRACES_EXPORTER=otlp \ export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://xray.${var.aws_region}.amazonaws.com/v1/traces \ + export OTEL_EXPORTER_OTLP_LOGS_ENDPOINT=https://logs.${var.aws_region}.amazonaws.com/v1/logs \ + export OTEL_EXPORTER_OTLP_LOGS_HEADERS=x-aws-log-group=${var.test_log_group},x-aws-log-stream=default \ + export OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED=true \ export OTEL_SERVICE_NAME=python-sample-application-${var.test_id} export OTEL_TRACES_SAMPLER=always_on python${var.language_version} manage.py migrate @@ -284,10 +287,13 @@ resource "null_resource" "remote_service_setup" { export OTEL_PYTHON_CONFIGURATOR="aws_configurator" export OTEL_AWS_APPLICATION_SIGNALS_ENABLED=false export OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf \ - export OTEL_LOGS_EXPORT=none \ + export OTEL_LOGS_EXPORTER=otlp \ export OTEL_METRICS_EXPORTER=none \ - export OTEL_TRACES_EXPORTER=otlp + export OTEL_TRACES_EXPORTER=otlp \ export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://xray.${var.aws_region}.amazonaws.com/v1/traces \ + export OTEL_EXPORTER_OTLP_LOGS_ENDPOINT=https://logs.${var.aws_region}.amazonaws.com/v1/logs \ + export OTEL_EXPORTER_OTLP_LOGS_HEADERS=x-aws-log-group=${var.test_log_group},x-aws-log-stream=default \ + export OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED=true \ export OTEL_SERVICE_NAME=python-sample-remote-application-${var.test_id} export OTEL_TRACES_SAMPLER=always_on python${var.language_version} manage.py migrate diff --git a/terraform/python/ec2/adot-sigv4/variables.tf b/terraform/python/ec2/adot-sigv4/variables.tf index 82284ce3c..617ab5d6d 100644 --- a/terraform/python/ec2/adot-sigv4/variables.tf +++ b/terraform/python/ec2/adot-sigv4/variables.tf @@ -43,4 +43,8 @@ variable "language_version" { variable "cpu_architecture" { default = "x86_64" +} + +variable "test_log_group" { + default = "otlp_logs" } \ No newline at end of file diff --git a/validator/src/main/java/com/amazon/aoc/fileconfigs/PredefinedExpectedTemplate.java b/validator/src/main/java/com/amazon/aoc/fileconfigs/PredefinedExpectedTemplate.java index e2476cc03..c51ca6309 100644 --- a/validator/src/main/java/com/amazon/aoc/fileconfigs/PredefinedExpectedTemplate.java +++ b/validator/src/main/java/com/amazon/aoc/fileconfigs/PredefinedExpectedTemplate.java @@ -222,23 +222,26 @@ public enum PredefinedExpectedTemplate implements FileConfig { /** Python EC2 ADOT SigV4 (Stand Alone ADOT) Test Case Validations */ PYTHON_EC2_ADOT_SIGV4_OUTGOING_HTTP_CALL_LOG( - "/expected-data-template/python/ec2/adot-sigv4/outgoing-http-call-log.mustache"), + "/expected-data-template/python/ec2/adot-aws-otlp/traces/outgoing-http-call-log.mustache"), PYTHON_EC2_ADOT_SIGV4_OUTGOING_HTTP_CALL_METRIC( - "/expected-data-template/python/ec2/adot-sigv4/outgoing-http-call-metric.mustache"), + "/expected-data-template/python/ec2/adot-aws-otlp/traces/outgoing-http-call-metric.mustache"), PYTHON_EC2_ADOT_SIGV4_OUTGOING_HTTP_CALL_TRACE( - "/expected-data-template/python/ec2/adot-sigv4/outgoing-http-call-trace.mustache"), + "/expected-data-template/python/ec2/adot-aws-otlp/traces/outgoing-http-call-trace.mustache"), - PYTHON_EC2_ADOT_SIGV4_AWS_SDK_CALL_LOG("/expected-data-template/python/ec2/adot-sigv4/aws-sdk-call-log.mustache"), - PYTHON_EC2_ADOT_SIGV4_AWS_SDK_CALL_METRIC("/expected-data-template/python/ec2/adot-sigv4/aws-sdk-call-metric.mustache"), - PYTHON_EC2_ADOT_SIGV4_AWS_SDK_CALL_TRACE("/expected-data-template/python/ec2/adot-sigv4/aws-sdk-call-trace.mustache"), + PYTHON_EC2_ADOT_SIGV4_AWS_SDK_CALL_LOG("/expected-data-template/python/ec2/adot-aws-otlp/traces/aws-sdk-call-log.mustache"), + PYTHON_EC2_ADOT_SIGV4_AWS_SDK_CALL_METRIC("/expected-data-template/python/ec2/adot-aws-otlp/traces/aws-sdk-call-metric.mustache"), + PYTHON_EC2_ADOT_SIGV4_AWS_SDK_CALL_TRACE("/expected-data-template/python/ec2/adot-aws-otlp/traces/aws-sdk-call-trace.mustache"), - PYTHON_EC2_ADOT_SIGV4_REMOTE_SERVICE_LOG("/expected-data-template/python/ec2/adot-sigv4/remote-service-log.mustache"), - PYTHON_EC2_ADOT_SIGV4_REMOTE_SERVICE_METRIC("/expected-data-template/python/ec2/adot-sigv4/remote-service-metric.mustache"), - PYTHON_EC2_ADOT_SIGV4_REMOTE_SERVICE_TRACE("/expected-data-template/python/ec2/adot-sigv4/remote-service-trace.mustache"), + PYTHON_EC2_ADOT_SIGV4_REMOTE_SERVICE_LOG("/expected-data-template/python/ec2/adot-aws-otlp/traces/remote-service-log.mustache"), + PYTHON_EC2_ADOT_SIGV4_REMOTE_SERVICE_METRIC("/expected-data-template/python/ec2/adot-aws-otlp/traces/remote-service-metric.mustache"), + PYTHON_EC2_ADOT_SIGV4_REMOTE_SERVICE_TRACE("/expected-data-template/python/ec2/adot-aws-otlp/traces/remote-service-trace.mustache"), - PYTHON_EC2_ADOT_SIGV4_CLIENT_CALL_LOG("/expected-data-template/python/ec2/adot-sigv4/client-call-log.mustache"), - PYTHON_EC2_ADOT_SIGV4_CLIENT_CALL_METRIC("/expected-data-template/python/ec2/adot-sigv4/client-call-metric.mustache"), - PYTHON_EC2_ADOT_SIGV4_CLIENT_CALL_TRACE("/expected-data-template/python/ec2/adot-sigv4/client-call-trace.mustache"), + PYTHON_EC2_ADOT_SIGV4_CLIENT_CALL_LOG("/expected-data-template/python/ec2/adot-aws-otlp/traces/client-call-log.mustache"), + PYTHON_EC2_ADOT_SIGV4_CLIENT_CALL_METRIC("/expected-data-template/python/ec2/adot-aws-otlp/traces/client-call-metric.mustache"), + PYTHON_EC2_ADOT_SIGV4_CLIENT_CALL_TRACE("/expected-data-template/python/ec2/adot-aws-otlp/traces/client-call-trace.mustache"), + + /** Python EC2 ADOT SigV4 Log Exporter Test Case Validation */ + PYTHON_EC2_ADOT_OTLP_LOG("/expected-data-template/python/ec2/adot-aws-otlp/logs/log.mustache"), /** Python K8S Test Case Validations */ PYTHON_K8S_OUTGOING_HTTP_CALL_LOG("/expected-data-template/python/k8s/outgoing-http-call-log.mustache"), diff --git a/validator/src/main/java/com/amazon/aoc/validators/CWLogValidator.java b/validator/src/main/java/com/amazon/aoc/validators/CWLogValidator.java index c5ea44e1a..4946c9084 100644 --- a/validator/src/main/java/com/amazon/aoc/validators/CWLogValidator.java +++ b/validator/src/main/java/com/amazon/aoc/validators/CWLogValidator.java @@ -65,32 +65,36 @@ public void validate() throws Exception { // which are in normal text as they are needed for // the filter expressions for retrieving the actual logs. log.info("Searching for expected log: {}", expectedAttributes); - String operation = (String) expectedAttributes.get("Operation"); - String remoteService = (String) expectedAttributes.get("RemoteService"); - String remoteOperation = (String) expectedAttributes.get("RemoteOperation"); - String remoteResourceType = (String) expectedAttributes.get("RemoteResourceType"); - String remoteResourceIdentifier = (String) expectedAttributes.get("RemoteResourceIdentifier"); - Map actualLog; - // Parsing unique identifiers in OTLP spans - if (operation == null) { - operation = (String) expectedAttributes.get("attributes[\\\"aws.local.operation\\\"]"); - remoteService = (String) expectedAttributes.get("attributes[\\\"aws.remote.service\\\"]"); - remoteOperation = (String) expectedAttributes.get("attributes[\\\"aws.remote.operation\\\"]"); - // Runtime metrics have no operation at all, we must ensure we are in the proper use case - if (operation != null) { - actualLog = this.getActualOtelSpanLog(operation, remoteService, remoteOperation); - } else { - // No operation at all -> Runtime metric + if (isAwsOtlpLog(expectedAttributes)) { + actualLog = this.getActualAwsOtlpLog(); + } else { + String operation = (String) expectedAttributes.get("Operation"); + String remoteService = (String) expectedAttributes.get("RemoteService"); + String remoteOperation = (String) expectedAttributes.get("RemoteOperation"); + String remoteResourceType = (String) expectedAttributes.get("RemoteResourceType"); + String remoteResourceIdentifier = (String) expectedAttributes.get("RemoteResourceIdentifier"); + + // Parsing unique identifiers in OTLP spans + if (operation == null) { + operation = (String) expectedAttributes.get("attributes[\\\"aws.local.operation\\\"]"); + remoteService = (String) expectedAttributes.get("attributes[\\\"aws.remote.service\\\"]"); + remoteOperation = (String) expectedAttributes.get("attributes[\\\"aws.remote.operation\\\"]"); + // Runtime metrics have no operation at all, we must ensure we are in the proper use case + if (operation != null) { + actualLog = this.getActualOtelSpanLog(operation, remoteService, remoteOperation); + } else { + // No operation at all -> Runtime metric + actualLog = + this.getActualLog(operation, remoteService, remoteOperation, remoteResourceType, remoteResourceIdentifier); + } + } + else { actualLog = this.getActualLog(operation, remoteService, remoteOperation, remoteResourceType, remoteResourceIdentifier); } } - else { - actualLog = - this.getActualLog(operation, remoteService, remoteOperation, remoteResourceType, remoteResourceIdentifier); - } log.info("Value of an actual log: {}", actualLog); if (actualLog == null) throw new BaseException(ExceptionCode.EXPECTED_LOG_NOT_FOUND); @@ -147,6 +151,13 @@ private JsonifyArrayList> getExpectedAttributes() throws Exc return flattenedJsonMapForExpectedLogArray; } + private boolean isAwsOtlpLog(Map expectedAttributes) { + // OTLP SigV4 logs have 'body' as a top-level attribute + return expectedAttributes.containsKey("body") && + expectedAttributes.containsKey("severityNumber") && + expectedAttributes.containsKey("severityText"); + } + private Map getActualLog( String operation, String remoteService, String remoteOperation, String remoteResourceType, String remoteResourceIdentifier) throws Exception { String dependencyFilter = null; @@ -223,6 +234,27 @@ private Map getActualOtelSpanLog(String operation, String remote return JsonFlattener.flattenAsMap(retrievedLogs.get(0).getMessage()); } + private Map getActualAwsOtlpLog() throws Exception { + String filterPattern= String.format( + "{ ($.attributes.otelServiceName = \"%s\") && ($.body = \"This is a custom log for validation testing\") }", + context.getServiceName() + ); + log.info("Filter Pattern for OTLP Log Search: " + filterPattern); + + List retrievedLogs = + this.cloudWatchService.filterLogs( + context.getLogGroup(), + filterPattern, + System.currentTimeMillis() - TimeUnit.MINUTES.toMillis(5), + 10); + + if (retrievedLogs == null || retrievedLogs.isEmpty()) { + throw new BaseException(ExceptionCode.EMPTY_LIST); + } + + return JsonFlattener.flattenAsMap(retrievedLogs.get(0).getMessage()); + } + @Override public void init( Context context, diff --git a/validator/src/main/resources/expected-data-template/python/ec2/adot-aws-otlp/logs/log.mustache b/validator/src/main/resources/expected-data-template/python/ec2/adot-aws-otlp/logs/log.mustache new file mode 100644 index 000000000..719d0174e --- /dev/null +++ b/validator/src/main/resources/expected-data-template/python/ec2/adot-aws-otlp/logs/log.mustache @@ -0,0 +1,20 @@ +[{ + "resource": { + "attributes": { + "aws.local.service": "{{serviceName}}", + "service.name": "{{serviceName}}", + "cloud.provider": "aws", + "cloud.region": "{{region}}", + "cloud.account.id": "{{accountId}}", + "cloud.platform": "aws_ec2" + } + }, + "severityNumber": "^[0-9]+$", + "severityText": "{{severityText}}", + "body": "This is a custom log for validation testing", + "traceId": "{{traceId}}", + "spanId": "{{spanId}}", + "attributes": { + "otelServiceName": "{{serviceName}}" + } +}] \ No newline at end of file diff --git a/validator/src/main/resources/expected-data-template/python/ec2/adot-sigv4/aws-sdk-call-log.mustache b/validator/src/main/resources/expected-data-template/python/ec2/adot-aws-otlp/traces/aws-sdk-call-log.mustache similarity index 100% rename from validator/src/main/resources/expected-data-template/python/ec2/adot-sigv4/aws-sdk-call-log.mustache rename to validator/src/main/resources/expected-data-template/python/ec2/adot-aws-otlp/traces/aws-sdk-call-log.mustache diff --git a/validator/src/main/resources/expected-data-template/python/ec2/adot-sigv4/aws-sdk-call-metric.mustache b/validator/src/main/resources/expected-data-template/python/ec2/adot-aws-otlp/traces/aws-sdk-call-metric.mustache similarity index 100% rename from validator/src/main/resources/expected-data-template/python/ec2/adot-sigv4/aws-sdk-call-metric.mustache rename to validator/src/main/resources/expected-data-template/python/ec2/adot-aws-otlp/traces/aws-sdk-call-metric.mustache diff --git a/validator/src/main/resources/expected-data-template/python/ec2/adot-sigv4/aws-sdk-call-trace.mustache b/validator/src/main/resources/expected-data-template/python/ec2/adot-aws-otlp/traces/aws-sdk-call-trace.mustache similarity index 100% rename from validator/src/main/resources/expected-data-template/python/ec2/adot-sigv4/aws-sdk-call-trace.mustache rename to validator/src/main/resources/expected-data-template/python/ec2/adot-aws-otlp/traces/aws-sdk-call-trace.mustache diff --git a/validator/src/main/resources/expected-data-template/python/ec2/adot-sigv4/client-call-log.mustache b/validator/src/main/resources/expected-data-template/python/ec2/adot-aws-otlp/traces/client-call-log.mustache similarity index 100% rename from validator/src/main/resources/expected-data-template/python/ec2/adot-sigv4/client-call-log.mustache rename to validator/src/main/resources/expected-data-template/python/ec2/adot-aws-otlp/traces/client-call-log.mustache diff --git a/validator/src/main/resources/expected-data-template/python/ec2/adot-sigv4/client-call-metric.mustache b/validator/src/main/resources/expected-data-template/python/ec2/adot-aws-otlp/traces/client-call-metric.mustache similarity index 100% rename from validator/src/main/resources/expected-data-template/python/ec2/adot-sigv4/client-call-metric.mustache rename to validator/src/main/resources/expected-data-template/python/ec2/adot-aws-otlp/traces/client-call-metric.mustache diff --git a/validator/src/main/resources/expected-data-template/python/ec2/adot-sigv4/client-call-trace.mustache b/validator/src/main/resources/expected-data-template/python/ec2/adot-aws-otlp/traces/client-call-trace.mustache similarity index 100% rename from validator/src/main/resources/expected-data-template/python/ec2/adot-sigv4/client-call-trace.mustache rename to validator/src/main/resources/expected-data-template/python/ec2/adot-aws-otlp/traces/client-call-trace.mustache diff --git a/validator/src/main/resources/expected-data-template/python/ec2/adot-sigv4/outgoing-http-call-log.mustache b/validator/src/main/resources/expected-data-template/python/ec2/adot-aws-otlp/traces/outgoing-http-call-log.mustache similarity index 100% rename from validator/src/main/resources/expected-data-template/python/ec2/adot-sigv4/outgoing-http-call-log.mustache rename to validator/src/main/resources/expected-data-template/python/ec2/adot-aws-otlp/traces/outgoing-http-call-log.mustache diff --git a/validator/src/main/resources/expected-data-template/python/ec2/adot-sigv4/outgoing-http-call-metric.mustache b/validator/src/main/resources/expected-data-template/python/ec2/adot-aws-otlp/traces/outgoing-http-call-metric.mustache similarity index 100% rename from validator/src/main/resources/expected-data-template/python/ec2/adot-sigv4/outgoing-http-call-metric.mustache rename to validator/src/main/resources/expected-data-template/python/ec2/adot-aws-otlp/traces/outgoing-http-call-metric.mustache diff --git a/validator/src/main/resources/expected-data-template/python/ec2/adot-sigv4/outgoing-http-call-trace.mustache b/validator/src/main/resources/expected-data-template/python/ec2/adot-aws-otlp/traces/outgoing-http-call-trace.mustache similarity index 100% rename from validator/src/main/resources/expected-data-template/python/ec2/adot-sigv4/outgoing-http-call-trace.mustache rename to validator/src/main/resources/expected-data-template/python/ec2/adot-aws-otlp/traces/outgoing-http-call-trace.mustache diff --git a/validator/src/main/resources/expected-data-template/python/ec2/adot-sigv4/remote-service-log.mustache b/validator/src/main/resources/expected-data-template/python/ec2/adot-aws-otlp/traces/remote-service-log.mustache similarity index 100% rename from validator/src/main/resources/expected-data-template/python/ec2/adot-sigv4/remote-service-log.mustache rename to validator/src/main/resources/expected-data-template/python/ec2/adot-aws-otlp/traces/remote-service-log.mustache diff --git a/validator/src/main/resources/expected-data-template/python/ec2/adot-sigv4/remote-service-metric.mustache b/validator/src/main/resources/expected-data-template/python/ec2/adot-aws-otlp/traces/remote-service-metric.mustache similarity index 100% rename from validator/src/main/resources/expected-data-template/python/ec2/adot-sigv4/remote-service-metric.mustache rename to validator/src/main/resources/expected-data-template/python/ec2/adot-aws-otlp/traces/remote-service-metric.mustache diff --git a/validator/src/main/resources/expected-data-template/python/ec2/adot-sigv4/remote-service-trace.mustache b/validator/src/main/resources/expected-data-template/python/ec2/adot-aws-otlp/traces/remote-service-trace.mustache similarity index 100% rename from validator/src/main/resources/expected-data-template/python/ec2/adot-sigv4/remote-service-trace.mustache rename to validator/src/main/resources/expected-data-template/python/ec2/adot-aws-otlp/traces/remote-service-trace.mustache diff --git a/validator/src/main/resources/validations/python/ec2/adot-sigv4/log-validation.yml b/validator/src/main/resources/validations/python/ec2/adot-aws-otlp/log-validation.yml similarity index 100% rename from validator/src/main/resources/validations/python/ec2/adot-sigv4/log-validation.yml rename to validator/src/main/resources/validations/python/ec2/adot-aws-otlp/log-validation.yml diff --git a/validator/src/main/resources/validations/python/ec2/adot-aws-otlp/logs/log-validation.yml b/validator/src/main/resources/validations/python/ec2/adot-aws-otlp/logs/log-validation.yml new file mode 100644 index 000000000..148855b9b --- /dev/null +++ b/validator/src/main/resources/validations/python/ec2/adot-aws-otlp/logs/log-validation.yml @@ -0,0 +1,3 @@ +- + validationType: "cw-log" + expectedLogStructureTemplate: "PYTHON_EC2_ADOT_OTLP_LOG" \ No newline at end of file diff --git a/validator/src/main/resources/validations/python/ec2/adot-sigv4/metric-validation.yml b/validator/src/main/resources/validations/python/ec2/adot-aws-otlp/metric-validation.yml similarity index 100% rename from validator/src/main/resources/validations/python/ec2/adot-sigv4/metric-validation.yml rename to validator/src/main/resources/validations/python/ec2/adot-aws-otlp/metric-validation.yml diff --git a/validator/src/main/resources/validations/python/ec2/adot-sigv4/trace-validation.yml b/validator/src/main/resources/validations/python/ec2/adot-aws-otlp/trace-validation.yml similarity index 100% rename from validator/src/main/resources/validations/python/ec2/adot-sigv4/trace-validation.yml rename to validator/src/main/resources/validations/python/ec2/adot-aws-otlp/trace-validation.yml