diff --git a/.github/workflows/java-eks-canary.yml b/.github/workflows/java-eks-canary.yml index c76f65d93..f4c286fc3 100644 --- a/.github/workflows/java-eks-canary.yml +++ b/.github/workflows/java-eks-canary.yml @@ -10,6 +10,7 @@ on: schedule: - cron: '8,33 * * * *' # run the workflow at 8th and 33th minute of every hour workflow_dispatch: # be able to run the workflow on demand + push: permissions: id-token: write @@ -20,10 +21,7 @@ jobs: strategy: fail-fast: false matrix: - 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', - 'ap-southeast-2','ap-southeast-3','ap-southeast-4','ca-central-1','eu-central-1','eu-central-2','eu-north-1', - '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', - 'us-east-1','us-east-2','us-west-1','us-west-2'] + aws-region: ['us-east-1'] uses: ./.github/workflows/java-eks-retry.yml secrets: inherit with: diff --git a/validator/bin/main/com/amazon/aoc/App.class b/validator/bin/main/com/amazon/aoc/App.class new file mode 100644 index 000000000..c09cf205e Binary files /dev/null and b/validator/bin/main/com/amazon/aoc/App.class differ diff --git a/validator/bin/main/com/amazon/aoc/enums/GenericConstants.class b/validator/bin/main/com/amazon/aoc/enums/GenericConstants.class new file mode 100644 index 000000000..6651f0e59 Binary files /dev/null and b/validator/bin/main/com/amazon/aoc/enums/GenericConstants.class differ diff --git a/validator/bin/main/com/amazon/aoc/exception/BaseException.class b/validator/bin/main/com/amazon/aoc/exception/BaseException.class new file mode 100644 index 000000000..a8e238e64 Binary files /dev/null and b/validator/bin/main/com/amazon/aoc/exception/BaseException.class differ diff --git a/validator/bin/main/com/amazon/aoc/exception/ExceptionCode.class b/validator/bin/main/com/amazon/aoc/exception/ExceptionCode.class new file mode 100644 index 000000000..b13f285e6 Binary files /dev/null and b/validator/bin/main/com/amazon/aoc/exception/ExceptionCode.class differ diff --git a/validator/bin/main/com/amazon/aoc/fileconfigs/FileConfig.class b/validator/bin/main/com/amazon/aoc/fileconfigs/FileConfig.class new file mode 100644 index 000000000..b9fca2b80 Binary files /dev/null and b/validator/bin/main/com/amazon/aoc/fileconfigs/FileConfig.class differ diff --git a/validator/bin/main/com/amazon/aoc/fileconfigs/LocalPathExpectedTemplate.class b/validator/bin/main/com/amazon/aoc/fileconfigs/LocalPathExpectedTemplate.class new file mode 100644 index 000000000..9d88a748c Binary files /dev/null and b/validator/bin/main/com/amazon/aoc/fileconfigs/LocalPathExpectedTemplate.class differ diff --git a/validator/bin/main/com/amazon/aoc/fileconfigs/PredefinedExpectedTemplate.class b/validator/bin/main/com/amazon/aoc/fileconfigs/PredefinedExpectedTemplate.class new file mode 100644 index 000000000..7e0810f04 Binary files /dev/null and b/validator/bin/main/com/amazon/aoc/fileconfigs/PredefinedExpectedTemplate.class differ diff --git a/validator/bin/main/com/amazon/aoc/helpers/CWMetricHelper$1.class b/validator/bin/main/com/amazon/aoc/helpers/CWMetricHelper$1.class new file mode 100644 index 000000000..ddd2a3392 Binary files /dev/null and b/validator/bin/main/com/amazon/aoc/helpers/CWMetricHelper$1.class differ diff --git a/validator/bin/main/com/amazon/aoc/helpers/CWMetricHelper.class b/validator/bin/main/com/amazon/aoc/helpers/CWMetricHelper.class new file mode 100644 index 000000000..ca26ebe90 Binary files /dev/null and b/validator/bin/main/com/amazon/aoc/helpers/CWMetricHelper.class differ diff --git a/validator/bin/main/com/amazon/aoc/helpers/ConfigLoadHelper$1.class b/validator/bin/main/com/amazon/aoc/helpers/ConfigLoadHelper$1.class new file mode 100644 index 000000000..de95dbfe6 Binary files /dev/null and b/validator/bin/main/com/amazon/aoc/helpers/ConfigLoadHelper$1.class differ diff --git a/validator/bin/main/com/amazon/aoc/helpers/ConfigLoadHelper.class b/validator/bin/main/com/amazon/aoc/helpers/ConfigLoadHelper.class new file mode 100644 index 000000000..41172d184 Binary files /dev/null and b/validator/bin/main/com/amazon/aoc/helpers/ConfigLoadHelper.class differ diff --git a/validator/bin/main/com/amazon/aoc/helpers/MustacheHelper.class b/validator/bin/main/com/amazon/aoc/helpers/MustacheHelper.class new file mode 100644 index 000000000..0a812868b Binary files /dev/null and b/validator/bin/main/com/amazon/aoc/helpers/MustacheHelper.class differ diff --git a/validator/bin/main/com/amazon/aoc/helpers/RetryHelper.class b/validator/bin/main/com/amazon/aoc/helpers/RetryHelper.class new file mode 100644 index 000000000..a0f6ccc7d Binary files /dev/null and b/validator/bin/main/com/amazon/aoc/helpers/RetryHelper.class differ diff --git a/validator/bin/main/com/amazon/aoc/helpers/Retryable.class b/validator/bin/main/com/amazon/aoc/helpers/Retryable.class new file mode 100644 index 000000000..ad5baefde Binary files /dev/null and b/validator/bin/main/com/amazon/aoc/helpers/Retryable.class differ diff --git a/validator/bin/main/com/amazon/aoc/helpers/SortUtils.class b/validator/bin/main/com/amazon/aoc/helpers/SortUtils.class new file mode 100644 index 000000000..b0e0169c6 Binary files /dev/null and b/validator/bin/main/com/amazon/aoc/helpers/SortUtils.class differ diff --git a/validator/bin/main/com/amazon/aoc/models/CloudWatchContext$App.class b/validator/bin/main/com/amazon/aoc/models/CloudWatchContext$App.class new file mode 100644 index 000000000..51e0ff2e0 Binary files /dev/null and b/validator/bin/main/com/amazon/aoc/models/CloudWatchContext$App.class differ diff --git a/validator/bin/main/com/amazon/aoc/models/CloudWatchContext.class b/validator/bin/main/com/amazon/aoc/models/CloudWatchContext.class new file mode 100644 index 000000000..3c10b226f Binary files /dev/null and b/validator/bin/main/com/amazon/aoc/models/CloudWatchContext.class differ diff --git a/validator/bin/main/com/amazon/aoc/models/Context.class b/validator/bin/main/com/amazon/aoc/models/Context.class new file mode 100644 index 000000000..acc0530ca Binary files /dev/null and b/validator/bin/main/com/amazon/aoc/models/Context.class differ diff --git a/validator/bin/main/com/amazon/aoc/models/EC2Context.class b/validator/bin/main/com/amazon/aoc/models/EC2Context.class new file mode 100644 index 000000000..9140d1285 Binary files /dev/null and b/validator/bin/main/com/amazon/aoc/models/EC2Context.class differ diff --git a/validator/bin/main/com/amazon/aoc/models/ECSContext.class b/validator/bin/main/com/amazon/aoc/models/ECSContext.class new file mode 100644 index 000000000..453cf7d02 Binary files /dev/null and b/validator/bin/main/com/amazon/aoc/models/ECSContext.class differ diff --git a/validator/bin/main/com/amazon/aoc/models/SampleAppResponse.class b/validator/bin/main/com/amazon/aoc/models/SampleAppResponse.class new file mode 100644 index 000000000..e2ee13134 Binary files /dev/null and b/validator/bin/main/com/amazon/aoc/models/SampleAppResponse.class differ diff --git a/validator/bin/main/com/amazon/aoc/models/ValidationConfig.class b/validator/bin/main/com/amazon/aoc/models/ValidationConfig.class new file mode 100644 index 000000000..9c0e397b8 Binary files /dev/null and b/validator/bin/main/com/amazon/aoc/models/ValidationConfig.class differ diff --git a/validator/bin/main/com/amazon/aoc/models/xray/Entity.class b/validator/bin/main/com/amazon/aoc/models/xray/Entity.class new file mode 100644 index 000000000..815bf139d Binary files /dev/null and b/validator/bin/main/com/amazon/aoc/models/xray/Entity.class differ diff --git a/validator/bin/main/com/amazon/aoc/services/CloudWatchService.class b/validator/bin/main/com/amazon/aoc/services/CloudWatchService.class new file mode 100644 index 000000000..ceb1c4d4a Binary files /dev/null and b/validator/bin/main/com/amazon/aoc/services/CloudWatchService.class differ diff --git a/validator/bin/main/com/amazon/aoc/services/XRayService.class b/validator/bin/main/com/amazon/aoc/services/XRayService.class new file mode 100644 index 000000000..df036be7b Binary files /dev/null and b/validator/bin/main/com/amazon/aoc/services/XRayService.class differ diff --git a/validator/bin/main/com/amazon/aoc/validators/CWLogValidator.class b/validator/bin/main/com/amazon/aoc/validators/CWLogValidator.class new file mode 100644 index 000000000..661806e73 Binary files /dev/null and b/validator/bin/main/com/amazon/aoc/validators/CWLogValidator.class differ diff --git a/validator/bin/main/com/amazon/aoc/validators/CWMetricValidator.class b/validator/bin/main/com/amazon/aoc/validators/CWMetricValidator.class new file mode 100644 index 000000000..fac42c7d9 Binary files /dev/null and b/validator/bin/main/com/amazon/aoc/validators/CWMetricValidator.class differ diff --git a/validator/bin/main/com/amazon/aoc/validators/IValidator.class b/validator/bin/main/com/amazon/aoc/validators/IValidator.class new file mode 100644 index 000000000..773ea3172 Binary files /dev/null and b/validator/bin/main/com/amazon/aoc/validators/IValidator.class differ diff --git a/validator/bin/main/com/amazon/aoc/validators/TraceValidator.class b/validator/bin/main/com/amazon/aoc/validators/TraceValidator.class new file mode 100644 index 000000000..29929044f Binary files /dev/null and b/validator/bin/main/com/amazon/aoc/validators/TraceValidator.class differ diff --git a/validator/bin/main/com/amazon/aoc/validators/ValidatorFactory.class b/validator/bin/main/com/amazon/aoc/validators/ValidatorFactory.class new file mode 100644 index 000000000..fa3e4f1eb Binary files /dev/null and b/validator/bin/main/com/amazon/aoc/validators/ValidatorFactory.class differ diff --git a/validator/bin/main/expected-data-template/dotnet/ec2/asg/aws-sdk-call-log.mustache b/validator/bin/main/expected-data-template/dotnet/ec2/asg/aws-sdk-call-log.mustache new file mode 100644 index 000000000..7f690dd96 --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/ec2/asg/aws-sdk-call-log.mustache @@ -0,0 +1,20 @@ +[{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:{{platformInfo}}$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET aws-sdk-call", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^{{privateDnsName}}$" +}, +{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:{{platformInfo}}$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET aws-sdk-call", + "Version": "^1$", + "RemoteService": "AWS::S3", + "RemoteOperation": "GetBucketLocation", + "Telemetry.Source": "^ClientSpan$", + "Host": "^{{privateDnsName}}$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/dotnet/ec2/asg/aws-sdk-call-metric.mustache b/validator/bin/main/expected-data-template/dotnet/ec2/asg/aws-sdk-call-metric.mustache new file mode 100644 index 000000000..7327551ec --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/ec2/asg/aws-sdk-call-metric.mustache @@ -0,0 +1,374 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: {{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: {{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: {{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: {{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: {{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: {{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/dotnet/ec2/asg/aws-sdk-call-trace.mustache b/validator/bin/main/expected-data-template/dotnet/ec2/asg/aws-sdk-call-trace.mustache new file mode 100644 index 000000000..13ea133a2 --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/ec2/asg/aws-sdk-call-trace.mustache @@ -0,0 +1,61 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/aws-sdk-call$", + "method": "^GET$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET aws-sdk-call$", + "aws.local.environment": "^ec2:{{platformInfo}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^{{platformInfo}}$", + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "otel.resource.ec2.tag.aws:autoscaling:groupName": "^{{platformInfo}}$", + "otel.resource.host.id": "^{{instanceId}}$", + "otel.resource.host.image.id": "^{{instanceAmi}}$", + "otel.resource.host.type": "^t3.micro$", + "otel.resource.host.name": "^{{privateDnsName}}$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "name": "^S3$", + "aws": { + "operation": "^GetBucketLocation$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET aws-sdk-call$", + "aws.remote.service": "^AWS::S3$", + "aws.remote.operation": "^GetBucketLocation$", + "aws.local.environment": "^ec2:{{platformInfo}}$", + "aws.remote.resource.type": "AWS::S3::Bucket" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^{{platformInfo}}$", + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "aws.span.kind": "^CLIENT$" + } + }, + "namespace": "^aws$" + } + ] +}, +{ + "name": "^S3$", + "aws": { + "operation": "^GetBucketLocation$" + } +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/dotnet/ec2/asg/client-call-log.mustache b/validator/bin/main/expected-data-template/dotnet/ec2/asg/client-call-log.mustache new file mode 100644 index 000000000..0bd34a74d --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/ec2/asg/client-call-log.mustache @@ -0,0 +1,20 @@ +[{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:{{platformInfo}}$", + "PlatformType": "^AWS::EC2$", + "Operation": "InternalOperation", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^{{privateDnsName}}$" +}, +{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:{{platformInfo}}$", + "PlatformType": "^AWS::EC2$", + "Operation": "InternalOperation", + "Version": "^1$", + "RemoteService": "local-root-client-call:80", + "RemoteOperation": "GET /", + "Telemetry.Source": "^ClientSpan$", + "Host": "^{{privateDnsName}}$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/dotnet/ec2/asg/client-call-metric.mustache b/validator/bin/main/expected-data-template/dotnet/ec2/asg/client-call-metric.mustache new file mode 100644 index 000000000..a1b160700 --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/ec2/asg/client-call-metric.mustache @@ -0,0 +1,227 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: local-root-client-call:80 + - + name: RemoteOperation + value: GET / + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: local-root-client-call:80 + - + name: RemoteOperation + value: GET / + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: local-root-client-call:80 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: local-root-client-call:80 + - + name: RemoteOperation + value: GET / + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: local-root-client-call:80 + - + name: RemoteOperation + value: GET / + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: local-root-client-call:80 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: local-root-client-call:80 + - + name: RemoteOperation + value: GET / + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: local-root-client-call:80 + - + name: RemoteOperation + value: GET / + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: local-root-client-call:80 \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/dotnet/ec2/asg/client-call-trace.mustache b/validator/bin/main/expected-data-template/dotnet/ec2/asg/client-call-trace.mustache new file mode 100644 index 000000000..577b6f838 --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/ec2/asg/client-call-trace.mustache @@ -0,0 +1,57 @@ +[{ + "name": "^{{serviceName}}$", + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^InternalOperation$", + "aws.local.environment": "^ec2:{{platformInfo}}$" + }, + "metadata": { + "default": { + "otel.resource.host.image.id": "^{{instanceAmi}}$", + "otel.resource.host.type": "^t3.micro$" + } + }, + "subsegments": [ + { + "name": "^local-root-client-call:80$", + "http": { + "request": { + "url": "^http://local-root-client-call/$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^InternalOperation$", + "aws.remote.service": "^local-root-client-call:80$", + "aws.remote.operation": "GET /", + "aws.local.environment": "^ec2:{{platformInfo}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^{{platformInfo}}$", + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "namespace": "^remote$" + } + ] +}, +{ + "name": "^local-root-client-call:80$", + "http": { + "request": { + "url": "^http://local-root-client-call/$", + "method": "^GET$" + }, + "response": { + "content_length": 0 + } + }, + "annotations": { + "aws.local.service": "^local-root-client-call:80$", + "aws.local.operation": "^GET /$" + } +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/dotnet/ec2/asg/outgoing-http-call-log.mustache b/validator/bin/main/expected-data-template/dotnet/ec2/asg/outgoing-http-call-log.mustache new file mode 100644 index 000000000..769e927d9 --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/ec2/asg/outgoing-http-call-log.mustache @@ -0,0 +1,21 @@ +[{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:{{platformInfo}}$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET outgoing-http-call", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^{{privateDnsName}}$" +}, +{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:{{platformInfo}}$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET outgoing-http-call", + "Version": "^1$", + "RemoteService": "aws.amazon.com:443", + "RemoteOperation": "GET /", + "Telemetry.Source": "^ClientSpan$", + "Host": "^{{privateDnsName}}$" +}] + diff --git a/validator/bin/main/expected-data-template/dotnet/ec2/asg/outgoing-http-call-metric.mustache b/validator/bin/main/expected-data-template/dotnet/ec2/asg/outgoing-http-call-metric.mustache new file mode 100644 index 000000000..d08bef06e --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/ec2/asg/outgoing-http-call-metric.mustache @@ -0,0 +1,227 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: aws.amazon.com:443 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: aws.amazon.com:443 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: aws.amazon.com:443 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: aws.amazon.com:443 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: aws.amazon.com:443 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: aws.amazon.com:443 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: aws.amazon.com:443 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: aws.amazon.com:443 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: aws.amazon.com:443 diff --git a/validator/bin/main/expected-data-template/dotnet/ec2/asg/outgoing-http-call-trace.mustache b/validator/bin/main/expected-data-template/dotnet/ec2/asg/outgoing-http-call-trace.mustache new file mode 100644 index 000000000..d1e079be9 --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/ec2/asg/outgoing-http-call-trace.mustache @@ -0,0 +1,60 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/outgoing-http-call$", + "method": "^GET$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET outgoing-http-call$", + "aws.local.environment": "^ec2:{{platformInfo}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^{{platformInfo}}$", + "EC2.InstanceId": "^{{instanceId}}$", + "otel.resource.ec2.tag.aws:autoscaling:groupName": "^{{platformInfo}}$", + "otel.resource.host.id": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "otel.resource.host.image.id": "^{{instanceAmi}}$", + "otel.resource.host.type": "^t3.micro$", + "otel.resource.host.name": "^{{privateDnsName}}$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "name": "^aws.amazon.com:443$", + "http": { + "request": { + "url": "^https://aws.amazon.com/$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET outgoing-http-call$", + "aws.remote.service": "^aws.amazon.com:443$", + "aws.remote.operation": "^GET /$", + "aws.local.environment": "^ec2:{{platformInfo}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^{{platformInfo}}$", + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "aws.span.kind": "^CLIENT$" + } + }, + "namespace": "^remote$" + } + ] +}, +{ + "name": "^aws.amazon.com:443$" +}] diff --git a/validator/bin/main/expected-data-template/dotnet/ec2/asg/remote-service-log.mustache b/validator/bin/main/expected-data-template/dotnet/ec2/asg/remote-service-log.mustache new file mode 100644 index 000000000..0432ab980 --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/ec2/asg/remote-service-log.mustache @@ -0,0 +1,20 @@ +[{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:{{platformInfo}}$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET remote-service", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^{{privateDnsName}}$" +}, +{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:{{platformInfo}}$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET remote-service", + "Version": "^1$", + "RemoteService": "{{remoteServiceDeploymentName}}", + "RemoteOperation": "GET /healthcheck", + "Telemetry.Source": "^ClientSpan$", + "Host": "^{{privateDnsName}}$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/dotnet/ec2/asg/remote-service-metric.mustache b/validator/bin/main/expected-data-template/dotnet/ec2/asg/remote-service-metric.mustache new file mode 100644 index 000000000..32f673b95 --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/ec2/asg/remote-service-metric.mustache @@ -0,0 +1,326 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: ec2:default + - + name: Operation + value: GET healthcheck + - + name: Service + value: {{remoteServiceName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceName}} + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: ec2:default + - + name: Operation + value: GET healthcheck + - + name: Service + value: {{remoteServiceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceName}} + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: ec2:default + - + name: Operation + value: GET healthcheck + - + name: Service + value: {{remoteServiceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceName}} + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceDeploymentName}} diff --git a/validator/bin/main/expected-data-template/dotnet/ec2/asg/remote-service-trace.mustache b/validator/bin/main/expected-data-template/dotnet/ec2/asg/remote-service-trace.mustache new file mode 100644 index 000000000..68f74e394 --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/ec2/asg/remote-service-trace.mustache @@ -0,0 +1,82 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/remote-service$", + "method": "^GET$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET remote-service$", + "aws.local.environment": "^ec2:{{platformInfo}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^{{platformInfo}}$", + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "otel.resource.ec2.tag.aws:autoscaling:groupName": "^{{platformInfo}}$", + "otel.resource.host.id": "^{{instanceId}}$", + "otel.resource.host.image.id": "^{{instanceAmi}}$", + "otel.resource.host.type": "^t3.micro$", + "otel.resource.host.name": "^{{privateDnsName}}$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "name": "^{{remoteServiceDeploymentName}}$", + "http": { + "request": { + "url": "^http://(([0-9]{1,3}.){3}[0-9]{1,3}):8081/healthcheck$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET remote-service$", + "aws.remote.service": "^{{remoteServiceDeploymentName}}$", + "aws.remote.operation": "^GET /healthcheck$", + "aws.local.environment": "^ec2:{{platformInfo}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^{{platformInfo}}$", + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "aws.span.kind": "^CLIENT$" + } + }, + "namespace": "^remote$" + } + ] +}, +{ + "name": "^{{remoteServiceName}}$", + "http": { + "request": { + "url": "^http://(([0-9]{1,3}.){3}[0-9]{1,3}):8081/healthcheck$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{remoteServiceName}}$", + "aws.local.operation": "^GET healthcheck$", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "PlatformType": "^AWS::EC2$", + "otel.resource.host.image.id": "^{{instanceAmi}}$", + "otel.resource.host.type": "^t3.micro$", + "aws.span.kind": "^LOCAL_ROOT$" + } + } +}] + + diff --git a/validator/bin/main/expected-data-template/dotnet/ec2/default/aws-sdk-call-log.mustache b/validator/bin/main/expected-data-template/dotnet/ec2/default/aws-sdk-call-log.mustache new file mode 100644 index 000000000..765527c87 --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/ec2/default/aws-sdk-call-log.mustache @@ -0,0 +1,20 @@ +[{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:default$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET aws-sdk-call", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}, +{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:default$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET aws-sdk-call", + "Version": "^1$", + "RemoteService": "AWS::S3", + "RemoteOperation": "GetBucketLocation", + "Telemetry.Source": "^ClientSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/dotnet/ec2/default/aws-sdk-call-metric.mustache b/validator/bin/main/expected-data-template/dotnet/ec2/default/aws-sdk-call-metric.mustache new file mode 100644 index 000000000..490dc9f45 --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/ec2/default/aws-sdk-call-metric.mustache @@ -0,0 +1,375 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: {{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: {{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: {{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: {{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: {{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: {{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket diff --git a/validator/bin/main/expected-data-template/dotnet/ec2/default/aws-sdk-call-trace.mustache b/validator/bin/main/expected-data-template/dotnet/ec2/default/aws-sdk-call-trace.mustache new file mode 100644 index 000000000..d0db82391 --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/ec2/default/aws-sdk-call-trace.mustache @@ -0,0 +1,56 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/aws-sdk-call$", + "method": "^GET$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET aws-sdk-call$", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "otel.resource.host.image.id": "^{{instanceAmi}}$", + "otel.resource.host.type": "^t3.small$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "name": "^S3$", + "aws": { + "operation": "^GetBucketLocation$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET aws-sdk-call$", + "aws.remote.service": "^AWS::S3$", + "aws.remote.operation": "^GetBucketLocation$", + "aws.local.environment": "^ec2:default$", + "aws.remote.resource.type": "AWS::S3::Bucket" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "aws.span.kind": "^CLIENT$" + } + }, + "namespace": "^aws$" + } + ] +}, +{ + "name": "^S3$", + "aws": { + "operation": "^GetBucketLocation$" + } +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/dotnet/ec2/default/client-call-log.mustache b/validator/bin/main/expected-data-template/dotnet/ec2/default/client-call-log.mustache new file mode 100644 index 000000000..85036f4da --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/ec2/default/client-call-log.mustache @@ -0,0 +1,20 @@ +[{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:default$", + "PlatformType": "^AWS::EC2$", + "Operation": "InternalOperation", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}, +{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:default$", + "PlatformType": "^AWS::EC2$", + "Operation": "InternalOperation", + "Version": "^1$", + "RemoteService": "local-root-client-call:80", + "RemoteOperation": "GET /", + "Telemetry.Source": "^ClientSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/dotnet/ec2/default/client-call-metric.mustache b/validator/bin/main/expected-data-template/dotnet/ec2/default/client-call-metric.mustache new file mode 100644 index 000000000..85ed2565c --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/ec2/default/client-call-metric.mustache @@ -0,0 +1,227 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:default + - + name: RemoteService + value: local-root-client-call:80 + - + name: RemoteOperation + value: GET / + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: local-root-client-call:80 + - + name: RemoteOperation + value: GET / + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: local-root-client-call:80 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:default + - + name: RemoteService + value: local-root-client-call:80 + - + name: RemoteOperation + value: GET / + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: local-root-client-call:80 + - + name: RemoteOperation + value: GET / + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: local-root-client-call:80 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:default + - + name: RemoteService + value: local-root-client-call:80 + - + name: RemoteOperation + value: GET / + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: local-root-client-call:80 + - + name: RemoteOperation + value: GET / + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: local-root-client-call:80 \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/dotnet/ec2/default/client-call-trace.mustache b/validator/bin/main/expected-data-template/dotnet/ec2/default/client-call-trace.mustache new file mode 100644 index 000000000..aeec826fc --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/ec2/default/client-call-trace.mustache @@ -0,0 +1,56 @@ +[{ + "name": "^{{serviceName}}$", + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^InternalOperation$", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "otel.resource.host.image.id": "^{{instanceAmi}}$", + "otel.resource.host.type": "^t3.small$" + } + }, + "subsegments": [ + { + "name": "^local-root-client-call:80$", + "http": { + "request": { + "url": "^http://local-root-client-call/$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^InternalOperation$", + "aws.remote.service": "^local-root-client-call:80$", + "aws.remote.operation": "GET /", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "namespace": "^remote$" + } + ] +}, +{ + "name": "^local-root-client-call:80$", + "http": { + "request": { + "url": "^http://local-root-client-call/$", + "method": "^GET$" + }, + "response": { + "content_length": 0 + } + }, + "annotations": { + "aws.local.service": "^local-root-client-call:80$", + "aws.local.operation": "^GET /$" + } +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/dotnet/ec2/default/outgoing-http-call-log.mustache b/validator/bin/main/expected-data-template/dotnet/ec2/default/outgoing-http-call-log.mustache new file mode 100644 index 000000000..237ad1e7d --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/ec2/default/outgoing-http-call-log.mustache @@ -0,0 +1,20 @@ +[{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:default$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET outgoing-http-call", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}, +{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:default$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET outgoing-http-call", + "Version": "^1$", + "RemoteService": "aws.amazon.com:443", + "RemoteOperation": "GET /", + "Telemetry.Source": "^ClientSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/dotnet/ec2/default/outgoing-http-call-metric.mustache b/validator/bin/main/expected-data-template/dotnet/ec2/default/outgoing-http-call-metric.mustache new file mode 100644 index 000000000..e0e2bdcb7 --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/ec2/default/outgoing-http-call-metric.mustache @@ -0,0 +1,227 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: aws.amazon.com:443 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: aws.amazon.com:443 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: aws.amazon.com:443 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: aws.amazon.com:443 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: aws.amazon.com:443 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: aws.amazon.com:443 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: aws.amazon.com:443 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: aws.amazon.com:443 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: aws.amazon.com:443 diff --git a/validator/bin/main/expected-data-template/dotnet/ec2/default/outgoing-http-call-trace.mustache b/validator/bin/main/expected-data-template/dotnet/ec2/default/outgoing-http-call-trace.mustache new file mode 100644 index 000000000..c35b12f29 --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/ec2/default/outgoing-http-call-trace.mustache @@ -0,0 +1,55 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/outgoing-http-call$", + "method": "^GET$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET outgoing-http-call$", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "otel.resource.host.image.id": "^{{instanceAmi}}$", + "otel.resource.host.type": "^t3.small$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "name": "^aws.amazon.com:443$", + "http": { + "request": { + "url": "^https://aws.amazon.com/$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET outgoing-http-call$", + "aws.remote.service": "^aws.amazon.com:443$", + "aws.remote.operation": "^GET /$", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "aws.span.kind": "^CLIENT$" + } + }, + "namespace": "^remote$" + } + ] +}, +{ + "name": "^aws.amazon.com:443$" +}] diff --git a/validator/bin/main/expected-data-template/dotnet/ec2/default/remote-service-log.mustache b/validator/bin/main/expected-data-template/dotnet/ec2/default/remote-service-log.mustache new file mode 100644 index 000000000..603ef48a1 --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/ec2/default/remote-service-log.mustache @@ -0,0 +1,20 @@ +[{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:default$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET remote-service", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}, +{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:default$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET remote-service", + "Version": "^1$", + "RemoteService": "{{remoteServiceDeploymentName}}", + "RemoteOperation": "GET /healthcheck", + "Telemetry.Source": "^ClientSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/dotnet/ec2/default/remote-service-metric.mustache b/validator/bin/main/expected-data-template/dotnet/ec2/default/remote-service-metric.mustache new file mode 100644 index 000000000..569d323d9 --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/ec2/default/remote-service-metric.mustache @@ -0,0 +1,326 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: ec2:default + - + name: Operation + value: GET healthcheck + - + name: Service + value: {{remoteServiceName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceName}} + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: ec2:default + - + name: Operation + value: GET healthcheck + - + name: Service + value: {{remoteServiceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceName}} + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: ec2:default + - + name: Operation + value: GET healthcheck + - + name: Service + value: {{remoteServiceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceName}} + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceDeploymentName}} diff --git a/validator/bin/main/expected-data-template/dotnet/ec2/default/remote-service-trace.mustache b/validator/bin/main/expected-data-template/dotnet/ec2/default/remote-service-trace.mustache new file mode 100644 index 000000000..8de9e45fb --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/ec2/default/remote-service-trace.mustache @@ -0,0 +1,77 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/remote-service$", + "method": "^GET$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET remote-service$", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "otel.resource.host.image.id": "^{{instanceAmi}}$", + "otel.resource.host.type": "^t3.small$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "name": "^{{remoteServiceDeploymentName}}$", + "http": { + "request": { + "url": "^http://(([0-9]{1,3}.){3}[0-9]{1,3}):8081/healthcheck$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET remote-service$", + "aws.remote.service": "^{{remoteServiceDeploymentName}}$", + "aws.remote.operation": "^GET /healthcheck$", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "aws.span.kind": "^CLIENT$" + } + }, + "namespace": "^remote$" + } + ] +}, +{ + "name": "^{{remoteServiceName}}$", + "http": { + "request": { + "url": "^http://(([0-9]{1,3}.){3}[0-9]{1,3}):8081/healthcheck$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{remoteServiceName}}$", + "aws.local.operation": "^GET healthcheck$", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "PlatformType": "^AWS::EC2$", + "otel.resource.host.image.id": "^{{instanceAmi}}$", + "otel.resource.host.type": "^t3.small$", + "aws.span.kind": "^LOCAL_ROOT$" + } + } +}] + + diff --git a/validator/bin/main/expected-data-template/dotnet/ec2/windows/aws-sdk-call-log.mustache b/validator/bin/main/expected-data-template/dotnet/ec2/windows/aws-sdk-call-log.mustache new file mode 100644 index 000000000..765527c87 --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/ec2/windows/aws-sdk-call-log.mustache @@ -0,0 +1,20 @@ +[{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:default$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET aws-sdk-call", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}, +{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:default$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET aws-sdk-call", + "Version": "^1$", + "RemoteService": "AWS::S3", + "RemoteOperation": "GetBucketLocation", + "Telemetry.Source": "^ClientSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/dotnet/ec2/windows/aws-sdk-call-metric.mustache b/validator/bin/main/expected-data-template/dotnet/ec2/windows/aws-sdk-call-metric.mustache new file mode 100644 index 000000000..0e2a0996c --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/ec2/windows/aws-sdk-call-metric.mustache @@ -0,0 +1,374 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: {{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: {{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: {{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: {{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: {{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: {{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/dotnet/ec2/windows/aws-sdk-call-trace.mustache b/validator/bin/main/expected-data-template/dotnet/ec2/windows/aws-sdk-call-trace.mustache new file mode 100644 index 000000000..d258a29cc --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/ec2/windows/aws-sdk-call-trace.mustache @@ -0,0 +1,56 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/aws-sdk-call$", + "method": "^GET$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET aws-sdk-call$", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "otel.resource.host.image.id": "^{{instanceAmi}}$", + "otel.resource.host.type": "^t3.large$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "name": "^S3$", + "aws": { + "operation": "^GetBucketLocation$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET aws-sdk-call$", + "aws.remote.service": "^AWS::S3$", + "aws.remote.operation": "^GetBucketLocation$", + "aws.local.environment": "^ec2:default$", + "aws.remote.resource.type": "AWS::S3::Bucket" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "aws.span.kind": "^CLIENT$" + } + }, + "namespace": "^aws$" + } + ] +}, +{ + "name": "^S3$", + "aws": { + "operation": "^GetBucketLocation$" + } +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/dotnet/ec2/windows/client-call-log.mustache b/validator/bin/main/expected-data-template/dotnet/ec2/windows/client-call-log.mustache new file mode 100644 index 000000000..85036f4da --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/ec2/windows/client-call-log.mustache @@ -0,0 +1,20 @@ +[{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:default$", + "PlatformType": "^AWS::EC2$", + "Operation": "InternalOperation", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}, +{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:default$", + "PlatformType": "^AWS::EC2$", + "Operation": "InternalOperation", + "Version": "^1$", + "RemoteService": "local-root-client-call:80", + "RemoteOperation": "GET /", + "Telemetry.Source": "^ClientSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/dotnet/ec2/windows/client-call-metric.mustache b/validator/bin/main/expected-data-template/dotnet/ec2/windows/client-call-metric.mustache new file mode 100644 index 000000000..85ed2565c --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/ec2/windows/client-call-metric.mustache @@ -0,0 +1,227 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:default + - + name: RemoteService + value: local-root-client-call:80 + - + name: RemoteOperation + value: GET / + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: local-root-client-call:80 + - + name: RemoteOperation + value: GET / + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: local-root-client-call:80 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:default + - + name: RemoteService + value: local-root-client-call:80 + - + name: RemoteOperation + value: GET / + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: local-root-client-call:80 + - + name: RemoteOperation + value: GET / + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: local-root-client-call:80 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:default + - + name: RemoteService + value: local-root-client-call:80 + - + name: RemoteOperation + value: GET / + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: local-root-client-call:80 + - + name: RemoteOperation + value: GET / + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: local-root-client-call:80 \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/dotnet/ec2/windows/client-call-trace.mustache b/validator/bin/main/expected-data-template/dotnet/ec2/windows/client-call-trace.mustache new file mode 100644 index 000000000..9ab62e784 --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/ec2/windows/client-call-trace.mustache @@ -0,0 +1,56 @@ +[{ + "name": "^{{serviceName}}$", + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^InternalOperation$", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "otel.resource.host.image.id": "^{{instanceAmi}}$", + "otel.resource.host.type": "^t3.large$" + } + }, + "subsegments": [ + { + "name": "^local-root-client-call:80$", + "http": { + "request": { + "url": "^http://local-root-client-call/$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^InternalOperation$", + "aws.remote.service": "^local-root-client-call:80$", + "aws.remote.operation": "GET /", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "namespace": "^remote$" + } + ] +}, +{ + "name": "^local-root-client-call:80$", + "http": { + "request": { + "url": "^http://local-root-client-call/$", + "method": "^GET$" + }, + "response": { + "content_length": 0 + } + }, + "annotations": { + "aws.local.service": "^local-root-client-call:80$", + "aws.local.operation": "^GET /$" + } +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/dotnet/ec2/windows/outgoing-http-call-log.mustache b/validator/bin/main/expected-data-template/dotnet/ec2/windows/outgoing-http-call-log.mustache new file mode 100644 index 000000000..237ad1e7d --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/ec2/windows/outgoing-http-call-log.mustache @@ -0,0 +1,20 @@ +[{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:default$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET outgoing-http-call", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}, +{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:default$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET outgoing-http-call", + "Version": "^1$", + "RemoteService": "aws.amazon.com:443", + "RemoteOperation": "GET /", + "Telemetry.Source": "^ClientSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/dotnet/ec2/windows/outgoing-http-call-metric.mustache b/validator/bin/main/expected-data-template/dotnet/ec2/windows/outgoing-http-call-metric.mustache new file mode 100644 index 000000000..e0e2bdcb7 --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/ec2/windows/outgoing-http-call-metric.mustache @@ -0,0 +1,227 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: aws.amazon.com:443 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: aws.amazon.com:443 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: aws.amazon.com:443 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: aws.amazon.com:443 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: aws.amazon.com:443 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: aws.amazon.com:443 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: aws.amazon.com:443 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: aws.amazon.com:443 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: aws.amazon.com:443 diff --git a/validator/bin/main/expected-data-template/dotnet/ec2/windows/outgoing-http-call-trace.mustache b/validator/bin/main/expected-data-template/dotnet/ec2/windows/outgoing-http-call-trace.mustache new file mode 100644 index 000000000..b49f7cb5a --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/ec2/windows/outgoing-http-call-trace.mustache @@ -0,0 +1,55 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/outgoing-http-call$", + "method": "^GET$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET outgoing-http-call$", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "otel.resource.host.image.id": "^{{instanceAmi}}$", + "otel.resource.host.type": "^t3.large$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "name": "^aws.amazon.com:443$", + "http": { + "request": { + "url": "^https://aws.amazon.com/$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET outgoing-http-call$", + "aws.remote.service": "^aws.amazon.com:443$", + "aws.remote.operation": "^GET /$", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "aws.span.kind": "^CLIENT$" + } + }, + "namespace": "^remote$" + } + ] +}, +{ + "name": "^aws.amazon.com:443$" +}] diff --git a/validator/bin/main/expected-data-template/dotnet/ec2/windows/remote-service-log.mustache b/validator/bin/main/expected-data-template/dotnet/ec2/windows/remote-service-log.mustache new file mode 100644 index 000000000..603ef48a1 --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/ec2/windows/remote-service-log.mustache @@ -0,0 +1,20 @@ +[{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:default$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET remote-service", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}, +{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:default$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET remote-service", + "Version": "^1$", + "RemoteService": "{{remoteServiceDeploymentName}}", + "RemoteOperation": "GET /healthcheck", + "Telemetry.Source": "^ClientSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/dotnet/ec2/windows/remote-service-metric.mustache b/validator/bin/main/expected-data-template/dotnet/ec2/windows/remote-service-metric.mustache new file mode 100644 index 000000000..1870c4248 --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/ec2/windows/remote-service-metric.mustache @@ -0,0 +1,312 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceName}} + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: ec2:default + - + name: Operation + value: GET healthcheck + - + name: Service + value: {{remoteServiceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceName}} + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: ec2:default + - + name: Operation + value: GET healthcheck + - + name: Service + value: {{remoteServiceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceName}} + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceDeploymentName}} diff --git a/validator/bin/main/expected-data-template/dotnet/ec2/windows/remote-service-trace.mustache b/validator/bin/main/expected-data-template/dotnet/ec2/windows/remote-service-trace.mustache new file mode 100644 index 000000000..3963ba2b4 --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/ec2/windows/remote-service-trace.mustache @@ -0,0 +1,77 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/remote-service$", + "method": "^GET$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET remote-service$", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "otel.resource.host.image.id": "^{{instanceAmi}}$", + "otel.resource.host.type": "^t3.large$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "name": "^{{remoteServiceDeploymentName}}$", + "http": { + "request": { + "url": "^http://(([0-9]{1,3}.){3}[0-9]{1,3}):8081/healthcheck$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET remote-service$", + "aws.remote.service": "^{{remoteServiceDeploymentName}}$", + "aws.remote.operation": "^GET /healthcheck$", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "aws.span.kind": "^CLIENT$" + } + }, + "namespace": "^remote$" + } + ] +}, +{ + "name": "^{{remoteServiceName}}$", + "http": { + "request": { + "url": "^http://(([0-9]{1,3}.){3}[0-9]{1,3}):8081/healthcheck$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{remoteServiceName}}$", + "aws.local.operation": "^GET healthcheck$", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "PlatformType": "^AWS::EC2$", + "otel.resource.host.image.id": "^{{instanceAmi}}$", + "otel.resource.host.type": "^t3.large$", + "aws.span.kind": "^LOCAL_ROOT$" + } + } +}] + + diff --git a/validator/bin/main/expected-data-template/dotnet/eks/linux/aws-sdk-call-log.mustache b/validator/bin/main/expected-data-template/dotnet/eks/linux/aws-sdk-call-log.mustache new file mode 100644 index 000000000..2ab1e1031 --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/eks/linux/aws-sdk-call-log.mustache @@ -0,0 +1,34 @@ +[{ + "EC2.AutoScalingGroup": "^eks-.+", + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "EKS.Cluster": "^{{platformInfo}}$", + "Environment": "^eks:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^dotnet-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^dotnet-app-deployment-{{testingId}}$", + "PlatformType": "^AWS::EKS$", + "Service": "^{{serviceName}}$", + "Operation": "GET aws-sdk-call", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}, +{ + "EC2.AutoScalingGroup": "^eks-.+", + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "EKS.Cluster": "^{{platformInfo}}$", + "Environment": "^eks:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^dotnet-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^dotnet-app-deployment-{{testingId}}$", + "PlatformType": "^AWS::EKS$", + "Service": "^{{serviceName}}$", + "Operation": "GET aws-sdk-call", + "Version": "^1$", + "RemoteService": "AWS::S3", + "RemoteOperation": "GetBucketLocation", + "Telemetry.Source": "^ClientSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/dotnet/eks/linux/aws-sdk-call-metric.mustache b/validator/bin/main/expected-data-template/dotnet/eks/linux/aws-sdk-call-metric.mustache new file mode 100644 index 000000000..09daa3d48 --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/eks/linux/aws-sdk-call-metric.mustache @@ -0,0 +1,375 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: {{testingId}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: {{testingId}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: {{testingId}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: {{testingId}} + + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: {{testingId}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: {{testingId}} \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/dotnet/eks/linux/aws-sdk-call-trace.mustache b/validator/bin/main/expected-data-template/dotnet/eks/linux/aws-sdk-call-trace.mustache new file mode 100644 index 000000000..7451f0d9d --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/eks/linux/aws-sdk-call-trace.mustache @@ -0,0 +1,60 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/aws-sdk-call$", + "method": "^GET$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET aws-sdk-call$", + "aws.local.environment": "^eks:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^eks-.+", + "EKS.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}", + "otel.resource.K8s.Workload": "^dotnet-app-deployment-{{testingId}}$", + "otel.resource.K8s.Node": "^i-[A-Za-z0-9]{17}$", + "otel.resource.K8s.Pod": "^dotnet-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "otel.resource.host.name": "^ip(-[0-9]{1,3}){4}.*$", + "PlatformType": "^AWS::EKS$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "name": "^S3$", + "aws": { + "region": "{{region}}", + "operation": "^GetBucketLocation$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET aws-sdk-call$", + "aws.remote.service": "^AWS::S3$", + "aws.remote.operation": "^GetBucketLocation$", + "aws.local.environment": "^eks:{{platformInfo}}/{{appNamespace}}$", + "aws.remote.resource.type": "AWS::S3::Bucket" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^eks-.+", + "EKS.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "PlatformType": "^AWS::EKS$", + "aws.span.kind": "^CLIENT$" + } + }, + "namespace": "^aws$" + } + ] +}, +{ + "name": "^S3$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/dotnet/eks/linux/client-call-log.mustache b/validator/bin/main/expected-data-template/dotnet/eks/linux/client-call-log.mustache new file mode 100644 index 000000000..f5b85031e --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/eks/linux/client-call-log.mustache @@ -0,0 +1,34 @@ +[{ + "EC2.AutoScalingGroup": "^eks-.+", + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "EKS.Cluster": "^{{platformInfo}}$", + "Environment": "^eks:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^dotnet-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^dotnet-app-deployment-{{testingId}}$", + "PlatformType": "^AWS::EKS$", + "Service": "^{{serviceName}}$", + "Operation": "InternalOperation", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}, +{ + "EC2.AutoScalingGroup": "^eks-.+", + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "EKS.Cluster": "^{{platformInfo}}$", + "Environment": "^eks:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^dotnet-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^dotnet-app-deployment-{{testingId}}$", + "PlatformType": "^AWS::EKS$", + "Service": "^{{serviceName}}$", + "Operation": "InternalOperation", + "Version": "^1$", + "RemoteService": "local-root-client-call:80", + "RemoteOperation": "GET /", + "Telemetry.Source": "^ClientSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/dotnet/eks/linux/client-call-metric.mustache b/validator/bin/main/expected-data-template/dotnet/eks/linux/client-call-metric.mustache new file mode 100644 index 000000000..7ad4f362e --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/eks/linux/client-call-metric.mustache @@ -0,0 +1,269 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: GET client-call + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call:80 + - + name: RemoteOperation + value: GET / + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call:80 + - + name: RemoteOperation + value: GET / + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call:80 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: GET client-call + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call:80 + - + name: RemoteOperation + value: GET / + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call:80 + - + name: RemoteOperation + value: GET / + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call:80 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: GET client-call + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call:80 + - + name: RemoteOperation + value: GET / + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call:80 + - + name: RemoteOperation + value: GET / + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call:80 \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/dotnet/eks/linux/client-call-trace.mustache b/validator/bin/main/expected-data-template/dotnet/eks/linux/client-call-trace.mustache new file mode 100644 index 000000000..25a8b184d --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/eks/linux/client-call-trace.mustache @@ -0,0 +1,60 @@ +[{ + "name": "^{{serviceName}}$", + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^InternalOperation$", + "aws.local.environment": "^eks:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "otel.resource.K8s.Workload": "^dotnet-app-deployment-{{testingId}}$", + "otel.resource.K8s.Node": "^i-[A-Za-z0-9]{17}$", + "otel.resource.K8s.Pod": "^dotnet-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "otel.resource.host.name": "^ip(-[0-9]{1,3}){4}.*$" + } + }, + "subsegments": [ + { + "name": "^local-root-client-call:80$", + "http": { + "request": { + "url": "^http://local-root-client-call/$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^InternalOperation$", + "aws.remote.service": "^local-root-client-call:80$", + "aws.remote.operation": "GET /", + "aws.local.environment": "^eks:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^eks-.+", + "EKS.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "PlatformType": "^AWS::EKS$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "namespace": "^remote$" + } + ] +}, +{ + "name": "^local-root-client-call:80$", + "http": { + "request": { + "url": "^http://local-root-client-call/$", + "method": "^GET$" + }, + "response": { + "content_length": 0 + } + }, + "annotations": { + "aws.local.service": "^local-root-client-call:80$", + "aws.local.operation": "^GET /$" + } +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/dotnet/eks/linux/outgoing-http-call-log.mustache b/validator/bin/main/expected-data-template/dotnet/eks/linux/outgoing-http-call-log.mustache new file mode 100644 index 000000000..5704f94b6 --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/eks/linux/outgoing-http-call-log.mustache @@ -0,0 +1,35 @@ +[{ + "EC2.AutoScalingGroup": "^eks-.+", + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "EKS.Cluster": "^{{platformInfo}}$", + "Environment": "^eks:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^dotnet-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^dotnet-app-deployment-{{testingId}}$", + "PlatformType": "^AWS::EKS$", + "Service": "^{{serviceName}}$", + "Operation": "GET outgoing-http-call", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}, +{ + "EC2.AutoScalingGroup": "^eks-.+", + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "EKS.Cluster": "^{{platformInfo}}$", + "Environment": "^eks:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^dotnet-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^dotnet-app-deployment-{{testingId}}$", + "PlatformType": "^AWS::EKS$", + "Service": "^{{serviceName}}$", + "Operation": "GET outgoing-http-call", + "Version": "^1$", + "RemoteService": "aws.amazon.com:443", + "RemoteOperation": "GET /", + "Telemetry.Source": "^ClientSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}] + diff --git a/validator/bin/main/expected-data-template/dotnet/eks/linux/outgoing-http-call-metric.mustache b/validator/bin/main/expected-data-template/dotnet/eks/linux/outgoing-http-call-metric.mustache new file mode 100644 index 000000000..3fbd08a5d --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/eks/linux/outgoing-http-call-metric.mustache @@ -0,0 +1,227 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: aws.amazon.com:443 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: aws.amazon.com:443 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: aws.amazon.com:443 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: aws.amazon.com:443 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: aws.amazon.com:443 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: aws.amazon.com:443 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: aws.amazon.com:443 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: aws.amazon.com:443 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: aws.amazon.com:443 \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/dotnet/eks/linux/outgoing-http-call-trace.mustache b/validator/bin/main/expected-data-template/dotnet/eks/linux/outgoing-http-call-trace.mustache new file mode 100644 index 000000000..e84b11596 --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/eks/linux/outgoing-http-call-trace.mustache @@ -0,0 +1,61 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/outgoing-http-call$", + "method": "^GET$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET outgoing-http-call$", + "aws.local.environment": "^eks:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^eks-.+", + "EKS.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}", + "otel.resource.K8s.Workload": "^dotnet-app-deployment-{{testingId}}$", + "otel.resource.K8s.Node": "^i-[A-Za-z0-9]{17}$", + "otel.resource.K8s.Pod": "^dotnet-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "otel.resource.host.name": "^ip(-[0-9]{1,3}){4}.*$", + "PlatformType": "^AWS::EKS$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "name": "^aws.amazon.com:443$", + "http": { + "request": { + "url": "^https://aws.amazon.com/$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET outgoing-http-call$", + "aws.remote.service": "^aws.amazon.com:443$", + "aws.remote.operation": "^GET /$", + "aws.local.environment": "^eks:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^eks-.+", + "EKS.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "PlatformType": "^AWS::EKS$", + "aws.span.kind": "^CLIENT$" + } + }, + "namespace": "^remote$" + } + ] +}, +{ + "name": "^aws.amazon.com:443$" +}] diff --git a/validator/bin/main/expected-data-template/dotnet/eks/linux/remote-service-log.mustache b/validator/bin/main/expected-data-template/dotnet/eks/linux/remote-service-log.mustache new file mode 100644 index 000000000..71196a6cc --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/eks/linux/remote-service-log.mustache @@ -0,0 +1,35 @@ +[{ + "EC2.AutoScalingGroup": "^eks-.+", + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "EKS.Cluster": "^{{platformInfo}}$", + "Environment": "^eks:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^dotnet-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^dotnet-app-deployment-{{testingId}}$", + "PlatformType": "^AWS::EKS$", + "Service": "^{{serviceName}}$", + "Operation": "GET remote-service", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}, +{ + "EC2.AutoScalingGroup": "^eks-.+", + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "EKS.Cluster": "^{{platformInfo}}$", + "Environment": "^eks:{{platformInfo}}/{{appNamespace}}$", + "RemoteEnvironment": "^eks:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^dotnet-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^dotnet-app-deployment-{{testingId}}$", + "PlatformType": "^AWS::EKS$", + "Service": "^{{serviceName}}$", + "Operation": "GET remote-service", + "Version": "^1$", + "RemoteService": "{{remoteServiceDeploymentName}}", + "RemoteOperation": "GET /healthcheck", + "Telemetry.Source": "^ClientSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/dotnet/eks/linux/remote-service-metric.mustache b/validator/bin/main/expected-data-template/dotnet/eks/linux/remote-service-metric.mustache new file mode 100644 index 000000000..d40a92c42 --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/eks/linux/remote-service-metric.mustache @@ -0,0 +1,506 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET healthcheck + - + name: Service + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceDeploymentName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET remote-service + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET healthcheck + - + name: Service + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceDeploymentName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET remote-service + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET healthcheck + - + name: Service + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceDeploymentName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET remote-service + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + - + name: Service + value: {{serviceName}} \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/dotnet/eks/linux/remote-service-trace.mustache b/validator/bin/main/expected-data-template/dotnet/eks/linux/remote-service-trace.mustache new file mode 100644 index 000000000..14bda5899 --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/eks/linux/remote-service-trace.mustache @@ -0,0 +1,83 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/remote-service$", + "method": "^GET$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET remote-service$", + "aws.local.environment": "^eks:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^eks-.+", + "EKS.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}", + "otel.resource.K8s.Workload": "^dotnet-app-deployment-{{testingId}}$", + "otel.resource.K8s.Node": "^i-[A-Za-z0-9]{17}$", + "otel.resource.K8s.Pod": "^dotnet-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "otel.resource.host.name": "^ip(-[0-9]{1,3}){4}.*$", + "PlatformType": "^AWS::EKS$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "name": "^{{remoteServiceDeploymentName}}$", + "http": { + "request": { + "url": "^http://(([0-9]{1,3}.){3}[0-9]{1,3}):8081/healthcheck$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET remote-service$", + "aws.remote.service": "^{{remoteServiceDeploymentName}}$", + "aws.remote.operation": "^GET /healthcheck$", + "aws.local.environment": "^eks:{{platformInfo}}/{{appNamespace}}$", + "aws.remote.environment": "^eks:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^eks-.+", + "EKS.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "PlatformType": "^AWS::EKS$", + "aws.span.kind": "^CLIENT$" + } + }, + "namespace": "^remote$" + } + ] +}, +{ + "name": "^{{remoteServiceDeploymentName}}$", + "http": { + "request": { + "url": "^http://(([0-9]{1,3}.){3}[0-9]{1,3}):8081/healthcheck$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{remoteServiceDeploymentName}}$", + "aws.local.operation": "^GET healthcheck$", + "aws.local.environment": "^eks:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "otel.resource.K8s.Workload": "^{{remoteServiceDeploymentName}}$", + "otel.resource.K8s.Node": "^i-[A-Za-z0-9]{17}$", + "otel.resource.K8s.Pod": "^{{remoteServiceDeploymentName}}(-[A-Za-z0-9]*)*$", + "aws.span.kind": "^LOCAL_ROOT$" + } + } +}] + + diff --git a/validator/bin/main/expected-data-template/dotnet/k8s/aws-sdk-call-log.mustache b/validator/bin/main/expected-data-template/dotnet/k8s/aws-sdk-call-log.mustache new file mode 100644 index 000000000..e5cfe92d1 --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/k8s/aws-sdk-call-log.mustache @@ -0,0 +1,30 @@ +[{ + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "Environment": "^k8s:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^dotnet-sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^dotnet-sample-app-deployment-{{testingId}}$", + "PlatformType": "^K8s$", + "Service": "^{{serviceName}}$", + "Operation": "GET aws-sdk-call", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}, +{ + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "Environment": "^k8s:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^dotnet-sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^dotnet-sample-app-deployment-{{testingId}}$", + "PlatformType": "^K8s$", + "Service": "^{{serviceName}}$", + "Operation": "GET aws-sdk-call", + "Version": "^1$", + "RemoteService": "AWS::S3", + "RemoteOperation": "GetBucketLocation", + "Telemetry.Source": "^ClientSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/dotnet/k8s/aws-sdk-call-metric.mustache b/validator/bin/main/expected-data-template/dotnet/k8s/aws-sdk-call-metric.mustache new file mode 100644 index 000000000..da30d7ad3 --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/k8s/aws-sdk-call-metric.mustache @@ -0,0 +1,375 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: {{testingId}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: {{testingId}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: {{testingId}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: {{testingId}} + + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: {{testingId}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: {{testingId}} \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/dotnet/k8s/aws-sdk-call-trace.mustache b/validator/bin/main/expected-data-template/dotnet/k8s/aws-sdk-call-trace.mustache new file mode 100644 index 000000000..cb4f5183a --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/k8s/aws-sdk-call-trace.mustache @@ -0,0 +1,56 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/aws-sdk-call$", + "method": "^GET$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET aws-sdk-call$", + "aws.local.environment": "^k8s:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "K8s.Namespace": "^{{appNamespace}}", + "otel.resource.K8s.Workload": "^dotnet-sample-app-deployment-{{testingId}}$", + "otel.resource.K8s.Node": "^i-[A-Za-z0-9]{17}$", + "otel.resource.K8s.Pod": "^dotnet-sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "otel.resource.host.name": "^ip(-[0-9]{1,3}){4}.*$", + "PlatformType": "^K8s$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "name": "^S3$", + "aws": { + "region": "{{region}}", + "operation": "^GetBucketLocation$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET aws-sdk-call$", + "aws.remote.service": "^AWS::S3$", + "aws.remote.operation": "^GetBucketLocation$", + "aws.local.environment": "^k8s:{{platformInfo}}/{{appNamespace}}$", + "aws.remote.resource.type": "AWS::S3::Bucket" + }, + "metadata": { + "default": { + "K8s.Namespace": "^{{appNamespace}}$", + "PlatformType": "^K8s$", + "aws.span.kind": "^CLIENT$" + } + }, + "namespace": "^aws$" + } + ] +}, +{ + "name": "^S3$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/dotnet/k8s/client-call-log.mustache b/validator/bin/main/expected-data-template/dotnet/k8s/client-call-log.mustache new file mode 100644 index 000000000..fe0078fa9 --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/k8s/client-call-log.mustache @@ -0,0 +1,30 @@ +[{ + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "Environment": "^k8s:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^dotnet-sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^dotnet-sample-app-deployment-{{testingId}}$", + "PlatformType": "^K8s$", + "Service": "^{{serviceName}}$", + "Operation": "InternalOperation", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}, +{ + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "Environment": "^k8s:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^dotnet-sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^dotnet-sample-app-deployment-{{testingId}}$", + "PlatformType": "^K8s$", + "Service": "^{{serviceName}}$", + "Operation": "InternalOperation", + "Version": "^1$", + "RemoteService": "local-root-client-call:80", + "RemoteOperation": "GET /", + "Telemetry.Source": "^ClientSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/dotnet/k8s/client-call-metric.mustache b/validator/bin/main/expected-data-template/dotnet/k8s/client-call-metric.mustache new file mode 100644 index 000000000..74b35db3a --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/k8s/client-call-metric.mustache @@ -0,0 +1,269 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: GET client-call + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call:80 + - + name: RemoteOperation + value: GET / + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call:80 + - + name: RemoteOperation + value: GET / + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call:80 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: GET client-call + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call:80 + - + name: RemoteOperation + value: GET / + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call:80 + - + name: RemoteOperation + value: GET / + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call:80 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: GET client-call + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call:80 + - + name: RemoteOperation + value: GET / + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call:80 + - + name: RemoteOperation + value: GET / + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call:80 \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/dotnet/k8s/client-call-trace.mustache b/validator/bin/main/expected-data-template/dotnet/k8s/client-call-trace.mustache new file mode 100644 index 000000000..3fae65447 --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/k8s/client-call-trace.mustache @@ -0,0 +1,58 @@ +[{ + "name": "^{{serviceName}}$", + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^InternalOperation$", + "aws.local.environment": "^k8s:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "otel.resource.K8s.Workload": "^dotnet-sample-app-deployment-{{testingId}}$", + "otel.resource.K8s.Node": "^i-[A-Za-z0-9]{17}$", + "otel.resource.K8s.Pod": "^dotnet-sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "otel.resource.host.name": "^ip(-[0-9]{1,3}){4}.*$" + } + }, + "subsegments": [ + { + "name": "^local-root-client-call:80$", + "http": { + "request": { + "url": "^http://local-root-client-call/$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^InternalOperation$", + "aws.remote.service": "^local-root-client-call:80$", + "aws.remote.operation": "GET /", + "aws.local.environment": "^k8s:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "K8s.Namespace": "^{{appNamespace}}$", + "PlatformType": "^K8s$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "namespace": "^remote$" + } + ] +}, +{ + "name": "^local-root-client-call:80$", + "http": { + "request": { + "url": "^http://local-root-client-call/$", + "method": "^GET$" + }, + "response": { + "content_length": 0 + } + }, + "annotations": { + "aws.local.service": "^local-root-client-call:80$", + "aws.local.operation": "^GET /$" + } +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/dotnet/k8s/outgoing-http-call-log.mustache b/validator/bin/main/expected-data-template/dotnet/k8s/outgoing-http-call-log.mustache new file mode 100644 index 000000000..61111829d --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/k8s/outgoing-http-call-log.mustache @@ -0,0 +1,31 @@ +[{ + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "Environment": "^k8s:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^dotnet-sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^dotnet-sample-app-deployment-{{testingId}}$", + "PlatformType": "^K8s$", + "Service": "^{{serviceName}}$", + "Operation": "GET outgoing-http-call", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}, +{ + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "Environment": "^k8s:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^dotnet-sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^dotnet-sample-app-deployment-{{testingId}}$", + "PlatformType": "^K8s$", + "Service": "^{{serviceName}}$", + "Operation": "GET outgoing-http-call", + "Version": "^1$", + "RemoteService": "aws.amazon.com:443", + "RemoteOperation": "GET /", + "Telemetry.Source": "^ClientSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}] + diff --git a/validator/bin/main/expected-data-template/dotnet/k8s/outgoing-http-call-metric.mustache b/validator/bin/main/expected-data-template/dotnet/k8s/outgoing-http-call-metric.mustache new file mode 100644 index 000000000..c0f79243f --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/k8s/outgoing-http-call-metric.mustache @@ -0,0 +1,227 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: aws.amazon.com:443 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: aws.amazon.com:443 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: aws.amazon.com:443 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: aws.amazon.com:443 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: aws.amazon.com:443 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: aws.amazon.com:443 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: aws.amazon.com:443 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: aws.amazon.com:443 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: aws.amazon.com:443 \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/dotnet/k8s/outgoing-http-call-trace.mustache b/validator/bin/main/expected-data-template/dotnet/k8s/outgoing-http-call-trace.mustache new file mode 100644 index 000000000..fa5ac4b86 --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/k8s/outgoing-http-call-trace.mustache @@ -0,0 +1,57 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/outgoing-http-call$", + "method": "^GET$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET outgoing-http-call$", + "aws.local.environment": "^k8s:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "K8s.Namespace": "^{{appNamespace}}", + "otel.resource.K8s.Workload": "^dotnet-sample-app-deployment-{{testingId}}$", + "otel.resource.K8s.Node": "^i-[A-Za-z0-9]{17}$", + "otel.resource.K8s.Pod": "^dotnet-sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "otel.resource.host.name": "^ip(-[0-9]{1,3}){4}.*$", + "PlatformType": "^K8s$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "name": "^aws.amazon.com:443$", + "http": { + "request": { + "url": "^https://aws.amazon.com/$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET outgoing-http-call$", + "aws.remote.service": "^aws.amazon.com:443$", + "aws.remote.operation": "^GET /$", + "aws.local.environment": "^k8s:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "K8s.Namespace": "^{{appNamespace}}$", + "PlatformType": "^K8s$", + "aws.span.kind": "^CLIENT$" + } + }, + "namespace": "^remote$" + } + ] +}, +{ + "name": "^aws.amazon.com:443$" +}] diff --git a/validator/bin/main/expected-data-template/dotnet/k8s/remote-service-log.mustache b/validator/bin/main/expected-data-template/dotnet/k8s/remote-service-log.mustache new file mode 100644 index 000000000..ef43968e8 --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/k8s/remote-service-log.mustache @@ -0,0 +1,31 @@ +[{ + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "Environment": "^k8s:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^dotnet-sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^dotnet-sample-app-deployment-{{testingId}}$", + "PlatformType": "^K8s$", + "Service": "^{{serviceName}}$", + "Operation": "GET remote-service", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}, +{ + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "Environment": "^k8s:{{platformInfo}}/{{appNamespace}}$", + "RemoteEnvironment": "^k8s:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^dotnet-sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^dotnet-sample-app-deployment-{{testingId}}$", + "PlatformType": "^K8s$", + "Service": "^{{serviceName}}$", + "Operation": "GET remote-service", + "Version": "^1$", + "RemoteService": "{{remoteServiceDeploymentName}}", + "RemoteOperation": "GET /healthcheck", + "Telemetry.Source": "^ClientSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/dotnet/k8s/remote-service-metric.mustache b/validator/bin/main/expected-data-template/dotnet/k8s/remote-service-metric.mustache new file mode 100644 index 000000000..36031463f --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/k8s/remote-service-metric.mustache @@ -0,0 +1,506 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET healthcheck + - + name: Service + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceDeploymentName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET remote-service + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET healthcheck + - + name: Service + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceDeploymentName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET remote-service + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET healthcheck + - + name: Service + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceDeploymentName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET remote-service + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + - + name: Service + value: {{serviceName}} \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/dotnet/k8s/remote-service-trace.mustache b/validator/bin/main/expected-data-template/dotnet/k8s/remote-service-trace.mustache new file mode 100644 index 000000000..18fdbbba0 --- /dev/null +++ b/validator/bin/main/expected-data-template/dotnet/k8s/remote-service-trace.mustache @@ -0,0 +1,79 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/remote-service$", + "method": "^GET$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET remote-service$", + "aws.local.environment": "^k8s:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "K8s.Namespace": "^{{appNamespace}}", + "otel.resource.K8s.Workload": "^dotnet-sample-app-deployment-{{testingId}}$", + "otel.resource.K8s.Node": "^i-[A-Za-z0-9]{17}$", + "otel.resource.K8s.Pod": "^dotnet-sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "otel.resource.host.name": "^ip(-[0-9]{1,3}){4}.*$", + "PlatformType": "^K8s$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "name": "^{{remoteServiceDeploymentName}}$", + "http": { + "request": { + "url": "^http://(([0-9]{1,3}.){3}[0-9]{1,3}):8081/healthcheck$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET remote-service$", + "aws.remote.service": "^{{remoteServiceDeploymentName}}$", + "aws.remote.operation": "^GET /healthcheck$", + "aws.local.environment": "^k8s:{{platformInfo}}/{{appNamespace}}$", + "aws.remote.environment": "^k8s:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "K8s.Namespace": "^{{appNamespace}}$", + "PlatformType": "^K8s$", + "aws.span.kind": "^CLIENT$" + } + }, + "namespace": "^remote$" + } + ] +}, +{ + "name": "^{{remoteServiceDeploymentName}}$", + "http": { + "request": { + "url": "^http://(([0-9]{1,3}.){3}[0-9]{1,3}):8081/healthcheck$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{remoteServiceDeploymentName}}$", + "aws.local.operation": "^GET healthcheck$", + "aws.local.environment": "^k8s:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "otel.resource.K8s.Workload": "^{{remoteServiceDeploymentName}}$", + "otel.resource.K8s.Node": "^i-[A-Za-z0-9]{17}$", + "otel.resource.K8s.Pod": "^{{remoteServiceDeploymentName}}(-[A-Za-z0-9]*)*$", + "aws.span.kind": "^LOCAL_ROOT$" + } + } +}] + + diff --git a/validator/bin/main/expected-data-template/java/ec2/asg/aws-sdk-call-log.mustache b/validator/bin/main/expected-data-template/java/ec2/asg/aws-sdk-call-log.mustache new file mode 100644 index 000000000..f4e5ae865 --- /dev/null +++ b/validator/bin/main/expected-data-template/java/ec2/asg/aws-sdk-call-log.mustache @@ -0,0 +1,24 @@ +[{ + "EC2.AutoScalingGroup": "^{{platformInfo}}$", + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:{{platformInfo}}$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET /aws-sdk-call", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^{{privateDnsName}}$" +}, +{ + "EC2.AutoScalingGroup": "^{{platformInfo}}$", + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:{{platformInfo}}$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET /aws-sdk-call", + "Version": "^1$", + "RemoteService": "AWS::S3", + "RemoteOperation": "GetBucketLocation", + "RemoteResourceIdentifier": "^e2e-test-bucket-name-{{testingId}}$", + "RemoteResourceType": "^AWS::S3::Bucket$", + "Telemetry.Source": "^ClientSpan$", + "Host": "^{{privateDnsName}}$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/java/ec2/asg/aws-sdk-call-metric.mustache b/validator/bin/main/expected-data-template/java/ec2/asg/aws-sdk-call-metric.mustache new file mode 100644 index 000000000..ec5bd4256 --- /dev/null +++ b/validator/bin/main/expected-data-template/java/ec2/asg/aws-sdk-call-metric.mustache @@ -0,0 +1,374 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket diff --git a/validator/bin/main/expected-data-template/java/ec2/asg/aws-sdk-call-trace.mustache b/validator/bin/main/expected-data-template/java/ec2/asg/aws-sdk-call-trace.mustache new file mode 100644 index 000000000..a4153fef4 --- /dev/null +++ b/validator/bin/main/expected-data-template/java/ec2/asg/aws-sdk-call-trace.mustache @@ -0,0 +1,71 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/aws-sdk-call\\?ip=(([0-9]{1,3}.){3}[0-9]{1,3})&testingId={{testingId}}$", + "method": "^GET$" + }, + "response": { + "status": "^200$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /aws-sdk-call$", + "aws.local.environment": "^ec2:{{platformInfo}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^{{platformInfo}}$", + "EC2.InstanceId": "^{{instanceId}}$", + "otel.resource.ec2.tag.aws:autoscaling:groupName": "^{{platformInfo}}$", + "otel.resource.host.id": "^{{instanceId}}$", + "otel.resource.host.image.id": "^{{instanceAmi}}$", + "otel.resource.host.type": "^([a-z0-9]+\\.[a-z0-9]+)$", + "aws.span.kind": "^LOCAL_ROOT$", + "otel.resource.host.name": "^{{privateDnsName}}$" + } + }, + "subsegments": [ + { + "subsegments": [ + { + "name": "^S3$", + "http": { + "request": { + "url": "^https://((e2e-test-bucket-name-{{testingId}})|(s3.{{region}}.amazonaws.com)|(\\.)|(\\/))+\\?location$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /aws-sdk-call$", + "aws.remote.service": "^AWS::S3$", + "aws.remote.operation": "^GetBucketLocation$", + "aws.remote.resource.type": "^AWS::S3::Bucket$", + "aws.remote.resource.identifier": "^e2e-test-bucket-name-{{testingId}}$", + "aws.local.environment": "^ec2:{{platformInfo}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^{{platformInfo}}$", + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "aws.span.kind": "^CLIENT$" + } + }, + "namespace": "^aws$" + } + ] + } + ] +}, +{ + "name": "^S3$", + "aws": { + "operation": "^GetBucketLocation$" + } +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/java/ec2/asg/client-call-log.mustache b/validator/bin/main/expected-data-template/java/ec2/asg/client-call-log.mustache new file mode 100644 index 000000000..4dbd3d3ce --- /dev/null +++ b/validator/bin/main/expected-data-template/java/ec2/asg/client-call-log.mustache @@ -0,0 +1,22 @@ +[{ + "EC2.AutoScalingGroup": "^{{platformInfo}}$", + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:{{platformInfo}}$", + "PlatformType": "^AWS::EC2$", + "Operation": "InternalOperation", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^{{privateDnsName}}$" +}, +{ + "EC2.AutoScalingGroup": "^{{platformInfo}}$", + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:{{platformInfo}}$", + "PlatformType": "^AWS::EC2$", + "Operation": "InternalOperation", + "Version": "^1$", + "RemoteService": "local-root-client-call", + "RemoteOperation": "GET /", + "Telemetry.Source": "^ClientSpan$", + "Host": "^{{privateDnsName}}$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/java/ec2/asg/client-call-metric.mustache b/validator/bin/main/expected-data-template/java/ec2/asg/client-call-metric.mustache new file mode 100644 index 000000000..7127ec861 --- /dev/null +++ b/validator/bin/main/expected-data-template/java/ec2/asg/client-call-metric.mustache @@ -0,0 +1,227 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: local-root-client-call + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: local-root-client-call + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: local-root-client-call \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/java/ec2/asg/client-call-trace.mustache b/validator/bin/main/expected-data-template/java/ec2/asg/client-call-trace.mustache new file mode 100644 index 000000000..22bb4a955 --- /dev/null +++ b/validator/bin/main/expected-data-template/java/ec2/asg/client-call-trace.mustache @@ -0,0 +1,60 @@ +[{ + "name": "^{{serviceName}}$", + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^InternalOperation$", + "aws.local.environment": "^ec2:{{platformInfo}}$" + }, + "metadata": { + "default": { + "otel.resource.ec2.tag.aws:autoscaling:groupName": "^{{platformInfo}}$", + "otel.resource.host.id": "^{{instanceId}}$", + "otel.resource.host.image.id": "^{{instanceAmi}}$", + "otel.resource.host.type": "^([a-z0-9]+\\.[a-z0-9]+)$", + "otel.resource.host.name": "^{{privateDnsName}}$" + } + }, + "subsegments": [ + { + "name": "^local-root-client-call$", + "http": { + "request": { + "url": "^http://local-root-client-call$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^InternalOperation$", + "aws.remote.service": "^local-root-client-call$", + "aws.remote.operation": "GET /", + "aws.local.environment": "^ec2:{{platformInfo}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^{{platformInfo}}$", + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "namespace": "^remote$" + } + ] +}, +{ + "name": "^local-root-client-call$", + "http": { + "request": { + "url": "^http://local-root-client-call$", + "method": "^GET$" + }, + "response": { + "content_length": 0 + } + }, + "annotations": { + "aws.local.service": "^local-root-client-call$", + "aws.local.operation": "^GET /$" + } +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/java/ec2/asg/outgoing-http-call-log.mustache b/validator/bin/main/expected-data-template/java/ec2/asg/outgoing-http-call-log.mustache new file mode 100644 index 000000000..a13c8b103 --- /dev/null +++ b/validator/bin/main/expected-data-template/java/ec2/asg/outgoing-http-call-log.mustache @@ -0,0 +1,22 @@ +[{ + "EC2.AutoScalingGroup": "^{{platformInfo}}$", + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:{{platformInfo}}$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET /outgoing-http-call", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^{{privateDnsName}}$" +}, +{ + "EC2.AutoScalingGroup": "^{{platformInfo}}$", + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:{{platformInfo}}$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET /outgoing-http-call", + "Version": "^1$", + "RemoteService": "www.amazon.com", + "RemoteOperation": "GET /", + "Telemetry.Source": "^ClientSpan$", + "Host": "^{{privateDnsName}}$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/java/ec2/asg/outgoing-http-call-metric.mustache b/validator/bin/main/expected-data-template/java/ec2/asg/outgoing-http-call-metric.mustache new file mode 100644 index 000000000..599cba0c4 --- /dev/null +++ b/validator/bin/main/expected-data-template/java/ec2/asg/outgoing-http-call-metric.mustache @@ -0,0 +1,227 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: www.amazon.com + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: www.amazon.com + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: www.amazon.com diff --git a/validator/bin/main/expected-data-template/java/ec2/asg/outgoing-http-call-trace.mustache b/validator/bin/main/expected-data-template/java/ec2/asg/outgoing-http-call-trace.mustache new file mode 100644 index 000000000..245f07920 --- /dev/null +++ b/validator/bin/main/expected-data-template/java/ec2/asg/outgoing-http-call-trace.mustache @@ -0,0 +1,66 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/outgoing-http-call$", + "method": "^GET$" + }, + "response": { + "status": "^200$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /outgoing-http-call$", + "aws.local.environment": "^ec2:{{platformInfo}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^{{platformInfo}}$", + "EC2.InstanceId": "^{{instanceId}}$", + "otel.resource.ec2.tag.aws:autoscaling:groupName": "^{{platformInfo}}$", + "otel.resource.host.id": "^{{instanceId}}$", + "otel.resource.host.image.id": "^{{instanceAmi}}$", + "otel.resource.host.type": "^([a-z0-9]+\\.[a-z0-9]+)$", + "otel.resource.host.name": "^{{privateDnsName}}$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "subsegments": [ + { + "name": "^www.amazon.com$", + "http": { + "request": { + "url": "^https://www.amazon.com$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /outgoing-http-call$", + "aws.remote.service": "^www.amazon.com$", + "aws.remote.operation": "^GET /$", + "aws.local.environment": "^ec2:{{platformInfo}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^{{platformInfo}}$", + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "aws.span.kind": "^CLIENT$" + } + }, + "namespace": "^remote$" + } + ] + } + ] +}, +{ + "name": "^www.amazon.com$" +}] diff --git a/validator/bin/main/expected-data-template/java/ec2/asg/remote-service-log.mustache b/validator/bin/main/expected-data-template/java/ec2/asg/remote-service-log.mustache new file mode 100644 index 000000000..0527d8674 --- /dev/null +++ b/validator/bin/main/expected-data-template/java/ec2/asg/remote-service-log.mustache @@ -0,0 +1,22 @@ +[{ + "EC2.AutoScalingGroup": "^{{platformInfo}}$", + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:{{platformInfo}}$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET /remote-service", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^{{privateDnsName}}$" +}, +{ + "EC2.AutoScalingGroup": "^{{platformInfo}}$", + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:{{platformInfo}}$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET /remote-service", + "Version": "^1$", + "RemoteService": "{{remoteServiceDeploymentName}}", + "RemoteOperation": "GET /healthcheck", + "Telemetry.Source": "^ClientSpan$", + "Host": "^{{privateDnsName}}$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/java/ec2/asg/remote-service-metric.mustache b/validator/bin/main/expected-data-template/java/ec2/asg/remote-service-metric.mustache new file mode 100644 index 000000000..7f692a7cb --- /dev/null +++ b/validator/bin/main/expected-data-template/java/ec2/asg/remote-service-metric.mustache @@ -0,0 +1,326 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: ec2:default + - + name: Operation + value: GET /healthcheck + - + name: Service + value: {{remoteServiceName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceName}} + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: ec2:default + - + name: Operation + value: GET /healthcheck + - + name: Service + value: {{remoteServiceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceName}} + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: ec2:default + - + name: Operation + value: GET /healthcheck + - + name: Service + value: {{remoteServiceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceName}} + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceDeploymentName}} diff --git a/validator/bin/main/expected-data-template/java/ec2/asg/remote-service-trace.mustache b/validator/bin/main/expected-data-template/java/ec2/asg/remote-service-trace.mustache new file mode 100644 index 000000000..d79ff91ca --- /dev/null +++ b/validator/bin/main/expected-data-template/java/ec2/asg/remote-service-trace.mustache @@ -0,0 +1,104 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/remote-service\\?ip=(([0-9]{1,3}.){3}[0-9]{1,3})&testingId={{testingId}}$", + "method": "^GET$" + }, + "response": { + "status": "^200$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /remote-service$", + "aws.local.environment": "^ec2:{{platformInfo}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^{{platformInfo}}$", + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "otel.resource.ec2.tag.aws:autoscaling:groupName": "^{{platformInfo}}$", + "otel.resource.host.id": "^{{instanceId}}$", + "otel.resource.host.image.id": "^{{instanceAmi}}$", + "otel.resource.host.type": "^([a-z0-9]+\\.[a-z0-9]+)$", + "otel.resource.host.name": "^{{privateDnsName}}$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "subsegments": [ + { + "name": "^{{remoteServiceDeploymentName}}$", + "http": { + "request": { + "url": "^http://(([0-9]{1,3}.){3}[0-9]{1,3}):8080/healthcheck$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /remote-service$", + "aws.remote.service": "^{{remoteServiceDeploymentName}}$", + "aws.remote.operation": "^GET /healthcheck$", + "aws.local.environment": "^ec2:{{platformInfo}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^{{platformInfo}}$", + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "aws.span.kind": "^CLIENT$" + } + }, + "namespace": "^remote$" + } + ] + } + ] +}, +{ + "name": "^{{remoteServiceName}}$", + "http": { + "request": { + "url": "^http://(([0-9]{1,3}.){3}[0-9]{1,3}):8080/healthcheck$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{remoteServiceName}}$", + "aws.local.operation": "^GET /healthcheck$", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "PlatformType": "^AWS::EC2$", + "otel.resource.host.image.id": "^{{instanceAmi}}$", + "otel.resource.host.type": "^([a-z0-9]+\\.[a-z0-9]+)$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "name": "^RemoteServiceController.healthcheck$", + "annotations": { + "aws.local.operation": "^GET /healthcheck$", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "PlatformType": "^AWS::EC2$" + } + } + } + ] +}] + + diff --git a/validator/bin/main/expected-data-template/java/ec2/default/aws-sdk-call-log.mustache b/validator/bin/main/expected-data-template/java/ec2/default/aws-sdk-call-log.mustache new file mode 100644 index 000000000..5d820b066 --- /dev/null +++ b/validator/bin/main/expected-data-template/java/ec2/default/aws-sdk-call-log.mustache @@ -0,0 +1,22 @@ +[{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:default$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET /aws-sdk-call", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}, +{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:default$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET /aws-sdk-call", + "Version": "^1$", + "RemoteService": "AWS::S3", + "RemoteOperation": "GetBucketLocation", + "RemoteResourceIdentifier": "^e2e-test-bucket-name-{{testingId}}$", + "RemoteResourceType": "^AWS::S3::Bucket$", + "Telemetry.Source": "^ClientSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/java/ec2/default/aws-sdk-call-metric.mustache b/validator/bin/main/expected-data-template/java/ec2/default/aws-sdk-call-metric.mustache new file mode 100644 index 000000000..4ad5135e0 --- /dev/null +++ b/validator/bin/main/expected-data-template/java/ec2/default/aws-sdk-call-metric.mustache @@ -0,0 +1,376 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + + diff --git a/validator/bin/main/expected-data-template/java/ec2/default/aws-sdk-call-trace.mustache b/validator/bin/main/expected-data-template/java/ec2/default/aws-sdk-call-trace.mustache new file mode 100644 index 000000000..b91731e9a --- /dev/null +++ b/validator/bin/main/expected-data-template/java/ec2/default/aws-sdk-call-trace.mustache @@ -0,0 +1,67 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/aws-sdk-call\\?ip=(([0-9]{1,3}.){3}[0-9]{1,3})&testingId={{testingId}}$", + "method": "^GET$" + }, + "response": { + "status": "^200$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /aws-sdk-call$", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "otel.resource.host.image.id": "^{{instanceAmi}}$", + "otel.resource.host.type": "^([a-z0-9]+\\.[a-z0-9]+)$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "subsegments": [ + { + "name": "^S3$", + "http": { + "request": { + "url": "^https://e2e-test-bucket-name-{{testingId}}.s3.{{region}}.amazonaws.com\\?location$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /aws-sdk-call$", + "aws.remote.service": "^AWS::S3$", + "aws.remote.operation": "^GetBucketLocation$", + "aws.remote.resource.type": "^AWS::S3::Bucket$", + "aws.remote.resource.identifier": "^e2e-test-bucket-name-{{testingId}}$", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "aws.span.kind": "^CLIENT$" + } + }, + "namespace": "^aws$" + } + ] + } + ] +}, +{ + "name": "^S3$", + "aws": { + "operation": "^GetBucketLocation$" + } +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/java/ec2/default/client-call-log.mustache b/validator/bin/main/expected-data-template/java/ec2/default/client-call-log.mustache new file mode 100644 index 000000000..25c72000a --- /dev/null +++ b/validator/bin/main/expected-data-template/java/ec2/default/client-call-log.mustache @@ -0,0 +1,20 @@ +[{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:default$", + "PlatformType": "^AWS::EC2$", + "Operation": "InternalOperation", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}, +{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:default$", + "PlatformType": "^AWS::EC2$", + "Operation": "InternalOperation", + "Version": "^1$", + "RemoteService": "local-root-client-call", + "RemoteOperation": "GET /", + "Telemetry.Source": "^ClientSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/java/ec2/default/client-call-metric.mustache b/validator/bin/main/expected-data-template/java/ec2/default/client-call-metric.mustache new file mode 100644 index 000000000..86fa8bbf5 --- /dev/null +++ b/validator/bin/main/expected-data-template/java/ec2/default/client-call-metric.mustache @@ -0,0 +1,227 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:default + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: local-root-client-call + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:default + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: local-root-client-call + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:default + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: local-root-client-call \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/java/ec2/default/client-call-trace.mustache b/validator/bin/main/expected-data-template/java/ec2/default/client-call-trace.mustache new file mode 100644 index 000000000..5a7774e4b --- /dev/null +++ b/validator/bin/main/expected-data-template/java/ec2/default/client-call-trace.mustache @@ -0,0 +1,56 @@ +[{ + "name": "^{{serviceName}}$", + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^InternalOperation$", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "otel.resource.host.image.id": "^{{instanceAmi}}$", + "otel.resource.host.type": "^([a-z0-9]+\\.[a-z0-9]+)$" + } + }, + "subsegments": [ + { + "name": "^local-root-client-call$", + "http": { + "request": { + "url": "^http://local-root-client-call$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^InternalOperation$", + "aws.remote.service": "^local-root-client-call$", + "aws.remote.operation": "GET /", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "namespace": "^remote$" + } + ] +}, +{ + "name": "^local-root-client-call$", + "http": { + "request": { + "url": "^http://local-root-client-call$", + "method": "^GET$" + }, + "response": { + "content_length": 0 + } + }, + "annotations": { + "aws.local.service": "^local-root-client-call$", + "aws.local.operation": "^GET /$" + } +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/java/ec2/default/outgoing-http-call-log.mustache b/validator/bin/main/expected-data-template/java/ec2/default/outgoing-http-call-log.mustache new file mode 100644 index 000000000..60c38935c --- /dev/null +++ b/validator/bin/main/expected-data-template/java/ec2/default/outgoing-http-call-log.mustache @@ -0,0 +1,21 @@ +[{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:default$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET /outgoing-http-call", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}, +{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:default$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET /outgoing-http-call", + "Version": "^1$", + "RemoteService": "www.amazon.com", + "RemoteOperation": "GET /", + "Telemetry.Source": "^ClientSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}] + diff --git a/validator/bin/main/expected-data-template/java/ec2/default/outgoing-http-call-metric.mustache b/validator/bin/main/expected-data-template/java/ec2/default/outgoing-http-call-metric.mustache new file mode 100644 index 000000000..bdf1983f7 --- /dev/null +++ b/validator/bin/main/expected-data-template/java/ec2/default/outgoing-http-call-metric.mustache @@ -0,0 +1,227 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: www.amazon.com + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: www.amazon.com + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: www.amazon.com diff --git a/validator/bin/main/expected-data-template/java/ec2/default/outgoing-http-call-trace.mustache b/validator/bin/main/expected-data-template/java/ec2/default/outgoing-http-call-trace.mustache new file mode 100644 index 000000000..503d48ab4 --- /dev/null +++ b/validator/bin/main/expected-data-template/java/ec2/default/outgoing-http-call-trace.mustache @@ -0,0 +1,62 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/outgoing-http-call$", + "method": "^GET$" + }, + "response": { + "status": "^200$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /outgoing-http-call$", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "otel.resource.host.image.id": "^{{instanceAmi}}$", + "otel.resource.host.type": "^([a-z0-9]+\\.[a-z0-9]+)$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "subsegments": [ + { + "name": "^www.amazon.com$", + "http": { + "request": { + "url": "^https://www.amazon.com$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /outgoing-http-call$", + "aws.remote.service": "^www.amazon.com$", + "aws.remote.operation": "^GET /$", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "aws.span.kind": "^CLIENT$" + } + }, + "namespace": "^remote$" + } + ] + } + ] +}, +{ + "name": "^www.amazon.com$" +}] diff --git a/validator/bin/main/expected-data-template/java/ec2/default/remote-service-log.mustache b/validator/bin/main/expected-data-template/java/ec2/default/remote-service-log.mustache new file mode 100644 index 000000000..cd457dc7b --- /dev/null +++ b/validator/bin/main/expected-data-template/java/ec2/default/remote-service-log.mustache @@ -0,0 +1,20 @@ +[{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:default$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET /remote-service", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}, +{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:default$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET /remote-service", + "Version": "^1$", + "RemoteService": "{{remoteServiceDeploymentName}}", + "RemoteOperation": "GET /healthcheck", + "Telemetry.Source": "^ClientSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/java/ec2/default/remote-service-metric.mustache b/validator/bin/main/expected-data-template/java/ec2/default/remote-service-metric.mustache new file mode 100644 index 000000000..4b1f0ad9c --- /dev/null +++ b/validator/bin/main/expected-data-template/java/ec2/default/remote-service-metric.mustache @@ -0,0 +1,326 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: ec2:default + - + name: Operation + value: GET /healthcheck + - + name: Service + value: {{remoteServiceName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceName}} + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: ec2:default + - + name: Operation + value: GET /healthcheck + - + name: Service + value: {{remoteServiceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceName}} + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: ec2:default + - + name: Operation + value: GET /healthcheck + - + name: Service + value: {{remoteServiceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceName}} + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceDeploymentName}} diff --git a/validator/bin/main/expected-data-template/java/ec2/default/remote-service-trace.mustache b/validator/bin/main/expected-data-template/java/ec2/default/remote-service-trace.mustache new file mode 100644 index 000000000..7c171516c --- /dev/null +++ b/validator/bin/main/expected-data-template/java/ec2/default/remote-service-trace.mustache @@ -0,0 +1,99 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/remote-service\\?ip=(([0-9]{1,3}.){3}[0-9]{1,3})&testingId={{testingId}}$", + "method": "^GET$" + }, + "response": { + "status": "^200$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /remote-service$", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "otel.resource.host.image.id": "^{{instanceAmi}}$", + "otel.resource.host.type": "^([a-z0-9]+\\.[a-z0-9]+)$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "subsegments": [ + { + "name": "^{{remoteServiceDeploymentName}}$", + "http": { + "request": { + "url": "^http://(([0-9]{1,3}.){3}[0-9]{1,3}):8080/healthcheck$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /remote-service$", + "aws.remote.service": "^{{remoteServiceDeploymentName}}$", + "aws.remote.operation": "^GET /healthcheck$", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "aws.span.kind": "^CLIENT$" + } + }, + "namespace": "^remote$" + } + ] + } + ] +}, +{ + "name": "^{{remoteServiceName}}$", + "http": { + "request": { + "url": "^http://(([0-9]{1,3}.){3}[0-9]{1,3}):8080/healthcheck$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{remoteServiceName}}$", + "aws.local.operation": "^GET /healthcheck$", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "PlatformType": "^AWS::EC2$", + "otel.resource.host.image.id": "^{{instanceAmi}}$", + "otel.resource.host.type": "^([a-z0-9]+\\.[a-z0-9]+)$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "name": "^RemoteServiceController.healthcheck$", + "annotations": { + "aws.local.operation": "^GET /healthcheck$", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "PlatformType": "^AWS::EC2$" + } + } + } + ] +}] + + diff --git a/validator/bin/main/expected-data-template/java/ecs/hc-log.mustache b/validator/bin/main/expected-data-template/java/ecs/hc-log.mustache new file mode 100644 index 000000000..5eab3c70c --- /dev/null +++ b/validator/bin/main/expected-data-template/java/ecs/hc-log.mustache @@ -0,0 +1,13 @@ +[{ + "ECS.Cluster": "^{{platformInfo}}$", + "ECS.TaskDefinitionFamily": "^{{serviceName}}$", + "ECS.TaskDefinitionRevision": "[0-9]*", + "ECS.TaskId": "[A-Za-z0-9]*", + "Environment": "^ecs:{{platformInfo}}$", + "Operation": "GET /", + "PlatformType": "^AWS::ECS$", + "Service": "^{{serviceName}}$", + "Telemetry.Agent": "^CWAgent\/([A-Za-z0-9.-]*)$", + "Telemetry.SDK": "^opentelemetry,([A-Za-z0-9-.]*),java,Auto$", + "Telemetry.Source": "^LocalRootSpan$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/java/ecs/hc-metric.mustache b/validator/bin/main/expected-data-template/java/ecs/hc-metric.mustache new file mode 100644 index 000000000..a35005faa --- /dev/null +++ b/validator/bin/main/expected-data-template/java/ecs/hc-metric.mustache @@ -0,0 +1,74 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET / + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ecs:{{platformInfo}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ecs:{{platformInfo}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET / + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ecs:{{platformInfo}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ecs:{{platformInfo}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET / + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ecs:{{platformInfo}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ecs:{{platformInfo}} \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/java/ecs/hc-trace.mustache b/validator/bin/main/expected-data-template/java/ecs/hc-trace.mustache new file mode 100644 index 000000000..229561f4a --- /dev/null +++ b/validator/bin/main/expected-data-template/java/ecs/hc-trace.mustache @@ -0,0 +1,30 @@ +[ + { + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^http://localhost:8080/$", + "method": "^GET$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /$", + "aws.local.environment": "^ecs:{{platformInfo}}$" + }, + "metadata": { + "default": { + "otel.resource.aws.ecs.launchtype": "^fargate$", + "otel.resource.aws.ecs.task.revision": "[0-9]*", + "otel.resource.cloud.platform": "^aws_ecs$", + "aws.ecs.cluster.name": "^{{platformInfo}}$", + "aws.ecs.task.id": "[A-Za-z0-9]*", + "PlatformType": "^AWS::ECS$", + "aws.span.kind": "^LOCAL_ROOT$" + } + } + } +] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/java/eks-otlp-ocb/aws-sdk-call-log.mustache b/validator/bin/main/expected-data-template/java/eks-otlp-ocb/aws-sdk-call-log.mustache new file mode 100644 index 000000000..52dc71069 --- /dev/null +++ b/validator/bin/main/expected-data-template/java/eks-otlp-ocb/aws-sdk-call-log.mustache @@ -0,0 +1,26 @@ +[{ + "EC2.AutoScalingGroup": "^eks-.+", + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "Environment": "^generic:default$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^ip(-[0-9]{1,3}){4}.*$", + "PlatformType": "^Generic$", + "Service": "^{{serviceName}}$", + "Operation": "GET /aws-sdk-call", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}, +{ + "EC2.AutoScalingGroup": "^eks-.+", + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "Environment": "^generic:default$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^ip(-[0-9]{1,3}){4}.*$", + "PlatformType": "^Generic$", + "Service": "^{{serviceName}}$", + "Operation": "UnmappedOperation", + "RemoteService": "AWS::S3", + "RemoteOperation": "GetBucketLocation", + "RemoteResourceIdentifier": "^e2e-test-bucket-name-{{testingId}}$", + "RemoteResourceType": "^AWS::S3::Bucket$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/java/eks-otlp-ocb/aws-sdk-call-metric.mustache b/validator/bin/main/expected-data-template/java/eks-otlp-ocb/aws-sdk-call-metric.mustache new file mode 100644 index 000000000..f1e7ec629 --- /dev/null +++ b/validator/bin/main/expected-data-template/java/eks-otlp-ocb/aws-sdk-call-metric.mustache @@ -0,0 +1,434 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: UnmappedOperation + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: UnmappedOperation + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: UnmappedOperation + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: UnmappedOperation + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: UnmappedOperation + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: UnmappedOperation + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} diff --git a/validator/bin/main/expected-data-template/java/eks-otlp-ocb/aws-sdk-call-trace.mustache b/validator/bin/main/expected-data-template/java/eks-otlp-ocb/aws-sdk-call-trace.mustache new file mode 100644 index 000000000..6901a38a4 --- /dev/null +++ b/validator/bin/main/expected-data-template/java/eks-otlp-ocb/aws-sdk-call-trace.mustache @@ -0,0 +1,62 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "method": "^GET$" + }, + "response": { + "status": "^200$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /aws-sdk-call$", + "aws.local.environment": "^generic:default$" + }, + "metadata": { + "EC2.AutoScalingGroup": "^eks-.+", + "EKS.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}", + "PlatformType": "^Generic$" + }, + "subsegments": [ + { + "subsegments": [ + { + "name": "^S3$", + "http": { + "request": { + "url": "^https://e2e-test-bucket-name-{{testingId}}.s3.[a-z]+-[a-z]+-\\d.amazonaws.com\\?location$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^UnmappedOperation$", + "aws.remote.service": "^AWS::S3$", + "aws.remote.operation": "^GetBucketLocation$", + "aws.remote.resource.type": "^AWS::S3::Bucket$", + "aws.remote.resource.identifier": "^e2e-test-bucket-name-{{testingId}}$", + "aws.local.environment": "^generic:default$" + }, + "metadata": { + "EC2.AutoScalingGroup": "^eks-.+", + "EKS.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "PlatformType": "^Generic$" + }, + "namespace": "^aws$" + } + ] + } + ] +}, +{ + "name": "^S3$", + "annotations": { + "aws.local.service": "^AWS::S3$", + "aws.local.operation": "^GetBucketLocation$", + "aws.local.resource.identifier": "^e2e-test-bucket-name-{{testingId}}$", + "aws.local.resource.type": "^AWS::S3::Bucket$" + } +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/java/eks-otlp-ocb/client-call-log.mustache b/validator/bin/main/expected-data-template/java/eks-otlp-ocb/client-call-log.mustache new file mode 100644 index 000000000..c3a8a6c49 --- /dev/null +++ b/validator/bin/main/expected-data-template/java/eks-otlp-ocb/client-call-log.mustache @@ -0,0 +1,13 @@ +[{ + "EC2.AutoScalingGroup": "^eks-.+", + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "Environment": "^generic:default$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^ip(-[0-9]{1,3}){4}.*$", + "PlatformType": "^Generic$", + "Service": "^{{serviceName}}$", + "Operation": "InternalOperation", + "RemoteService": "local-root-client-call", + "RemoteOperation": "GET /", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/java/eks-otlp-ocb/client-call-metric.mustache b/validator/bin/main/expected-data-template/java/eks-otlp-ocb/client-call-metric.mustache new file mode 100644 index 000000000..3ecb58eae --- /dev/null +++ b/validator/bin/main/expected-data-template/java/eks-otlp-ocb/client-call-metric.mustache @@ -0,0 +1,227 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: GET /client-call + - + name: Environment + value: generic:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: generic:default + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + - + name: RemoteService + value: local-root-client-call + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: GET /client-call + - + name: Environment + value: generic:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: generic:default + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + - + name: RemoteService + value: local-root-client-call + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: GET /client-call + - + name: Environment + value: generic:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: generic:default + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + - + name: RemoteService + value: local-root-client-call \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/java/eks-otlp-ocb/client-call-trace.mustache b/validator/bin/main/expected-data-template/java/eks-otlp-ocb/client-call-trace.mustache new file mode 100644 index 000000000..d06fbe34a --- /dev/null +++ b/validator/bin/main/expected-data-template/java/eks-otlp-ocb/client-call-trace.mustache @@ -0,0 +1,49 @@ +[{ + "name": "^{{serviceName}}$", + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^InternalOperation$", + "aws.local.environment": "^generic:default$" + }, + "metadata": { + "k8s.cluster.name": "^{{platformInfo}}$" + }, + "subsegments": [ + { + "name": "^local-root-client-call$", + "http": { + "request": { + "url": "^http://local-root-client-call$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^InternalOperation$", + "aws.remote.service": "^local-root-client-call$", + "aws.remote.operation": "GET /", + "aws.local.environment": "^generic:default$" + }, + "metadata": { + "EC2.AutoScalingGroup": "^eks-.+", + "EKS.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "PlatformType": "^Generic$" + }, + "namespace": "^remote$" + } + ] +}, +{ + "name": "^local-root-client-call$", + "http": { + "request": { + "url": "^http://local-root-client-call$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^local-root-client-call$", + "aws.local.operation": "^GET /$" + } +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/java/eks-otlp-ocb/outgoing-http-call-log.mustache b/validator/bin/main/expected-data-template/java/eks-otlp-ocb/outgoing-http-call-log.mustache new file mode 100644 index 000000000..7fbbc80c6 --- /dev/null +++ b/validator/bin/main/expected-data-template/java/eks-otlp-ocb/outgoing-http-call-log.mustache @@ -0,0 +1,25 @@ +[{ + "EC2.AutoScalingGroup": "^eks-.+", + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "Environment": "^generic:default$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^ip(-[0-9]{1,3}){4}.*$", + "PlatformType": "^Generic$", + "Service": "^{{serviceName}}$", + "Operation": "GET /outgoing-http-call", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}, +{ + "EC2.AutoScalingGroup": "^eks-.+", + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "Environment": "^generic:default$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^ip(-[0-9]{1,3}){4}.*$", + "PlatformType": "^Generic$", + "Service": "^{{serviceName}}$", + "Operation": "UnmappedOperation", + "RemoteService": "www.amazon.com", + "RemoteOperation": "GET /", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}] + diff --git a/validator/bin/main/expected-data-template/java/eks-otlp-ocb/outgoing-http-call-metric.mustache b/validator/bin/main/expected-data-template/java/eks-otlp-ocb/outgoing-http-call-metric.mustache new file mode 100644 index 000000000..a2982bcc4 --- /dev/null +++ b/validator/bin/main/expected-data-template/java/eks-otlp-ocb/outgoing-http-call-metric.mustache @@ -0,0 +1,227 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: UnmappedOperation + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + - + name: RemoteService + value: www.amazon.com + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: UnmappedOperation + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + - + name: RemoteService + value: www.amazon.com + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: UnmappedOperation + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + - + name: RemoteService + value: www.amazon.com \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/java/eks-otlp-ocb/outgoing-http-call-trace.mustache b/validator/bin/main/expected-data-template/java/eks-otlp-ocb/outgoing-http-call-trace.mustache new file mode 100644 index 000000000..71afa92ad --- /dev/null +++ b/validator/bin/main/expected-data-template/java/eks-otlp-ocb/outgoing-http-call-trace.mustache @@ -0,0 +1,54 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "method": "^GET$" + }, + "response": { + "status": "^200$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /outgoing-http-call$", + "aws.local.environment": "^generic:default$" + }, + "metadata": { + "EC2.AutoScalingGroup": "^eks-.+", + "EKS.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}", + "PlatformType": "^Generic$" + }, + "subsegments": [ + { + "subsegments": [ + { + "name": "^www.amazon.com$", + "http": { + "request": { + "url": "^https://www.amazon.com$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^UnmappedOperation$", + "aws.remote.service": "^www.amazon.com$", + "aws.remote.operation": "^GET /$", + "aws.local.environment": "^generic:default$" + }, + "metadata": { + "EC2.AutoScalingGroup": "^eks-.+", + "EKS.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "PlatformType": "^Generic$" + }, + "namespace": "^remote$" + } + ] + } + ] +}, +{ + "name": "^www.amazon.com$" +}] diff --git a/validator/bin/main/expected-data-template/java/eks-otlp-ocb/remote-service-log.mustache b/validator/bin/main/expected-data-template/java/eks-otlp-ocb/remote-service-log.mustache new file mode 100644 index 000000000..7b7b7e103 --- /dev/null +++ b/validator/bin/main/expected-data-template/java/eks-otlp-ocb/remote-service-log.mustache @@ -0,0 +1,24 @@ +[{ + "EC2.AutoScalingGroup": "^eks-.+", + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "Environment": "^generic:default$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^ip(-[0-9]{1,3}){4}.*$", + "PlatformType": "^Generic$", + "Service": "^{{serviceName}}$", + "Operation": "GET /remote-service", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}, +{ + "EC2.AutoScalingGroup": "^eks-.+", + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "Environment": "^generic:default$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^ip(-[0-9]{1,3}){4}.*$", + "PlatformType": "^Generic$", + "Service": "^{{serviceName}}$", + "Operation": "UnmappedOperation", + "RemoteService": "{{remoteServiceIp}}:8080", + "RemoteOperation": "GET /healthcheck", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/java/eks-otlp-ocb/remote-service-metric.mustache b/validator/bin/main/expected-data-template/java/eks-otlp-ocb/remote-service-metric.mustache new file mode 100644 index 000000000..549fbf006 --- /dev/null +++ b/validator/bin/main/expected-data-template/java/eks-otlp-ocb/remote-service-metric.mustache @@ -0,0 +1,326 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: UnmappedOperation + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceIp}}:8080 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: generic:default + - + name: Operation + value: GET /healthcheck + - + name: Service + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceDeploymentName}} + - + name: Environment + value: generic:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + - + name: RemoteService + value: {{remoteServiceIp}}:8080 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceIp}}:8080 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceIp}}:8080 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: UnmappedOperation + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceIp}}:8080 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: generic:default + - + name: Operation + value: GET /healthcheck + - + name: Service + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceDeploymentName}} + - + name: Environment + value: generic:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + - + name: RemoteService + value: {{remoteServiceIp}}:8080 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceIp}}:8080 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceIp}}:8080 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: UnmappedOperation + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceIp}}:8080 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: generic:default + - + name: Operation + value: GET /healthcheck + - + name: Service + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceDeploymentName}} + - + name: Environment + value: generic:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + - + name: RemoteService + value: {{remoteServiceIp}}:8080 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: generic:default + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceIp}}:8080 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceIp}}:8080 diff --git a/validator/bin/main/expected-data-template/java/eks-otlp-ocb/remote-service-trace.mustache b/validator/bin/main/expected-data-template/java/eks-otlp-ocb/remote-service-trace.mustache new file mode 100644 index 000000000..010ed32c0 --- /dev/null +++ b/validator/bin/main/expected-data-template/java/eks-otlp-ocb/remote-service-trace.mustache @@ -0,0 +1,81 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "method": "^GET$" + }, + "response": { + "status": "^200$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /remote-service$", + "aws.local.environment": "^generic:default$" + }, + "metadata": { + "EC2.AutoScalingGroup": "^eks-.+", + "EKS.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}", + "PlatformType": "^Generic$" + }, + "subsegments": [ + { + "subsegments": [ + { + "name": "^{{remoteServiceIp}}:8080$", + "http": { + "request": { + "url": "^http://{{remoteServiceIp}}:8080/healthcheck$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^UnmappedOperation$", + "aws.remote.service": "^{{remoteServiceIp}}:8080$", + "aws.remote.operation": "^GET /healthcheck$", + "aws.local.environment": "^generic:default$" + }, + "metadata": { + "EC2.AutoScalingGroup": "^eks-.+", + "EKS.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "PlatformType": "^Generic$" + }, + "namespace": "^remote$" + } + ] + } + ] +}, +{ + "name": "^{{remoteServiceDeploymentName}}$", + "http": { + "request": { + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{remoteServiceDeploymentName}}$", + "aws.local.operation": "^GET /healthcheck$", + "aws.local.environment": "^generic:default$" + }, + "metadata": { + "EC2.AutoScalingGroup": "^eks-.+", + "EKS.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}", + "PlatformType": "^Generic$", + "K8s.Workload": "^{{remoteServiceDeploymentName}}$" + }, + "subsegments": [ + { + "name": "^RemoteServiceController.healthcheck$", + "annotations": { + "aws.local.environment": "^eks:{{platformInfo}}/{{appNamespace}}$" + } + } + ] +}] + + diff --git a/validator/bin/main/expected-data-template/java/eks/aws-sdk-call-log.mustache b/validator/bin/main/expected-data-template/java/eks/aws-sdk-call-log.mustache new file mode 100644 index 000000000..629b5c608 --- /dev/null +++ b/validator/bin/main/expected-data-template/java/eks/aws-sdk-call-log.mustache @@ -0,0 +1,36 @@ +[{ + "EC2.AutoScalingGroup": "^eks-.+", + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "EKS.Cluster": "^{{platformInfo}}$", + "Environment": "^eks:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^sample-app-deployment-{{testingId}}$", + "PlatformType": "^AWS::EKS$", + "Service": "^{{serviceName}}$", + "Operation": "GET /aws-sdk-call", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}, +{ + "EC2.AutoScalingGroup": "^eks-.+", + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "EKS.Cluster": "^{{platformInfo}}$", + "Environment": "^eks:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^sample-app-deployment-{{testingId}}$", + "PlatformType": "^AWS::EKS$", + "Service": "^{{serviceName}}$", + "Operation": "GET /aws-sdk-call", + "Version": "^1$", + "RemoteService": "AWS::S3", + "RemoteOperation": "GetBucketLocation", + "RemoteResourceIdentifier": "^e2e-test-bucket-name-{{testingId}}$", + "RemoteResourceType": "^AWS::S3::Bucket$", + "Telemetry.Source": "^ClientSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/java/eks/aws-sdk-call-metric.mustache b/validator/bin/main/expected-data-template/java/eks/aws-sdk-call-metric.mustache new file mode 100644 index 000000000..8356f5832 --- /dev/null +++ b/validator/bin/main/expected-data-template/java/eks/aws-sdk-call-metric.mustache @@ -0,0 +1,434 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} diff --git a/validator/bin/main/expected-data-template/java/eks/aws-sdk-call-trace.mustache b/validator/bin/main/expected-data-template/java/eks/aws-sdk-call-trace.mustache new file mode 100644 index 000000000..dba0da090 --- /dev/null +++ b/validator/bin/main/expected-data-template/java/eks/aws-sdk-call-trace.mustache @@ -0,0 +1,73 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/aws-sdk-call\\?ip=(([0-9]{1,3}.){3}[0-9]{1,3})&testingId={{testingId}}$", + "method": "^GET$" + }, + "response": { + "status": "^200$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /aws-sdk-call$", + "aws.local.environment": "^eks:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^eks-.+", + "EKS.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}", + "otel.resource.K8s.Workload": "^sample-app-deployment-{{testingId}}", + "otel.resource.K8s.Node": "^i-[A-Za-z0-9]{17}$", + "otel.resource.K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "otel.resource.host.name": "^ip(-[0-9]{1,3}){4}.*$", + "PlatformType": "^AWS::EKS$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "subsegments": [ + { + "name": "^S3$", + "http": { + "request": { + "url": "^https://e2e-test-bucket-name-{{testingId}}.s3.{{region}}.amazonaws.com\\?location$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /aws-sdk-call$", + "aws.remote.service": "^AWS::S3$", + "aws.remote.operation": "^GetBucketLocation$", + "aws.remote.resource.type": "^AWS::S3::Bucket$", + "aws.remote.resource.identifier": "^e2e-test-bucket-name-{{testingId}}$", + "aws.local.environment": "^eks:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^eks-.+", + "EKS.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "PlatformType": "^AWS::EKS$", + "aws.span.kind": "^CLIENT$" + } + }, + "namespace": "^aws$" + } + ] + } + ] +}, +{ + "name": "^S3$", + "aws": { + "operation": "^GetBucketLocation$" + } +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/java/eks/client-call-log.mustache b/validator/bin/main/expected-data-template/java/eks/client-call-log.mustache new file mode 100644 index 000000000..79e45e62e --- /dev/null +++ b/validator/bin/main/expected-data-template/java/eks/client-call-log.mustache @@ -0,0 +1,34 @@ +[{ + "EC2.AutoScalingGroup": "^eks-.+", + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "EKS.Cluster": "^{{platformInfo}}$", + "Environment": "^eks:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^sample-app-deployment-{{testingId}}$", + "PlatformType": "^AWS::EKS$", + "Service": "^{{serviceName}}$", + "Operation": "InternalOperation", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}, +{ + "EC2.AutoScalingGroup": "^eks-.+", + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "EKS.Cluster": "^{{platformInfo}}$", + "Environment": "^eks:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^sample-app-deployment-{{testingId}}$", + "PlatformType": "^AWS::EKS$", + "Service": "^{{serviceName}}$", + "Operation": "InternalOperation", + "Version": "^1$", + "RemoteService": "local-root-client-call", + "RemoteOperation": "GET /", + "Telemetry.Source": "^ClientSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/java/eks/client-call-metric.mustache b/validator/bin/main/expected-data-template/java/eks/client-call-metric.mustache new file mode 100644 index 000000000..f2789c241 --- /dev/null +++ b/validator/bin/main/expected-data-template/java/eks/client-call-metric.mustache @@ -0,0 +1,269 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: GET /client-call + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: GET /client-call + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: GET /client-call + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/java/eks/client-call-trace.mustache b/validator/bin/main/expected-data-template/java/eks/client-call-trace.mustache new file mode 100644 index 000000000..698f0b9bb --- /dev/null +++ b/validator/bin/main/expected-data-template/java/eks/client-call-trace.mustache @@ -0,0 +1,60 @@ +[{ + "name": "^{{serviceName}}$", + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^InternalOperation$", + "aws.local.environment": "^eks:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "otel.resource.K8s.Workload": "^sample-app-deployment-{{testingId}}", + "otel.resource.K8s.Node": "^i-[A-Za-z0-9]{17}$", + "otel.resource.K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "otel.resource.host.name": "^ip(-[0-9]{1,3}){4}.*$" + } + }, + "subsegments": [ + { + "name": "^local-root-client-call$", + "http": { + "request": { + "url": "^http://local-root-client-call$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^InternalOperation$", + "aws.remote.service": "^local-root-client-call$", + "aws.remote.operation": "GET /", + "aws.local.environment": "^eks:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^eks-.+", + "EKS.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "PlatformType": "^AWS::EKS$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "namespace": "^remote$" + } + ] +}, +{ + "name": "^local-root-client-call$", + "http": { + "request": { + "url": "^http://local-root-client-call$", + "method": "^GET$" + }, + "response": { + "content_length": 0 + } + }, + "annotations": { + "aws.local.service": "^local-root-client-call$", + "aws.local.operation": "^GET /$" + } +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/java/eks/outgoing-http-call-log.mustache b/validator/bin/main/expected-data-template/java/eks/outgoing-http-call-log.mustache new file mode 100644 index 000000000..08e16b7c5 --- /dev/null +++ b/validator/bin/main/expected-data-template/java/eks/outgoing-http-call-log.mustache @@ -0,0 +1,35 @@ +[{ + "EC2.AutoScalingGroup": "^eks-.+", + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "EKS.Cluster": "^{{platformInfo}}$", + "Environment": "^eks:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^sample-app-deployment-{{testingId}}$", + "PlatformType": "^AWS::EKS$", + "Service": "^{{serviceName}}$", + "Operation": "GET /outgoing-http-call", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}, +{ + "EC2.AutoScalingGroup": "^eks-.+", + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "EKS.Cluster": "^{{platformInfo}}$", + "Environment": "^eks:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^sample-app-deployment-{{testingId}}$", + "PlatformType": "^AWS::EKS$", + "Service": "^{{serviceName}}$", + "Operation": "GET /outgoing-http-call", + "Version": "^1$", + "RemoteService": "www.amazon.com", + "RemoteOperation": "GET /", + "Telemetry.Source": "^ClientSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}] + diff --git a/validator/bin/main/expected-data-template/java/eks/outgoing-http-call-metric.mustache b/validator/bin/main/expected-data-template/java/eks/outgoing-http-call-metric.mustache new file mode 100644 index 000000000..90f76635f --- /dev/null +++ b/validator/bin/main/expected-data-template/java/eks/outgoing-http-call-metric.mustache @@ -0,0 +1,227 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: www.amazon.com + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: www.amazon.com + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: www.amazon.com \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/java/eks/outgoing-http-call-trace.mustache b/validator/bin/main/expected-data-template/java/eks/outgoing-http-call-trace.mustache new file mode 100644 index 000000000..4a327656e --- /dev/null +++ b/validator/bin/main/expected-data-template/java/eks/outgoing-http-call-trace.mustache @@ -0,0 +1,68 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/outgoing-http-call$", + "method": "^GET$" + }, + "response": { + "status": "^200$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /outgoing-http-call$", + "aws.local.environment": "^eks:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^eks-.+", + "EKS.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}", + "otel.resource.K8s.Workload": "^sample-app-deployment-{{testingId}}", + "otel.resource.K8s.Node": "^i-[A-Za-z0-9]{17}$", + "otel.resource.K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "otel.resource.host.name": "^ip(-[0-9]{1,3}){4}.*$", + "PlatformType": "^AWS::EKS$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "subsegments": [ + { + "name": "^www.amazon.com$", + "http": { + "request": { + "url": "^https://www.amazon.com$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /outgoing-http-call$", + "aws.remote.service": "^www.amazon.com$", + "aws.remote.operation": "^GET /$", + "aws.local.environment": "^eks:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^eks-.+", + "EKS.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "PlatformType": "^AWS::EKS$", + "aws.span.kind": "^CLIENT$" + } + }, + "namespace": "^remote$" + } + ] + } + ] +}, +{ + "name": "^www.amazon.com$" +}] diff --git a/validator/bin/main/expected-data-template/java/eks/rds-mysql-log.mustache b/validator/bin/main/expected-data-template/java/eks/rds-mysql-log.mustache new file mode 100644 index 000000000..e711347a3 --- /dev/null +++ b/validator/bin/main/expected-data-template/java/eks/rds-mysql-log.mustache @@ -0,0 +1,37 @@ +[{ + "EC2.AutoScalingGroup": "^eks-.+", + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "EKS.Cluster": "^{{platformInfo}}$", + "Environment": "^eks:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^sample-app-deployment-{{testingId}}$", + "PlatformType": "^AWS::EKS$", + "Service": "^{{serviceName}}$", + "Operation": "GET /mysql", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}, +{ + "EC2.AutoScalingGroup": "^eks-.+", + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "EKS.Cluster": "^{{platformInfo}}$", + "Environment": "^eks:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^sample-app-deployment-{{testingId}}$", + "PlatformType": "^AWS::EKS$", + "Service": "^{{serviceName}}$", + "Operation": "GET /mysql", + "Version": "^1$", + "Telemetry.Source": "^ClientSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$", + "RemoteService": "mysql", + "RemoteOperation": "SELECT", + "RemoteResourceType": "DB::Connection", + "RemoteResourceIdentifier": "^{{remoteResourceIdentifier}}$", + "RemoteDbUser": "^{{remoteDbUser}}$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/java/eks/rds-mysql-metric.mustache b/validator/bin/main/expected-data-template/java/eks/rds-mysql-metric.mustache new file mode 100644 index 000000000..15cbdc29f --- /dev/null +++ b/validator/bin/main/expected-data-template/java/eks/rds-mysql-metric.mustache @@ -0,0 +1,434 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /mysql + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /mysql + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: SELECT + - + name: RemoteService + value: mysql + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: mysql + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: SELECT + - + name: RemoteService + value: mysql + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: mysql + - + name: RemoteResourceType + value: DB::Connection + - + name: RemoteResourceIdentifier + value: {{remoteResourceIdentifier}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /mysql + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: SELECT + - + name: RemoteService + value: mysql + - + name: RemoteResourceType + value: DB::Connection + - + name: RemoteResourceIdentifier + value: {{remoteResourceIdentifier}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: SELECT + - + name: RemoteService + value: mysql + - + name: RemoteResourceType + value: DB::Connection + - + name: RemoteResourceIdentifier + value: {{remoteResourceIdentifier}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /mysql + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /mysql + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: SELECT + - + name: RemoteService + value: mysql + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: mysql + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: SELECT + - + name: RemoteService + value: mysql + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: mysql + - + name: RemoteResourceType + value: DB::Connection + - + name: RemoteResourceIdentifier + value: {{remoteResourceIdentifier}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /mysql + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: SELECT + - + name: RemoteService + value: mysql + - + name: RemoteResourceType + value: DB::Connection + - + name: RemoteResourceIdentifier + value: {{remoteResourceIdentifier}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: SELECT + - + name: RemoteService + value: mysql + - + name: RemoteResourceType + value: DB::Connection + - + name: RemoteResourceIdentifier + value: {{remoteResourceIdentifier}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /mysql + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /mysql + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: SELECT + - + name: RemoteService + value: mysql + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: mysql + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: SELECT + - + name: RemoteService + value: mysql + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: mysql + - + name: RemoteResourceType + value: DB::Connection + - + name: RemoteResourceIdentifier + value: {{remoteResourceIdentifier}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /mysql + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: SELECT + - + name: RemoteService + value: mysql + - + name: RemoteResourceType + value: DB::Connection + - + name: RemoteResourceIdentifier + value: {{remoteResourceIdentifier}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: SELECT + - + name: RemoteService + value: mysql + - + name: RemoteResourceType + value: DB::Connection + - + name: RemoteResourceIdentifier + value: {{remoteResourceIdentifier}} \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/java/eks/rds-mysql-trace.mustache b/validator/bin/main/expected-data-template/java/eks/rds-mysql-trace.mustache new file mode 100644 index 000000000..d30d80aa5 --- /dev/null +++ b/validator/bin/main/expected-data-template/java/eks/rds-mysql-trace.mustache @@ -0,0 +1,92 @@ +[ + { + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/mysql$", + "method": "^GET$" + }, + "response": { + "status": 200 + } + }, + "aws": { + "account_id": "^{{accountId}}$", + "xray": { + "auto_instrumentation": true, + "sdk": "^opentelemetry for" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /mysql$", + "aws.local.environment": "^eks:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^eks-.+", + "EKS.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "otel.resource.K8s.Workload": "^sample-app-deployment-{{testingId}}$", + "otel.resource.K8s.Node": "^i-[A-Za-z0-9]{17}$", + "otel.resource.K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "otel.resource.host.name": "^ip(-[0-9]{1,3}){4}.*$", + "PlatformType": "^AWS::EKS$", + "aws.span.kind": "^LOCAL_ROOT$", + "http.route": "^/mysql$" + } + }, + "subsegments": [ + { + "name": "^FrontendServiceController.mysql$", + "aws": { + "account_id": "^{{accountId}}$", + "xray": { + "auto_instrumentation": true, + "sdk": "^opentelemetry for" + } + }, + "annotations": { + "aws.local.operation": "^GET /mysql$" + }, + "subsegments": [ + { + "name": "^mysql$", + "sql": { + "url": "^Create connection$" + } + }, + { + "name": "^mysql$", + "sql": { + "url": "^SELECT information_schema.tables$", + "sanitized_query": "SELECT \\* FROM tables LIMIT \\?;", + "database_type": "^mysql$" + }, + "annotations": { + "aws.remote.operation": "^SELECT$", + "aws.local.operation": "^GET /mysql$", + "aws.remote.resource.type": "^DB::Connection$", + "aws.remote.resource.identifier": "^{{remoteResourceIdentifier}}$", + "aws.remote.service": "^mysql$", + "aws.local.service": "^{{serviceName}}$", + "aws.local.environment": "^eks:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^eks-.+", + "EKS.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "PlatformType": "^AWS::EKS$", + "aws.span.kind": "^CLIENT$", + "db.sql.table": "^tables$", + "db.operation": "^SELECT$" + } + }, + "namespace": "^remote$" + } + ] + } + ] + } +] diff --git a/validator/bin/main/expected-data-template/java/eks/remote-service-log.mustache b/validator/bin/main/expected-data-template/java/eks/remote-service-log.mustache new file mode 100644 index 000000000..00d94ea41 --- /dev/null +++ b/validator/bin/main/expected-data-template/java/eks/remote-service-log.mustache @@ -0,0 +1,35 @@ +[{ + "EC2.AutoScalingGroup": "^eks-.+", + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "EKS.Cluster": "^{{platformInfo}}$", + "Environment": "^eks:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^sample-app-deployment-{{testingId}}$", + "PlatformType": "^AWS::EKS$", + "Service": "^{{serviceName}}$", + "Operation": "GET /remote-service", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}, +{ + "EC2.AutoScalingGroup": "^eks-.+", + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "EKS.Cluster": "^{{platformInfo}}$", + "Environment": "^eks:{{platformInfo}}/{{appNamespace}}$", + "RemoteEnvironment": "^eks:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^sample-app-deployment-{{testingId}}$", + "PlatformType": "^AWS::EKS$", + "Service": "^{{serviceName}}$", + "Operation": "GET /remote-service", + "Version": "^1$", + "RemoteService": "{{remoteServiceDeploymentName}}", + "RemoteOperation": "GET /healthcheck", + "Telemetry.Source": "^ClientSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/java/eks/remote-service-metric.mustache b/validator/bin/main/expected-data-template/java/eks/remote-service-metric.mustache new file mode 100644 index 000000000..928652d25 --- /dev/null +++ b/validator/bin/main/expected-data-template/java/eks/remote-service-metric.mustache @@ -0,0 +1,506 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET /healthcheck + - + name: Service + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceDeploymentName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET /remote-service + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET /healthcheck + - + name: Service + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceDeploymentName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET /remote-service + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET /healthcheck + - + name: Service + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceDeploymentName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET /remote-service + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + - + name: Service + value: {{serviceName}} \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/java/eks/remote-service-trace.mustache b/validator/bin/main/expected-data-template/java/eks/remote-service-trace.mustache new file mode 100644 index 000000000..781de9f64 --- /dev/null +++ b/validator/bin/main/expected-data-template/java/eks/remote-service-trace.mustache @@ -0,0 +1,99 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/remote-service\\?ip=(([0-9]{1,3}.){3}[0-9]{1,3})&testingId={{testingId}}$", + "method": "^GET$" + }, + "response": { + "status": "^200$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /remote-service$", + "aws.local.environment": "^eks:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^eks-.+", + "EKS.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}", + "otel.resource.K8s.Workload": "^sample-app-deployment-{{testingId}}", + "otel.resource.K8s.Node": "^i-[A-Za-z0-9]{17}$", + "otel.resource.K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "otel.resource.host.name": "^ip(-[0-9]{1,3}){4}.*$", + "PlatformType": "^AWS::EKS$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "subsegments": [ + { + "name": "^{{remoteServiceDeploymentName}}$", + "http": { + "request": { + "url": "^http://(([0-9]{1,3}.){3}[0-9]{1,3}):8080/healthcheck$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /remote-service$", + "aws.remote.service": "^{{remoteServiceDeploymentName}}$", + "aws.remote.operation": "^GET /healthcheck$", + "aws.local.environment": "^eks:{{platformInfo}}/{{appNamespace}}$", + "aws.remote.environment": "^eks:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^eks-.+", + "EKS.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "PlatformType": "^AWS::EKS$", + "aws.span.kind": "^CLIENT$" + } + }, + "namespace": "^remote$" + } + ] + } + ] +}, +{ + "name": "^{{remoteServiceDeploymentName}}$", + "http": { + "request": { + "url": "^http://(([0-9]{1,3}.){3}[0-9]{1,3}):8080/healthcheck$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{remoteServiceDeploymentName}}$", + "aws.local.operation": "^GET /healthcheck$", + "aws.local.environment": "^eks:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "otel.resource.K8s.Workload": "^{{remoteServiceDeploymentName}}$", + "otel.resource.K8s.Node": "^i-[A-Za-z0-9]{17}$", + "otel.resource.K8s.Pod": "^{{remoteServiceDeploymentName}}(-[A-Za-z0-9]*)*$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "name": "^RemoteServiceController.healthcheck$", + "annotations": { + "aws.local.operation": "^GET /healthcheck$", + "aws.local.environment": "^eks:{{platformInfo}}/{{appNamespace}}$" + } + } + ] +}] + + diff --git a/validator/bin/main/expected-data-template/java/k8s/aws-sdk-call-log.mustache b/validator/bin/main/expected-data-template/java/k8s/aws-sdk-call-log.mustache new file mode 100644 index 000000000..3ed6a83e6 --- /dev/null +++ b/validator/bin/main/expected-data-template/java/k8s/aws-sdk-call-log.mustache @@ -0,0 +1,38 @@ +[{ + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "K8s.Cluster": "^{{platformInfo}}$", + "Environment": "^k8s:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^sample-app-deployment-{{testingId}}$", + "PlatformType": "^K8s$", + "Service": "^{{serviceName}}$", + "Operation": "GET /aws-sdk-call", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Telemetry.Agent": "^CWAgent\/([A-Za-z0-9.-]*)$", + "Telemetry.SDK": "^opentelemetry,([A-Za-z0-9-.]*),java,Auto$", + "Host": "^ip(-[0-9]{1,3}){4}\\.ec2\\.internal$" +}, +{ + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "K8s.Cluster": "^{{platformInfo}}$", + "Environment": "^k8s:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^sample-app-deployment-{{testingId}}$", + "PlatformType": "^K8s$", + "Service": "^{{serviceName}}$", + "Operation": "GET /aws-sdk-call", + "Version": "^1$", + "RemoteService": "AWS::S3", + "RemoteOperation": "GetBucketLocation", + "RemoteResourceIdentifier": "e2e-test-bucket-name", + "RemoteResourceType": "AWS::S3::Bucket", + "Telemetry.Source": "^ClientSpan$", + "Telemetry.Agent": "^CWAgent\/([A-Za-z0-9.-]*)$", + "Telemetry.SDK": "^opentelemetry,([A-Za-z0-9-.]*),java,Auto$", + "Host": "^ip(-[0-9]{1,3}){4}\\.ec2\\.internal$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/java/k8s/aws-sdk-call-metric.mustache b/validator/bin/main/expected-data-template/java/k8s/aws-sdk-call-metric.mustache new file mode 100644 index 000000000..b218e0fb7 --- /dev/null +++ b/validator/bin/main/expected-data-template/java/k8s/aws-sdk-call-metric.mustache @@ -0,0 +1,374 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket diff --git a/validator/bin/main/expected-data-template/java/k8s/aws-sdk-call-trace.mustache b/validator/bin/main/expected-data-template/java/k8s/aws-sdk-call-trace.mustache new file mode 100644 index 000000000..38a1b616b --- /dev/null +++ b/validator/bin/main/expected-data-template/java/k8s/aws-sdk-call-trace.mustache @@ -0,0 +1,71 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/aws-sdk-call\\?ip=(([0-9]{1,3}.){3}[0-9]{1,3})&testingId={{testingId}}$", + "method": "^GET$" + }, + "response": { + "status": "^200$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /aws-sdk-call$", + "aws.local.environment": "^k8s:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "K8s.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}", + "otel.resource.K8s.Workload": "^sample-app-deployment-{{testingId}}$", + "otel.resource.K8s.Node": "^i-[A-Za-z0-9]{17}$", + "otel.resource.K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "otel.resource.host.name": "^ip(-[0-9]{1,3}){4}\\.ec2\\.internal$", + "PlatformType": "^K8s$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "subsegments": [ + { + "name": "^S3$", + "http": { + "request": { + "url": "^https://e2e-test-bucket-name-{{testingId}}.s3.{{region}}.amazonaws.com\\?location$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /aws-sdk-call$", + "aws.remote.service": "^AWS::S3$", + "aws.remote.operation": "^GetBucketLocation$", + "aws.remote.resource.type": "^AWS::S3::Bucket$", + "aws.remote.resource.identifier": "e2e-test-bucket-name-{{testingId}}", + "aws.local.environment": "^k8s:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "K8s.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "PlatformType": "^K8s$", + "aws.span.kind": "^CLIENT$" + } + }, + "namespace": "^aws$" + } + ] + } + ] +}, +{ + "name": "^S3$", + "aws": { + "operation": "^GetBucketLocation$" + } +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/java/k8s/client-call-log.mustache b/validator/bin/main/expected-data-template/java/k8s/client-call-log.mustache new file mode 100644 index 000000000..02fa014e1 --- /dev/null +++ b/validator/bin/main/expected-data-template/java/k8s/client-call-log.mustache @@ -0,0 +1,36 @@ +[{ + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "K8s.Cluster": "^{{platformInfo}}$", + "Environment": "^k8s:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^sample-app-deployment-{{testingId}}$", + "PlatformType": "^K8s$", + "Service": "^{{serviceName}}$", + "Operation": "InternalOperation", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Telemetry.Agent": "^CWAgent\/([A-Za-z0-9.-]*)$", + "Telemetry.SDK": "^opentelemetry,([A-Za-z0-9-.]*),java,Auto$", + "Host": "^ip(-[0-9]{1,3}){4}\\.ec2\\.internal$" +}, +{ + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "K8s.Cluster": "^{{platformInfo}}$", + "Environment": "^k8s:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^sample-app-deployment-{{testingId}}$", + "PlatformType": "^K8s$", + "Service": "^{{serviceName}}$", + "Operation": "InternalOperation", + "Version": "^1$", + "RemoteService": "local-root-client-call", + "RemoteOperation": "GET /", + "Telemetry.Source": "^ClientSpan$", + "Telemetry.Agent": "^CWAgent\/([A-Za-z0-9.-]*)$", + "Telemetry.SDK": "^opentelemetry,([A-Za-z0-9-.]*),java,Auto$", + "Host": "^ip(-[0-9]{1,3}){4}\\.ec2\\.internal$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/java/k8s/client-call-metric.mustache b/validator/bin/main/expected-data-template/java/k8s/client-call-metric.mustache new file mode 100644 index 000000000..8bd30f354 --- /dev/null +++ b/validator/bin/main/expected-data-template/java/k8s/client-call-metric.mustache @@ -0,0 +1,269 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: GET /client-call + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: GET /client-call + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: GET /client-call + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/java/k8s/client-call-trace.mustache b/validator/bin/main/expected-data-template/java/k8s/client-call-trace.mustache new file mode 100644 index 000000000..becb0fa37 --- /dev/null +++ b/validator/bin/main/expected-data-template/java/k8s/client-call-trace.mustache @@ -0,0 +1,55 @@ +[{ + "name": "^{{serviceName}}$", + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^InternalOperation$", + "aws.local.environment": "^k8s:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "otel.resource.K8s.Workload": "^sample-app-deployment-{{testingId}}$", + "otel.resource.K8s.Node": "^i-[A-Za-z0-9]{17}$", + "otel.resource.K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$" + } + }, + "subsegments": [ + { + "name": "^local-root-client-call$", + "http": { + "request": { + "url": "^http://local-root-client-call$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^InternalOperation$", + "aws.remote.service": "^local-root-client-call$", + "aws.remote.operation": "GET /", + "aws.local.environment": "^k8s:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "namespace": "^remote$" + } + ] +}, +{ + "name": "^local-root-client-call$", + "http": { + "request": { + "url": "^http://local-root-client-call$", + "method": "^GET$" + }, + "response": { + "content_length": 0 + } + }, + "annotations": { + "aws.local.service": "^local-root-client-call$", + "aws.local.operation": "^GET /$" + } +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/java/k8s/outgoing-http-call-log.mustache b/validator/bin/main/expected-data-template/java/k8s/outgoing-http-call-log.mustache new file mode 100644 index 000000000..e66209644 --- /dev/null +++ b/validator/bin/main/expected-data-template/java/k8s/outgoing-http-call-log.mustache @@ -0,0 +1,37 @@ +[{ + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "K8s.Cluster": "^{{platformInfo}}$", + "Environment": "^k8s:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^sample-app-deployment-{{testingId}}$", + "PlatformType": "^K8s$", + "Service": "^{{serviceName}}$", + "Operation": "GET /outgoing-http-call", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Telemetry.Agent": "^CWAgent\/([A-Za-z0-9.-]*)$", + "Telemetry.SDK": "^opentelemetry,([A-Za-z0-9-.]*),java,Auto$", + "Host": "^ip(-[0-9]{1,3}){4}\\.ec2\\.internal$" +}, +{ + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "K8s.Cluster": "^{{platformInfo}}$", + "Environment": "^k8s:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^sample-app-deployment-{{testingId}}$", + "PlatformType": "^K8s$", + "Service": "^{{serviceName}}$", + "Operation": "GET /outgoing-http-call", + "Version": "^1$", + "RemoteService": "www.amazon.com", + "RemoteOperation": "GET /", + "Telemetry.Source": "^ClientSpan$", + "Telemetry.Agent": "^CWAgent\/([A-Za-z0-9.-]*)$", + "Telemetry.SDK": "^opentelemetry,([A-Za-z0-9-.]*),java,Auto$", + "Host": "^ip(-[0-9]{1,3}){4}\\.ec2\\.internal$" +}] + diff --git a/validator/bin/main/expected-data-template/java/k8s/outgoing-http-call-metric.mustache b/validator/bin/main/expected-data-template/java/k8s/outgoing-http-call-metric.mustache new file mode 100644 index 000000000..18b4e5dab --- /dev/null +++ b/validator/bin/main/expected-data-template/java/k8s/outgoing-http-call-metric.mustache @@ -0,0 +1,227 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: www.amazon.com + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: www.amazon.com + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: www.amazon.com \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/java/k8s/outgoing-http-call-trace.mustache b/validator/bin/main/expected-data-template/java/k8s/outgoing-http-call-trace.mustache new file mode 100644 index 000000000..3fdbc53ab --- /dev/null +++ b/validator/bin/main/expected-data-template/java/k8s/outgoing-http-call-trace.mustache @@ -0,0 +1,66 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/outgoing-http-call$", + "method": "^GET$" + }, + "response": { + "status": "^200$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /outgoing-http-call$", + "aws.local.environment": "^k8s:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "K8s.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}", + "otel.resource.K8s.Workload": "^sample-app-deployment-{{testingId}}$", + "otel.resource.K8s.Node": "^i-[A-Za-z0-9]{17}$", + "otel.resource.K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "otel.resource.host.name": "^ip(-[0-9]{1,3}){4}\\.ec2\\.internal$", + "PlatformType": "^K8s$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "subsegments": [ + { + "name": "^www.amazon.com$", + "http": { + "request": { + "url": "^https://www.amazon.com$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /outgoing-http-call$", + "aws.remote.service": "^www.amazon.com$", + "aws.remote.operation": "^GET /$", + "aws.local.environment": "^k8s:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "aws.span.kind": "^CLIENT$", + "K8s.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "PlatformType": "^K8s$" + } + }, + "namespace": "^remote$" + } + ] + } + ] +}, +{ + "name": "^www.amazon.com$" +}] diff --git a/validator/bin/main/expected-data-template/java/k8s/remote-service-log.mustache b/validator/bin/main/expected-data-template/java/k8s/remote-service-log.mustache new file mode 100644 index 000000000..76af151b4 --- /dev/null +++ b/validator/bin/main/expected-data-template/java/k8s/remote-service-log.mustache @@ -0,0 +1,37 @@ +[{ + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "K8s.Cluster": "^{{platformInfo}}$", + "Environment": "^k8s:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^sample-app-deployment-{{testingId}}$", + "PlatformType": "^K8s$", + "Service": "^{{serviceName}}$", + "Operation": "GET /remote-service", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Telemetry.Agent": "^CWAgent\/([A-Za-z0-9.-]*)$", + "Telemetry.SDK": "^opentelemetry,([A-Za-z0-9-.]*),java,Auto$", + "Host": "^ip(-[0-9]{1,3}){4}\\.ec2\\.internal$" +}, +{ + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "K8s.Cluster": "^{{platformInfo}}$", + "Environment": "^k8s:{{platformInfo}}/{{appNamespace}}$", + "RemoteEnvironment": "^k8s:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^sample-app-deployment-{{testingId}}$", + "PlatformType": "^K8s$", + "Service": "^{{serviceName}}$", + "Operation": "GET /remote-service", + "Version": "^1$", + "RemoteService": "{{remoteServiceName}}", + "RemoteOperation": "GET /healthcheck", + "Telemetry.Source": "^ClientSpan$", + "Telemetry.Agent": "^CWAgent\/([A-Za-z0-9.-]*)$", + "Telemetry.SDK": "^opentelemetry,([A-Za-z0-9-.]*),java,Auto$", + "Host": "^ip(-[0-9]{1,3}){4}\\.ec2\\.internal$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/java/k8s/remote-service-metric.mustache b/validator/bin/main/expected-data-template/java/k8s/remote-service-metric.mustache new file mode 100644 index 000000000..0288017f7 --- /dev/null +++ b/validator/bin/main/expected-data-template/java/k8s/remote-service-metric.mustache @@ -0,0 +1,506 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET /healthcheck + - + name: Service + value: {{remoteServiceName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET /remote-service + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET /healthcheck + - + name: Service + value: {{remoteServiceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET /remote-service + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET /healthcheck + - + name: Service + value: {{remoteServiceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET /remote-service + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceName}} + - + name: Service + value: {{serviceName}} \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/java/k8s/remote-service-trace.mustache b/validator/bin/main/expected-data-template/java/k8s/remote-service-trace.mustache new file mode 100644 index 000000000..79a8a3bb2 --- /dev/null +++ b/validator/bin/main/expected-data-template/java/k8s/remote-service-trace.mustache @@ -0,0 +1,98 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/remote-service\\?ip=(([0-9]{1,3}.){3}[0-9]{1,3})&testingId={{testingId}}$", + "method": "^GET$" + }, + "response": { + "status": "^200$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /remote-service$", + "aws.local.environment": "^k8s:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "K8s.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}", + "otel.resource.K8s.Workload": "^sample-app-deployment-{{testingId}}$", + "otel.resource.K8s.Node": "^i-[A-Za-z0-9]{17}$", + "otel.resource.K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "otel.resource.host.name": "^ip(-[0-9]{1,3}){4}\\.ec2\\.internal$", + "PlatformType": "^K8s$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "subsegments": [ + { + "name": "^{{remoteServiceDeploymentName}}$", + "http": { + "request": { + "url": "^http://(([0-9]{1,3}.){3}[0-9]{1,3}):8080/healthcheck$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /remote-service$", + "aws.remote.service": "^{{remoteServiceDeploymentName}}$", + "aws.remote.operation": "^GET /healthcheck$" + }, + "metadata": { + "default": { + "aws.span.kind": "^CLIENT$" + } + }, + "namespace": "^remote$" + } + ] + } + ] +}, +{ + "name": "^{{remoteServiceDeploymentName}}$", + "http": { + "request": { + "url": "^http://(([0-9]{1,3}.){3}[0-9]{1,3}):8080/healthcheck$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{remoteServiceDeploymentName}}$", + "aws.local.operation": "^GET /healthcheck$", + "aws.local.environment": "^k8s:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "otel.resource.K8s.Workload": "^{{remoteServiceDeploymentName}}$", + "otel.resource.K8s.Node": "^i-[A-Za-z0-9]{17}$", + "otel.resource.K8s.Pod": "^{{remoteServiceDeploymentName}}(-[A-Za-z0-9]*)*$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "name": "^RemoteServiceController\\.healthcheck$", + "annotations": { + "aws.local.operation": "^GET /healthcheck$", + "aws.local.environment": "^k8s:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "K8s.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}$" + } + } + } + ] +}] + + diff --git a/validator/bin/main/expected-data-template/java/metric_limiter/metric-limiter-metric.mustache b/validator/bin/main/expected-data-template/java/metric_limiter/metric-limiter-metric.mustache new file mode 100644 index 000000000..8815edfe6 --- /dev/null +++ b/validator/bin/main/expected-data-template/java/metric_limiter/metric-limiter-metric.mustache @@ -0,0 +1,74 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: AllOtherOperations + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: AllOtherOperations + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: AllOtherOperations + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/java/runtime/runtime-log.mustache b/validator/bin/main/expected-data-template/java/runtime/runtime-log.mustache new file mode 100644 index 000000000..296d37f98 --- /dev/null +++ b/validator/bin/main/expected-data-template/java/runtime/runtime-log.mustache @@ -0,0 +1,4 @@ +[{ + "Telemetry.SDK": "opentelemetry,.*,java,Auto", + "Telemetry.Source": "^RuntimeMetric$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/java/runtime/runtime-metric.mustache b/validator/bin/main/expected-data-template/java/runtime/runtime-metric.mustache new file mode 100644 index 000000000..a55adf095 --- /dev/null +++ b/validator/bin/main/expected-data-template/java/runtime/runtime-metric.mustache @@ -0,0 +1,186 @@ +- + metricName: JVMGCDuration + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ANY_VALUE + +- + metricName: JVMGCCount + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ANY_VALUE + +- + metricName: JVMGCOldGenDuration + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ANY_VALUE + +- + metricName: JVMGCOldGenCount + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ANY_VALUE + +- + metricName: JVMGCYoungGenDuration + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ANY_VALUE + +- + metricName: JVMGCYoungGenCount + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ANY_VALUE + +- + metricName: JVMGCYoungGenCount + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ANY_VALUE + +- + metricName: JVMMemoryHeapUsed + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ANY_VALUE + +- + metricName: JVMMemoryNonHeapUsed + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ANY_VALUE + +- + metricName: JVMMemoryUsedAfterLastGC + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ANY_VALUE + +- + metricName: JVMMemoryOldGenUsed + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ANY_VALUE + +- + metricName: JVMMemorySurvivorSpaceUsed + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ANY_VALUE + +- + metricName: JVMMemoryEdenSpaceUsed + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ANY_VALUE + +- + metricName: JVMThreadCount + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ANY_VALUE + +- + metricName: JVMClassLoaded + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ANY_VALUE + +- + metricName: JVMCpuTime + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ANY_VALUE + +- + metricName: JVMCpuRecentUtilization + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ANY_VALUE \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/node/ec2/asg/aws-sdk-call-log.mustache b/validator/bin/main/expected-data-template/node/ec2/asg/aws-sdk-call-log.mustache new file mode 100644 index 000000000..f4e5ae865 --- /dev/null +++ b/validator/bin/main/expected-data-template/node/ec2/asg/aws-sdk-call-log.mustache @@ -0,0 +1,24 @@ +[{ + "EC2.AutoScalingGroup": "^{{platformInfo}}$", + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:{{platformInfo}}$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET /aws-sdk-call", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^{{privateDnsName}}$" +}, +{ + "EC2.AutoScalingGroup": "^{{platformInfo}}$", + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:{{platformInfo}}$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET /aws-sdk-call", + "Version": "^1$", + "RemoteService": "AWS::S3", + "RemoteOperation": "GetBucketLocation", + "RemoteResourceIdentifier": "^e2e-test-bucket-name-{{testingId}}$", + "RemoteResourceType": "^AWS::S3::Bucket$", + "Telemetry.Source": "^ClientSpan$", + "Host": "^{{privateDnsName}}$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/node/ec2/asg/aws-sdk-call-metric.mustache b/validator/bin/main/expected-data-template/node/ec2/asg/aws-sdk-call-metric.mustache new file mode 100644 index 000000000..ec5bd4256 --- /dev/null +++ b/validator/bin/main/expected-data-template/node/ec2/asg/aws-sdk-call-metric.mustache @@ -0,0 +1,374 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket diff --git a/validator/bin/main/expected-data-template/node/ec2/asg/aws-sdk-call-trace.mustache b/validator/bin/main/expected-data-template/node/ec2/asg/aws-sdk-call-trace.mustache new file mode 100644 index 000000000..9d2b9993b --- /dev/null +++ b/validator/bin/main/expected-data-template/node/ec2/asg/aws-sdk-call-trace.mustache @@ -0,0 +1,54 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/aws-sdk-call\\?ip=(([0-9]{1,3}.){3}[0-9]{1,3})&testingId={{testingId}}$", + "method": "^GET$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /aws-sdk-call$", + "aws.local.environment": "^ec2:{{platformInfo}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^{{platformInfo}}$", + "EC2.InstanceId": "^{{instanceId}}$", + "otel.resource.ec2.tag.aws:autoscaling:groupName": "^{{platformInfo}}$", + "otel.resource.host.id": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "otel.resource.host.image.id": "^{{instanceAmi}}$", + "otel.resource.host.type": "^t3.micro$", + "aws.span.kind": "^LOCAL_ROOT$", + "otel.resource.host.name": "^{{privateDnsName}}$" + } + }, + "subsegments": [ + { + "name": "^S3$", + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /aws-sdk-call$", + "aws.remote.service": "^AWS::S3$", + "aws.remote.operation": "^GetBucketLocation$", + "aws.remote.resource.type": "^AWS::S3::Bucket$", + "aws.remote.resource.identifier": "^e2e-test-bucket-name-{{testingId}}$", + "aws.local.environment": "^ec2:{{platformInfo}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^{{platformInfo}}$", + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "aws.span.kind": "^CLIENT$", + "aws.s3.bucket": "^e2e-test-bucket-name-{{testingId}}$" + } + }, + "namespace": "^aws$" + } + ] +}] diff --git a/validator/bin/main/expected-data-template/node/ec2/asg/client-call-log.mustache b/validator/bin/main/expected-data-template/node/ec2/asg/client-call-log.mustache new file mode 100644 index 000000000..4dbd3d3ce --- /dev/null +++ b/validator/bin/main/expected-data-template/node/ec2/asg/client-call-log.mustache @@ -0,0 +1,22 @@ +[{ + "EC2.AutoScalingGroup": "^{{platformInfo}}$", + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:{{platformInfo}}$", + "PlatformType": "^AWS::EC2$", + "Operation": "InternalOperation", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^{{privateDnsName}}$" +}, +{ + "EC2.AutoScalingGroup": "^{{platformInfo}}$", + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:{{platformInfo}}$", + "PlatformType": "^AWS::EC2$", + "Operation": "InternalOperation", + "Version": "^1$", + "RemoteService": "local-root-client-call", + "RemoteOperation": "GET /", + "Telemetry.Source": "^ClientSpan$", + "Host": "^{{privateDnsName}}$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/node/ec2/asg/client-call-metric.mustache b/validator/bin/main/expected-data-template/node/ec2/asg/client-call-metric.mustache new file mode 100644 index 000000000..7127ec861 --- /dev/null +++ b/validator/bin/main/expected-data-template/node/ec2/asg/client-call-metric.mustache @@ -0,0 +1,227 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: local-root-client-call + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: local-root-client-call + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: local-root-client-call \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/node/ec2/asg/client-call-trace.mustache b/validator/bin/main/expected-data-template/node/ec2/asg/client-call-trace.mustache new file mode 100644 index 000000000..7da73ef8c --- /dev/null +++ b/validator/bin/main/expected-data-template/node/ec2/asg/client-call-trace.mustache @@ -0,0 +1,60 @@ +[{ + "name": "^{{serviceName}}$", + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^InternalOperation$", + "aws.local.environment": "^ec2:{{platformInfo}}$" + }, + "metadata": { + "default": { + "otel.resource.ec2.tag.aws:autoscaling:groupName": "^{{platformInfo}}$", + "otel.resource.host.id": "^{{instanceId}}$", + "otel.resource.host.image.id": "^{{instanceAmi}}$", + "otel.resource.host.type": "^t3.micro$", + "otel.resource.host.name": "^{{privateDnsName}}$" + } + }, + "subsegments": [ + { + "name": "^local-root-client-call$", + "http": { + "request": { + "url": "^http://local-root-client-call/$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^InternalOperation$", + "aws.remote.service": "^local-root-client-call$", + "aws.remote.operation": "GET /", + "aws.local.environment": "^ec2:{{platformInfo}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^{{platformInfo}}$", + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "namespace": "^remote$" + } + ] +}, +{ + "name": "^local-root-client-call$", + "http": { + "request": { + "url": "^http://local-root-client-call/$", + "method": "^GET$" + }, + "response": { + "content_length": 0 + } + }, + "annotations": { + "aws.local.service": "^local-root-client-call$", + "aws.local.operation": "^GET /$" + } +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/node/ec2/asg/outgoing-http-call-log.mustache b/validator/bin/main/expected-data-template/node/ec2/asg/outgoing-http-call-log.mustache new file mode 100644 index 000000000..1dedd8ba4 --- /dev/null +++ b/validator/bin/main/expected-data-template/node/ec2/asg/outgoing-http-call-log.mustache @@ -0,0 +1,22 @@ +[{ + "EC2.AutoScalingGroup": "^{{platformInfo}}$", + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:{{platformInfo}}$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET /outgoing-http-call", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^{{privateDnsName}}$" +}, +{ + "EC2.AutoScalingGroup": "^{{platformInfo}}$", + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:{{platformInfo}}$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET /outgoing-http-call", + "Version": "^1$", + "RemoteService": "www.amazon.com:80", + "RemoteOperation": "GET /", + "Telemetry.Source": "^ClientSpan$", + "Host": "^{{privateDnsName}}$" +}] diff --git a/validator/bin/main/expected-data-template/node/ec2/asg/outgoing-http-call-metric.mustache b/validator/bin/main/expected-data-template/node/ec2/asg/outgoing-http-call-metric.mustache new file mode 100644 index 000000000..3278af316 --- /dev/null +++ b/validator/bin/main/expected-data-template/node/ec2/asg/outgoing-http-call-metric.mustache @@ -0,0 +1,227 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com:80 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com:80 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: www.amazon.com:80 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com:80 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com:80 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: www.amazon.com:80 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com:80 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com:80 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: www.amazon.com:80 diff --git a/validator/bin/main/expected-data-template/node/ec2/asg/outgoing-http-call-trace.mustache b/validator/bin/main/expected-data-template/node/ec2/asg/outgoing-http-call-trace.mustache new file mode 100644 index 000000000..092ae52a4 --- /dev/null +++ b/validator/bin/main/expected-data-template/node/ec2/asg/outgoing-http-call-trace.mustache @@ -0,0 +1,64 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/outgoing-http-call$", + "method": "^GET$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /outgoing-http-call$", + "aws.local.environment": "^ec2:{{platformInfo}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^{{platformInfo}}$", + "EC2.InstanceId": "^{{instanceId}}$", + "otel.resource.ec2.tag.aws:autoscaling:groupName": "^{{platformInfo}}$", + "otel.resource.host.id": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "otel.resource.host.image.id": "^{{instanceAmi}}$", + "otel.resource.host.type": "^t3.micro$", + "otel.resource.host.name": "^{{privateDnsName}}$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "name": "^www.amazon.com:80$", + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /outgoing-http-call$", + "aws.remote.service": "^www.amazon.com:80$", + "aws.remote.operation": "^GET /$", + "aws.local.environment": "^ec2:{{platformInfo}}$" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "aws.span.kind": "^CLIENT$" + } + }, + "http": { + "request": { + "url": "^http://www.amazon.com/$", + "method": "^GET$" + } + }, + "subsegments": [ + { + "name": "^www.amazon.com$" + } + ], + "namespace": "^remote$" + } + ] +}, +{ + "name": "^www.amazon.com:80$" +}] diff --git a/validator/bin/main/expected-data-template/node/ec2/asg/remote-service-log.mustache b/validator/bin/main/expected-data-template/node/ec2/asg/remote-service-log.mustache new file mode 100644 index 000000000..0527d8674 --- /dev/null +++ b/validator/bin/main/expected-data-template/node/ec2/asg/remote-service-log.mustache @@ -0,0 +1,22 @@ +[{ + "EC2.AutoScalingGroup": "^{{platformInfo}}$", + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:{{platformInfo}}$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET /remote-service", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^{{privateDnsName}}$" +}, +{ + "EC2.AutoScalingGroup": "^{{platformInfo}}$", + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:{{platformInfo}}$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET /remote-service", + "Version": "^1$", + "RemoteService": "{{remoteServiceDeploymentName}}", + "RemoteOperation": "GET /healthcheck", + "Telemetry.Source": "^ClientSpan$", + "Host": "^{{privateDnsName}}$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/node/ec2/asg/remote-service-metric.mustache b/validator/bin/main/expected-data-template/node/ec2/asg/remote-service-metric.mustache new file mode 100644 index 000000000..7f692a7cb --- /dev/null +++ b/validator/bin/main/expected-data-template/node/ec2/asg/remote-service-metric.mustache @@ -0,0 +1,326 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: ec2:default + - + name: Operation + value: GET /healthcheck + - + name: Service + value: {{remoteServiceName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceName}} + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: ec2:default + - + name: Operation + value: GET /healthcheck + - + name: Service + value: {{remoteServiceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceName}} + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: ec2:default + - + name: Operation + value: GET /healthcheck + - + name: Service + value: {{remoteServiceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceName}} + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceDeploymentName}} diff --git a/validator/bin/main/expected-data-template/node/ec2/asg/remote-service-trace.mustache b/validator/bin/main/expected-data-template/node/ec2/asg/remote-service-trace.mustache new file mode 100644 index 000000000..dc8003e62 --- /dev/null +++ b/validator/bin/main/expected-data-template/node/ec2/asg/remote-service-trace.mustache @@ -0,0 +1,83 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/remote-service\\?ip=(([0-9]{1,3}.){3}[0-9]{1,3})&testingId={{testingId}}$", + "method": "^GET$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /remote-service$", + "aws.local.environment": "^ec2:{{platformInfo}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^{{platformInfo}}$", + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "otel.resource.ec2.tag.aws:autoscaling:groupName": "^{{platformInfo}}$", + "otel.resource.host.id": "^{{instanceId}}$", + "otel.resource.host.image.id": "^{{instanceAmi}}$", + "otel.resource.host.type": "^t3.micro$", + "otel.resource.host.name": "^{{privateDnsName}}$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /remote-service$", + "aws.remote.service": "^{{remoteServiceDeploymentName}}:8001$", + "aws.remote.operation": "^GET /healthcheck$", + "aws.local.environment": "^ec2:{{platformInfo}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^{{platformInfo}}$", + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "aws.span.kind": "^CLIENT$" + } + }, + "namespace": "^remote$", + "subsegments": [ + { + "name": "^{{remoteServiceDeploymentName}}$", + "http": { + "request": { + "url": "^http://(([0-9]{1,3}.){3}[0-9]{1,3}):8001/$" + } + } + } + ] + } + ] +}, +{ + "name": "^{{remoteServiceName}}$", + "http": { + "request": { + "url": "^http://(([0-9]{1,3}.){3}[0-9]{1,3}):8001/healthcheck$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{remoteServiceName}}$", + "aws.local.operation": "^GET /healthcheck$", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "PlatformType": "^AWS::EC2$", + "otel.resource.host.image.id": "^{{instanceAmi}}$", + "otel.resource.host.type": "^t3.micro$", + "aws.span.kind": "^LOCAL_ROOT$" + } + } +}] diff --git a/validator/bin/main/expected-data-template/node/ec2/default/aws-sdk-call-log.mustache b/validator/bin/main/expected-data-template/node/ec2/default/aws-sdk-call-log.mustache new file mode 100644 index 000000000..5d820b066 --- /dev/null +++ b/validator/bin/main/expected-data-template/node/ec2/default/aws-sdk-call-log.mustache @@ -0,0 +1,22 @@ +[{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:default$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET /aws-sdk-call", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}, +{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:default$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET /aws-sdk-call", + "Version": "^1$", + "RemoteService": "AWS::S3", + "RemoteOperation": "GetBucketLocation", + "RemoteResourceIdentifier": "^e2e-test-bucket-name-{{testingId}}$", + "RemoteResourceType": "^AWS::S3::Bucket$", + "Telemetry.Source": "^ClientSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/node/ec2/default/aws-sdk-call-metric.mustache b/validator/bin/main/expected-data-template/node/ec2/default/aws-sdk-call-metric.mustache new file mode 100644 index 000000000..4ad5135e0 --- /dev/null +++ b/validator/bin/main/expected-data-template/node/ec2/default/aws-sdk-call-metric.mustache @@ -0,0 +1,376 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + + diff --git a/validator/bin/main/expected-data-template/node/ec2/default/aws-sdk-call-trace.mustache b/validator/bin/main/expected-data-template/node/ec2/default/aws-sdk-call-trace.mustache new file mode 100644 index 000000000..77e24f6ae --- /dev/null +++ b/validator/bin/main/expected-data-template/node/ec2/default/aws-sdk-call-trace.mustache @@ -0,0 +1,49 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/aws-sdk-call\\?ip=(([0-9]{1,3}.){3}[0-9]{1,3})&testingId={{testingId}}$", + "method": "^GET$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /aws-sdk-call$", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "otel.resource.host.image.id": "^{{instanceAmi}}$", + "otel.resource.host.type": "^(t3.small|t4g.small)$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "name": "^S3$", + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /aws-sdk-call$", + "aws.remote.service": "^AWS::S3$", + "aws.remote.operation": "^GetBucketLocation$", + "aws.remote.resource.type": "^AWS::S3::Bucket$", + "aws.remote.resource.identifier": "^e2e-test-bucket-name-{{testingId}}$", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "aws.span.kind": "^CLIENT$", + "aws.s3.bucket": "^e2e-test-bucket-name-{{testingId}}$" + } + }, + "namespace": "^aws$" + } + ] +}] diff --git a/validator/bin/main/expected-data-template/node/ec2/default/client-call-log.mustache b/validator/bin/main/expected-data-template/node/ec2/default/client-call-log.mustache new file mode 100644 index 000000000..25c72000a --- /dev/null +++ b/validator/bin/main/expected-data-template/node/ec2/default/client-call-log.mustache @@ -0,0 +1,20 @@ +[{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:default$", + "PlatformType": "^AWS::EC2$", + "Operation": "InternalOperation", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}, +{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:default$", + "PlatformType": "^AWS::EC2$", + "Operation": "InternalOperation", + "Version": "^1$", + "RemoteService": "local-root-client-call", + "RemoteOperation": "GET /", + "Telemetry.Source": "^ClientSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/node/ec2/default/client-call-metric.mustache b/validator/bin/main/expected-data-template/node/ec2/default/client-call-metric.mustache new file mode 100644 index 000000000..86fa8bbf5 --- /dev/null +++ b/validator/bin/main/expected-data-template/node/ec2/default/client-call-metric.mustache @@ -0,0 +1,227 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:default + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: local-root-client-call + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:default + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: local-root-client-call + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:default + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: local-root-client-call \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/node/ec2/default/client-call-trace.mustache b/validator/bin/main/expected-data-template/node/ec2/default/client-call-trace.mustache new file mode 100644 index 000000000..19d42bf18 --- /dev/null +++ b/validator/bin/main/expected-data-template/node/ec2/default/client-call-trace.mustache @@ -0,0 +1,56 @@ +[{ + "name": "^{{serviceName}}$", + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^InternalOperation$", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "otel.resource.host.image.id": "^{{instanceAmi}}$", + "otel.resource.host.type": "^(t3.small|t4g.small)$" + } + }, + "subsegments": [ + { + "name": "^local-root-client-call$", + "http": { + "request": { + "url": "^http://local-root-client-call/$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^InternalOperation$", + "aws.remote.service": "^local-root-client-call$", + "aws.remote.operation": "GET /", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "namespace": "^remote$" + } + ] +}, +{ + "name": "^local-root-client-call$", + "http": { + "request": { + "url": "^http://local-root-client-call/$", + "method": "^GET$" + }, + "response": { + "content_length": 0 + } + }, + "annotations": { + "aws.local.service": "^local-root-client-call$", + "aws.local.operation": "^GET /$" + } +}] diff --git a/validator/bin/main/expected-data-template/node/ec2/default/outgoing-http-call-log.mustache b/validator/bin/main/expected-data-template/node/ec2/default/outgoing-http-call-log.mustache new file mode 100644 index 000000000..018d18a88 --- /dev/null +++ b/validator/bin/main/expected-data-template/node/ec2/default/outgoing-http-call-log.mustache @@ -0,0 +1,21 @@ +[{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:default$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET /outgoing-http-call", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}, +{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:default$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET /outgoing-http-call", + "Version": "^1$", + "RemoteService": "www.amazon.com:80", + "RemoteOperation": "GET /", + "Telemetry.Source": "^ClientSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}] + diff --git a/validator/bin/main/expected-data-template/node/ec2/default/outgoing-http-call-metric.mustache b/validator/bin/main/expected-data-template/node/ec2/default/outgoing-http-call-metric.mustache new file mode 100644 index 000000000..3cfd98efc --- /dev/null +++ b/validator/bin/main/expected-data-template/node/ec2/default/outgoing-http-call-metric.mustache @@ -0,0 +1,227 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com:80 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com:80 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: www.amazon.com:80 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com:80 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com:80 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: www.amazon.com:80 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com:80 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com:80 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: www.amazon.com:80 diff --git a/validator/bin/main/expected-data-template/node/ec2/default/outgoing-http-call-trace.mustache b/validator/bin/main/expected-data-template/node/ec2/default/outgoing-http-call-trace.mustache new file mode 100644 index 000000000..ee3d5b65f --- /dev/null +++ b/validator/bin/main/expected-data-template/node/ec2/default/outgoing-http-call-trace.mustache @@ -0,0 +1,60 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/outgoing-http-call$", + "method": "^GET$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /outgoing-http-call$", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "otel.resource.host.image.id": "^{{instanceAmi}}$", + "otel.resource.host.type": "^(t3.small|t4g.small)$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "name": "^www.amazon.com:80$", + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /outgoing-http-call$", + "aws.remote.service": "^www.amazon.com:80$", + "aws.remote.operation": "^GET /$", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "aws.span.kind": "^CLIENT$" + } + }, + "http": { + "request": { + "url": "^http://www.amazon.com/$", + "method": "^GET$" + } + }, + "subsegments": [ + { + "name": "^www.amazon.com$" + } + ], + "namespace": "^remote$" + } + ] +}, +{ + "name": "^www.amazon.com:80$" +}] diff --git a/validator/bin/main/expected-data-template/node/ec2/default/remote-service-log.mustache b/validator/bin/main/expected-data-template/node/ec2/default/remote-service-log.mustache new file mode 100644 index 000000000..cd457dc7b --- /dev/null +++ b/validator/bin/main/expected-data-template/node/ec2/default/remote-service-log.mustache @@ -0,0 +1,20 @@ +[{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:default$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET /remote-service", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}, +{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:default$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET /remote-service", + "Version": "^1$", + "RemoteService": "{{remoteServiceDeploymentName}}", + "RemoteOperation": "GET /healthcheck", + "Telemetry.Source": "^ClientSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/node/ec2/default/remote-service-metric.mustache b/validator/bin/main/expected-data-template/node/ec2/default/remote-service-metric.mustache new file mode 100644 index 000000000..4b1f0ad9c --- /dev/null +++ b/validator/bin/main/expected-data-template/node/ec2/default/remote-service-metric.mustache @@ -0,0 +1,326 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: ec2:default + - + name: Operation + value: GET /healthcheck + - + name: Service + value: {{remoteServiceName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceName}} + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: ec2:default + - + name: Operation + value: GET /healthcheck + - + name: Service + value: {{remoteServiceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceName}} + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: ec2:default + - + name: Operation + value: GET /healthcheck + - + name: Service + value: {{remoteServiceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceName}} + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceDeploymentName}} diff --git a/validator/bin/main/expected-data-template/node/ec2/default/remote-service-trace.mustache b/validator/bin/main/expected-data-template/node/ec2/default/remote-service-trace.mustache new file mode 100644 index 000000000..c1b52f40c --- /dev/null +++ b/validator/bin/main/expected-data-template/node/ec2/default/remote-service-trace.mustache @@ -0,0 +1,78 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/remote-service\\?ip=(([0-9]{1,3}.){3}[0-9]{1,3})&testingId={{testingId}}$", + "method": "^GET$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /remote-service$", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "otel.resource.host.image.id": "^{{instanceAmi}}$", + "otel.resource.host.type": "^(t3.small|t4g.small)$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /remote-service$", + "aws.remote.service": "^{{remoteServiceDeploymentName}}:8001$", + "aws.remote.operation": "^GET /healthcheck$", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "aws.span.kind": "^CLIENT$" + } + }, + "namespace": "^remote$", + "subsegments": [ + { + "name": "^{{remoteServiceDeploymentName}}$", + "http": { + "request": { + "url": "^http://(([0-9]{1,3}.){3}[0-9]{1,3}):8001/$" + } + } + } + ] + } + ] +}, +{ + "name": "^{{remoteServiceName}}$", + "http": { + "request": { + "url": "^http://(([0-9]{1,3}.){3}[0-9]{1,3}):8001/healthcheck$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{remoteServiceName}}$", + "aws.local.operation": "^GET /healthcheck$", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "PlatformType": "^AWS::EC2$", + "otel.resource.host.image.id": "^{{instanceAmi}}$", + "otel.resource.host.type": "^(t3.small|t4g.small)$", + "aws.span.kind": "^LOCAL_ROOT$" + } + } +}] diff --git a/validator/bin/main/expected-data-template/node/ecs/hc-log.mustache b/validator/bin/main/expected-data-template/node/ecs/hc-log.mustache new file mode 100644 index 000000000..6c0d0704b --- /dev/null +++ b/validator/bin/main/expected-data-template/node/ecs/hc-log.mustache @@ -0,0 +1,14 @@ +[{ + "ECS.Cluster": "^{{platformInfo}}$", + "ECS.TaskDefinitionFamily": "^{{serviceName}}$", + "ECS.TaskDefinitionRevision": "[0-9]*", + "ECS.TaskId": "[A-Za-z0-9]*", + "Environment": "^ecs:{{platformInfo}}$", + "Operation": "GET /client-call", + "PlatformType": "^AWS::ECS$", + "Service": "^{{serviceName}}$", + "Telemetry.Agent": "^CWAgent\/([A-Za-z0-9.-]*)$", + "Telemetry.SDK": "^opentelemetry,([A-Za-z0-9-.]*),nodejs,Auto$", + "Telemetry.Source": "^LocalRootSpan$", + "aws.log.group.names": "^/ecs/node-e2e-test$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/node/ecs/hc-metric.mustache b/validator/bin/main/expected-data-template/node/ecs/hc-metric.mustache new file mode 100644 index 000000000..c0e10e6a5 --- /dev/null +++ b/validator/bin/main/expected-data-template/node/ecs/hc-metric.mustache @@ -0,0 +1,76 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /client-call + + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ecs:{{platformInfo}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ecs:{{platformInfo}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /client-call + + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ecs:{{platformInfo}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ecs:{{platformInfo}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /client-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ecs:{{platformInfo}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ecs:{{platformInfo}} \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/node/ecs/hc-trace.mustache b/validator/bin/main/expected-data-template/node/ecs/hc-trace.mustache new file mode 100644 index 000000000..9ba96ad28 --- /dev/null +++ b/validator/bin/main/expected-data-template/node/ecs/hc-trace.mustache @@ -0,0 +1,65 @@ +[{ + "name": "^{{serviceName}}$", + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^InternalOperation$", + "aws.local.environment": "^ecs:{{platformInfo}}$" + }, + "aws": { + "cloudwatch_logs": [ + { + "log_group": "/ecs/node-e2e-test" + } + ] + }, + "metadata": { + "default": { + "otel.resource.aws.ecs.launchtype": "^fargate$", + "otel.resource.aws.ecs.task.revision": "[0-9]*", + "otel.resource.cloud.platform": "^aws_ecs$" + } + }, + "subsegments": [ + { + "name": "^local-root-client-call$", + "http": { + "request": { + "url": "^http://local-root-client-call/$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^InternalOperation$", + "aws.remote.service": "^local-root-client-call$", + "aws.remote.operation": "GET /", + "aws.local.environment": "^ecs:{{platformInfo}}$" + }, + "metadata": { + "default": { + "aws.ecs.cluster.name": "^{{platformInfo}}$", + "aws.ecs.task.id": "[A-Za-z0-9]*", + "PlatformType": "^AWS::ECS$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "namespace": "^remote$" + } + ] +}, +{ + "name": "^local-root-client-call$", + "http": { + "request": { + "url": "^http://local-root-client-call/$", + "method": "^GET$" + }, + "response": { + "content_length": 0 + } + }, + "annotations": { + "aws.local.service": "^local-root-client-call$", + "aws.local.operation": "^GET /$" + } +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/node/eks/aws-sdk-call-log.mustache b/validator/bin/main/expected-data-template/node/eks/aws-sdk-call-log.mustache new file mode 100644 index 000000000..9f4ac2bb1 --- /dev/null +++ b/validator/bin/main/expected-data-template/node/eks/aws-sdk-call-log.mustache @@ -0,0 +1,40 @@ +[{ + "EC2.AutoScalingGroup": "^eks-.+", + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "EKS.Cluster": "^{{platformInfo}}$", + "Environment": "^eks:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^sample-app-deployment-{{testingId}}$", + "PlatformType": "^AWS::EKS$", + "Service": "^{{serviceName}}$", + "Operation": "GET /aws-sdk-call", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Telemetry.Agent": "^CWAgent\/([A-Za-z0-9.-]*)$", + "Telemetry.SDK": "^opentelemetry,([A-Za-z0-9-.]*),nodejs,Auto$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}, +{ + "EC2.AutoScalingGroup": "^eks-.+", + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "EKS.Cluster": "^{{platformInfo}}$", + "Environment": "^eks:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^sample-app-deployment-{{testingId}}$", + "PlatformType": "^AWS::EKS$", + "Service": "^{{serviceName}}$", + "Operation": "GET /aws-sdk-call", + "Version": "^1$", + "RemoteService": "AWS::S3", + "RemoteOperation": "GetBucketLocation", + "RemoteResourceIdentifier": "^e2e-test-bucket-name-{{testingId}}$", + "RemoteResourceType": "^AWS::S3::Bucket$", + "Telemetry.Source": "^ClientSpan$", + "Telemetry.Agent": "^CWAgent\/([A-Za-z0-9.-]*)$", + "Telemetry.SDK": "^opentelemetry,([A-Za-z0-9-.]*),nodejs,Auto$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/node/eks/aws-sdk-call-metric.mustache b/validator/bin/main/expected-data-template/node/eks/aws-sdk-call-metric.mustache new file mode 100644 index 000000000..8356f5832 --- /dev/null +++ b/validator/bin/main/expected-data-template/node/eks/aws-sdk-call-metric.mustache @@ -0,0 +1,434 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} diff --git a/validator/bin/main/expected-data-template/node/eks/aws-sdk-call-trace.mustache b/validator/bin/main/expected-data-template/node/eks/aws-sdk-call-trace.mustache new file mode 100644 index 000000000..3cd261c1c --- /dev/null +++ b/validator/bin/main/expected-data-template/node/eks/aws-sdk-call-trace.mustache @@ -0,0 +1,53 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/aws-sdk-call\\?ip=(([0-9]{1,3}.){3}[0-9]{1,3})&testingId={{testingId}}$", + "method": "^GET$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /aws-sdk-call$", + "aws.local.environment": "^eks:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^eks-.+", + "EKS.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}", + "otel.resource.K8s.Workload": "^sample-app-deployment-{{testingId}}", + "otel.resource.K8s.Node": "^i-[A-Za-z0-9]{17}$", + "otel.resource.K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "otel.resource.host.name": "^ip(-[0-9]{1,3}){4}.*$", + "PlatformType": "^AWS::EKS$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "name": "^S3$", + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /aws-sdk-call$", + "aws.remote.service": "^AWS::S3$", + "aws.remote.operation": "^GetBucketLocation$", + "aws.remote.resource.type": "^AWS::S3::Bucket$", + "aws.remote.resource.identifier": "e2e-test-bucket-name-{{testingId}}", + "aws.local.environment": "^eks:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "EKS.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "PlatformType": "^AWS::EKS$", + "aws.span.kind": "^CLIENT$" + } + }, + "namespace": "^aws$" + } + ] +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/node/eks/client-call-log.mustache b/validator/bin/main/expected-data-template/node/eks/client-call-log.mustache new file mode 100644 index 000000000..79e45e62e --- /dev/null +++ b/validator/bin/main/expected-data-template/node/eks/client-call-log.mustache @@ -0,0 +1,34 @@ +[{ + "EC2.AutoScalingGroup": "^eks-.+", + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "EKS.Cluster": "^{{platformInfo}}$", + "Environment": "^eks:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^sample-app-deployment-{{testingId}}$", + "PlatformType": "^AWS::EKS$", + "Service": "^{{serviceName}}$", + "Operation": "InternalOperation", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}, +{ + "EC2.AutoScalingGroup": "^eks-.+", + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "EKS.Cluster": "^{{platformInfo}}$", + "Environment": "^eks:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^sample-app-deployment-{{testingId}}$", + "PlatformType": "^AWS::EKS$", + "Service": "^{{serviceName}}$", + "Operation": "InternalOperation", + "Version": "^1$", + "RemoteService": "local-root-client-call", + "RemoteOperation": "GET /", + "Telemetry.Source": "^ClientSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/node/eks/client-call-metric.mustache b/validator/bin/main/expected-data-template/node/eks/client-call-metric.mustache new file mode 100644 index 000000000..f2789c241 --- /dev/null +++ b/validator/bin/main/expected-data-template/node/eks/client-call-metric.mustache @@ -0,0 +1,269 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: GET /client-call + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: GET /client-call + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: GET /client-call + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/node/eks/client-call-trace.mustache b/validator/bin/main/expected-data-template/node/eks/client-call-trace.mustache new file mode 100644 index 000000000..5d768274f --- /dev/null +++ b/validator/bin/main/expected-data-template/node/eks/client-call-trace.mustache @@ -0,0 +1,60 @@ +[{ + "name": "^{{serviceName}}$", + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^InternalOperation$", + "aws.local.environment": "^eks:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "otel.resource.K8s.Workload": "^sample-app-deployment-{{testingId}}", + "otel.resource.K8s.Node": "^i-[A-Za-z0-9]{17}$", + "otel.resource.K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "otel.resource.host.name": "^ip(-[0-9]{1,3}){4}.*$" + } + }, + "subsegments": [ + { + "name": "^local-root-client-call$", + "http": { + "request": { + "url": "^http://local-root-client-call/$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^InternalOperation$", + "aws.remote.service": "^local-root-client-call$", + "aws.remote.operation": "GET /", + "aws.local.environment": "^eks:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^eks-.+", + "EKS.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "PlatformType": "^AWS::EKS$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "namespace": "^remote$" + } + ] +}, +{ + "name": "^local-root-client-call$", + "http": { + "request": { + "url": "^http://local-root-client-call/$", + "method": "^GET$" + }, + "response": { + "content_length": 0 + } + }, + "annotations": { + "aws.local.service": "^local-root-client-call$", + "aws.local.operation": "^GET /$" + } +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/node/eks/outgoing-http-call-log.mustache b/validator/bin/main/expected-data-template/node/eks/outgoing-http-call-log.mustache new file mode 100644 index 000000000..ddb80d6a4 --- /dev/null +++ b/validator/bin/main/expected-data-template/node/eks/outgoing-http-call-log.mustache @@ -0,0 +1,35 @@ +[{ + "EC2.AutoScalingGroup": "^eks-.+", + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "EKS.Cluster": "^{{platformInfo}}$", + "Environment": "^eks:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^sample-app-deployment-{{testingId}}$", + "PlatformType": "^AWS::EKS$", + "Service": "^{{serviceName}}$", + "Operation": "GET /outgoing-http-call", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}, +{ + "EC2.AutoScalingGroup": "^eks-.+", + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "EKS.Cluster": "^{{platformInfo}}$", + "Environment": "^eks:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^sample-app-deployment-{{testingId}}$", + "PlatformType": "^AWS::EKS$", + "Service": "^{{serviceName}}$", + "Operation": "GET /outgoing-http-call", + "Version": "^1$", + "RemoteService": "www.amazon.com:80", + "RemoteOperation": "GET /", + "Telemetry.Source": "^ClientSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}] + diff --git a/validator/bin/main/expected-data-template/node/eks/outgoing-http-call-metric.mustache b/validator/bin/main/expected-data-template/node/eks/outgoing-http-call-metric.mustache new file mode 100644 index 000000000..b98c21f75 --- /dev/null +++ b/validator/bin/main/expected-data-template/node/eks/outgoing-http-call-metric.mustache @@ -0,0 +1,227 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com:80 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com:80 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: www.amazon.com:80 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com:80 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com:80 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: www.amazon.com:80 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com:80 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com:80 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: www.amazon.com:80 \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/node/eks/outgoing-http-call-trace.mustache b/validator/bin/main/expected-data-template/node/eks/outgoing-http-call-trace.mustache new file mode 100644 index 000000000..bbdadad26 --- /dev/null +++ b/validator/bin/main/expected-data-template/node/eks/outgoing-http-call-trace.mustache @@ -0,0 +1,61 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/outgoing-http-call$", + "method": "^GET$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /outgoing-http-call$", + "aws.local.environment": "^eks:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^eks-.+", + "EKS.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}", + "otel.resource.K8s.Workload": "^sample-app-deployment-{{testingId}}", + "otel.resource.K8s.Node": "^i-[A-Za-z0-9]{17}$", + "otel.resource.K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "otel.resource.host.name": "^ip(-[0-9]{1,3}){4}.*$", + "PlatformType": "^AWS::EKS$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "name": "^www.amazon.com:80$", + "http": { + "request": { + "url": "^http://www.amazon.com/$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /outgoing-http-call$", + "aws.remote.service": "^www.amazon.com:80$", + "aws.remote.operation": "^GET /$", + "aws.local.environment": "^eks:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^eks-.+", + "EKS.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "PlatformType": "^AWS::EKS$", + "aws.span.kind": "^CLIENT$" + } + }, + "namespace": "^remote$" + } + ] +}, +{ + "name": "^www.amazon.com:80$" +}] diff --git a/validator/bin/main/expected-data-template/node/eks/remote-service-log.mustache b/validator/bin/main/expected-data-template/node/eks/remote-service-log.mustache new file mode 100644 index 000000000..00d94ea41 --- /dev/null +++ b/validator/bin/main/expected-data-template/node/eks/remote-service-log.mustache @@ -0,0 +1,35 @@ +[{ + "EC2.AutoScalingGroup": "^eks-.+", + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "EKS.Cluster": "^{{platformInfo}}$", + "Environment": "^eks:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^sample-app-deployment-{{testingId}}$", + "PlatformType": "^AWS::EKS$", + "Service": "^{{serviceName}}$", + "Operation": "GET /remote-service", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}, +{ + "EC2.AutoScalingGroup": "^eks-.+", + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "EKS.Cluster": "^{{platformInfo}}$", + "Environment": "^eks:{{platformInfo}}/{{appNamespace}}$", + "RemoteEnvironment": "^eks:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^sample-app-deployment-{{testingId}}$", + "PlatformType": "^AWS::EKS$", + "Service": "^{{serviceName}}$", + "Operation": "GET /remote-service", + "Version": "^1$", + "RemoteService": "{{remoteServiceDeploymentName}}", + "RemoteOperation": "GET /healthcheck", + "Telemetry.Source": "^ClientSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/node/eks/remote-service-metric.mustache b/validator/bin/main/expected-data-template/node/eks/remote-service-metric.mustache new file mode 100644 index 000000000..928652d25 --- /dev/null +++ b/validator/bin/main/expected-data-template/node/eks/remote-service-metric.mustache @@ -0,0 +1,506 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET /healthcheck + - + name: Service + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceDeploymentName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET /remote-service + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET /healthcheck + - + name: Service + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceDeploymentName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET /remote-service + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET /healthcheck + - + name: Service + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceDeploymentName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET /remote-service + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + - + name: Service + value: {{serviceName}} \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/node/eks/remote-service-trace.mustache b/validator/bin/main/expected-data-template/node/eks/remote-service-trace.mustache new file mode 100644 index 000000000..421f816c4 --- /dev/null +++ b/validator/bin/main/expected-data-template/node/eks/remote-service-trace.mustache @@ -0,0 +1,87 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/remote-service\\?ip=(([0-9]{1,3}.){3}[0-9]{1,3})&testingId={{testingId}}$", + "method": "^GET$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /remote-service$", + "aws.local.environment": "^eks:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^eks-.+", + "EKS.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}", + "otel.resource.K8s.Workload": "^sample-app-deployment-{{testingId}}", + "otel.resource.K8s.Node": "^i-[A-Za-z0-9]{17}$", + "otel.resource.K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "otel.resource.host.name": "^ip(-[0-9]{1,3}){4}.*$", + "PlatformType": "^AWS::EKS$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "name": "^{{remoteServiceDeploymentName}}$", + "http": { + "request": { + "url": "^http://(([0-9]{1,3}.){3}[0-9]{1,3}):8001/healthcheck$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /remote-service$", + "aws.remote.service": "^{{remoteServiceDeploymentName}}$", + "aws.remote.operation": "^GET /healthcheck$", + "aws.local.environment": "^eks:{{platformInfo}}/{{appNamespace}}$", + "aws.remote.environment": "^eks:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^eks-.+", + "EKS.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "PlatformType": "^AWS::EKS$", + "aws.span.kind": "^CLIENT$" + } + }, + "namespace": "^remote$" + } + ] +}, +{ + "name": "^{{remoteServiceDeploymentName}}$", + "http": { + "request": { + "url": "^http://(([0-9]{1,3}.){3}[0-9]{1,3}):8001/healthcheck$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{remoteServiceDeploymentName}}$", + "aws.local.operation": "^GET /healthcheck$", + "aws.local.environment": "^eks:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^eks-.+", + "EKS.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "PlatformType": "^AWS::EKS$", + "otel.resource.K8s.Workload": "^{{remoteServiceDeploymentName}}$", + "otel.resource.K8s.Node": "^i-[A-Za-z0-9]{17}$", + "otel.resource.K8s.Pod": "^{{remoteServiceDeploymentName}}(-[A-Za-z0-9]*)*$", + "aws.span.kind": "^LOCAL_ROOT$" + } + } +}] + + diff --git a/validator/bin/main/expected-data-template/node/k8s/aws-sdk-call-log.mustache b/validator/bin/main/expected-data-template/node/k8s/aws-sdk-call-log.mustache new file mode 100644 index 000000000..f3556bd28 --- /dev/null +++ b/validator/bin/main/expected-data-template/node/k8s/aws-sdk-call-log.mustache @@ -0,0 +1,38 @@ +[{ + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "K8s.Cluster": "^{{platformInfo}}$", + "Environment": "^k8s:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^sample-app-deployment-{{testingId}}$", + "PlatformType": "^K8s$", + "Service": "^{{serviceName}}$", + "Operation": "GET /aws-sdk-call", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Telemetry.Agent": "^CWAgent\/([A-Za-z0-9.-]*)$", + "Telemetry.SDK": "^opentelemetry,([A-Za-z0-9-.]*),nodejs,Auto$", + "Host": "^ip(-[0-9]{1,3}){4}\\.ec2\\.internal$" +}, +{ + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "K8s.Cluster": "^{{platformInfo}}$", + "Environment": "^k8s:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^sample-app-deployment-{{testingId}}$", + "PlatformType": "^K8s$", + "Service": "^{{serviceName}}$", + "Operation": "GET /aws-sdk-call", + "Version": "^1$", + "RemoteService": "AWS::S3", + "RemoteOperation": "GetBucketLocation", + "RemoteResourceIdentifier": "e2e-test-bucket-name", + "RemoteResourceType": "AWS::S3::Bucket", + "Telemetry.Source": "^ClientSpan$", + "Telemetry.Agent": "^CWAgent\/([A-Za-z0-9.-]*)$", + "Telemetry.SDK": "^opentelemetry,([A-Za-z0-9-.]*),nodejs,Auto$", + "Host": "^ip(-[0-9]{1,3}){4}\\.ec2\\.internal$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/node/k8s/aws-sdk-call-metric.mustache b/validator/bin/main/expected-data-template/node/k8s/aws-sdk-call-metric.mustache new file mode 100644 index 000000000..b218e0fb7 --- /dev/null +++ b/validator/bin/main/expected-data-template/node/k8s/aws-sdk-call-metric.mustache @@ -0,0 +1,374 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket diff --git a/validator/bin/main/expected-data-template/node/k8s/aws-sdk-call-trace.mustache b/validator/bin/main/expected-data-template/node/k8s/aws-sdk-call-trace.mustache new file mode 100644 index 000000000..76bc7b48b --- /dev/null +++ b/validator/bin/main/expected-data-template/node/k8s/aws-sdk-call-trace.mustache @@ -0,0 +1,52 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/aws-sdk-call\\?ip=(([0-9]{1,3}.){3}[0-9]{1,3})&testingId={{testingId}}$", + "method": "^GET$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /aws-sdk-call$", + "aws.local.environment": "^k8s:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "K8s.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}", + "otel.resource.K8s.Workload": "^sample-app-deployment-{{testingId}}$", + "otel.resource.K8s.Node": "^i-[A-Za-z0-9]{17}$", + "otel.resource.K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "otel.resource.host.name": "^ip(-[0-9]{1,3}){4}\\.ec2\\.internal$", + "PlatformType": "^K8s$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "name": "^S3$", + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /aws-sdk-call$", + "aws.remote.service": "^AWS::S3$", + "aws.remote.operation": "^GetBucketLocation$", + "aws.remote.resource.type": "^AWS::S3::Bucket$", + "aws.remote.resource.identifier": "e2e-test-bucket-name-{{testingId}}", + "aws.local.environment": "^k8s:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "K8s.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "PlatformType": "^K8s$", + "aws.span.kind": "^CLIENT$" + } + }, + "namespace": "^aws$" + } + ] +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/node/k8s/client-call-log.mustache b/validator/bin/main/expected-data-template/node/k8s/client-call-log.mustache new file mode 100644 index 000000000..f147882b8 --- /dev/null +++ b/validator/bin/main/expected-data-template/node/k8s/client-call-log.mustache @@ -0,0 +1,36 @@ +[{ + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "K8s.Cluster": "^{{platformInfo}}$", + "Environment": "^k8s:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^sample-app-deployment-{{testingId}}$", + "PlatformType": "^K8s$", + "Service": "^{{serviceName}}$", + "Operation": "InternalOperation", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Telemetry.Agent": "^CWAgent\/([A-Za-z0-9.-]*)$", + "Telemetry.SDK": "^opentelemetry,([A-Za-z0-9-.]*),nodejs,Auto$", + "Host": "^ip(-[0-9]{1,3}){4}\\.ec2\\.internal$" +}, +{ + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "K8s.Cluster": "^{{platformInfo}}$", + "Environment": "^k8s:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^sample-app-deployment-{{testingId}}$", + "PlatformType": "^K8s$", + "Service": "^{{serviceName}}$", + "Operation": "InternalOperation", + "Version": "^1$", + "RemoteService": "local-root-client-call", + "RemoteOperation": "GET /", + "Telemetry.Source": "^ClientSpan$", + "Telemetry.Agent": "^CWAgent\/([A-Za-z0-9.-]*)$", + "Telemetry.SDK": "^opentelemetry,([A-Za-z0-9-.]*),nodejs,Auto$", + "Host": "^ip(-[0-9]{1,3}){4}\\.ec2\\.internal$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/node/k8s/client-call-metric.mustache b/validator/bin/main/expected-data-template/node/k8s/client-call-metric.mustache new file mode 100644 index 000000000..8bd30f354 --- /dev/null +++ b/validator/bin/main/expected-data-template/node/k8s/client-call-metric.mustache @@ -0,0 +1,269 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: GET /client-call + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: GET /client-call + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: GET /client-call + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/node/k8s/client-call-trace.mustache b/validator/bin/main/expected-data-template/node/k8s/client-call-trace.mustache new file mode 100644 index 000000000..d4638406b --- /dev/null +++ b/validator/bin/main/expected-data-template/node/k8s/client-call-trace.mustache @@ -0,0 +1,56 @@ +[{ + "name": "^{{serviceName}}$", + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^InternalOperation$", + "aws.local.environment": "^k8s:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "otel.resource.K8s.Workload": "^sample-app-deployment-{{testingId}}$", + "otel.resource.K8s.Node": "^i-[A-Za-z0-9]{17}$", + "otel.resource.K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$" + } + }, + "subsegments": [ + { + "name": "^local-root-client-call$", + "http": { + "request": { + "url": "^http://local-root-client-call/$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^InternalOperation$", + "aws.remote.service": "^local-root-client-call$", + "aws.remote.operation": "GET /", + "aws.local.environment": "^k8s:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "PlatformType": "^K8s$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "namespace": "^remote$" + } + ] +}, +{ + "name": "^local-root-client-call$", + "http": { + "request": { + "url": "^http://local-root-client-call/$", + "method": "^GET$" + }, + "response": { + "content_length": 0 + } + }, + "annotations": { + "aws.local.service": "^local-root-client-call$", + "aws.local.operation": "^GET /$" + } +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/node/k8s/outgoing-http-call-log.mustache b/validator/bin/main/expected-data-template/node/k8s/outgoing-http-call-log.mustache new file mode 100644 index 000000000..b0abcebbc --- /dev/null +++ b/validator/bin/main/expected-data-template/node/k8s/outgoing-http-call-log.mustache @@ -0,0 +1,37 @@ +[{ + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "K8s.Cluster": "^{{platformInfo}}$", + "Environment": "^k8s:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^sample-app-deployment-{{testingId}}$", + "PlatformType": "^K8s$", + "Service": "^{{serviceName}}$", + "Operation": "GET /outgoing-http-call", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Telemetry.Agent": "^CWAgent\/([A-Za-z0-9.-]*)$", + "Telemetry.SDK": "^opentelemetry,([A-Za-z0-9-.]*),nodejs,Auto$", + "Host": "^ip(-[0-9]{1,3}){4}\\.ec2\\.internal$" +}, +{ + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "K8s.Cluster": "^{{platformInfo}}$", + "Environment": "^k8s:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^sample-app-deployment-{{testingId}}$", + "PlatformType": "^K8s$", + "Service": "^{{serviceName}}$", + "Operation": "GET /outgoing-http-call", + "Version": "^1$", + "RemoteService": "www.amazon.com:80", + "RemoteOperation": "GET /", + "Telemetry.Source": "^ClientSpan$", + "Telemetry.Agent": "^CWAgent\/([A-Za-z0-9.-]*)$", + "Telemetry.SDK": "^opentelemetry,([A-Za-z0-9-.]*),nodejs,Auto$", + "Host": "^ip(-[0-9]{1,3}){4}\\.ec2\\.internal$" +}] + diff --git a/validator/bin/main/expected-data-template/node/k8s/outgoing-http-call-metric.mustache b/validator/bin/main/expected-data-template/node/k8s/outgoing-http-call-metric.mustache new file mode 100644 index 000000000..18c205007 --- /dev/null +++ b/validator/bin/main/expected-data-template/node/k8s/outgoing-http-call-metric.mustache @@ -0,0 +1,227 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com:80 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com:80 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: www.amazon.com:80 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com:80 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com:80 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: www.amazon.com:80 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com:80 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com:80 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: www.amazon.com:80 \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/node/k8s/outgoing-http-call-trace.mustache b/validator/bin/main/expected-data-template/node/k8s/outgoing-http-call-trace.mustache new file mode 100644 index 000000000..a0965a3b8 --- /dev/null +++ b/validator/bin/main/expected-data-template/node/k8s/outgoing-http-call-trace.mustache @@ -0,0 +1,63 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/outgoing-http-call$", + "method": "^GET$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /outgoing-http-call$", + "aws.local.environment": "^k8s:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "K8s.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}", + "otel.resource.K8s.Workload": "^sample-app-deployment-{{testingId}}$", + "otel.resource.K8s.Node": "^i-[A-Za-z0-9]{17}$", + "otel.resource.K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "otel.resource.host.name": "^ip(-[0-9]{1,3}){4}\\.ec2\\.internal$", + "PlatformType": "^K8s$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "http": { + "request": { + "url": "^http://www.amazon.com/$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /outgoing-http-call$", + "aws.remote.service": "^www.amazon.com:80$", + "aws.remote.operation": "^GET /$", + "aws.local.environment": "^k8s:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "aws.span.kind": "^CLIENT$", + "K8s.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "PlatformType": "^K8s$" + } + }, + "namespace": "^remote$", + "subsegments": [ + { + "name": "^www.amazon.com$" + } + ] + } + ] +}, +{ + "name": "^www.amazon.com:80$" +}] diff --git a/validator/bin/main/expected-data-template/node/k8s/remote-service-log.mustache b/validator/bin/main/expected-data-template/node/k8s/remote-service-log.mustache new file mode 100644 index 000000000..c48ea7626 --- /dev/null +++ b/validator/bin/main/expected-data-template/node/k8s/remote-service-log.mustache @@ -0,0 +1,37 @@ +[{ + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "K8s.Cluster": "^{{platformInfo}}$", + "Environment": "^k8s:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^sample-app-deployment-{{testingId}}$", + "PlatformType": "^K8s$", + "Service": "^{{serviceName}}$", + "Operation": "GET /remote-service", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Telemetry.Agent": "^CWAgent\/([A-Za-z0-9.-]*)$", + "Telemetry.SDK": "^opentelemetry,([A-Za-z0-9-.]*),nodejs,Auto$", + "Host": "^ip(-[0-9]{1,3}){4}\\.ec2\\.internal$" +}, +{ + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "K8s.Cluster": "^{{platformInfo}}$", + "Environment": "^k8s:{{platformInfo}}/{{appNamespace}}$", + "RemoteEnvironment": "^k8s:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^sample-app-deployment-{{testingId}}$", + "PlatformType": "^K8s$", + "Service": "^{{serviceName}}$", + "Operation": "GET /remote-service", + "Version": "^1$", + "RemoteService": "{{remoteServiceName}}", + "RemoteOperation": "GET /healthcheck", + "Telemetry.Source": "^ClientSpan$", + "Telemetry.Agent": "^CWAgent\/([A-Za-z0-9.-]*)$", + "Telemetry.SDK": "^opentelemetry,([A-Za-z0-9-.]*),nodejs,Auto$", + "Host": "^ip(-[0-9]{1,3}){4}\\.ec2\\.internal$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/node/k8s/remote-service-metric.mustache b/validator/bin/main/expected-data-template/node/k8s/remote-service-metric.mustache new file mode 100644 index 000000000..0288017f7 --- /dev/null +++ b/validator/bin/main/expected-data-template/node/k8s/remote-service-metric.mustache @@ -0,0 +1,506 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET /healthcheck + - + name: Service + value: {{remoteServiceName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET /remote-service + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET /healthcheck + - + name: Service + value: {{remoteServiceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET /remote-service + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET /remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET /healthcheck + - + name: Service + value: {{remoteServiceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET /remote-service + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceName}} + - + name: Service + value: {{serviceName}} \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/node/k8s/remote-service-trace.mustache b/validator/bin/main/expected-data-template/node/k8s/remote-service-trace.mustache new file mode 100644 index 000000000..9671afe60 --- /dev/null +++ b/validator/bin/main/expected-data-template/node/k8s/remote-service-trace.mustache @@ -0,0 +1,80 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/remote-service\\?ip=(([0-9]{1,3}.){3}[0-9]{1,3})&testingId={{testingId}}$", + "method": "^GET$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /remote-service$", + "aws.local.environment": "^k8s:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "K8s.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}", + "otel.resource.K8s.Workload": "^sample-app-deployment-{{testingId}}$", + "otel.resource.K8s.Node": "^i-[A-Za-z0-9]{17}$", + "otel.resource.K8s.Pod": "^sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "otel.resource.host.name": "^ip(-[0-9]{1,3}){4}\\.ec2\\.internal$", + "PlatformType": "^K8s$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "name": "^{{remoteServiceDeploymentName}}$", + "http": { + "request": { + "url": "^http://(([0-9]{1,3}.){3}[0-9]{1,3}):8001/healthcheck$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.environment": "^k8s:{{platformInfo}}/{{appNamespace}}$", + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /remote-service$", + "aws.remote.service": "^{{remoteServiceDeploymentName}}$", + "aws.remote.operation": "^GET /healthcheck$" + }, + "metadata": { + "default": { + "aws.span.kind": "^CLIENT$" + } + }, + "namespace": "^remote$" + } + ] +}, +{ + "name": "^{{remoteServiceDeploymentName}}$", + "http": { + "request": { + "url": "^http://(([0-9]{1,3}.){3}[0-9]{1,3}):8001/healthcheck$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{remoteServiceDeploymentName}}$", + "aws.local.operation": "^GET /healthcheck$", + "aws.local.environment": "^k8s:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "K8s.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}", + "PlatformType": "^K8s$", + "otel.resource.K8s.Workload": "^{{remoteServiceDeploymentName}}$", + "otel.resource.K8s.Node": "^i-[A-Za-z0-9]{17}$", + "otel.resource.K8s.Pod": "^{{remoteServiceDeploymentName}}(-[A-Za-z0-9]*)*$", + "aws.span.kind": "^LOCAL_ROOT$" + } + } +}] + + diff --git a/validator/bin/main/expected-data-template/node/lambda/aws-sdk-call-log.mustache b/validator/bin/main/expected-data-template/node/lambda/aws-sdk-call-log.mustache new file mode 100644 index 000000000..1d5d3c44e --- /dev/null +++ b/validator/bin/main/expected-data-template/node/lambda/aws-sdk-call-log.mustache @@ -0,0 +1,9 @@ +[{ + "Environment": "^lambda:default$", + "PlatformType": "^AWS::Lambda$", + "Operation": "{{serviceName}}/FunctionHandler", + "Service": "^{{serviceName}}$", + "RemoteService": "AWS::S3", + "RemoteOperation": "ListBuckets", + "Lambda.Function.Name": "^{{serviceName}}$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/node/lambda/aws-sdk-call-metric.mustache b/validator/bin/main/expected-data-template/node/lambda/aws-sdk-call-metric.mustache new file mode 100644 index 000000000..ced234c2f --- /dev/null +++ b/validator/bin/main/expected-data-template/node/lambda/aws-sdk-call-metric.mustache @@ -0,0 +1,227 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: {{serviceName}}/FunctionHandler + - + name: Service + value: {{serviceName}} + - + name: Environment + value: lambda:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: {{serviceName}}/FunctionHandler + - + name: Service + value: {{serviceName}} + - + name: Environment + value: lambda:default + - + name: RemoteOperation + value: ListBuckets + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: lambda:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: lambda:default + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: lambda:default + - + name: RemoteOperation + value: ListBuckets + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: {{serviceName}}/FunctionHandler + - + name: Service + value: {{serviceName}} + - + name: Environment + value: lambda:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: {{serviceName}}/FunctionHandler + - + name: Service + value: {{serviceName}} + - + name: Environment + value: lambda:default + - + name: RemoteOperation + value: ListBuckets + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: lambda:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: lambda:default + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: lambda:default + - + name: RemoteOperation + value: ListBuckets + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: {{serviceName}}/FunctionHandler + - + name: Service + value: {{serviceName}} + - + name: Environment + value: lambda:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: {{serviceName}}/FunctionHandler + - + name: Service + value: {{serviceName}} + - + name: Environment + value: lambda:default + - + name: RemoteOperation + value: ListBuckets + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: lambda:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: lambda:default + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: lambda:default + - + name: RemoteOperation + value: ListBuckets + - + name: RemoteService + value: AWS::S3 diff --git a/validator/bin/main/expected-data-template/node/lambda/lambda-invoke-log.mustache b/validator/bin/main/expected-data-template/node/lambda/lambda-invoke-log.mustache new file mode 100644 index 000000000..657631c57 --- /dev/null +++ b/validator/bin/main/expected-data-template/node/lambda/lambda-invoke-log.mustache @@ -0,0 +1,7 @@ +[{ + "Environment": "^lambda:default$", + "Operation": "{{serviceName}}/FunctionHandler", + "PlatformType": "^AWS::Lambda$", + "Service": "^{{serviceName}}$", + "Lambda.Function.Name": "^{{serviceName}}$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/node/lambda/lambda-invoke-metric.mustache b/validator/bin/main/expected-data-template/node/lambda/lambda-invoke-metric.mustache new file mode 100644 index 000000000..ca4d5042e --- /dev/null +++ b/validator/bin/main/expected-data-template/node/lambda/lambda-invoke-metric.mustache @@ -0,0 +1,74 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: lambda:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: {{serviceName}}/FunctionHandler + - + name: Environment + value: lambda:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: lambda:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: {{serviceName}}/FunctionHandler + - + name: Environment + value: lambda:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: lambda:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: {{serviceName}}/FunctionHandler + - + name: Environment + value: lambda:default diff --git a/validator/bin/main/expected-data-template/node/lambda/lambda-invoke-trace.mustache b/validator/bin/main/expected-data-template/node/lambda/lambda-invoke-trace.mustache new file mode 100644 index 000000000..811dba231 --- /dev/null +++ b/validator/bin/main/expected-data-template/node/lambda/lambda-invoke-trace.mustache @@ -0,0 +1,12 @@ +[{ + "name": "^{{serviceName}}/default$", + "subsegments": [ + { + "name": "^Lambda$", + "aws": { + "function_name": "^{{serviceName}}$" + }, + "namespace": "^aws$" + } + ] +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/python/ec2/asg/aws-sdk-call-log.mustache b/validator/bin/main/expected-data-template/python/ec2/asg/aws-sdk-call-log.mustache new file mode 100644 index 000000000..9584afbc0 --- /dev/null +++ b/validator/bin/main/expected-data-template/python/ec2/asg/aws-sdk-call-log.mustache @@ -0,0 +1,22 @@ +[{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:{{platformInfo}}$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET aws-sdk-call", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^{{privateDnsName}}$" +}, +{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:{{platformInfo}}$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET aws-sdk-call", + "Version": "^1$", + "RemoteService": "AWS::S3", + "RemoteOperation": "GetBucketLocation", + "RemoteResourceIdentifier": "^e2e-test-bucket-name-{{testingId}}$", + "RemoteResourceType": "^AWS::S3::Bucket$", + "Telemetry.Source": "^ClientSpan$", + "Host": "^{{privateDnsName}}$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/python/ec2/asg/aws-sdk-call-metric.mustache b/validator/bin/main/expected-data-template/python/ec2/asg/aws-sdk-call-metric.mustache new file mode 100644 index 000000000..c65dd8f52 --- /dev/null +++ b/validator/bin/main/expected-data-template/python/ec2/asg/aws-sdk-call-metric.mustache @@ -0,0 +1,376 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + + diff --git a/validator/bin/main/expected-data-template/python/ec2/asg/aws-sdk-call-trace.mustache b/validator/bin/main/expected-data-template/python/ec2/asg/aws-sdk-call-trace.mustache new file mode 100644 index 000000000..7e5230b24 --- /dev/null +++ b/validator/bin/main/expected-data-template/python/ec2/asg/aws-sdk-call-trace.mustache @@ -0,0 +1,70 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/aws-sdk-call\\?ip=(([0-9]{1,3}.){3}[0-9]{1,3})&testingId={{testingId}}$", + "method": "^GET$" + }, + "response": { + "status": "^200$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET aws-sdk-call$", + "aws.local.environment": "^ec2:{{platformInfo}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^{{platformInfo}}$", + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "otel.resource.ec2.tag.aws:autoscaling:groupName": "^{{platformInfo}}$", + "otel.resource.host.id": "^{{instanceId}}$", + "otel.resource.host.image.id": "^{{instanceAmi}}$", + "otel.resource.host.type": "^([a-z0-9]+\\.[a-z0-9]+)$", + "otel.resource.host.name": "^{{privateDnsName}}$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "name": "^S3$", + "http": { + "response": { + "status": "^404$" + } + }, + "aws": { + "operation": "^GetBucketLocation$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET aws-sdk-call$", + "aws.remote.service": "^AWS::S3$", + "aws.remote.operation": "^GetBucketLocation$", + "aws.remote.resource.type": "^AWS::S3::Bucket$", + "aws.remote.resource.identifier": "^e2e-test-bucket-name-{{testingId}}$", + "aws.local.environment": "^ec2:{{platformInfo}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^{{platformInfo}}$", + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "aws.span.kind": "^CLIENT$" + } + }, + "namespace": "^aws$" + } + ] +}, +{ + "name": "^S3$", + "aws": { + "operation": "^GetBucketLocation$" + } +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/python/ec2/asg/client-call-log.mustache b/validator/bin/main/expected-data-template/python/ec2/asg/client-call-log.mustache new file mode 100644 index 000000000..4968f46fa --- /dev/null +++ b/validator/bin/main/expected-data-template/python/ec2/asg/client-call-log.mustache @@ -0,0 +1,20 @@ +[{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:{{platformInfo}}$", + "PlatformType": "^AWS::EC2$", + "Operation": "InternalOperation", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^{{privateDnsName}}$" +}, +{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:{{platformInfo}}$", + "PlatformType": "^AWS::EC2$", + "Operation": "InternalOperation", + "Version": "^1$", + "RemoteService": "local-root-client-call", + "RemoteOperation": "GET /", + "Telemetry.Source": "^ClientSpan$", + "Host": "^{{privateDnsName}}$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/python/ec2/asg/client-call-metric.mustache b/validator/bin/main/expected-data-template/python/ec2/asg/client-call-metric.mustache new file mode 100644 index 000000000..7127ec861 --- /dev/null +++ b/validator/bin/main/expected-data-template/python/ec2/asg/client-call-metric.mustache @@ -0,0 +1,227 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: local-root-client-call + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: local-root-client-call + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: local-root-client-call \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/python/ec2/asg/client-call-trace.mustache b/validator/bin/main/expected-data-template/python/ec2/asg/client-call-trace.mustache new file mode 100644 index 000000000..1d76ddbd8 --- /dev/null +++ b/validator/bin/main/expected-data-template/python/ec2/asg/client-call-trace.mustache @@ -0,0 +1,57 @@ +[{ + "name": "^{{serviceName}}$", + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^InternalOperation$", + "aws.local.environment": "^ec2:{{platformInfo}}$" + }, + "metadata": { + "default": { + "otel.resource.host.image.id": "^{{instanceAmi}}$", + "otel.resource.host.type": "^([a-z0-9]+\\.[a-z0-9]+)$" + } + }, + "subsegments": [ + { + "name": "^local-root-client-call$", + "http": { + "request": { + "url": "^http://local-root-client-call/$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^InternalOperation$", + "aws.remote.service": "^local-root-client-call$", + "aws.remote.operation": "GET /", + "aws.local.environment": "^ec2:{{platformInfo}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^{{platformInfo}}$", + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "namespace": "^remote$" + } + ] +}, +{ + "name": "^local-root-client-call$", + "http": { + "request": { + "url": "^http://local-root-client-call/$", + "method": "^GET$" + }, + "response": { + "content_length": 0 + } + }, + "annotations": { + "aws.local.service": "^local-root-client-call$", + "aws.local.operation": "^GET /$" + } +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/python/ec2/asg/outgoing-http-call-log.mustache b/validator/bin/main/expected-data-template/python/ec2/asg/outgoing-http-call-log.mustache new file mode 100644 index 000000000..20504984a --- /dev/null +++ b/validator/bin/main/expected-data-template/python/ec2/asg/outgoing-http-call-log.mustache @@ -0,0 +1,21 @@ +[{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:{{platformInfo}}$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET outgoing-http-call", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^{{privateDnsName}}$" +}, +{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:{{platformInfo}}$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET outgoing-http-call", + "Version": "^1$", + "RemoteService": "www.amazon.com", + "RemoteOperation": "GET /", + "Telemetry.Source": "^ClientSpan$", + "Host": "^{{privateDnsName}}$" +}] + diff --git a/validator/bin/main/expected-data-template/python/ec2/asg/outgoing-http-call-metric.mustache b/validator/bin/main/expected-data-template/python/ec2/asg/outgoing-http-call-metric.mustache new file mode 100644 index 000000000..d5bb6bfe7 --- /dev/null +++ b/validator/bin/main/expected-data-template/python/ec2/asg/outgoing-http-call-metric.mustache @@ -0,0 +1,227 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: www.amazon.com + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: www.amazon.com + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: www.amazon.com diff --git a/validator/bin/main/expected-data-template/python/ec2/asg/outgoing-http-call-trace.mustache b/validator/bin/main/expected-data-template/python/ec2/asg/outgoing-http-call-trace.mustache new file mode 100644 index 000000000..526b5a9a9 --- /dev/null +++ b/validator/bin/main/expected-data-template/python/ec2/asg/outgoing-http-call-trace.mustache @@ -0,0 +1,63 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/outgoing-http-call$", + "method": "^GET$" + }, + "response": { + "status": "^200$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET outgoing-http-call$", + "aws.local.environment": "^ec2:{{platformInfo}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^{{platformInfo}}$", + "EC2.InstanceId": "^{{instanceId}}$", + "otel.resource.ec2.tag.aws:autoscaling:groupName": "^{{platformInfo}}$", + "otel.resource.host.id": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "otel.resource.host.image.id": "^{{instanceAmi}}$", + "otel.resource.host.type": "^([a-z0-9]+\\.[a-z0-9]+)$", + "otel.resource.host.name": "^{{privateDnsName}}$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "name": "^www.amazon.com$", + "http": { + "request": { + "url": "^https://www.amazon.com/$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET outgoing-http-call$", + "aws.remote.service": "^www.amazon.com$", + "aws.remote.operation": "^GET /$", + "aws.local.environment": "^ec2:{{platformInfo}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^{{platformInfo}}$", + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "aws.span.kind": "^CLIENT$" + } + }, + "namespace": "^remote$" + } + ] +}, +{ + "name": "^www.amazon.com$" +}] diff --git a/validator/bin/main/expected-data-template/python/ec2/asg/remote-service-log.mustache b/validator/bin/main/expected-data-template/python/ec2/asg/remote-service-log.mustache new file mode 100644 index 000000000..0432ab980 --- /dev/null +++ b/validator/bin/main/expected-data-template/python/ec2/asg/remote-service-log.mustache @@ -0,0 +1,20 @@ +[{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:{{platformInfo}}$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET remote-service", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^{{privateDnsName}}$" +}, +{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:{{platformInfo}}$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET remote-service", + "Version": "^1$", + "RemoteService": "{{remoteServiceDeploymentName}}", + "RemoteOperation": "GET /healthcheck", + "Telemetry.Source": "^ClientSpan$", + "Host": "^{{privateDnsName}}$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/python/ec2/asg/remote-service-metric.mustache b/validator/bin/main/expected-data-template/python/ec2/asg/remote-service-metric.mustache new file mode 100644 index 000000000..32f673b95 --- /dev/null +++ b/validator/bin/main/expected-data-template/python/ec2/asg/remote-service-metric.mustache @@ -0,0 +1,326 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: ec2:default + - + name: Operation + value: GET healthcheck + - + name: Service + value: {{remoteServiceName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceName}} + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: ec2:default + - + name: Operation + value: GET healthcheck + - + name: Service + value: {{remoteServiceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceName}} + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: ec2:default + - + name: Operation + value: GET healthcheck + - + name: Service + value: {{remoteServiceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceName}} + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:{{platformInfo}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceDeploymentName}} diff --git a/validator/bin/main/expected-data-template/python/ec2/asg/remote-service-trace.mustache b/validator/bin/main/expected-data-template/python/ec2/asg/remote-service-trace.mustache new file mode 100644 index 000000000..d93baefde --- /dev/null +++ b/validator/bin/main/expected-data-template/python/ec2/asg/remote-service-trace.mustache @@ -0,0 +1,85 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/remote-service\\?ip=(([0-9]{1,3}.){3}[0-9]{1,3})&testingId={{testingId}}$", + "method": "^GET$" + }, + "response": { + "status": "^200$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET remote-service$", + "aws.local.environment": "^ec2:{{platformInfo}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^{{platformInfo}}$", + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "otel.resource.ec2.tag.aws:autoscaling:groupName": "^{{platformInfo}}$", + "otel.resource.host.id": "^{{instanceId}}$", + "otel.resource.host.image.id": "^{{instanceAmi}}$", + "otel.resource.host.type": "^([a-z0-9]+\\.[a-z0-9]+)$", + "otel.resource.host.name": "^{{privateDnsName}}$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "name": "^{{remoteServiceDeploymentName}}$", + "http": { + "request": { + "url": "^http://(([0-9]{1,3}.){3}[0-9]{1,3}):8001/healthcheck$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET remote-service$", + "aws.remote.service": "^{{remoteServiceDeploymentName}}$", + "aws.remote.operation": "^GET /healthcheck$", + "aws.local.environment": "^ec2:{{platformInfo}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^{{platformInfo}}$", + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "aws.span.kind": "^CLIENT$" + } + }, + "namespace": "^remote$" + } + ] +}, +{ + "name": "^{{remoteServiceName}}$", + "http": { + "request": { + "url": "^http://(([0-9]{1,3}.){3}[0-9]{1,3}):8001/healthcheck$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{remoteServiceName}}$", + "aws.local.operation": "^GET healthcheck$", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "PlatformType": "^AWS::EC2$", + "otel.resource.host.image.id": "^{{instanceAmi}}$", + "otel.resource.host.type": "^([a-z0-9]+\\.[a-z0-9]+)$", + "aws.span.kind": "^LOCAL_ROOT$" + } + } +}] + + diff --git a/validator/bin/main/expected-data-template/python/ec2/default/aws-sdk-call-log.mustache b/validator/bin/main/expected-data-template/python/ec2/default/aws-sdk-call-log.mustache new file mode 100644 index 000000000..b72798685 --- /dev/null +++ b/validator/bin/main/expected-data-template/python/ec2/default/aws-sdk-call-log.mustache @@ -0,0 +1,22 @@ +[{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:default$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET aws-sdk-call", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}, +{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:default$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET aws-sdk-call", + "Version": "^1$", + "RemoteService": "AWS::S3", + "RemoteOperation": "GetBucketLocation", + "RemoteResourceIdentifier": "^e2e-test-bucket-name-{{testingId}}$", + "RemoteResourceType": "^AWS::S3::Bucket$", + "Telemetry.Source": "^ClientSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/python/ec2/default/aws-sdk-call-metric.mustache b/validator/bin/main/expected-data-template/python/ec2/default/aws-sdk-call-metric.mustache new file mode 100644 index 000000000..8c6824300 --- /dev/null +++ b/validator/bin/main/expected-data-template/python/ec2/default/aws-sdk-call-metric.mustache @@ -0,0 +1,436 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + + diff --git a/validator/bin/main/expected-data-template/python/ec2/default/aws-sdk-call-trace.mustache b/validator/bin/main/expected-data-template/python/ec2/default/aws-sdk-call-trace.mustache new file mode 100644 index 000000000..75050a440 --- /dev/null +++ b/validator/bin/main/expected-data-template/python/ec2/default/aws-sdk-call-trace.mustache @@ -0,0 +1,65 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/aws-sdk-call\\?ip=(([0-9]{1,3}.){3}[0-9]{1,3})&testingId={{testingId}}$", + "method": "^GET$" + }, + "response": { + "status": "^200$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET aws-sdk-call$", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "otel.resource.host.image.id": "^{{instanceAmi}}$", + "otel.resource.host.type": "^([a-z0-9]+\\.[a-z0-9]+)$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "name": "^S3$", + "http": { + "response": { + "status": "^404$" + } + }, + "aws": { + "operation": "^GetBucketLocation$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET aws-sdk-call$", + "aws.remote.service": "^AWS::S3$", + "aws.remote.operation": "^GetBucketLocation$", + "aws.remote.resource.type": "^AWS::S3::Bucket$", + "aws.remote.resource.identifier": "^e2e-test-bucket-name-{{testingId}}$", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "aws.span.kind": "^CLIENT$" + } + }, + "namespace": "^aws$" + } + ] +}, +{ + "name": "^S3$", + "aws": { + "operation": "^GetBucketLocation$" + } +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/python/ec2/default/client-call-log.mustache b/validator/bin/main/expected-data-template/python/ec2/default/client-call-log.mustache new file mode 100644 index 000000000..25c72000a --- /dev/null +++ b/validator/bin/main/expected-data-template/python/ec2/default/client-call-log.mustache @@ -0,0 +1,20 @@ +[{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:default$", + "PlatformType": "^AWS::EC2$", + "Operation": "InternalOperation", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}, +{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:default$", + "PlatformType": "^AWS::EC2$", + "Operation": "InternalOperation", + "Version": "^1$", + "RemoteService": "local-root-client-call", + "RemoteOperation": "GET /", + "Telemetry.Source": "^ClientSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/python/ec2/default/client-call-metric.mustache b/validator/bin/main/expected-data-template/python/ec2/default/client-call-metric.mustache new file mode 100644 index 000000000..86fa8bbf5 --- /dev/null +++ b/validator/bin/main/expected-data-template/python/ec2/default/client-call-metric.mustache @@ -0,0 +1,227 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:default + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: local-root-client-call + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:default + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: local-root-client-call + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: ec2:default + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: local-root-client-call \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/python/ec2/default/client-call-trace.mustache b/validator/bin/main/expected-data-template/python/ec2/default/client-call-trace.mustache new file mode 100644 index 000000000..27afa67bc --- /dev/null +++ b/validator/bin/main/expected-data-template/python/ec2/default/client-call-trace.mustache @@ -0,0 +1,56 @@ +[{ + "name": "^{{serviceName}}$", + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^InternalOperation$", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "otel.resource.host.image.id": "^{{instanceAmi}}$", + "otel.resource.host.type": "^([a-z0-9]+\\.[a-z0-9]+)$" + } + }, + "subsegments": [ + { + "name": "^local-root-client-call$", + "http": { + "request": { + "url": "^http://local-root-client-call/$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^InternalOperation$", + "aws.remote.service": "^local-root-client-call$", + "aws.remote.operation": "GET /", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "namespace": "^remote$" + } + ] +}, +{ + "name": "^local-root-client-call$", + "http": { + "request": { + "url": "^http://local-root-client-call/$", + "method": "^GET$" + }, + "response": { + "content_length": 0 + } + }, + "annotations": { + "aws.local.service": "^local-root-client-call$", + "aws.local.operation": "^GET /$" + } +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/python/ec2/default/outgoing-http-call-log.mustache b/validator/bin/main/expected-data-template/python/ec2/default/outgoing-http-call-log.mustache new file mode 100644 index 000000000..3bb5477a6 --- /dev/null +++ b/validator/bin/main/expected-data-template/python/ec2/default/outgoing-http-call-log.mustache @@ -0,0 +1,20 @@ +[{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:default$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET outgoing-http-call", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}, +{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:default$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET outgoing-http-call", + "Version": "^1$", + "RemoteService": "www.amazon.com", + "RemoteOperation": "GET /", + "Telemetry.Source": "^ClientSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/python/ec2/default/outgoing-http-call-metric.mustache b/validator/bin/main/expected-data-template/python/ec2/default/outgoing-http-call-metric.mustache new file mode 100644 index 000000000..a020d3250 --- /dev/null +++ b/validator/bin/main/expected-data-template/python/ec2/default/outgoing-http-call-metric.mustache @@ -0,0 +1,227 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: www.amazon.com + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: www.amazon.com + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: www.amazon.com diff --git a/validator/bin/main/expected-data-template/python/ec2/default/outgoing-http-call-trace.mustache b/validator/bin/main/expected-data-template/python/ec2/default/outgoing-http-call-trace.mustache new file mode 100644 index 000000000..9f44d4c1b --- /dev/null +++ b/validator/bin/main/expected-data-template/python/ec2/default/outgoing-http-call-trace.mustache @@ -0,0 +1,58 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/outgoing-http-call$", + "method": "^GET$" + }, + "response": { + "status": "^200$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET outgoing-http-call$", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "otel.resource.host.image.id": "^{{instanceAmi}}$", + "otel.resource.host.type": "^([a-z0-9]+\\.[a-z0-9]+)$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "name": "^www.amazon.com$", + "http": { + "request": { + "url": "^https://www.amazon.com/$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET outgoing-http-call$", + "aws.remote.service": "^www.amazon.com$", + "aws.remote.operation": "^GET /$", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "aws.span.kind": "^CLIENT$" + } + }, + "namespace": "^remote$" + } + ] +}, +{ + "name": "^www.amazon.com$" +}] diff --git a/validator/bin/main/expected-data-template/python/ec2/default/remote-service-log.mustache b/validator/bin/main/expected-data-template/python/ec2/default/remote-service-log.mustache new file mode 100644 index 000000000..603ef48a1 --- /dev/null +++ b/validator/bin/main/expected-data-template/python/ec2/default/remote-service-log.mustache @@ -0,0 +1,20 @@ +[{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:default$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET remote-service", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}, +{ + "EC2.InstanceId": "^{{instanceId}}$", + "Environment": "^ec2:default$", + "PlatformType": "^AWS::EC2$", + "Operation": "GET remote-service", + "Version": "^1$", + "RemoteService": "{{remoteServiceDeploymentName}}", + "RemoteOperation": "GET /healthcheck", + "Telemetry.Source": "^ClientSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/python/ec2/default/remote-service-metric.mustache b/validator/bin/main/expected-data-template/python/ec2/default/remote-service-metric.mustache new file mode 100644 index 000000000..569d323d9 --- /dev/null +++ b/validator/bin/main/expected-data-template/python/ec2/default/remote-service-metric.mustache @@ -0,0 +1,326 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: ec2:default + - + name: Operation + value: GET healthcheck + - + name: Service + value: {{remoteServiceName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceName}} + - + name: Environment + value: ec2:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: ec2:default + - + name: Operation + value: GET healthcheck + - + name: Service + value: {{remoteServiceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceName}} + - + name: Environment + value: ec2:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: ec2:default + - + name: Operation + value: GET healthcheck + - + name: Service + value: {{remoteServiceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceName}} + - + name: Environment + value: ec2:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ec2:default + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceDeploymentName}} diff --git a/validator/bin/main/expected-data-template/python/ec2/default/remote-service-trace.mustache b/validator/bin/main/expected-data-template/python/ec2/default/remote-service-trace.mustache new file mode 100644 index 000000000..05a40a8b8 --- /dev/null +++ b/validator/bin/main/expected-data-template/python/ec2/default/remote-service-trace.mustache @@ -0,0 +1,80 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/remote-service\\?ip=(([0-9]{1,3}.){3}[0-9]{1,3})&testingId={{testingId}}$", + "method": "^GET$" + }, + "response": { + "status": "^200$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET remote-service$", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "otel.resource.host.image.id": "^{{instanceAmi}}$", + "otel.resource.host.type": "^([a-z0-9]+\\.[a-z0-9]+)$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "name": "^{{remoteServiceDeploymentName}}$", + "http": { + "request": { + "url": "^http://(([0-9]{1,3}.){3}[0-9]{1,3}):8001/healthcheck$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET remote-service$", + "aws.remote.service": "^{{remoteServiceDeploymentName}}$", + "aws.remote.operation": "^GET /healthcheck$", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^{{instanceId}}$", + "PlatformType": "^AWS::EC2$", + "aws.span.kind": "^CLIENT$" + } + }, + "namespace": "^remote$" + } + ] +}, +{ + "name": "^{{remoteServiceName}}$", + "http": { + "request": { + "url": "^http://(([0-9]{1,3}.){3}[0-9]{1,3}):8001/healthcheck$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{remoteServiceName}}$", + "aws.local.operation": "^GET healthcheck$", + "aws.local.environment": "^ec2:default$" + }, + "metadata": { + "default": { + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "PlatformType": "^AWS::EC2$", + "otel.resource.host.image.id": "^{{instanceAmi}}$", + "otel.resource.host.type": "^([a-z0-9]+\\.[a-z0-9]+)$", + "aws.span.kind": "^LOCAL_ROOT$" + } + } +}] + + diff --git a/validator/bin/main/expected-data-template/python/ecs/hc-log.mustache b/validator/bin/main/expected-data-template/python/ecs/hc-log.mustache new file mode 100644 index 000000000..e453f0310 --- /dev/null +++ b/validator/bin/main/expected-data-template/python/ecs/hc-log.mustache @@ -0,0 +1,13 @@ +[{ + "ECS.Cluster": "^{{platformInfo}}$", + "ECS.TaskDefinitionFamily": "^{{serviceName}}$", + "ECS.TaskDefinitionRevision": "[0-9]*", + "ECS.TaskId": "[A-Za-z0-9]*", + "Environment": "^ecs:{{platformInfo}}$", + "Operation": "GET /", + "PlatformType": "^AWS::ECS$", + "Service": "^{{serviceName}}$", + "Telemetry.Agent": "^CWAgent\/([A-Za-z0-9.-]*)$", + "Telemetry.SDK": "^opentelemetry,([A-Za-z0-9-.]*),python,Auto$", + "Telemetry.Source": "^LocalRootSpan$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/python/ecs/hc-metric.mustache b/validator/bin/main/expected-data-template/python/ecs/hc-metric.mustache new file mode 100644 index 000000000..a35005faa --- /dev/null +++ b/validator/bin/main/expected-data-template/python/ecs/hc-metric.mustache @@ -0,0 +1,74 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET / + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ecs:{{platformInfo}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ecs:{{platformInfo}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET / + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ecs:{{platformInfo}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ecs:{{platformInfo}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET / + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ecs:{{platformInfo}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ecs:{{platformInfo}} \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/python/ecs/hc-trace.mustache b/validator/bin/main/expected-data-template/python/ecs/hc-trace.mustache new file mode 100644 index 000000000..229561f4a --- /dev/null +++ b/validator/bin/main/expected-data-template/python/ecs/hc-trace.mustache @@ -0,0 +1,30 @@ +[ + { + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^http://localhost:8080/$", + "method": "^GET$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET /$", + "aws.local.environment": "^ecs:{{platformInfo}}$" + }, + "metadata": { + "default": { + "otel.resource.aws.ecs.launchtype": "^fargate$", + "otel.resource.aws.ecs.task.revision": "[0-9]*", + "otel.resource.cloud.platform": "^aws_ecs$", + "aws.ecs.cluster.name": "^{{platformInfo}}$", + "aws.ecs.task.id": "[A-Za-z0-9]*", + "PlatformType": "^AWS::ECS$", + "aws.span.kind": "^LOCAL_ROOT$" + } + } + } +] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/python/eks/aws-sdk-call-log.mustache b/validator/bin/main/expected-data-template/python/eks/aws-sdk-call-log.mustache new file mode 100644 index 000000000..68ed86135 --- /dev/null +++ b/validator/bin/main/expected-data-template/python/eks/aws-sdk-call-log.mustache @@ -0,0 +1,36 @@ +[{ + "EC2.AutoScalingGroup": "^eks-.+", + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "EKS.Cluster": "^{{platformInfo}}$", + "Environment": "^eks:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^python-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^python-app-deployment-{{testingId}}$", + "PlatformType": "^AWS::EKS$", + "Service": "^{{serviceName}}$", + "Operation": "GET aws-sdk-call", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}, +{ + "EC2.AutoScalingGroup": "^eks-.+", + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "EKS.Cluster": "^{{platformInfo}}$", + "Environment": "^eks:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^python-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^python-app-deployment-{{testingId}}$", + "PlatformType": "^AWS::EKS$", + "Service": "^{{serviceName}}$", + "Operation": "GET aws-sdk-call", + "Version": "^1$", + "RemoteService": "AWS::S3", + "RemoteOperation": "GetBucketLocation", + "RemoteResourceIdentifier": "^e2e-test-bucket-name-{{testingId}}$", + "RemoteResourceType": "^AWS::S3::Bucket$", + "Telemetry.Source": "^ClientSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/python/eks/aws-sdk-call-metric.mustache b/validator/bin/main/expected-data-template/python/eks/aws-sdk-call-metric.mustache new file mode 100644 index 000000000..8d717a960 --- /dev/null +++ b/validator/bin/main/expected-data-template/python/eks/aws-sdk-call-metric.mustache @@ -0,0 +1,434 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceType + value: AWS::S3::Bucket + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} diff --git a/validator/bin/main/expected-data-template/python/eks/aws-sdk-call-trace.mustache b/validator/bin/main/expected-data-template/python/eks/aws-sdk-call-trace.mustache new file mode 100644 index 000000000..f3bf8e561 --- /dev/null +++ b/validator/bin/main/expected-data-template/python/eks/aws-sdk-call-trace.mustache @@ -0,0 +1,72 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/aws-sdk-call\\?ip=(([0-9]{1,3}.){3}[0-9]{1,3})&testingId={{testingId}}$", + "method": "^GET$" + }, + "response": { + "status": "^200$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET aws-sdk-call$", + "aws.local.environment": "^eks:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^eks-.+", + "EKS.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}", + "otel.resource.K8s.Workload": "^python-app-deployment-{{testingId}}$", + "otel.resource.K8s.Node": "^i-[A-Za-z0-9]{17}$", + "otel.resource.K8s.Pod": "^python-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "otel.resource.host.name": "^ip(-[0-9]{1,3}){4}.*$", + "PlatformType": "^AWS::EKS$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "name": "^S3$", + "http": { + "response": { + "status": "^404$" + } + }, + "aws": { + "region": "{{region}}", + "operation": "^GetBucketLocation$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET aws-sdk-call$", + "aws.remote.service": "^AWS::S3$", + "aws.remote.operation": "^GetBucketLocation$", + "aws.remote.resource.type": "^AWS::S3::Bucket$", + "aws.remote.resource.identifier": "^e2e-test-bucket-name-{{testingId}}$", + "aws.local.environment": "^eks:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^eks-.+", + "EKS.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "PlatformType": "^AWS::EKS$", + "aws.span.kind": "^CLIENT$" + } + }, + "namespace": "^aws$" + } + ] +}, +{ + "name": "^S3$", + "aws": { + "operation": "^GetBucketLocation$" + } +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/python/eks/client-call-log.mustache b/validator/bin/main/expected-data-template/python/eks/client-call-log.mustache new file mode 100644 index 000000000..39f024880 --- /dev/null +++ b/validator/bin/main/expected-data-template/python/eks/client-call-log.mustache @@ -0,0 +1,34 @@ +[{ + "EC2.AutoScalingGroup": "^eks-.+", + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "EKS.Cluster": "^{{platformInfo}}$", + "Environment": "^eks:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^python-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^python-app-deployment-{{testingId}}$", + "PlatformType": "^AWS::EKS$", + "Service": "^{{serviceName}}$", + "Operation": "InternalOperation", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}, +{ + "EC2.AutoScalingGroup": "^eks-.+", + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "EKS.Cluster": "^{{platformInfo}}$", + "Environment": "^eks:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^python-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^python-app-deployment-{{testingId}}$", + "PlatformType": "^AWS::EKS$", + "Service": "^{{serviceName}}$", + "Operation": "InternalOperation", + "Version": "^1$", + "RemoteService": "local-root-client-call", + "RemoteOperation": "GET /", + "Telemetry.Source": "^ClientSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/python/eks/client-call-metric.mustache b/validator/bin/main/expected-data-template/python/eks/client-call-metric.mustache new file mode 100644 index 000000000..178f10896 --- /dev/null +++ b/validator/bin/main/expected-data-template/python/eks/client-call-metric.mustache @@ -0,0 +1,269 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: GET client-call + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: GET client-call + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: GET client-call + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/python/eks/client-call-trace.mustache b/validator/bin/main/expected-data-template/python/eks/client-call-trace.mustache new file mode 100644 index 000000000..814d31ec6 --- /dev/null +++ b/validator/bin/main/expected-data-template/python/eks/client-call-trace.mustache @@ -0,0 +1,60 @@ +[{ + "name": "^{{serviceName}}$", + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^InternalOperation$", + "aws.local.environment": "^eks:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "otel.resource.K8s.Workload": "^python-app-deployment-{{testingId}}$", + "otel.resource.K8s.Node": "^i-[A-Za-z0-9]{17}$", + "otel.resource.K8s.Pod": "^python-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "otel.resource.host.name": "^ip(-[0-9]{1,3}){4}.*$" + } + }, + "subsegments": [ + { + "name": "^local-root-client-call$", + "http": { + "request": { + "url": "^http://local-root-client-call/$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^InternalOperation$", + "aws.remote.service": "^local-root-client-call$", + "aws.remote.operation": "GET /", + "aws.local.environment": "^eks:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^eks-.+", + "EKS.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "PlatformType": "^AWS::EKS$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "namespace": "^remote$" + } + ] +}, +{ + "name": "^local-root-client-call$", + "http": { + "request": { + "url": "^http://local-root-client-call/$", + "method": "^GET$" + }, + "response": { + "content_length": 0 + } + }, + "annotations": { + "aws.local.service": "^local-root-client-call$", + "aws.local.operation": "^GET /$" + } +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/python/eks/outgoing-http-call-log.mustache b/validator/bin/main/expected-data-template/python/eks/outgoing-http-call-log.mustache new file mode 100644 index 000000000..1d608ea4e --- /dev/null +++ b/validator/bin/main/expected-data-template/python/eks/outgoing-http-call-log.mustache @@ -0,0 +1,35 @@ +[{ + "EC2.AutoScalingGroup": "^eks-.+", + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "EKS.Cluster": "^{{platformInfo}}$", + "Environment": "^eks:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^python-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^python-app-deployment-{{testingId}}$", + "PlatformType": "^AWS::EKS$", + "Service": "^{{serviceName}}$", + "Operation": "GET outgoing-http-call", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}, +{ + "EC2.AutoScalingGroup": "^eks-.+", + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "EKS.Cluster": "^{{platformInfo}}$", + "Environment": "^eks:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^python-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^python-app-deployment-{{testingId}}$", + "PlatformType": "^AWS::EKS$", + "Service": "^{{serviceName}}$", + "Operation": "GET outgoing-http-call", + "Version": "^1$", + "RemoteService": "www.amazon.com", + "RemoteOperation": "GET /", + "Telemetry.Source": "^ClientSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}] + diff --git a/validator/bin/main/expected-data-template/python/eks/outgoing-http-call-metric.mustache b/validator/bin/main/expected-data-template/python/eks/outgoing-http-call-metric.mustache new file mode 100644 index 000000000..0a3a6c91b --- /dev/null +++ b/validator/bin/main/expected-data-template/python/eks/outgoing-http-call-metric.mustache @@ -0,0 +1,227 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: www.amazon.com + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: www.amazon.com + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: www.amazon.com \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/python/eks/outgoing-http-call-trace.mustache b/validator/bin/main/expected-data-template/python/eks/outgoing-http-call-trace.mustache new file mode 100644 index 000000000..61b9c042c --- /dev/null +++ b/validator/bin/main/expected-data-template/python/eks/outgoing-http-call-trace.mustache @@ -0,0 +1,64 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/outgoing-http-call$", + "method": "^GET$" + }, + "response": { + "status": "^200$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET outgoing-http-call$", + "aws.local.environment": "^eks:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^eks-.+", + "EKS.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}", + "otel.resource.K8s.Workload": "^python-app-deployment-{{testingId}}$", + "otel.resource.K8s.Node": "^i-[A-Za-z0-9]{17}$", + "otel.resource.K8s.Pod": "^python-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "otel.resource.host.name": "^ip(-[0-9]{1,3}){4}.*$", + "PlatformType": "^AWS::EKS$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "name": "^www.amazon.com$", + "http": { + "request": { + "url": "^https://www.amazon.com/$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET outgoing-http-call$", + "aws.remote.service": "^www.amazon.com$", + "aws.remote.operation": "^GET /$", + "aws.local.environment": "^eks:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^eks-.+", + "EKS.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "PlatformType": "^AWS::EKS$", + "aws.span.kind": "^CLIENT$" + } + }, + "namespace": "^remote$" + } + ] +}, +{ + "name": "^www.amazon.com$" +}] diff --git a/validator/bin/main/expected-data-template/python/eks/rds-mysql-log.mustache b/validator/bin/main/expected-data-template/python/eks/rds-mysql-log.mustache new file mode 100644 index 000000000..9e253f505 --- /dev/null +++ b/validator/bin/main/expected-data-template/python/eks/rds-mysql-log.mustache @@ -0,0 +1,37 @@ +[{ + "EC2.AutoScalingGroup": "^eks-.+", + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "EKS.Cluster": "^{{platformInfo}}$", + "Environment": "^eks:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^python-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^python-app-deployment-{{testingId}}$", + "PlatformType": "^AWS::EKS$", + "Service": "^{{serviceName}}$", + "Operation": "GET mysql", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}, +{ + "EC2.AutoScalingGroup": "^eks-.+", + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "EKS.Cluster": "^{{platformInfo}}$", + "Environment": "^eks:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^python-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^python-app-deployment-{{testingId}}$", + "PlatformType": "^AWS::EKS$", + "Service": "^{{serviceName}}$", + "Operation": "GET mysql", + "Version": "^1$", + "Telemetry.Source": "^ClientSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$", + "RemoteService": "mysql", + "RemoteOperation": "SELECT", + "RemoteResourceType": "DB::Connection", + "RemoteResourceIdentifier": "^{{remoteResourceIdentifier}}$", + "RemoteDbUser": "^{{remoteDbUser}}$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/python/eks/rds-mysql-metric.mustache b/validator/bin/main/expected-data-template/python/eks/rds-mysql-metric.mustache new file mode 100644 index 000000000..a5800c1b7 --- /dev/null +++ b/validator/bin/main/expected-data-template/python/eks/rds-mysql-metric.mustache @@ -0,0 +1,434 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET mysql + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET mysql + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: SELECT + - + name: RemoteService + value: mysql + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: mysql + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: SELECT + - + name: RemoteService + value: mysql + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: mysql + - + name: RemoteResourceType + value: DB::Connection + - + name: RemoteResourceIdentifier + value: {{remoteResourceIdentifier}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET mysql + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: SELECT + - + name: RemoteService + value: mysql + - + name: RemoteResourceType + value: DB::Connection + - + name: RemoteResourceIdentifier + value: {{remoteResourceIdentifier}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: SELECT + - + name: RemoteService + value: mysql + - + name: RemoteResourceType + value: DB::Connection + - + name: RemoteResourceIdentifier + value: {{remoteResourceIdentifier}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET mysql + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET mysql + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: SELECT + - + name: RemoteService + value: mysql + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: mysql + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: SELECT + - + name: RemoteService + value: mysql + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: mysql + - + name: RemoteResourceType + value: DB::Connection + - + name: RemoteResourceIdentifier + value: {{remoteResourceIdentifier}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET mysql + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: SELECT + - + name: RemoteService + value: mysql + - + name: RemoteResourceType + value: DB::Connection + - + name: RemoteResourceIdentifier + value: {{remoteResourceIdentifier}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: SELECT + - + name: RemoteService + value: mysql + - + name: RemoteResourceType + value: DB::Connection + - + name: RemoteResourceIdentifier + value: {{remoteResourceIdentifier}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET mysql + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET mysql + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: SELECT + - + name: RemoteService + value: mysql + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: mysql + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: SELECT + - + name: RemoteService + value: mysql + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: mysql + - + name: RemoteResourceType + value: DB::Connection + - + name: RemoteResourceIdentifier + value: {{remoteResourceIdentifier}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET mysql + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: SELECT + - + name: RemoteService + value: mysql + - + name: RemoteResourceType + value: DB::Connection + - + name: RemoteResourceIdentifier + value: {{remoteResourceIdentifier}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: SELECT + - + name: RemoteService + value: mysql + - + name: RemoteResourceType + value: DB::Connection + - + name: RemoteResourceIdentifier + value: {{remoteResourceIdentifier}} \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/python/eks/rds-mysql-trace.mustache b/validator/bin/main/expected-data-template/python/eks/rds-mysql-trace.mustache new file mode 100644 index 000000000..3ad7f5964 --- /dev/null +++ b/validator/bin/main/expected-data-template/python/eks/rds-mysql-trace.mustache @@ -0,0 +1,71 @@ +[ + { + "name": "^{{serviceName}}$", + "origin": "^AWS::EKS::Container$", + "subsegments": [ + { + "name": "^mysql$", + "namespace": "^remote$", + "aws": { + "account_id": "^{{accountId}}$", + "xray": { + "auto_instrumentation": true, + "sdk": "^opentelemetry for python$" + } + }, + "sql": { + "connection_string": "^localhost/information_schema$", + "url": "^SELECT$", + "sanitized_query": "^SELECT \\* FROM tables LIMIT 1;$", + "database_type": "^mysql$" + }, + "metadata": { + "default": { + "aws.span.kind": "^CLIENT$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET mysql$", + "aws.remote.resource.type": "^DB::Connection$", + "aws.remote.resource.identifier": "^{{remoteResourceIdentifier}}$", + "aws.remote.service": "^mysql$", + "aws.remote.operation": "^SELECT$" + } + } + ], + "aws": { + "account_id": "^{{accountId}}$", + "xray": { + "auto_instrumentation": true, + "sdk": "^opentelemetry for python$" + } + }, + "metadata": { + "default": { + "aws.span.kind": "^LOCAL_ROOT$", + "http.route": "^mysql$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET mysql$" + } + }, + { + "name": "^mysql$", + "origin": "^Database::SQL$", + "sql": { + "connection_string": "^localhost/information_schema$", + "url": "^SELECT$", + "sanitized_query": "^SELECT \\* FROM tables LIMIT 1;$", + "database_type": "^mysql$" + }, + "annotations": { + "aws.local.service": "^mysql$", + "aws.local.operation": "^SELECT$", + "aws.local.resource.identifier": "^{{remoteResourceIdentifier}}$", + "aws.local.resource.type": "^DB::Connection$" + } + } +] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/python/eks/remote-service-log.mustache b/validator/bin/main/expected-data-template/python/eks/remote-service-log.mustache new file mode 100644 index 000000000..338c342fb --- /dev/null +++ b/validator/bin/main/expected-data-template/python/eks/remote-service-log.mustache @@ -0,0 +1,35 @@ +[{ + "EC2.AutoScalingGroup": "^eks-.+", + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "EKS.Cluster": "^{{platformInfo}}$", + "Environment": "^eks:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^python-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^python-app-deployment-{{testingId}}$", + "PlatformType": "^AWS::EKS$", + "Service": "^{{serviceName}}$", + "Operation": "GET remote-service", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}, +{ + "EC2.AutoScalingGroup": "^eks-.+", + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "EKS.Cluster": "^{{platformInfo}}$", + "Environment": "^eks:{{platformInfo}}/{{appNamespace}}$", + "RemoteEnvironment": "^eks:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^python-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^python-app-deployment-{{testingId}}$", + "PlatformType": "^AWS::EKS$", + "Service": "^{{serviceName}}$", + "Operation": "GET remote-service", + "Version": "^1$", + "RemoteService": "{{remoteServiceDeploymentName}}", + "RemoteOperation": "GET /healthcheck", + "Telemetry.Source": "^ClientSpan$", + "Host": "^ip(-[0-9]{1,3}){4}.*$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/python/eks/remote-service-metric.mustache b/validator/bin/main/expected-data-template/python/eks/remote-service-metric.mustache new file mode 100644 index 000000000..d40a92c42 --- /dev/null +++ b/validator/bin/main/expected-data-template/python/eks/remote-service-metric.mustache @@ -0,0 +1,506 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET healthcheck + - + name: Service + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceDeploymentName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET remote-service + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET healthcheck + - + name: Service + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceDeploymentName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET remote-service + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET healthcheck + - + name: Service + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceDeploymentName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: eks:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET remote-service + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceDeploymentName}} + - + name: Service + value: {{serviceName}} \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/python/eks/remote-service-trace.mustache b/validator/bin/main/expected-data-template/python/eks/remote-service-trace.mustache new file mode 100644 index 000000000..a9f202cb5 --- /dev/null +++ b/validator/bin/main/expected-data-template/python/eks/remote-service-trace.mustache @@ -0,0 +1,86 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/remote-service\\?ip=(([0-9]{1,3}.){3}[0-9]{1,3})&testingId={{testingId}}$", + "method": "^GET$" + }, + "response": { + "status": "^200$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET remote-service$", + "aws.local.environment": "^eks:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^eks-.+", + "EKS.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}", + "otel.resource.K8s.Workload": "^python-app-deployment-{{testingId}}$", + "otel.resource.K8s.Node": "^i-[A-Za-z0-9]{17}$", + "otel.resource.K8s.Pod": "^python-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "otel.resource.host.name": "^ip(-[0-9]{1,3}){4}.*$", + "PlatformType": "^AWS::EKS$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "name": "^{{remoteServiceDeploymentName}}$", + "http": { + "request": { + "url": "^http://(([0-9]{1,3}.){3}[0-9]{1,3}):8001/healthcheck$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET remote-service$", + "aws.remote.service": "^{{remoteServiceDeploymentName}}$", + "aws.remote.operation": "^GET /healthcheck$", + "aws.local.environment": "^eks:{{platformInfo}}/{{appNamespace}}$", + "aws.remote.environment": "^eks:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "EC2.AutoScalingGroup": "^eks-.+", + "EKS.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "PlatformType": "^AWS::EKS$", + "aws.span.kind": "^CLIENT$" + } + }, + "namespace": "^remote$" + } + ] +}, +{ + "name": "^{{remoteServiceDeploymentName}}$", + "http": { + "request": { + "url": "^http://(([0-9]{1,3}.){3}[0-9]{1,3}):8001/healthcheck$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{remoteServiceDeploymentName}}$", + "aws.local.operation": "^GET healthcheck$", + "aws.local.environment": "^eks:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "otel.resource.K8s.Workload": "^{{remoteServiceDeploymentName}}$", + "otel.resource.K8s.Node": "^i-[A-Za-z0-9]{17}$", + "otel.resource.K8s.Pod": "^{{remoteServiceDeploymentName}}(-[A-Za-z0-9]*)*$", + "aws.span.kind": "^LOCAL_ROOT$" + } + } +}] + + diff --git a/validator/bin/main/expected-data-template/python/k8s/aws-sdk-call-log.mustache b/validator/bin/main/expected-data-template/python/k8s/aws-sdk-call-log.mustache new file mode 100644 index 000000000..9a5ac3279 --- /dev/null +++ b/validator/bin/main/expected-data-template/python/k8s/aws-sdk-call-log.mustache @@ -0,0 +1,38 @@ +[{ + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "K8s.Cluster": "^{{platformInfo}}$", + "Environment": "^k8s:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^python-sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^python-sample-app-deployment-{{testingId}}$", + "PlatformType": "^K8s$", + "Service": "^{{serviceName}}$", + "Operation": "GET aws-sdk-call", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Telemetry.Agent": "^CWAgent\/([A-Za-z0-9.-]*)$", + "Telemetry.SDK": "^opentelemetry,([A-Za-z0-9-.]*),python,Auto$", + "Host": "^ip(-[0-9]{1,3}){4}\\.ec2\\.internal$" +}, +{ + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "K8s.Cluster": "^{{platformInfo}}$", + "Environment": "^k8s:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^python-sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^python-sample-app-deployment-{{testingId}}$", + "PlatformType": "^K8s$", + "Service": "^{{serviceName}}$", + "Operation": "GET aws-sdk-call", + "Version": "^1$", + "RemoteService": "AWS::S3", + "RemoteOperation": "GetBucketLocation", + "RemoteResourceIdentifier": "e2e-test-bucket-name", + "RemoteResourceType": "AWS::S3::Bucket", + "Telemetry.Source": "^ClientSpan$", + "Telemetry.Agent": "^CWAgent\/([A-Za-z0-9.-]*)$", + "Telemetry.SDK": "^opentelemetry,([A-Za-z0-9-.]*),python,Auto$", + "Host": "^ip(-[0-9]{1,3}){4}\\.ec2\\.internal$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/python/k8s/aws-sdk-call-metric.mustache b/validator/bin/main/expected-data-template/python/k8s/aws-sdk-call-metric.mustache new file mode 100644 index 000000000..d276397ae --- /dev/null +++ b/validator/bin/main/expected-data-template/python/k8s/aws-sdk-call-metric.mustache @@ -0,0 +1,374 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET aws-sdk-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GetBucketLocation + - + name: RemoteService + value: AWS::S3 + - + name: RemoteResourceIdentifier + value: e2e-test-bucket-name-{{testingId}} + - + name: RemoteResourceType + value: AWS::S3::Bucket \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/python/k8s/aws-sdk-call-trace.mustache b/validator/bin/main/expected-data-template/python/k8s/aws-sdk-call-trace.mustache new file mode 100644 index 000000000..a1f6f6a43 --- /dev/null +++ b/validator/bin/main/expected-data-template/python/k8s/aws-sdk-call-trace.mustache @@ -0,0 +1,70 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/aws-sdk-call\\?ip=(([0-9]{1,3}.){3}[0-9]{1,3})&testingId={{testingId}}$", + "method": "^GET$" + }, + "response": { + "status": "^200$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET aws-sdk-call$", + "aws.local.environment": "^k8s:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "K8s.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}", + "otel.resource.K8s.Workload": "^python-sample-app-deployment-{{testingId}}$", + "otel.resource.K8s.Node": "^i-[A-Za-z0-9]{17}$", + "otel.resource.K8s.Pod": "^python-sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "otel.resource.host.name": "^ip(-[0-9]{1,3}){4}\\.ec2\\.internal$", + "PlatformType": "^K8s$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "name": "^S3$", + "http": { + "response": { + "status": "^404$" + } + }, + "aws": { + "region": "{{region}}", + "operation": "^GetBucketLocation$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET aws-sdk-call$", + "aws.remote.service": "^AWS::S3$", + "aws.remote.operation": "^GetBucketLocation$", + "aws.remote.resource.type": "^AWS::S3::Bucket$", + "aws.remote.resource.identifier": "e2e-test-bucket-name", + "aws.local.environment": "^k8s:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "K8s.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "PlatformType": "^K8s$", + "aws.span.kind": "^CLIENT$" + } + }, + "namespace": "^aws$" + } + ] +}, +{ + "name": "^S3$", + "aws": { + "operation": "^GetBucketLocation$" + } +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/python/k8s/client-call-log.mustache b/validator/bin/main/expected-data-template/python/k8s/client-call-log.mustache new file mode 100644 index 000000000..322b58ee1 --- /dev/null +++ b/validator/bin/main/expected-data-template/python/k8s/client-call-log.mustache @@ -0,0 +1,36 @@ +[{ + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "K8s.Cluster": "^{{platformInfo}}$", + "Environment": "^k8s:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^python-sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^python-sample-app-deployment-{{testingId}}$", + "PlatformType": "^K8s$", + "Service": "^{{serviceName}}$", + "Operation": "InternalOperation", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Telemetry.Agent": "^CWAgent\/([A-Za-z0-9.-]*)$", + "Telemetry.SDK": "^opentelemetry,([A-Za-z0-9-.]*),python,Auto$", + "Host": "^ip(-[0-9]{1,3}){4}\\.ec2\\.internal$" +}, +{ + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "K8s.Cluster": "^{{platformInfo}}$", + "Environment": "^k8s:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^python-sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^python-sample-app-deployment-{{testingId}}$", + "PlatformType": "^K8s$", + "Service": "^{{serviceName}}$", + "Operation": "InternalOperation", + "Version": "^1$", + "RemoteService": "local-root-client-call", + "RemoteOperation": "GET /", + "Telemetry.Source": "^ClientSpan$", + "Telemetry.Agent": "^CWAgent\/([A-Za-z0-9.-]*)$", + "Telemetry.SDK": "^opentelemetry,([A-Za-z0-9-.]*),python,Auto$", + "Host": "^ip(-[0-9]{1,3}){4}\\.ec2\\.internal$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/python/k8s/client-call-metric.mustache b/validator/bin/main/expected-data-template/python/k8s/client-call-metric.mustache new file mode 100644 index 000000000..4d79174c8 --- /dev/null +++ b/validator/bin/main/expected-data-template/python/k8s/client-call-metric.mustache @@ -0,0 +1,269 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: GET client-call + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: GET client-call + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: GET client-call + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: InternalOperation + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call + - + name: RemoteOperation + value: GET / + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: local-root-client-call \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/python/k8s/client-call-trace.mustache b/validator/bin/main/expected-data-template/python/k8s/client-call-trace.mustache new file mode 100644 index 000000000..5c54fdba5 --- /dev/null +++ b/validator/bin/main/expected-data-template/python/k8s/client-call-trace.mustache @@ -0,0 +1,55 @@ +[{ + "name": "^{{serviceName}}$", + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^InternalOperation$", + "aws.local.environment": "^k8s:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "otel.resource.K8s.Workload": "^python-sample-app-deployment-{{testingId}}$", + "otel.resource.K8s.Node": "^i-[A-Za-z0-9]{17}$", + "otel.resource.K8s.Pod": "^python-sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$" + } + }, + "subsegments": [ + { + "name": "^local-root-client-call$", + "http": { + "request": { + "url": "^http://local-root-client-call/$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^InternalOperation$", + "aws.remote.service": "^local-root-client-call$", + "aws.remote.operation": "GET /", + "aws.local.environment": "^k8s:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "namespace": "^remote$" + } + ] +}, +{ + "name": "^local-root-client-call$", + "http": { + "request": { + "url": "^http://local-root-client-call/$", + "method": "^GET$" + }, + "response": { + "content_length": 0 + } + }, + "annotations": { + "aws.local.service": "^local-root-client-call$", + "aws.local.operation": "^GET /$" + } +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/python/k8s/outgoing-http-call-log.mustache b/validator/bin/main/expected-data-template/python/k8s/outgoing-http-call-log.mustache new file mode 100644 index 000000000..6fe0a684e --- /dev/null +++ b/validator/bin/main/expected-data-template/python/k8s/outgoing-http-call-log.mustache @@ -0,0 +1,36 @@ +[{ + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "K8s.Cluster": "^{{platformInfo}}$", + "Environment": "^k8s:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^python-sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^python-sample-app-deployment-{{testingId}}$", + "PlatformType": "^K8s$", + "Service": "^{{serviceName}}$", + "Operation": "GET outgoing-http-call", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Telemetry.Agent": "^CWAgent\/([A-Za-z0-9.-]*)$", + "Telemetry.SDK": "^opentelemetry,([A-Za-z0-9-.]*),python,Auto$", + "Host": "^ip(-[0-9]{1,3}){4}\\.ec2\\.internal$" +}, +{ + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "K8s.Cluster": "^{{platformInfo}}$", + "Environment": "^k8s:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^python-sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^python-sample-app-deployment-{{testingId}}$", + "PlatformType": "^K8s$", + "Service": "^{{serviceName}}$", + "Operation": "GET outgoing-http-call", + "Version": "^1$", + "RemoteService": "www.amazon.com", + "RemoteOperation": "GET /", + "Telemetry.Source": "^ClientSpan$", + "Telemetry.Agent": "^CWAgent\/([A-Za-z0-9.-]*)$", + "Telemetry.SDK": "^opentelemetry,([A-Za-z0-9-.]*),python,Auto$", + "Host": "^ip(-[0-9]{1,3}){4}\\.ec2\\.internal$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/python/k8s/outgoing-http-call-metric.mustache b/validator/bin/main/expected-data-template/python/k8s/outgoing-http-call-metric.mustache new file mode 100644 index 000000000..09b1a018a --- /dev/null +++ b/validator/bin/main/expected-data-template/python/k8s/outgoing-http-call-metric.mustache @@ -0,0 +1,227 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: www.amazon.com + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: www.amazon.com + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET outgoing-http-call + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET / + - + name: RemoteService + value: www.amazon.com + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: www.amazon.com \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/python/k8s/outgoing-http-call-trace.mustache b/validator/bin/main/expected-data-template/python/k8s/outgoing-http-call-trace.mustache new file mode 100644 index 000000000..cb682d63a --- /dev/null +++ b/validator/bin/main/expected-data-template/python/k8s/outgoing-http-call-trace.mustache @@ -0,0 +1,62 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/outgoing-http-call$", + "method": "^GET$" + }, + "response": { + "status": "^200$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET outgoing-http-call$", + "aws.local.environment": "^k8s:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "K8s.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}", + "otel.resource.K8s.Workload": "^python-sample-app-deployment-{{testingId}}$", + "otel.resource.K8s.Node": "^i-[A-Za-z0-9]{17}$", + "otel.resource.K8s.Pod": "^python-sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "otel.resource.host.name": "^ip(-[0-9]{1,3}){4}\\.ec2\\.internal$", + "PlatformType": "^K8s$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "name": "^www.amazon.com$", + "http": { + "request": { + "url": "^https://www.amazon.com/$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET outgoing-http-call$", + "aws.remote.service": "^www.amazon.com$", + "aws.remote.operation": "^GET /$", + "aws.local.environment": "^k8s:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "aws.span.kind": "^CLIENT$", + "K8s.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "PlatformType": "^K8s$" + } + }, + "namespace": "^remote$" + } + ] +}, +{ + "name": "^www.amazon.com$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/python/k8s/remote-service-log.mustache b/validator/bin/main/expected-data-template/python/k8s/remote-service-log.mustache new file mode 100644 index 000000000..1e26e9c97 --- /dev/null +++ b/validator/bin/main/expected-data-template/python/k8s/remote-service-log.mustache @@ -0,0 +1,37 @@ +[{ + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "K8s.Cluster": "^{{platformInfo}}$", + "Environment": "^k8s:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^python-sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^python-sample-app-deployment-{{testingId}}$", + "PlatformType": "^K8s$", + "Service": "^{{serviceName}}$", + "Operation": "GET remote-service", + "Version": "^1$", + "Telemetry.Source": "^LocalRootSpan$", + "Telemetry.Agent": "^CWAgent\/([A-Za-z0-9.-]*)$", + "Telemetry.SDK": "^opentelemetry,([A-Za-z0-9-.]*),python,Auto$", + "Host": "^ip(-[0-9]{1,3}){4}\\.ec2\\.internal$" +}, +{ + "EC2.InstanceId": "^i-[A-Za-z0-9]{17}$", + "K8s.Cluster": "^{{platformInfo}}$", + "Environment": "^k8s:{{platformInfo}}/{{appNamespace}}$", + "RemoteEnvironment": "^k8s:{{platformInfo}}/{{appNamespace}}$", + "K8s.Namespace": "^{{appNamespace}}$", + "K8s.Node": "^i-[A-Za-z0-9]{17}$", + "K8s.Pod": "^python-sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "K8s.Workload": "^python-sample-app-deployment-{{testingId}}$", + "PlatformType": "^K8s$", + "Service": "^{{serviceName}}$", + "Operation": "GET remote-service", + "Version": "^1$", + "RemoteService": "{{remoteServiceName}}", + "RemoteOperation": "GET /healthcheck", + "Telemetry.Source": "^ClientSpan$", + "Telemetry.Agent": "^CWAgent\/([A-Za-z0-9.-]*)$", + "Telemetry.SDK": "^opentelemetry,([A-Za-z0-9-.]*),python,Auto$", + "Host": "^ip(-[0-9]{1,3}){4}\\.ec2\\.internal$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/python/k8s/remote-service-metric.mustache b/validator/bin/main/expected-data-template/python/k8s/remote-service-metric.mustache new file mode 100644 index 000000000..6a7a93dd9 --- /dev/null +++ b/validator/bin/main/expected-data-template/python/k8s/remote-service-metric.mustache @@ -0,0 +1,506 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET healthcheck + - + name: Service + value: {{remoteServiceName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET remote-service + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET healthcheck + - + name: Service + value: {{remoteServiceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET remote-service + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: GET remote-service + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET healthcheck + - + name: Service + value: {{remoteServiceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{remoteServiceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: RemoteService + value: {{remoteServiceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteService + value: {{remoteServiceName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceName}} + - + name: Service + value: {{serviceName}} + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Environment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: RemoteEnvironment + value: k8s:{{platformInfo}}/{{appNamespace}} + - + name: Operation + value: GET remote-service + - + name: RemoteOperation + value: GET /healthcheck + - + name: RemoteService + value: {{remoteServiceName}} + - + name: Service + value: {{serviceName}} \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/python/k8s/remote-service-trace.mustache b/validator/bin/main/expected-data-template/python/k8s/remote-service-trace.mustache new file mode 100644 index 000000000..d3709cca2 --- /dev/null +++ b/validator/bin/main/expected-data-template/python/k8s/remote-service-trace.mustache @@ -0,0 +1,77 @@ +[{ + "name": "^{{serviceName}}$", + "http": { + "request": { + "url": "^{{endpoint}}/remote-service\\?ip=(([0-9]{1,3}.){3}[0-9]{1,3})&testingId={{testingId}}$", + "method": "^GET$" + }, + "response": { + "status": "^200$" + } + }, + "aws": { + "account_id": "^{{accountId}}$" + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET remote-service$", + "aws.local.environment": "^k8s:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "K8s.Cluster": "^{{platformInfo}}$", + "K8s.Namespace": "^{{appNamespace}}", + "otel.resource.K8s.Workload": "^python-sample-app-deployment-{{testingId}}$", + "otel.resource.K8s.Node": "^i-[A-Za-z0-9]{17}$", + "otel.resource.K8s.Pod": "^python-sample-app-deployment-{{testingId}}(-[A-Za-z0-9]*)*$", + "otel.resource.host.name": "^ip(-[0-9]{1,3}){4}\\.ec2\\.internal$", + "PlatformType": "^K8s$", + "aws.span.kind": "^LOCAL_ROOT$" + } + }, + "subsegments": [ + { + "name": "^{{remoteServiceDeploymentName}}$", + "http": { + "request": { + "url": "^http://(([0-9]{1,3}.){3}[0-9]{1,3}):8001/healthcheck$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{serviceName}}$", + "aws.local.operation": "^GET remote-service$", + "aws.remote.service": "^{{remoteServiceDeploymentName}}$", + "aws.remote.operation": "^GET /healthcheck$" + }, + "metadata": { + "default": { + "aws.span.kind": "^CLIENT$" + } + }, + "namespace": "^remote$" + } + ] +}, +{ + "name": "^{{remoteServiceDeploymentName}}$", + "http": { + "request": { + "url": "^http://(([0-9]{1,3}.){3}[0-9]{1,3}):8001/healthcheck$", + "method": "^GET$" + } + }, + "annotations": { + "aws.local.service": "^{{remoteServiceDeploymentName}}$", + "aws.local.operation": "^GET healthcheck$", + "aws.local.environment": "^k8s:{{platformInfo}}/{{appNamespace}}$" + }, + "metadata": { + "default": { + "otel.resource.K8s.Workload": "^{{remoteServiceDeploymentName}}$", + "otel.resource.K8s.Node": "^i-[A-Za-z0-9]{17}$", + "otel.resource.K8s.Pod": "^{{remoteServiceDeploymentName}}(-[A-Za-z0-9]*)*$", + "aws.span.kind": "^LOCAL_ROOT$" + } + } +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/python/lambda/aws-sdk-call-log.mustache b/validator/bin/main/expected-data-template/python/lambda/aws-sdk-call-log.mustache new file mode 100644 index 000000000..1d5d3c44e --- /dev/null +++ b/validator/bin/main/expected-data-template/python/lambda/aws-sdk-call-log.mustache @@ -0,0 +1,9 @@ +[{ + "Environment": "^lambda:default$", + "PlatformType": "^AWS::Lambda$", + "Operation": "{{serviceName}}/FunctionHandler", + "Service": "^{{serviceName}}$", + "RemoteService": "AWS::S3", + "RemoteOperation": "ListBuckets", + "Lambda.Function.Name": "^{{serviceName}}$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/python/lambda/aws-sdk-call-metric.mustache b/validator/bin/main/expected-data-template/python/lambda/aws-sdk-call-metric.mustache new file mode 100644 index 000000000..ced234c2f --- /dev/null +++ b/validator/bin/main/expected-data-template/python/lambda/aws-sdk-call-metric.mustache @@ -0,0 +1,227 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: {{serviceName}}/FunctionHandler + - + name: Service + value: {{serviceName}} + - + name: Environment + value: lambda:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: {{serviceName}}/FunctionHandler + - + name: Service + value: {{serviceName}} + - + name: Environment + value: lambda:default + - + name: RemoteOperation + value: ListBuckets + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: lambda:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: lambda:default + - + name: RemoteService + value: AWS::S3 + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: lambda:default + - + name: RemoteOperation + value: ListBuckets + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: {{serviceName}}/FunctionHandler + - + name: Service + value: {{serviceName}} + - + name: Environment + value: lambda:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: {{serviceName}}/FunctionHandler + - + name: Service + value: {{serviceName}} + - + name: Environment + value: lambda:default + - + name: RemoteOperation + value: ListBuckets + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: lambda:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: lambda:default + - + name: RemoteService + value: AWS::S3 + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: lambda:default + - + name: RemoteOperation + value: ListBuckets + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: {{serviceName}}/FunctionHandler + - + name: Service + value: {{serviceName}} + - + name: Environment + value: lambda:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Operation + value: {{serviceName}}/FunctionHandler + - + name: Service + value: {{serviceName}} + - + name: Environment + value: lambda:default + - + name: RemoteOperation + value: ListBuckets + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: lambda:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: lambda:default + - + name: RemoteService + value: AWS::S3 + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: lambda:default + - + name: RemoteOperation + value: ListBuckets + - + name: RemoteService + value: AWS::S3 diff --git a/validator/bin/main/expected-data-template/python/lambda/lambda-invoke-log.mustache b/validator/bin/main/expected-data-template/python/lambda/lambda-invoke-log.mustache new file mode 100644 index 000000000..657631c57 --- /dev/null +++ b/validator/bin/main/expected-data-template/python/lambda/lambda-invoke-log.mustache @@ -0,0 +1,7 @@ +[{ + "Environment": "^lambda:default$", + "Operation": "{{serviceName}}/FunctionHandler", + "PlatformType": "^AWS::Lambda$", + "Service": "^{{serviceName}}$", + "Lambda.Function.Name": "^{{serviceName}}$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/python/lambda/lambda-invoke-metric.mustache b/validator/bin/main/expected-data-template/python/lambda/lambda-invoke-metric.mustache new file mode 100644 index 000000000..ca4d5042e --- /dev/null +++ b/validator/bin/main/expected-data-template/python/lambda/lambda-invoke-metric.mustache @@ -0,0 +1,74 @@ +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: lambda:default + +- + metricName: Latency + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: {{serviceName}}/FunctionHandler + - + name: Environment + value: lambda:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: lambda:default + +- + metricName: Error + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: {{serviceName}}/FunctionHandler + - + name: Environment + value: lambda:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: lambda:default + +- + metricName: Fault + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Operation + value: {{serviceName}}/FunctionHandler + - + name: Environment + value: lambda:default diff --git a/validator/bin/main/expected-data-template/python/lambda/lambda-invoke-trace.mustache b/validator/bin/main/expected-data-template/python/lambda/lambda-invoke-trace.mustache new file mode 100644 index 000000000..811dba231 --- /dev/null +++ b/validator/bin/main/expected-data-template/python/lambda/lambda-invoke-trace.mustache @@ -0,0 +1,12 @@ +[{ + "name": "^{{serviceName}}/default$", + "subsegments": [ + { + "name": "^Lambda$", + "aws": { + "function_name": "^{{serviceName}}$" + }, + "namespace": "^aws$" + } + ] +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/python/runtime/runtime-log.mustache b/validator/bin/main/expected-data-template/python/runtime/runtime-log.mustache new file mode 100644 index 000000000..3f07b7c01 --- /dev/null +++ b/validator/bin/main/expected-data-template/python/runtime/runtime-log.mustache @@ -0,0 +1,4 @@ +[{ + "Telemetry.SDK": "opentelemetry,.*,python,Auto", + "Telemetry.Source": "^RuntimeMetric$" +}] \ No newline at end of file diff --git a/validator/bin/main/expected-data-template/python/runtime/runtime-metric.mustache b/validator/bin/main/expected-data-template/python/runtime/runtime-metric.mustache new file mode 100644 index 000000000..d13d3467a --- /dev/null +++ b/validator/bin/main/expected-data-template/python/runtime/runtime-metric.mustache @@ -0,0 +1,99 @@ +- + metricName: PythonProcessGCCount + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ANY_VALUE + +- + metricName: PythonProcessGCGen0Count + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ANY_VALUE + +- + metricName: PythonProcessGCGen1Count + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ANY_VALUE + +- + metricName: PythonProcessGCGen2Count + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ANY_VALUE + +- + metricName: PythonProcessVMSMemoryUsed + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ANY_VALUE + +- + metricName: PythonProcessRSSMemoryUsed + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ANY_VALUE + +- + metricName: PythonProcessThreadCount + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ANY_VALUE + + +- + metricName: PythonProcessCpuTime + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ANY_VALUE + +- + metricName: PythonProcessCpuUtilization + namespace: {{metricNamespace}} + dimensions: + - + name: Service + value: {{serviceName}} + - + name: Environment + value: ANY_VALUE \ No newline at end of file diff --git a/validator/bin/main/log4j2.xml b/validator/bin/main/log4j2.xml new file mode 100644 index 000000000..35a6a3ccd --- /dev/null +++ b/validator/bin/main/log4j2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/validator/bin/main/validations/dotnet/ec2/asg/log-validation.yml b/validator/bin/main/validations/dotnet/ec2/asg/log-validation.yml new file mode 100644 index 000000000..c682fb09c --- /dev/null +++ b/validator/bin/main/validations/dotnet/ec2/asg/log-validation.yml @@ -0,0 +1,25 @@ +- + validationType: "cw-log" + httpPath: "outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedLogStructureTemplate: "DOTNET_EC2_ASG_OUTGOING_HTTP_CALL_LOG" +- + validationType: "cw-log" + httpPath: "aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedLogStructureTemplate: "DOTNET_EC2_ASG_AWS_SDK_CALL_LOG" +- + validationType: "cw-log" + httpPath: "remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedLogStructureTemplate: "DOTNET_EC2_ASG_REMOTE_SERVICE_LOG" +- + validationType: "cw-log" + httpPath: "client-call" + httpMethod: "get" + callingType: "http" + expectedLogStructureTemplate: "DOTNET_EC2_ASG_CLIENT_CALL_LOG" + diff --git a/validator/bin/main/validations/dotnet/ec2/asg/metric-validation.yml b/validator/bin/main/validations/dotnet/ec2/asg/metric-validation.yml new file mode 100644 index 000000000..ff6e1030d --- /dev/null +++ b/validator/bin/main/validations/dotnet/ec2/asg/metric-validation.yml @@ -0,0 +1,25 @@ +- + validationType: "cw-metric" + httpPath: "outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedMetricTemplate: "DOTNET_EC2_ASG_OUTGOING_HTTP_CALL_METRIC" +- + validationType: "cw-metric" + httpPath: "aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedMetricTemplate: "DOTNET_EC2_ASG_AWS_SDK_CALL_METRIC" +- + validationType: "cw-metric" + httpPath: "remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedMetricTemplate: "DOTNET_EC2_ASG_REMOTE_SERVICE_METRIC" +- + validationType: "cw-metric" + httpPath: "client-call" + httpMethod: "get" + callingType: "http" + expectedMetricTemplate: "DOTNET_EC2_ASG_CLIENT_CALL_METRIC" + diff --git a/validator/bin/main/validations/dotnet/ec2/asg/trace-validation.yml b/validator/bin/main/validations/dotnet/ec2/asg/trace-validation.yml new file mode 100644 index 000000000..0dfce9968 --- /dev/null +++ b/validator/bin/main/validations/dotnet/ec2/asg/trace-validation.yml @@ -0,0 +1,24 @@ +- + validationType: "trace" + httpPath: "outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedTraceTemplate: "DOTNET_EC2_ASG_OUTGOING_HTTP_CALL_TRACE" +- + validationType: "trace" + httpPath: "aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedTraceTemplate: "DOTNET_EC2_ASG_AWS_SDK_CALL_TRACE" +- + validationType: "trace" + httpPath: "remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedTraceTemplate: "DOTNET_EC2_ASG_REMOTE_SERVICE_TRACE" +- + validationType: "trace" + httpPath: "client-call" + httpMethod: "get" + callingType: "http" + expectedTraceTemplate: "DOTNET_EC2_ASG_CLIENT_CALL_TRACE" \ No newline at end of file diff --git a/validator/bin/main/validations/dotnet/ec2/default/log-validation.yml b/validator/bin/main/validations/dotnet/ec2/default/log-validation.yml new file mode 100644 index 000000000..82906ebdb --- /dev/null +++ b/validator/bin/main/validations/dotnet/ec2/default/log-validation.yml @@ -0,0 +1,25 @@ +- + validationType: "cw-log" + httpPath: "outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedLogStructureTemplate: "DOTNET_EC2_DEFAULT_OUTGOING_HTTP_CALL_LOG" +- + validationType: "cw-log" + httpPath: "aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedLogStructureTemplate: "DOTNET_EC2_DEFAULT_AWS_SDK_CALL_LOG" +- + validationType: "cw-log" + httpPath: "remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedLogStructureTemplate: "DOTNET_EC2_DEFAULT_REMOTE_SERVICE_LOG" +- + validationType: "cw-log" + httpPath: "client-call" + httpMethod: "get" + callingType: "http" + expectedLogStructureTemplate: "DOTNET_EC2_DEFAULT_CLIENT_CALL_LOG" + diff --git a/validator/bin/main/validations/dotnet/ec2/default/metric-validation.yml b/validator/bin/main/validations/dotnet/ec2/default/metric-validation.yml new file mode 100644 index 000000000..0cf6391d3 --- /dev/null +++ b/validator/bin/main/validations/dotnet/ec2/default/metric-validation.yml @@ -0,0 +1,25 @@ +- + validationType: "cw-metric" + httpPath: "outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedMetricTemplate: "DOTNET_EC2_DEFAULT_OUTGOING_HTTP_CALL_METRIC" +- + validationType: "cw-metric" + httpPath: "aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedMetricTemplate: "DOTNET_EC2_DEFAULT_AWS_SDK_CALL_METRIC" +- + validationType: "cw-metric" + httpPath: "remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedMetricTemplate: "DOTNET_EC2_DEFAULT_REMOTE_SERVICE_METRIC" +- + validationType: "cw-metric" + httpPath: "client-call" + httpMethod: "get" + callingType: "http" + expectedMetricTemplate: "DOTNET_EC2_DEFAULT_CLIENT_CALL_METRIC" + diff --git a/validator/bin/main/validations/dotnet/ec2/default/trace-validation.yml b/validator/bin/main/validations/dotnet/ec2/default/trace-validation.yml new file mode 100644 index 000000000..c0c8d929c --- /dev/null +++ b/validator/bin/main/validations/dotnet/ec2/default/trace-validation.yml @@ -0,0 +1,24 @@ +- + validationType: "trace" + httpPath: "outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedTraceTemplate: "DOTNET_EC2_DEFAULT_OUTGOING_HTTP_CALL_TRACE" +- + validationType: "trace" + httpPath: "aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedTraceTemplate: "DOTNET_EC2_DEFAULT_AWS_SDK_CALL_TRACE" +- + validationType: "trace" + httpPath: "remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedTraceTemplate: "DOTNET_EC2_DEFAULT_REMOTE_SERVICE_TRACE" +- + validationType: "trace" + httpPath: "client-call" + httpMethod: "get" + callingType: "http" + expectedTraceTemplate: "DOTNET_EC2_DEFAULT_CLIENT_CALL_TRACE" \ No newline at end of file diff --git a/validator/bin/main/validations/dotnet/ec2/windows/log-validation.yml b/validator/bin/main/validations/dotnet/ec2/windows/log-validation.yml new file mode 100644 index 000000000..61aa7d1a3 --- /dev/null +++ b/validator/bin/main/validations/dotnet/ec2/windows/log-validation.yml @@ -0,0 +1,25 @@ +- + validationType: "cw-log" + httpPath: "outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedLogStructureTemplate: "DOTNET_EC2_WINDOWS_DEFAULT_OUTGOING_HTTP_CALL_LOG" +- + validationType: "cw-log" + httpPath: "aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedLogStructureTemplate: "DOTNET_EC2_WINDOWS_DEFAULT_AWS_SDK_CALL_LOG" +- + validationType: "cw-log" + httpPath: "remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedLogStructureTemplate: "DOTNET_EC2_WINDOWS_DEFAULT_REMOTE_SERVICE_LOG" +- + validationType: "cw-log" + httpPath: "client-call" + httpMethod: "get" + callingType: "http" + expectedLogStructureTemplate: "DOTNET_EC2_WINDOWS_DEFAULT_CLIENT_CALL_LOG" + diff --git a/validator/bin/main/validations/dotnet/ec2/windows/metric-validation.yml b/validator/bin/main/validations/dotnet/ec2/windows/metric-validation.yml new file mode 100644 index 000000000..6b96e0399 --- /dev/null +++ b/validator/bin/main/validations/dotnet/ec2/windows/metric-validation.yml @@ -0,0 +1,25 @@ +- + validationType: "cw-metric" + httpPath: "outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedMetricTemplate: "DOTNET_EC2_WINDOWS_DEFAULT_OUTGOING_HTTP_CALL_METRIC" +- + validationType: "cw-metric" + httpPath: "aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedMetricTemplate: "DOTNET_EC2_WINDOWS_DEFAULT_AWS_SDK_CALL_METRIC" +- + validationType: "cw-metric" + httpPath: "remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedMetricTemplate: "DOTNET_EC2_WINDOWS_DEFAULT_REMOTE_SERVICE_METRIC" +- + validationType: "cw-metric" + httpPath: "client-call" + httpMethod: "get" + callingType: "http" + expectedMetricTemplate: "DOTNET_EC2_WINDOWS_DEFAULT_CLIENT_CALL_METRIC" + diff --git a/validator/bin/main/validations/dotnet/ec2/windows/trace-validation.yml b/validator/bin/main/validations/dotnet/ec2/windows/trace-validation.yml new file mode 100644 index 000000000..28a81bdbc --- /dev/null +++ b/validator/bin/main/validations/dotnet/ec2/windows/trace-validation.yml @@ -0,0 +1,26 @@ +- + validationType: "trace" + httpPath: "outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedTraceTemplate: "DOTNET_EC2_WINDOWS_DEFAULT_OUTGOING_HTTP_CALL_TRACE" +- + validationType: "trace" + httpPath: "aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedTraceTemplate: "DOTNET_EC2_WINDOWS_DEFAULT_AWS_SDK_CALL_TRACE" + +# Because of a time sync issue, block the remote service trace check for now +#- +# validationType: "trace" +# httpPath: "remote-service" +# httpMethod: "get" +# callingType: "http-with-query" +# expectedTraceTemplate: "DOTNET_EC2_WINDOWS_DEFAULT_REMOTE_SERVICE_TRACE" +- + validationType: "trace" + httpPath: "client-call" + httpMethod: "get" + callingType: "http" + expectedTraceTemplate: "DOTNET_EC2_WINDOWS_DEFAULT_CLIENT_CALL_TRACE" \ No newline at end of file diff --git a/validator/bin/main/validations/dotnet/eks/linux/log-validation.yml b/validator/bin/main/validations/dotnet/eks/linux/log-validation.yml new file mode 100644 index 000000000..f85bf4ac4 --- /dev/null +++ b/validator/bin/main/validations/dotnet/eks/linux/log-validation.yml @@ -0,0 +1,24 @@ +- + validationType: "cw-log" + httpPath: "outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedLogStructureTemplate: "DOTNET_EKS_LINUX_OUTGOING_HTTP_CALL_LOG" +- + validationType: "cw-log" + httpPath: "aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedLogStructureTemplate: "DOTNET_EKS_LINUX_AWS_SDK_CALL_LOG" +- + validationType: "cw-log" + httpPath: "remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedLogStructureTemplate: "DOTNET_EKS_LINUX_REMOTE_SERVICE_LOG" +- + validationType: "cw-log" + httpPath: "client-call" + httpMethod: "get" + callingType: "http" + expectedLogStructureTemplate: "DOTNET_EKS_LINUX_CLIENT_CALL_LOG" \ No newline at end of file diff --git a/validator/bin/main/validations/dotnet/eks/linux/metric-validation.yml b/validator/bin/main/validations/dotnet/eks/linux/metric-validation.yml new file mode 100644 index 000000000..2e414e1d0 --- /dev/null +++ b/validator/bin/main/validations/dotnet/eks/linux/metric-validation.yml @@ -0,0 +1,24 @@ +- + validationType: "cw-metric" + httpPath: "outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedMetricTemplate: "DOTNET_EKS_LINUX_OUTGOING_HTTP_CALL_METRIC" +- + validationType: "cw-metric" + httpPath: "aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedMetricTemplate: "DOTNET_EKS_LINUX_AWS_SDK_CALL_METRIC" +- + validationType: "cw-metric" + httpPath: "remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedMetricTemplate: "DOTNET_EKS_LINUX_REMOTE_SERVICE_METRIC" +- + validationType: "cw-metric" + httpPath: "client-call" + httpMethod: "get" + callingType: "http" + expectedMetricTemplate: "DOTNET_EKS_LINUX_CLIENT_CALL_METRIC" diff --git a/validator/bin/main/validations/dotnet/eks/linux/trace-validation.yml b/validator/bin/main/validations/dotnet/eks/linux/trace-validation.yml new file mode 100644 index 000000000..3c2f5be6f --- /dev/null +++ b/validator/bin/main/validations/dotnet/eks/linux/trace-validation.yml @@ -0,0 +1,24 @@ +- + validationType: "trace" + httpPath: "outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedTraceTemplate: "DOTNET_EKS_LINUX_OUTGOING_HTTP_CALL_TRACE" +- + validationType: "trace" + httpPath: "aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedTraceTemplate: "DOTNET_EKS_LINUX_AWS_SDK_CALL_TRACE" +- + validationType: "trace" + httpPath: "remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedTraceTemplate: "DOTNET_EKS_LINUX_REMOTE_SERVICE_TRACE" +- + validationType: "trace" + httpPath: "client-call" + httpMethod: "get" + callingType: "http" + expectedTraceTemplate: "DOTNET_EKS_LINUX_CLIENT_CALL_TRACE" \ No newline at end of file diff --git a/validator/bin/main/validations/dotnet/k8s/log-validation.yml b/validator/bin/main/validations/dotnet/k8s/log-validation.yml new file mode 100644 index 000000000..39b700be3 --- /dev/null +++ b/validator/bin/main/validations/dotnet/k8s/log-validation.yml @@ -0,0 +1,24 @@ +- + validationType: "cw-log" + httpPath: "outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedLogStructureTemplate: "DOTNET_K8S_OUTGOING_HTTP_CALL_LOG" +- + validationType: "cw-log" + httpPath: "aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedLogStructureTemplate: "DOTNET_K8S_AWS_SDK_CALL_LOG" +- + validationType: "cw-log" + httpPath: "remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedLogStructureTemplate: "DOTNET_K8S_REMOTE_SERVICE_LOG" +- + validationType: "cw-log" + httpPath: "client-call" + httpMethod: "get" + callingType: "http" + expectedLogStructureTemplate: "DOTNET_K8S_CLIENT_CALL_LOG" \ No newline at end of file diff --git a/validator/bin/main/validations/dotnet/k8s/metric-validation.yml b/validator/bin/main/validations/dotnet/k8s/metric-validation.yml new file mode 100644 index 000000000..2acc34b15 --- /dev/null +++ b/validator/bin/main/validations/dotnet/k8s/metric-validation.yml @@ -0,0 +1,24 @@ +- + validationType: "cw-metric" + httpPath: "outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedMetricTemplate: "DOTNET_K8S_OUTGOING_HTTP_CALL_METRIC" +- + validationType: "cw-metric" + httpPath: "aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedMetricTemplate: "DOTNET_K8S_AWS_SDK_CALL_METRIC" +- + validationType: "cw-metric" + httpPath: "remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedMetricTemplate: "DOTNET_K8S_REMOTE_SERVICE_METRIC" +- + validationType: "cw-metric" + httpPath: "client-call" + httpMethod: "get" + callingType: "http" + expectedMetricTemplate: "DOTNET_K8S_CLIENT_CALL_METRIC" \ No newline at end of file diff --git a/validator/bin/main/validations/dotnet/k8s/trace-validation.yml b/validator/bin/main/validations/dotnet/k8s/trace-validation.yml new file mode 100644 index 000000000..53a6b39bb --- /dev/null +++ b/validator/bin/main/validations/dotnet/k8s/trace-validation.yml @@ -0,0 +1,24 @@ +- + validationType: "trace" + httpPath: "outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedTraceTemplate: "DOTNET_K8S_OUTGOING_HTTP_CALL_TRACE" +- + validationType: "trace" + httpPath: "aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedTraceTemplate: "DOTNET_K8S_AWS_SDK_CALL_TRACE" +- + validationType: "trace" + httpPath: "remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedTraceTemplate: "DOTNET_K8S_REMOTE_SERVICE_TRACE" +- + validationType: "trace" + httpPath: "client-call" + httpMethod: "get" + callingType: "http" + expectedTraceTemplate: "DOTNET_K8S_CLIENT_CALL_TRACE" \ No newline at end of file diff --git a/validator/bin/main/validations/java/ec2/asg/log-validation.yml b/validator/bin/main/validations/java/ec2/asg/log-validation.yml new file mode 100644 index 000000000..49b4ae086 --- /dev/null +++ b/validator/bin/main/validations/java/ec2/asg/log-validation.yml @@ -0,0 +1,28 @@ +- + validationType: "cw-log" + httpPath: "/outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedLogStructureTemplate: "JAVA_EC2_ASG_OUTGOING_HTTP_CALL_LOG" +- + validationType: "cw-log" + httpPath: "/aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedLogStructureTemplate: "JAVA_EC2_ASG_AWS_SDK_CALL_LOG" +- + validationType: "cw-log" + httpPath: "/remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedLogStructureTemplate: "JAVA_EC2_ASG_REMOTE_SERVICE_LOG" +- + validationType: "cw-log" + httpPath: "/client-call" + httpMethod: "get" + callingType: "http" + expectedLogStructureTemplate: "JAVA_EC2_ASG_CLIENT_CALL_LOG" +- + validationType: "cw-log" + callingType: "none" + expectedLogStructureTemplate: "JAVA_RUNTIME_METRIC_LOG" \ No newline at end of file diff --git a/validator/bin/main/validations/java/ec2/asg/metric-validation.yml b/validator/bin/main/validations/java/ec2/asg/metric-validation.yml new file mode 100644 index 000000000..39b77fab5 --- /dev/null +++ b/validator/bin/main/validations/java/ec2/asg/metric-validation.yml @@ -0,0 +1,28 @@ +- + validationType: "cw-metric" + httpPath: "/outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedMetricTemplate: "JAVA_EC2_ASG_OUTGOING_HTTP_CALL_METRIC" +- + validationType: "cw-metric" + httpPath: "/aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedMetricTemplate: "JAVA_EC2_ASG_AWS_SDK_CALL_METRIC" +- + validationType: "cw-metric" + httpPath: "/remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedMetricTemplate: "JAVA_EC2_ASG_REMOTE_SERVICE_METRIC" +- + validationType: "cw-metric" + httpPath: "/client-call" + httpMethod: "get" + callingType: "http" + expectedMetricTemplate: "JAVA_EC2_ASG_CLIENT_CALL_METRIC" +- + validationType: "cw-metric" + callingType: "none" + expectedMetricTemplate: "JAVA_RUNTIME_METRIC" diff --git a/validator/bin/main/validations/java/ec2/asg/trace-validation.yml b/validator/bin/main/validations/java/ec2/asg/trace-validation.yml new file mode 100644 index 000000000..944eff75a --- /dev/null +++ b/validator/bin/main/validations/java/ec2/asg/trace-validation.yml @@ -0,0 +1,24 @@ +- + validationType: "trace" + httpPath: "/outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedTraceTemplate: "JAVA_EC2_ASG_OUTGOING_HTTP_CALL_TRACE" +- + validationType: "trace" + httpPath: "/aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedTraceTemplate: "JAVA_EC2_ASG_AWS_SDK_CALL_TRACE" +- + validationType: "trace" + httpPath: "/remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedTraceTemplate: "JAVA_EC2_ASG_REMOTE_SERVICE_TRACE" +- + validationType: "trace" + httpPath: "/client-call" + httpMethod: "get" + callingType: "http" + expectedTraceTemplate: "JAVA_EC2_ASG_CLIENT_CALL_TRACE" \ No newline at end of file diff --git a/validator/bin/main/validations/java/ec2/default/log-validation.yml b/validator/bin/main/validations/java/ec2/default/log-validation.yml new file mode 100644 index 000000000..6c51bbf97 --- /dev/null +++ b/validator/bin/main/validations/java/ec2/default/log-validation.yml @@ -0,0 +1,28 @@ +- + validationType: "cw-log" + httpPath: "/outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedLogStructureTemplate: "JAVA_EC2_DEFAULT_OUTGOING_HTTP_CALL_LOG" +- + validationType: "cw-log" + httpPath: "/aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedLogStructureTemplate: "JAVA_EC2_DEFAULT_AWS_SDK_CALL_LOG" +- + validationType: "cw-log" + httpPath: "/remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedLogStructureTemplate: "JAVA_EC2_DEFAULT_REMOTE_SERVICE_LOG" +- + validationType: "cw-log" + httpPath: "/client-call" + httpMethod: "get" + callingType: "http" + expectedLogStructureTemplate: "JAVA_EC2_DEFAULT_CLIENT_CALL_LOG" +- + validationType: "cw-log" + callingType: "none" + expectedLogStructureTemplate: "JAVA_RUNTIME_METRIC_LOG" \ No newline at end of file diff --git a/validator/bin/main/validations/java/ec2/default/metric-validation.yml b/validator/bin/main/validations/java/ec2/default/metric-validation.yml new file mode 100644 index 000000000..92ee0d4f5 --- /dev/null +++ b/validator/bin/main/validations/java/ec2/default/metric-validation.yml @@ -0,0 +1,28 @@ +- + validationType: "cw-metric" + httpPath: "/outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedMetricTemplate: "JAVA_EC2_DEFAULT_OUTGOING_HTTP_CALL_METRIC" +- + validationType: "cw-metric" + httpPath: "/aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedMetricTemplate: "JAVA_EC2_DEFAULT_AWS_SDK_CALL_METRIC" +- + validationType: "cw-metric" + httpPath: "/remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedMetricTemplate: "JAVA_EC2_DEFAULT_REMOTE_SERVICE_METRIC" +- + validationType: "cw-metric" + httpPath: "/client-call" + httpMethod: "get" + callingType: "http" + expectedMetricTemplate: "JAVA_EC2_DEFAULT_CLIENT_CALL_METRIC" +- + validationType: "cw-metric" + callingType: "none" + expectedMetricTemplate: "JAVA_RUNTIME_METRIC" \ No newline at end of file diff --git a/validator/bin/main/validations/java/ec2/default/trace-validation.yml b/validator/bin/main/validations/java/ec2/default/trace-validation.yml new file mode 100644 index 000000000..15e685a31 --- /dev/null +++ b/validator/bin/main/validations/java/ec2/default/trace-validation.yml @@ -0,0 +1,24 @@ +- + validationType: "trace" + httpPath: "/outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedTraceTemplate: "JAVA_EC2_DEFAULT_OUTGOING_HTTP_CALL_TRACE" +- + validationType: "trace" + httpPath: "/aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedTraceTemplate: "JAVA_EC2_DEFAULT_AWS_SDK_CALL_TRACE" +- + validationType: "trace" + httpPath: "/remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedTraceTemplate: "JAVA_EC2_DEFAULT_REMOTE_SERVICE_TRACE" +- + validationType: "trace" + httpPath: "/client-call" + httpMethod: "get" + callingType: "http" + expectedTraceTemplate: "JAVA_EC2_DEFAULT_CLIENT_CALL_TRACE" \ No newline at end of file diff --git a/validator/bin/main/validations/java/ecs/log-validation.yml b/validator/bin/main/validations/java/ecs/log-validation.yml new file mode 100644 index 000000000..09c2630b7 --- /dev/null +++ b/validator/bin/main/validations/java/ecs/log-validation.yml @@ -0,0 +1,8 @@ +- + validationType: "cw-log" + callingType: "none" + expectedLogStructureTemplate: "JAVA_ECS_HC_CALL_LOG" +- + validationType: "cw-log" + callingType: "none" + expectedLogStructureTemplate: "JAVA_RUNTIME_METRIC_LOG" \ No newline at end of file diff --git a/validator/bin/main/validations/java/ecs/metric-validation.yml b/validator/bin/main/validations/java/ecs/metric-validation.yml new file mode 100644 index 000000000..ef2195972 --- /dev/null +++ b/validator/bin/main/validations/java/ecs/metric-validation.yml @@ -0,0 +1,8 @@ +- + validationType: "cw-metric" + callingType: "none" + expectedMetricTemplate: "JAVA_ECS_HC_CALL_METRIC" +- + validationType: "cw-metric" + callingType: "none" + expectedMetricTemplate: "JAVA_RUNTIME_METRIC" \ No newline at end of file diff --git a/validator/bin/main/validations/java/ecs/trace-validation.yml b/validator/bin/main/validations/java/ecs/trace-validation.yml new file mode 100644 index 000000000..322f35a35 --- /dev/null +++ b/validator/bin/main/validations/java/ecs/trace-validation.yml @@ -0,0 +1,6 @@ +- + validationType: "trace" + callingType: "none" + httpMethod: "get" + httpPath: "/" + expectedTraceTemplate: "JAVA_ECS_HC_CALL_TRACE" \ No newline at end of file diff --git a/validator/bin/main/validations/java/eks-otlp-ocb/log-validation.yml b/validator/bin/main/validations/java/eks-otlp-ocb/log-validation.yml new file mode 100644 index 000000000..2f3013c1d --- /dev/null +++ b/validator/bin/main/validations/java/eks-otlp-ocb/log-validation.yml @@ -0,0 +1,24 @@ +- + validationType: "cw-log" + httpPath: "/outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedLogStructureTemplate: "JAVA_EKS_OTLP_OCB_OUTGOING_HTTP_CALL_LOG" +- + validationType: "cw-log" + httpPath: "/aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedLogStructureTemplate: "JAVA_EKS_OTLP_OCB_AWS_SDK_CALL_LOG" +- + validationType: "cw-log" + httpPath: "/remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedLogStructureTemplate: "JAVA_EKS_OTLP_OCB_REMOTE_SERVICE_LOG" +- + validationType: "cw-log" + httpPath: "/client-call" + httpMethod: "get" + callingType: "http" + expectedLogStructureTemplate: "JAVA_EKS_OTLP_OCB_CLIENT_CALL_LOG" \ No newline at end of file diff --git a/validator/bin/main/validations/java/eks-otlp-ocb/metric-validation.yml b/validator/bin/main/validations/java/eks-otlp-ocb/metric-validation.yml new file mode 100644 index 000000000..35e85f9c4 --- /dev/null +++ b/validator/bin/main/validations/java/eks-otlp-ocb/metric-validation.yml @@ -0,0 +1,24 @@ +- + validationType: "cw-metric" + httpPath: "/outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedMetricTemplate: "JAVA_EKS_OTLP_OCB_OUTGOING_HTTP_CALL_METRIC" +- + validationType: "cw-metric" + httpPath: "/aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedMetricTemplate: "JAVA_EKS_OTLP_OCB_AWS_SDK_CALL_METRIC" +- + validationType: "cw-metric" + httpPath: "/remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedMetricTemplate: "JAVA_EKS_OTLP_OCB_REMOTE_SERVICE_METRIC" +- + validationType: "cw-metric" + httpPath: "/client-call" + httpMethod: "get" + callingType: "http" + expectedMetricTemplate: "JAVA_EKS_OTLP_OCB_CLIENT_CALL_METRIC" \ No newline at end of file diff --git a/validator/bin/main/validations/java/eks-otlp-ocb/trace-validation.yml b/validator/bin/main/validations/java/eks-otlp-ocb/trace-validation.yml new file mode 100644 index 000000000..7934c27a4 --- /dev/null +++ b/validator/bin/main/validations/java/eks-otlp-ocb/trace-validation.yml @@ -0,0 +1,24 @@ +- + validationType: "trace" + httpPath: "/outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedTraceTemplate: "JAVA_EKS_OTLP_OCB_OUTGOING_HTTP_CALL_TRACE" +- + validationType: "trace" + httpPath: "/aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedTraceTemplate: "JAVA_EKS_OTLP_OCB_AWS_SDK_CALL_TRACE" +- + validationType: "trace" + httpPath: "/remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedTraceTemplate: "JAVA_EKS_OTLP_OCB_REMOTE_SERVICE_TRACE" +- + validationType: "trace" + httpPath: "/client-call" + httpMethod: "get" + callingType: "http" + expectedTraceTemplate: "JAVA_EKS_OTLP_OCB_CLIENT_CALL_TRACE" \ No newline at end of file diff --git a/validator/bin/main/validations/java/eks/log-validation.yml b/validator/bin/main/validations/java/eks/log-validation.yml new file mode 100644 index 000000000..738436b1e --- /dev/null +++ b/validator/bin/main/validations/java/eks/log-validation.yml @@ -0,0 +1,34 @@ +- + validationType: "cw-log" + httpPath: "/outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedLogStructureTemplate: "JAVA_EKS_OUTGOING_HTTP_CALL_LOG" +- + validationType: "cw-log" + httpPath: "/aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedLogStructureTemplate: "JAVA_EKS_AWS_SDK_CALL_LOG" +- + validationType: "cw-log" + httpPath: "/remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedLogStructureTemplate: "JAVA_EKS_REMOTE_SERVICE_LOG" +- + validationType: "cw-log" + httpPath: "/client-call" + httpMethod: "get" + callingType: "http" + expectedLogStructureTemplate: "JAVA_EKS_CLIENT_CALL_LOG" +- + validationType: "cw-log" + httpPath: "/mysql" + httpMethod: "get" + callingType: "http" + expectedLogStructureTemplate: "JAVA_EKS_RDS_MYSQL_LOG" +- + validationType: "cw-log" + callingType: "none" + expectedLogStructureTemplate: "JAVA_RUNTIME_METRIC_LOG" \ No newline at end of file diff --git a/validator/bin/main/validations/java/eks/metric-validation.yml b/validator/bin/main/validations/java/eks/metric-validation.yml new file mode 100644 index 000000000..16f958911 --- /dev/null +++ b/validator/bin/main/validations/java/eks/metric-validation.yml @@ -0,0 +1,34 @@ +- + validationType: "cw-metric" + httpPath: "/outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedMetricTemplate: "JAVA_EKS_OUTGOING_HTTP_CALL_METRIC" +- + validationType: "cw-metric" + httpPath: "/aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedMetricTemplate: "JAVA_EKS_AWS_SDK_CALL_METRIC" +- + validationType: "cw-metric" + httpPath: "/remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedMetricTemplate: "JAVA_EKS_REMOTE_SERVICE_METRIC" +- + validationType: "cw-metric" + httpPath: "/client-call" + httpMethod: "get" + callingType: "http" + expectedMetricTemplate: "JAVA_EKS_CLIENT_CALL_METRIC" +- + validationType: "cw-metric" + httpPath: "/mysql" + httpMethod: "get" + callingType: "http" + expectedMetricTemplate: "JAVA_EKS_RDS_MYSQL_METRIC" +- + validationType: "cw-metric" + callingType: "none" + expectedMetricTemplate: "JAVA_RUNTIME_METRIC" diff --git a/validator/bin/main/validations/java/eks/trace-validation.yml b/validator/bin/main/validations/java/eks/trace-validation.yml new file mode 100644 index 000000000..e94bbf89d --- /dev/null +++ b/validator/bin/main/validations/java/eks/trace-validation.yml @@ -0,0 +1,30 @@ +- + validationType: "trace" + httpPath: "/outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedTraceTemplate: "JAVA_EKS_OUTGOING_HTTP_CALL_TRACE" +- + validationType: "trace" + httpPath: "/aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedTraceTemplate: "JAVA_EKS_AWS_SDK_CALL_TRACE" +- + validationType: "trace" + httpPath: "/remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedTraceTemplate: "JAVA_EKS_REMOTE_SERVICE_TRACE" +- + validationType: "trace" + httpPath: "/client-call" + httpMethod: "get" + callingType: "http" + expectedTraceTemplate: "JAVA_EKS_CLIENT_CALL_TRACE" +- + validationType: "trace" + httpPath: "/mysql" + httpMethod: "get" + callingType: "http" + expectedTraceTemplate: "JAVA_EKS_RDS_MYSQL_TRACE" diff --git a/validator/bin/main/validations/java/k8s/log-validation.yml b/validator/bin/main/validations/java/k8s/log-validation.yml new file mode 100644 index 000000000..d1b806a75 --- /dev/null +++ b/validator/bin/main/validations/java/k8s/log-validation.yml @@ -0,0 +1,28 @@ +- + validationType: "cw-log" + httpPath: "/outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedLogStructureTemplate: "JAVA_K8S_OUTGOING_HTTP_CALL_LOG" +- + validationType: "cw-log" + httpPath: "/aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedLogStructureTemplate: "JAVA_K8S_AWS_SDK_CALL_LOG" +- + validationType: "cw-log" + httpPath: "/remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedLogStructureTemplate: "JAVA_K8S_REMOTE_SERVICE_LOG" +- + validationType: "cw-log" + httpPath: "/client-call" + httpMethod: "get" + callingType: "http" + expectedLogStructureTemplate: "JAVA_K8S_CLIENT_CALL_LOG" +- + validationType: "cw-log" + callingType: "none" + expectedLogStructureTemplate: "JAVA_RUNTIME_METRIC_LOG" \ No newline at end of file diff --git a/validator/bin/main/validations/java/k8s/metric-validation.yml b/validator/bin/main/validations/java/k8s/metric-validation.yml new file mode 100644 index 000000000..7971be2e4 --- /dev/null +++ b/validator/bin/main/validations/java/k8s/metric-validation.yml @@ -0,0 +1,28 @@ +- + validationType: "cw-metric" + httpPath: "/outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedMetricTemplate: "JAVA_K8S_OUTGOING_HTTP_CALL_METRIC" +- + validationType: "cw-metric" + httpPath: "/aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedMetricTemplate: "JAVA_K8S_AWS_SDK_CALL_METRIC" +- + validationType: "cw-metric" + httpPath: "/remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedMetricTemplate: "JAVA_K8S_REMOTE_SERVICE_METRIC" +- + validationType: "cw-metric" + httpPath: "/client-call" + httpMethod: "get" + callingType: "http" + expectedMetricTemplate: "JAVA_K8S_CLIENT_CALL_METRIC" +- + validationType: "cw-metric" + callingType: "none" + expectedMetricTemplate: "JAVA_RUNTIME_METRIC" \ No newline at end of file diff --git a/validator/bin/main/validations/java/k8s/trace-validation.yml b/validator/bin/main/validations/java/k8s/trace-validation.yml new file mode 100644 index 000000000..86859ad32 --- /dev/null +++ b/validator/bin/main/validations/java/k8s/trace-validation.yml @@ -0,0 +1,24 @@ +- + validationType: "trace" + httpPath: "/outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedTraceTemplate: "JAVA_K8S_OUTGOING_HTTP_CALL_TRACE" +- + validationType: "trace" + httpPath: "/aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedTraceTemplate: "JAVA_K8S_AWS_SDK_CALL_TRACE" +- + validationType: "trace" + httpPath: "/remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedTraceTemplate: "JAVA_K8S_REMOTE_SERVICE_TRACE" +- + validationType: "trace" + httpPath: "/client-call" + httpMethod: "get" + callingType: "http" + expectedTraceTemplate: "JAVA_K8S_CLIENT_CALL_TRACE" \ No newline at end of file diff --git a/validator/bin/main/validations/java/metric_limiter/metric-validation.yml b/validator/bin/main/validations/java/metric_limiter/metric-validation.yml new file mode 100644 index 000000000..0e09bb1ab --- /dev/null +++ b/validator/bin/main/validations/java/metric_limiter/metric-validation.yml @@ -0,0 +1,6 @@ +- + validationType: "cw-metric" + httpPath: "/outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedMetricTemplate: "JAVA_METRIC_LIMITER_METRIC" diff --git a/validator/bin/main/validations/node/ec2/asg/log-validation.yml b/validator/bin/main/validations/node/ec2/asg/log-validation.yml new file mode 100644 index 000000000..5dc39dad5 --- /dev/null +++ b/validator/bin/main/validations/node/ec2/asg/log-validation.yml @@ -0,0 +1,25 @@ +- + validationType: "cw-log" + httpPath: "/outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedLogStructureTemplate: "NODE_EC2_ASG_OUTGOING_HTTP_CALL_LOG" +- + validationType: "cw-log" + httpPath: "/aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedLogStructureTemplate: "NODE_EC2_ASG_AWS_SDK_CALL_LOG" +- + validationType: "cw-log" + httpPath: "/remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedLogStructureTemplate: "NODE_EC2_ASG_REMOTE_SERVICE_LOG" +- + validationType: "cw-log" + httpPath: "/client-call" + httpMethod: "get" + callingType: "http" + expectedLogStructureTemplate: "NODE_EC2_ASG_CLIENT_CALL_LOG" + diff --git a/validator/bin/main/validations/node/ec2/asg/metric-validation.yml b/validator/bin/main/validations/node/ec2/asg/metric-validation.yml new file mode 100644 index 000000000..cb2b1e920 --- /dev/null +++ b/validator/bin/main/validations/node/ec2/asg/metric-validation.yml @@ -0,0 +1,25 @@ +- + validationType: "cw-metric" + httpPath: "/outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedMetricTemplate: "NODE_EC2_ASG_OUTGOING_HTTP_CALL_METRIC" +- + validationType: "cw-metric" + httpPath: "/aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedMetricTemplate: "NODE_EC2_ASG_AWS_SDK_CALL_METRIC" +- + validationType: "cw-metric" + httpPath: "/remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedMetricTemplate: "NODE_EC2_ASG_REMOTE_SERVICE_METRIC" +- + validationType: "cw-metric" + httpPath: "/client-call" + httpMethod: "get" + callingType: "http" + expectedMetricTemplate: "NODE_EC2_ASG_CLIENT_CALL_METRIC" + diff --git a/validator/bin/main/validations/node/ec2/asg/trace-validation.yml b/validator/bin/main/validations/node/ec2/asg/trace-validation.yml new file mode 100644 index 000000000..0e3113fca --- /dev/null +++ b/validator/bin/main/validations/node/ec2/asg/trace-validation.yml @@ -0,0 +1,24 @@ +- + validationType: "trace" + httpPath: "/outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedTraceTemplate: "NODE_EC2_ASG_OUTGOING_HTTP_CALL_TRACE" +- + validationType: "trace" + httpPath: "/aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedTraceTemplate: "NODE_EC2_ASG_AWS_SDK_CALL_TRACE" +- + validationType: "trace" + httpPath: "/remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedTraceTemplate: "NODE_EC2_ASG_REMOTE_SERVICE_TRACE" +- + validationType: "trace" + httpPath: "/client-call" + httpMethod: "get" + callingType: "http" + expectedTraceTemplate: "NODE_EC2_ASG_CLIENT_CALL_TRACE" \ No newline at end of file diff --git a/validator/bin/main/validations/node/ec2/default/log-validation.yml b/validator/bin/main/validations/node/ec2/default/log-validation.yml new file mode 100644 index 000000000..2e6aa00a3 --- /dev/null +++ b/validator/bin/main/validations/node/ec2/default/log-validation.yml @@ -0,0 +1,25 @@ +- + validationType: "cw-log" + httpPath: "/outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedLogStructureTemplate: "NODE_EC2_DEFAULT_OUTGOING_HTTP_CALL_LOG" +- + validationType: "cw-log" + httpPath: "/aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedLogStructureTemplate: "NODE_EC2_DEFAULT_AWS_SDK_CALL_LOG" +- + validationType: "cw-log" + httpPath: "/remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedLogStructureTemplate: "NODE_EC2_DEFAULT_REMOTE_SERVICE_LOG" +- + validationType: "cw-log" + httpPath: "/client-call" + httpMethod: "get" + callingType: "http" + expectedLogStructureTemplate: "NODE_EC2_DEFAULT_CLIENT_CALL_LOG" + diff --git a/validator/bin/main/validations/node/ec2/default/metric-validation.yml b/validator/bin/main/validations/node/ec2/default/metric-validation.yml new file mode 100644 index 000000000..7ba5da1ee --- /dev/null +++ b/validator/bin/main/validations/node/ec2/default/metric-validation.yml @@ -0,0 +1,25 @@ +- + validationType: "cw-metric" + httpPath: "/outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedMetricTemplate: "NODE_EC2_DEFAULT_OUTGOING_HTTP_CALL_METRIC" +- + validationType: "cw-metric" + httpPath: "/aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedMetricTemplate: "NODE_EC2_DEFAULT_AWS_SDK_CALL_METRIC" +- + validationType: "cw-metric" + httpPath: "/remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedMetricTemplate: "NODE_EC2_DEFAULT_REMOTE_SERVICE_METRIC" +- + validationType: "cw-metric" + httpPath: "/client-call" + httpMethod: "get" + callingType: "http" + expectedMetricTemplate: "NODE_EC2_DEFAULT_CLIENT_CALL_METRIC" + diff --git a/validator/bin/main/validations/node/ec2/default/trace-validation.yml b/validator/bin/main/validations/node/ec2/default/trace-validation.yml new file mode 100644 index 000000000..d7c2a8a28 --- /dev/null +++ b/validator/bin/main/validations/node/ec2/default/trace-validation.yml @@ -0,0 +1,24 @@ +- + validationType: "trace" + httpPath: "/outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedTraceTemplate: "NODE_EC2_DEFAULT_OUTGOING_HTTP_CALL_TRACE" +- + validationType: "trace" + httpPath: "/aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedTraceTemplate: "NODE_EC2_DEFAULT_AWS_SDK_CALL_TRACE" +- + validationType: "trace" + httpPath: "/remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedTraceTemplate: "NODE_EC2_DEFAULT_REMOTE_SERVICE_TRACE" +- + validationType: "trace" + httpPath: "/client-call" + httpMethod: "get" + callingType: "http" + expectedTraceTemplate: "NODE_EC2_DEFAULT_CLIENT_CALL_TRACE" \ No newline at end of file diff --git a/validator/bin/main/validations/node/ecs/log-validation.yml b/validator/bin/main/validations/node/ecs/log-validation.yml new file mode 100644 index 000000000..7f8240369 --- /dev/null +++ b/validator/bin/main/validations/node/ecs/log-validation.yml @@ -0,0 +1,4 @@ +- + validationType: "cw-log" + callingType: "none" + expectedLogStructureTemplate: "NODE_ECS_HC_CALL_LOG" \ No newline at end of file diff --git a/validator/bin/main/validations/node/ecs/metric-validation.yml b/validator/bin/main/validations/node/ecs/metric-validation.yml new file mode 100644 index 000000000..eb69fa421 --- /dev/null +++ b/validator/bin/main/validations/node/ecs/metric-validation.yml @@ -0,0 +1,4 @@ +- + validationType: "cw-metric" + callingType: "none" + expectedMetricTemplate: "NODE_ECS_HC_CALL_METRIC" \ No newline at end of file diff --git a/validator/bin/main/validations/node/ecs/trace-validation.yml b/validator/bin/main/validations/node/ecs/trace-validation.yml new file mode 100644 index 000000000..4a21bd8a6 --- /dev/null +++ b/validator/bin/main/validations/node/ecs/trace-validation.yml @@ -0,0 +1,6 @@ +- + validationType: "trace" + callingType: "none" + httpMethod: "get" + httpPath: "/client-call" + expectedTraceTemplate: "NODE_ECS_HC_CALL_TRACE" \ No newline at end of file diff --git a/validator/bin/main/validations/node/eks/log-validation.yml b/validator/bin/main/validations/node/eks/log-validation.yml new file mode 100644 index 000000000..0fe890c63 --- /dev/null +++ b/validator/bin/main/validations/node/eks/log-validation.yml @@ -0,0 +1,24 @@ +- + validationType: "cw-log" + httpPath: "/outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedLogStructureTemplate: "NODE_EKS_OUTGOING_HTTP_CALL_LOG" +- + validationType: "cw-log" + httpPath: "/aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedLogStructureTemplate: "NODE_EKS_AWS_SDK_CALL_LOG" +- + validationType: "cw-log" + httpPath: "/remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedLogStructureTemplate: "NODE_EKS_REMOTE_SERVICE_LOG" +- + validationType: "cw-log" + httpPath: "/client-call" + httpMethod: "get" + callingType: "http" + expectedLogStructureTemplate: "NODE_EKS_CLIENT_CALL_LOG" \ No newline at end of file diff --git a/validator/bin/main/validations/node/eks/metric-validation.yml b/validator/bin/main/validations/node/eks/metric-validation.yml new file mode 100644 index 000000000..8512f3acc --- /dev/null +++ b/validator/bin/main/validations/node/eks/metric-validation.yml @@ -0,0 +1,24 @@ +- + validationType: "cw-metric" + httpPath: "/outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedMetricTemplate: "NODE_EKS_OUTGOING_HTTP_CALL_METRIC" +- + validationType: "cw-metric" + httpPath: "/aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedMetricTemplate: "NODE_EKS_AWS_SDK_CALL_METRIC" +- + validationType: "cw-metric" + httpPath: "/remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedMetricTemplate: "NODE_EKS_REMOTE_SERVICE_METRIC" +- + validationType: "cw-metric" + httpPath: "/client-call" + httpMethod: "get" + callingType: "http" + expectedMetricTemplate: "NODE_EKS_CLIENT_CALL_METRIC" \ No newline at end of file diff --git a/validator/bin/main/validations/node/eks/trace-validation.yml b/validator/bin/main/validations/node/eks/trace-validation.yml new file mode 100644 index 000000000..42e2fb7cc --- /dev/null +++ b/validator/bin/main/validations/node/eks/trace-validation.yml @@ -0,0 +1,24 @@ +- + validationType: "trace" + httpPath: "/outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedTraceTemplate: "NODE_EKS_OUTGOING_HTTP_CALL_TRACE" +- + validationType: "trace" + httpPath: "/aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedTraceTemplate: "NODE_EKS_AWS_SDK_CALL_TRACE" +- + validationType: "trace" + httpPath: "/remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedTraceTemplate: "NODE_EKS_REMOTE_SERVICE_TRACE" +- + validationType: "trace" + httpPath: "/client-call" + httpMethod: "get" + callingType: "http" + expectedTraceTemplate: "NODE_EKS_CLIENT_CALL_TRACE" \ No newline at end of file diff --git a/validator/bin/main/validations/node/k8s/log-validation.yml b/validator/bin/main/validations/node/k8s/log-validation.yml new file mode 100644 index 000000000..f02874a40 --- /dev/null +++ b/validator/bin/main/validations/node/k8s/log-validation.yml @@ -0,0 +1,24 @@ +- + validationType: "cw-log" + httpPath: "/outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedLogStructureTemplate: "NODE_K8S_OUTGOING_HTTP_CALL_LOG" +- + validationType: "cw-log" + httpPath: "/aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedLogStructureTemplate: "NODE_K8S_AWS_SDK_CALL_LOG" +- + validationType: "cw-log" + httpPath: "/remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedLogStructureTemplate: "NODE_K8S_REMOTE_SERVICE_LOG" +- + validationType: "cw-log" + httpPath: "/client-call" + httpMethod: "get" + callingType: "http" + expectedLogStructureTemplate: "NODE_K8S_CLIENT_CALL_LOG" \ No newline at end of file diff --git a/validator/bin/main/validations/node/k8s/metric-validation.yml b/validator/bin/main/validations/node/k8s/metric-validation.yml new file mode 100644 index 000000000..7e9f0c117 --- /dev/null +++ b/validator/bin/main/validations/node/k8s/metric-validation.yml @@ -0,0 +1,24 @@ +- + validationType: "cw-metric" + httpPath: "/outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedMetricTemplate: "NODE_K8S_OUTGOING_HTTP_CALL_METRIC" +- + validationType: "cw-metric" + httpPath: "/aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedMetricTemplate: "NODE_K8S_AWS_SDK_CALL_METRIC" +- + validationType: "cw-metric" + httpPath: "/remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedMetricTemplate: "NODE_K8S_REMOTE_SERVICE_METRIC" +- + validationType: "cw-metric" + httpPath: "/client-call" + httpMethod: "get" + callingType: "http" + expectedMetricTemplate: "NODE_K8S_CLIENT_CALL_METRIC" diff --git a/validator/bin/main/validations/node/k8s/trace-validation.yml b/validator/bin/main/validations/node/k8s/trace-validation.yml new file mode 100644 index 000000000..a14564c46 --- /dev/null +++ b/validator/bin/main/validations/node/k8s/trace-validation.yml @@ -0,0 +1,24 @@ +- + validationType: "trace" + httpPath: "/outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedTraceTemplate: "NODE_K8S_OUTGOING_HTTP_CALL_TRACE" +- + validationType: "trace" + httpPath: "/aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedTraceTemplate: "NODE_K8S_AWS_SDK_CALL_TRACE" +- + validationType: "trace" + httpPath: "/remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedTraceTemplate: "NODE_K8S_REMOTE_SERVICE_TRACE" +- + validationType: "trace" + httpPath: "/client-call" + httpMethod: "get" + callingType: "http" + expectedTraceTemplate: "NODE_K8S_CLIENT_CALL_TRACE" \ No newline at end of file diff --git a/validator/bin/main/validations/node/lambda/log-validation.yml b/validator/bin/main/validations/node/lambda/log-validation.yml new file mode 100644 index 000000000..71df9b382 --- /dev/null +++ b/validator/bin/main/validations/node/lambda/log-validation.yml @@ -0,0 +1,10 @@ +- + validationType: "cw-log" + httpPath: "/lambda-invoke" + callingType: "lambda-invoke" + expectedLogStructureTemplate: "NODE_LAMBDA_INVOKE_LOG" +- + validationType: "cw-log" + httpPath: "/lambda-aws-sdk" + callingType: "lambda-aws-sdk" + expectedLogStructureTemplate: "NODE_LAMBDA_AWS_SDK_CALL_LOG" \ No newline at end of file diff --git a/validator/bin/main/validations/node/lambda/metric-validation.yml b/validator/bin/main/validations/node/lambda/metric-validation.yml new file mode 100644 index 000000000..fff6de017 --- /dev/null +++ b/validator/bin/main/validations/node/lambda/metric-validation.yml @@ -0,0 +1,11 @@ +- + validationType: "cw-metric" + httpPath: "/lambda-invoke" + callingType: "lambda-invoke" + expectedMetricTemplate: "NODE_LAMBDA_INVOKE_METRIC" + +- + validationType: "cw-metric" + httpPath: "/lambda-aws-sdk" + callingType: "lambda-aws-sdk" + expectedMetricTemplate: "NODE_LAMBDA_AWS_SDK_CALL_METRIC" \ No newline at end of file diff --git a/validator/bin/main/validations/node/lambda/trace-validation.yml b/validator/bin/main/validations/node/lambda/trace-validation.yml new file mode 100644 index 000000000..538d5dc4b --- /dev/null +++ b/validator/bin/main/validations/node/lambda/trace-validation.yml @@ -0,0 +1,5 @@ +- + validationType: "trace" + httpPath: "/lambda-invoke" + callingType: "lambda-invoke" + expectedTraceTemplate: "NODE_LAMBDA_INVOKE_TRACE" diff --git a/validator/bin/main/validations/python/ec2/asg/log-validation.yml b/validator/bin/main/validations/python/ec2/asg/log-validation.yml new file mode 100644 index 000000000..b8fb8bd5b --- /dev/null +++ b/validator/bin/main/validations/python/ec2/asg/log-validation.yml @@ -0,0 +1,28 @@ +- + validationType: "cw-log" + httpPath: "outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedLogStructureTemplate: "PYTHON_EC2_ASG_OUTGOING_HTTP_CALL_LOG" +- + validationType: "cw-log" + httpPath: "aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedLogStructureTemplate: "PYTHON_EC2_ASG_AWS_SDK_CALL_LOG" +- + validationType: "cw-log" + httpPath: "remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedLogStructureTemplate: "PYTHON_EC2_ASG_REMOTE_SERVICE_LOG" +- + validationType: "cw-log" + httpPath: "client-call" + httpMethod: "get" + callingType: "http" + expectedLogStructureTemplate: "PYTHON_EC2_ASG_CLIENT_CALL_LOG" +- + validationType: "cw-log" + callingType: "none" + expectedLogStructureTemplate: "PYTHON_RUNTIME_METRIC_LOG" \ No newline at end of file diff --git a/validator/bin/main/validations/python/ec2/asg/metric-validation.yml b/validator/bin/main/validations/python/ec2/asg/metric-validation.yml new file mode 100644 index 000000000..54bd6e16e --- /dev/null +++ b/validator/bin/main/validations/python/ec2/asg/metric-validation.yml @@ -0,0 +1,28 @@ +- + validationType: "cw-metric" + httpPath: "outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedMetricTemplate: "PYTHON_EC2_ASG_OUTGOING_HTTP_CALL_METRIC" +- + validationType: "cw-metric" + httpPath: "aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedMetricTemplate: "PYTHON_EC2_ASG_AWS_SDK_CALL_METRIC" +- + validationType: "cw-metric" + httpPath: "remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedMetricTemplate: "PYTHON_EC2_ASG_REMOTE_SERVICE_METRIC" +- + validationType: "cw-metric" + httpPath: "client-call" + httpMethod: "get" + callingType: "http" + expectedMetricTemplate: "PYTHON_EC2_ASG_CLIENT_CALL_METRIC" +- + validationType: "cw-metric" + callingType: "none" + expectedMetricTemplate: "PYTHON_RUNTIME_METRIC" \ No newline at end of file diff --git a/validator/bin/main/validations/python/ec2/asg/trace-validation.yml b/validator/bin/main/validations/python/ec2/asg/trace-validation.yml new file mode 100644 index 000000000..d418eb44e --- /dev/null +++ b/validator/bin/main/validations/python/ec2/asg/trace-validation.yml @@ -0,0 +1,24 @@ +- + validationType: "trace" + httpPath: "outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedTraceTemplate: "PYTHON_EC2_ASG_OUTGOING_HTTP_CALL_TRACE" +- + validationType: "trace" + httpPath: "aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedTraceTemplate: "PYTHON_EC2_ASG_AWS_SDK_CALL_TRACE" +- + validationType: "trace" + httpPath: "remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedTraceTemplate: "PYTHON_EC2_ASG_REMOTE_SERVICE_TRACE" +- + validationType: "trace" + httpPath: "client-call" + httpMethod: "get" + callingType: "http" + expectedTraceTemplate: "PYTHON_EC2_ASG_CLIENT_CALL_TRACE" \ No newline at end of file diff --git a/validator/bin/main/validations/python/ec2/default/log-validation.yml b/validator/bin/main/validations/python/ec2/default/log-validation.yml new file mode 100644 index 000000000..4e7364d99 --- /dev/null +++ b/validator/bin/main/validations/python/ec2/default/log-validation.yml @@ -0,0 +1,28 @@ +- + validationType: "cw-log" + httpPath: "outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedLogStructureTemplate: "PYTHON_EC2_DEFAULT_OUTGOING_HTTP_CALL_LOG" +- + validationType: "cw-log" + httpPath: "aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedLogStructureTemplate: "PYTHON_EC2_DEFAULT_AWS_SDK_CALL_LOG" +- + validationType: "cw-log" + httpPath: "remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedLogStructureTemplate: "PYTHON_EC2_DEFAULT_REMOTE_SERVICE_LOG" +- + validationType: "cw-log" + httpPath: "client-call" + httpMethod: "get" + callingType: "http" + expectedLogStructureTemplate: "PYTHON_EC2_DEFAULT_CLIENT_CALL_LOG" +- + validationType: "cw-log" + callingType: "none" + expectedLogStructureTemplate: "PYTHON_RUNTIME_METRIC_LOG" \ No newline at end of file diff --git a/validator/bin/main/validations/python/ec2/default/metric-validation.yml b/validator/bin/main/validations/python/ec2/default/metric-validation.yml new file mode 100644 index 000000000..addeba20a --- /dev/null +++ b/validator/bin/main/validations/python/ec2/default/metric-validation.yml @@ -0,0 +1,28 @@ +- + validationType: "cw-metric" + httpPath: "outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedMetricTemplate: "PYTHON_EC2_DEFAULT_OUTGOING_HTTP_CALL_METRIC" +- + validationType: "cw-metric" + httpPath: "aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedMetricTemplate: "PYTHON_EC2_DEFAULT_AWS_SDK_CALL_METRIC" +- + validationType: "cw-metric" + httpPath: "remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedMetricTemplate: "PYTHON_EC2_DEFAULT_REMOTE_SERVICE_METRIC" +- + validationType: "cw-metric" + httpPath: "client-call" + httpMethod: "get" + callingType: "http" + expectedMetricTemplate: "PYTHON_EC2_DEFAULT_CLIENT_CALL_METRIC" +- + validationType: "cw-metric" + callingType: "none" + expectedMetricTemplate: "PYTHON_RUNTIME_METRIC" \ No newline at end of file diff --git a/validator/bin/main/validations/python/ec2/default/trace-validation.yml b/validator/bin/main/validations/python/ec2/default/trace-validation.yml new file mode 100644 index 000000000..e610f80cf --- /dev/null +++ b/validator/bin/main/validations/python/ec2/default/trace-validation.yml @@ -0,0 +1,24 @@ +- + validationType: "trace" + httpPath: "outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedTraceTemplate: "PYTHON_EC2_DEFAULT_OUTGOING_HTTP_CALL_TRACE" +- + validationType: "trace" + httpPath: "aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedTraceTemplate: "PYTHON_EC2_DEFAULT_AWS_SDK_CALL_TRACE" +- + validationType: "trace" + httpPath: "remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedTraceTemplate: "PYTHON_EC2_DEFAULT_REMOTE_SERVICE_TRACE" +- + validationType: "trace" + httpPath: "client-call" + httpMethod: "get" + callingType: "http" + expectedTraceTemplate: "PYTHON_EC2_DEFAULT_CLIENT_CALL_TRACE" \ No newline at end of file diff --git a/validator/bin/main/validations/python/ecs/log-validation.yml b/validator/bin/main/validations/python/ecs/log-validation.yml new file mode 100644 index 000000000..1516bc444 --- /dev/null +++ b/validator/bin/main/validations/python/ecs/log-validation.yml @@ -0,0 +1,8 @@ +- + validationType: "cw-log" + callingType: "none" + expectedLogStructureTemplate: "PYTHON_ECS_HC_CALL_LOG" +- + validationType: "cw-log" + callingType: "none" + expectedLogStructureTemplate: "PYTHON_RUNTIME_METRIC_LOG" \ No newline at end of file diff --git a/validator/bin/main/validations/python/ecs/metric-validation.yml b/validator/bin/main/validations/python/ecs/metric-validation.yml new file mode 100644 index 000000000..b4a206fa5 --- /dev/null +++ b/validator/bin/main/validations/python/ecs/metric-validation.yml @@ -0,0 +1,8 @@ +- + validationType: "cw-metric" + callingType: "none" + expectedMetricTemplate: "PYTHON_ECS_HC_CALL_METRIC" +- + validationType: "cw-metric" + callingType: "none" + expectedMetricTemplate: "PYTHON_RUNTIME_METRIC" \ No newline at end of file diff --git a/validator/bin/main/validations/python/ecs/trace-validation.yml b/validator/bin/main/validations/python/ecs/trace-validation.yml new file mode 100644 index 000000000..1ee776efa --- /dev/null +++ b/validator/bin/main/validations/python/ecs/trace-validation.yml @@ -0,0 +1,6 @@ +- + validationType: "trace" + callingType: "none" + httpMethod: "get" + httpPath: "/" + expectedTraceTemplate: "PYTHON_ECS_HC_CALL_TRACE" \ No newline at end of file diff --git a/validator/bin/main/validations/python/eks/log-validation.yml b/validator/bin/main/validations/python/eks/log-validation.yml new file mode 100644 index 000000000..10fc17b6b --- /dev/null +++ b/validator/bin/main/validations/python/eks/log-validation.yml @@ -0,0 +1,34 @@ +- + validationType: "cw-log" + httpPath: "outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedLogStructureTemplate: "PYTHON_EKS_OUTGOING_HTTP_CALL_LOG" +- + validationType: "cw-log" + httpPath: "aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedLogStructureTemplate: "PYTHON_EKS_AWS_SDK_CALL_LOG" +- + validationType: "cw-log" + httpPath: "remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedLogStructureTemplate: "PYTHON_EKS_REMOTE_SERVICE_LOG" +- + validationType: "cw-log" + httpPath: "client-call" + httpMethod: "get" + callingType: "http" + expectedLogStructureTemplate: "PYTHON_EKS_CLIENT_CALL_LOG" +- + validationType: "cw-log" + httpPath: "mysql" + httpMethod: "get" + callingType: "http" + expectedLogStructureTemplate: "PYTHON_EKS_RDS_MYSQL_LOG" +- + validationType: "cw-log" + callingType: "none" + expectedLogStructureTemplate: "PYTHON_RUNTIME_METRIC_LOG" \ No newline at end of file diff --git a/validator/bin/main/validations/python/eks/metric-validation.yml b/validator/bin/main/validations/python/eks/metric-validation.yml new file mode 100644 index 000000000..08cb62789 --- /dev/null +++ b/validator/bin/main/validations/python/eks/metric-validation.yml @@ -0,0 +1,34 @@ +- + validationType: "cw-metric" + httpPath: "outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedMetricTemplate: "PYTHON_EKS_OUTGOING_HTTP_CALL_METRIC" +- + validationType: "cw-metric" + httpPath: "aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedMetricTemplate: "PYTHON_EKS_AWS_SDK_CALL_METRIC" +- + validationType: "cw-metric" + httpPath: "remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedMetricTemplate: "PYTHON_EKS_REMOTE_SERVICE_METRIC" +- + validationType: "cw-metric" + httpPath: "client-call" + httpMethod: "get" + callingType: "http" + expectedMetricTemplate: "PYTHON_EKS_CLIENT_CALL_METRIC" +- + validationType: "cw-metric" + httpPath: "mysql" + httpMethod: "get" + callingType: "http" + expectedMetricTemplate: "PYTHON_EKS_RDS_MYSQL_METRIC" +- + validationType: "cw-metric" + callingType: "none" + expectedMetricTemplate: "PYTHON_RUNTIME_METRIC" \ No newline at end of file diff --git a/validator/bin/main/validations/python/eks/trace-validation.yml b/validator/bin/main/validations/python/eks/trace-validation.yml new file mode 100644 index 000000000..fe6c6d323 --- /dev/null +++ b/validator/bin/main/validations/python/eks/trace-validation.yml @@ -0,0 +1,30 @@ +- + validationType: "trace" + httpPath: "outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedTraceTemplate: "PYTHON_EKS_OUTGOING_HTTP_CALL_TRACE" +- + validationType: "trace" + httpPath: "aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedTraceTemplate: "PYTHON_EKS_AWS_SDK_CALL_TRACE" +- + validationType: "trace" + httpPath: "remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedTraceTemplate: "PYTHON_EKS_REMOTE_SERVICE_TRACE" +- + validationType: "trace" + httpPath: "client-call" + httpMethod: "get" + callingType: "http" + expectedTraceTemplate: "PYTHON_EKS_CLIENT_CALL_TRACE" +- + validationType: "trace" + httpPath: "mysql" + httpMethod: "get" + callingType: "http" + expectedTraceTemplate: "PYTHON_EKS_RDS_MYSQL_TRACE" \ No newline at end of file diff --git a/validator/bin/main/validations/python/k8s/log-validation.yml b/validator/bin/main/validations/python/k8s/log-validation.yml new file mode 100644 index 000000000..acd9049b6 --- /dev/null +++ b/validator/bin/main/validations/python/k8s/log-validation.yml @@ -0,0 +1,28 @@ +- + validationType: "cw-log" + httpPath: "outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedLogStructureTemplate: "PYTHON_K8S_OUTGOING_HTTP_CALL_LOG" +- + validationType: "cw-log" + httpPath: "aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedLogStructureTemplate: "PYTHON_K8S_AWS_SDK_CALL_LOG" +- + validationType: "cw-log" + httpPath: "remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedLogStructureTemplate: "PYTHON_K8S_REMOTE_SERVICE_LOG" +- + validationType: "cw-log" + httpPath: "client-call" + httpMethod: "get" + callingType: "http" + expectedLogStructureTemplate: "PYTHON_K8S_CLIENT_CALL_LOG" +- + validationType: "cw-log" + callingType: "none" + expectedLogStructureTemplate: "PYTHON_RUNTIME_METRIC_LOG" \ No newline at end of file diff --git a/validator/bin/main/validations/python/k8s/metric-validation.yml b/validator/bin/main/validations/python/k8s/metric-validation.yml new file mode 100644 index 000000000..0ded13833 --- /dev/null +++ b/validator/bin/main/validations/python/k8s/metric-validation.yml @@ -0,0 +1,28 @@ +- + validationType: "cw-metric" + httpPath: "outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedMetricTemplate: "PYTHON_K8S_OUTGOING_HTTP_CALL_METRIC" +- + validationType: "cw-metric" + httpPath: "aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedMetricTemplate: "PYTHON_K8S_AWS_SDK_CALL_METRIC" +- + validationType: "cw-metric" + httpPath: "remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedMetricTemplate: "PYTHON_K8S_REMOTE_SERVICE_METRIC" +- + validationType: "cw-metric" + httpPath: "client-call" + httpMethod: "get" + callingType: "http" + expectedMetricTemplate: "PYTHON_K8S_CLIENT_CALL_METRIC" +- + validationType: "cw-metric" + callingType: "none" + expectedMetricTemplate: "PYTHON_RUNTIME_METRIC" \ No newline at end of file diff --git a/validator/bin/main/validations/python/k8s/trace-validation.yml b/validator/bin/main/validations/python/k8s/trace-validation.yml new file mode 100644 index 000000000..d498ae0ca --- /dev/null +++ b/validator/bin/main/validations/python/k8s/trace-validation.yml @@ -0,0 +1,24 @@ +- + validationType: "trace" + httpPath: "outgoing-http-call" + httpMethod: "get" + callingType: "http" + expectedTraceTemplate: "PYTHON_K8S_OUTGOING_HTTP_CALL_TRACE" +- + validationType: "trace" + httpPath: "aws-sdk-call" + httpMethod: "get" + callingType: "http-with-query" + expectedTraceTemplate: "PYTHON_K8S_AWS_SDK_CALL_TRACE" +- + validationType: "trace" + httpPath: "remote-service" + httpMethod: "get" + callingType: "http-with-query" + expectedTraceTemplate: "PYTHON_K8S_REMOTE_SERVICE_TRACE" +- + validationType: "trace" + httpPath: "client-call" + httpMethod: "get" + callingType: "http" + expectedTraceTemplate: "PYTHON_K8S_CLIENT_CALL_TRACE" \ No newline at end of file diff --git a/validator/bin/main/validations/python/lambda/log-validation.yml b/validator/bin/main/validations/python/lambda/log-validation.yml new file mode 100644 index 000000000..6692890c7 --- /dev/null +++ b/validator/bin/main/validations/python/lambda/log-validation.yml @@ -0,0 +1,10 @@ +- + validationType: "cw-log" + httpPath: "/lambda-invoke" + callingType: "lambda-invoke" + expectedLogStructureTemplate: "PYTHON_LAMBDA_INVOKE_LOG" +- + validationType: "cw-log" + httpPath: "/lambda-aws-sdk" + callingType: "lambda-aws-sdk" + expectedLogStructureTemplate: "PYTHON_LAMBDA_AWS_SDK_CALL_LOG" \ No newline at end of file diff --git a/validator/bin/main/validations/python/lambda/metric-validation.yml b/validator/bin/main/validations/python/lambda/metric-validation.yml new file mode 100644 index 000000000..b8f5d61ea --- /dev/null +++ b/validator/bin/main/validations/python/lambda/metric-validation.yml @@ -0,0 +1,11 @@ +- + validationType: "cw-metric" + httpPath: "/lambda-invoke" + callingType: "lambda-invoke" + expectedMetricTemplate: "PYTHON_LAMBDA_INVOKE_METRIC" + +- + validationType: "cw-metric" + httpPath: "/lambda-aws-sdk" + callingType: "lambda-aws-sdk" + expectedMetricTemplate: "PYTHON_LAMBDA_AWS_SDK_CALL_METRIC" \ No newline at end of file diff --git a/validator/bin/main/validations/python/lambda/trace-validation.yml b/validator/bin/main/validations/python/lambda/trace-validation.yml new file mode 100644 index 000000000..1d59d9c16 --- /dev/null +++ b/validator/bin/main/validations/python/lambda/trace-validation.yml @@ -0,0 +1,5 @@ +- + validationType: "trace" + httpPath: "/lambda-invoke" + callingType: "lambda-invoke" + expectedTraceTemplate: "PYTHON_LAMBDA_INVOKE_TRACE" diff --git a/validator/bin/test/com/amazon/aoc/fileconfigs/PredefinedExpectedTemplateTest.class b/validator/bin/test/com/amazon/aoc/fileconfigs/PredefinedExpectedTemplateTest.class new file mode 100644 index 000000000..70ed8f488 Binary files /dev/null and b/validator/bin/test/com/amazon/aoc/fileconfigs/PredefinedExpectedTemplateTest.class differ diff --git a/validator/bin/test/com/amazon/aoc/helpers/SortUtilsTest.class b/validator/bin/test/com/amazon/aoc/helpers/SortUtilsTest.class new file mode 100644 index 000000000..0022cf72c Binary files /dev/null and b/validator/bin/test/com/amazon/aoc/helpers/SortUtilsTest.class differ diff --git a/validator/bin/test/com/amazon/aoc/validators/CWLogValidatorTest$1.class b/validator/bin/test/com/amazon/aoc/validators/CWLogValidatorTest$1.class new file mode 100644 index 000000000..24333bc12 Binary files /dev/null and b/validator/bin/test/com/amazon/aoc/validators/CWLogValidatorTest$1.class differ diff --git a/validator/bin/test/com/amazon/aoc/validators/CWLogValidatorTest.class b/validator/bin/test/com/amazon/aoc/validators/CWLogValidatorTest.class new file mode 100644 index 000000000..ef82d1848 Binary files /dev/null and b/validator/bin/test/com/amazon/aoc/validators/CWLogValidatorTest.class differ diff --git a/validator/bin/test/com/amazon/aoc/validators/CWMetricValidatorTest.class b/validator/bin/test/com/amazon/aoc/validators/CWMetricValidatorTest.class new file mode 100644 index 000000000..fc7aabe7e Binary files /dev/null and b/validator/bin/test/com/amazon/aoc/validators/CWMetricValidatorTest.class differ diff --git a/validator/bin/test/com/amazon/aoc/validators/TraceValidatorTest.class b/validator/bin/test/com/amazon/aoc/validators/TraceValidatorTest.class new file mode 100644 index 000000000..402a637ef Binary files /dev/null and b/validator/bin/test/com/amazon/aoc/validators/TraceValidatorTest.class differ diff --git a/validator/bin/test/com/amazon/aoc/validators/ValidatorBaseTest.class b/validator/bin/test/com/amazon/aoc/validators/ValidatorBaseTest.class new file mode 100644 index 000000000..e4e2b6780 Binary files /dev/null and b/validator/bin/test/com/amazon/aoc/validators/ValidatorBaseTest.class differ