Skip to content

Commit 151e0eb

Browse files
Merge pull request #230 from SumoLogic/awso-v2.11-tf-test
Updated AWSO Terraform test suite
2 parents 8daadbd + ba8f870 commit 151e0eb

File tree

3 files changed

+81
-0
lines changed

3 files changed

+81
-0
lines changed

aws-observability-terraform/examples/appmodule/field.tf

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,59 @@ resource "sumologic_field_extraction_rule" "AwsObservabilityApiGatewayAccessLogs
177177
enabled = true
178178
}
179179

180+
# ALB CloudTrail FER
181+
resource "sumologic_field_extraction_rule" "AwsObservabilityALBCloudTrailLogsFER" {
182+
depends_on = [time_sleep.wait_for_10_seconds]
183+
name = "AwsObservabilityALBCloudTrailLogsFER"
184+
scope = "account=* eventSource eventName \"elasticloadbalancing.amazonaws.com\" \"2015-12-01\""
185+
parse_expression = <<EOT
186+
| json "eventSource", "awsRegion", "recipientAccountId", "requestParameters.name", "requestParameters.type", "requestParameters.loadBalancerArn", "apiVersion" as event_source, region, accountid, loadbalancer, loadbalancertype, loadbalancerarn, api_version nodrop
187+
| "" as namespace
188+
| where event_source = "elasticloadbalancing.amazonaws.com" and api_version matches "2015-12-01"
189+
| parse field=loadbalancerarn ":loadbalancer/*/*/*" as balancertype, loadbalancer, f1 nodrop
190+
| if(loadbalancertype matches "network", "aws/nlb", if(balancertype matches "net", "aws/nlb", namespace)) as namespace
191+
| if(loadbalancertype matches "application", "aws/applicationelb", if(balancertype matches "app", "aws/applicationelb", namespace)) as namespace
192+
| where namespace="aws/applicationelb" or isEmpty(namespace)
193+
| toLowerCase(loadbalancer) as loadbalancer
194+
| fields region, namespace, loadbalancer, accountid
195+
EOT
196+
enabled = true
197+
}
198+
199+
# CLB CloudTrail FER
200+
resource "sumologic_field_extraction_rule" "AwsObservabilityCLBCloudTrailLogsFER" {
201+
depends_on = [time_sleep.wait_for_10_seconds]
202+
name = "AwsObservabilityCLBCloudTrailLogsFER"
203+
scope = "account=* eventSource eventName \"elasticloadbalancing.amazonaws.com\" \"2012-06-01\""
204+
parse_expression = <<EOT
205+
| json "eventSource", "awsRegion", "recipientAccountId", "requestParameters.loadBalancerName" as event_source, region, accountid, loadbalancername nodrop
206+
| where event_source = "elasticloadbalancing.amazonaws.com"
207+
| toLowerCase(loadbalancername) as loadbalancername
208+
| "aws/elb" as namespace
209+
| fields region, namespace, loadbalancername, accountid
210+
EOT
211+
enabled = true
212+
}
213+
214+
# NLB CloudTrail FER
215+
resource "sumologic_field_extraction_rule" "AwsObservabilityNLBCloudTrailLogsFER" {
216+
depends_on = [time_sleep.wait_for_10_seconds]
217+
name = "AwsObservabilityNLBCloudTrailLogsFER"
218+
scope = "account=* eventSource eventName \"elasticloadbalancing.amazonaws.com\" \"2015-12-01\""
219+
parse_expression = <<EOT
220+
| json "eventSource", "awsRegion", "recipientAccountId", "requestParameters.name", "requestParameters.type", "requestParameters.loadBalancerArn", "apiVersion" as event_source, region, accountid, loadbalancer, loadbalancertype, loadbalancerarn, api_version nodrop
221+
| "" as namespace
222+
| where event_source = "elasticloadbalancing.amazonaws.com" and api_version matches "2015-12-01"
223+
| parse field=loadbalancerarn ":loadbalancer/*/*/*" as balancertype, loadbalancer, f1 nodrop
224+
| if(loadbalancertype matches "network", "aws/nlb", if(balancertype matches "net", "aws/nlb", namespace)) as namespace
225+
| if(loadbalancertype matches "application", "aws/applicationelb", if(balancertype matches "app", "aws/applicationelb", namespace)) as namespace
226+
| where namespace="aws/applicationelb" or isEmpty(namespace)
227+
| toLowerCase(loadbalancer) as loadbalancer
228+
| fields region, namespace, loadbalancer, accountid
229+
EOT
230+
enabled = true
231+
}
232+
180233
# DynamoDB CloudTrail FER
181234
resource "sumologic_field_extraction_rule" "AwsObservabilityDynamoDBCloudTrailLogsFER" {
182235
depends_on = [time_sleep.wait_for_10_seconds]

aws-observability-terraform/examples/appmodule/output.tf

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,12 +101,30 @@ output "sumologic_field_extraction_rule_alb" {
101101
description = "This output contains sumologic ALB field extraction rule id."
102102
}
103103

104+
# ALB CloudTrail FER id
105+
output "sumologic_field_extraction_rule_alb_cloudtrail" {
106+
value = sumologic_field_extraction_rule.AwsObservabilityALBCloudTrailLogsFER.id
107+
description = "This output contains sumologic ALB CloudTrail field extraction rule id."
108+
}
109+
104110
# CLB FER id
105111
output "sumologic_field_extraction_rule_elb" {
106112
value = sumologic_field_extraction_rule.AwsObservabilityElbAccessLogsFER.id
107113
description = "This output contains sumologic CLB field extraction rule id."
108114
}
109115

116+
# CLB CloudTrail FER id
117+
output "sumologic_field_extraction_rule_clb_cloudtrail" {
118+
value = sumologic_field_extraction_rule.AwsObservabilityCLBCloudTrailLogsFER.id
119+
description = "This output contains sumologic CLB CloudTrail field extraction rule id."
120+
}
121+
122+
# NLB CloudTrail FER id
123+
output "sumologic_field_extraction_rule_nlb_cloudtrail" {
124+
value = sumologic_field_extraction_rule.AwsObservabilityNLBCloudTrailLogsFER.id
125+
description = "This output contains sumologic NLB CloudTrail field extraction rule id."
126+
}
127+
110128
# DynamoDB FER id
111129
output "sumologic_field_extraction_rule_dynamodb" {
112130
value = sumologic_field_extraction_rule.AwsObservabilityDynamoDBCloudTrailLogsFER.id

aws-observability-terraform/test/appmodule/validateSumo.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,16 @@ func validateSumoLogicResources(t *testing.T, workingDir string) {
146146
// Validate if the EC2 FER is created successfully
147147
ec2FerID := terraform.Output(t, terraformOptions, "sumologic_field_extraction_rule_ec2metrics")
148148
validateSumoLogicFER(t, terraformOptions, ec2FerID)
149+
time.Sleep(2 * time.Second)
150+
// Validate if the ALB CloudTrail Logs FER is created successfully
151+
albCloudTrailFerID := terraform.Output(t, terraformOptions, "sumologic_field_extraction_rule_alb_cloudtrail")
152+
validateSumoLogicFER(t, terraformOptions, albCloudTrailFerID)
153+
// Validate if the CLB CloudTrail Logs FER is created successfully
154+
clbCloudTrailFerID := terraform.Output(t, terraformOptions, "sumologic_field_extraction_rule_clb_cloudtrail")
155+
validateSumoLogicFER(t, terraformOptions, clbCloudTrailFerID)
156+
// Validate if the NLB CloudTrail Logs FER is created successfully
157+
nlbCloudTrailFerID := terraform.Output(t, terraformOptions, "sumologic_field_extraction_rule_nlb_cloudtrail")
158+
validateSumoLogicFER(t, terraformOptions, nlbCloudTrailFerID)
149159

150160
// Fields
151161
// Validate if the account Field is created successfully

0 commit comments

Comments
 (0)