1+ { {- /* metadata */ -} }
2+ { {- $Region := generate " Region" } }
3+ { {- $eventIngested := generate " EventIngested" } }
4+ { {- $eventDuration := generate " EventDuration" } }
5+ { {- /* availability zone */ -} }
6+ { {- $AvailabilityZone := awsAZFromRegion $Region } }
7+ { {- /* dimensions */ -} }
8+ { {- $AutoScalingGroupName := generate " AutoScalingGroupName" } }
9+ { {- $ImageId := generate " ImageId" } }
10+ { {- $InstanceId := generate " InstanceId" } }
11+ { {- $instanceTypeIdx := generate " instanceTypeIdx" } }
12+ { {- $InstanceTypeValues := generate " InstanceType" } }
13+ { {- $InstanceType := index $InstanceTypeValues $instanceTypeIdx } }
14+ { {- /* metrics */ -} }
15+ { {- $StatusCheckFailed_InstanceAvg := generate " StatusCheckFailed_InstanceAvg" } }
16+ { {- $StatusCheckFailed_SystemAvg := generate " StatusCheckFailed_SystemAvg" } }
17+ { {- $StatusCheckFailedAvg := generate " StatusCheckFailedAvg" } }
18+ { {- $CPUUtilizationAvg := generate " CPUUtilizationAvg" } }
19+ { {- $NetworkPacketsInSum := generate " NetworkPacketsInSum" } }
20+ { {- $NetworkPacketsOutSum := generate " NetworkPacketsOutSum" } }
21+ { {- $NetworkInSum := mul $NetworkPacketsInSum 15 } }
22+ { {- $NetworkOutSum := mul $NetworkPacketsOutSum 15 } }
23+ { {- $CPUCreditBalanceAvg := generate " CPUCreditBalanceAvg" } }
24+ { {- $CPUSurplusCreditBalanceAvg := generate " CPUSurplusCreditBalanceAvg" } }
25+ { {- $CPUSurplusCreditsChargedAvg := generate " CPUSurplusCreditsChargedAvg" } }
26+ { {- $CPUCreditUsageAvg := generate " CPUCreditUsageAvg" } }
27+ { {- $DiskReadBytesSum := generate " DiskReadBytesSum" } }
28+ { {- $DiskReadOpsSum := generate " DiskReadOpsSum" } }
29+ { {- $DiskWriteBytesSum := generate " DiskWriteBytesSum" } }
30+ { {- $DiskWriteOpsSum := generate " DiskWriteOpsSum" } }
31+ { {- /* instance data */ -} }
32+ { {- $instanceCoreCountValues := generate " instanceCoreCount" } }
33+ { {- $instanceCoreCount := index $instanceCoreCountValues $instanceTypeIdx } }
34+ { {- $instanceThreadPerCoreValues := generate " instanceThreadPerCore" } }
35+ { {- $instanceThreadPerCore := index $instanceThreadPerCoreValues $instanceTypeIdx } }
36+ { {- $instanceImageId := generate " instanceImageId" } }
37+ { {- $instanceMonitoringState := generate " instanceMonitoringState" } }
38+ { {- $instancePrivateIP := generate " instancePrivateIP" } }
39+ { {- $instancePrivateDnsEmpty := generate " instancePrivateDnsEmpty" } }
40+ { {- $instancePublicIP := generate " instancePublicIP" } }
41+ { {- $instancePublicDnsEmpty := generate " instancePublicDnsEmpty" } }
42+ { {- $instanceStateName := generate " instanceStateName" } }
43+ { {- $instanceStateCode := 16 } }
44+ { {- if eq $instanceStateName " running" } }
45+ { {- $instanceStateCode = 48 } }
46+ { {- end} }
47+ { {- $cloudInstanceName := generate " cloudInstanceName" } }
48+ { {- /* rate period */ -} }
49+ { {- $period := 60. } }
50+ { {- if eq $instanceMonitoringState " disabled" } }
51+ { {- $period = 300. } }
52+ { {- end} }
53+ { {- /* ip */ -} }
54+ { {- $instancePrivateDns := " " } }
55+ { {- if eq $instancePrivateDnsEmpty " fromPrivateIP" } }
56+ { {- $instancePrivateDnsPrefix := $instancePrivateIP | replace " ." " -" } }
57+ { {- $instancePrivateDns = printf " %s.%s.compute.internal" $instancePrivateDnsPrefix $Region } }
58+ { {- end} }
59+ { {- $instancePublicDns := " " } }
60+ { {- if eq $instancePublicDnsEmpty " fromPublicIP" } }
61+ { {- $instancePublicDnsPrefix := $instancePublicIP | replace " ." " -" } }
62+ { {- $instancePublicDns = printf " e2-%s.compute-1.amazonaws.com" $instancePublicDnsPrefix } }
63+ { {- end} }
64+ { {- /* tags */ -} }
65+ { {- $autoScalingGroupTag := " " } }
66+ { {- $partOfAutoScalingGroup := generate " partOfAutoScalingGroup" | mod 20 } }{ {- /* 5% chance the instance is part of an autoscaling group */ -} }
67+ { {- if eq $partOfAutoScalingGroup 0 } }
68+ { {- $autoScalingGroupTag = cat " \" aws.tags.aws:autoscaling:groupName\" :" " \" " $AutoScalingGroupName " \" ," | nospace } }
69+ { {- end} }
70+ { {- /* events */ -} }
71+ { " @timestamp" : " {{ $eventIngested.Format " 2006-01-02T15:04:05.999999Z07:00" }}" , " ecs.version" : " 8.0.0" , " agent" : { " name" : " docker-fleet-agent" , " id" : " 2d4b09d0-cdb6-445e-ac3f-6415f87b9864" , " type" : " metricbeat" , " ephemeral_id" : " cdaaaabb-be7e-432f-816b-bda019fd7c15" , " version" : " 8.3.2" } , "elastic_agent": { " id" : " 2d4b09d0-cdb6-445e-ac3f-6415f87b9864" , " version" : " 8.3.2" , " snapshot" : false } , "cloud": { " provider" : " aws" , " region" : " {{ $Region }}" , " account" : { " name" : " elastic-beats" , " id" : " 000000000000" } }, "ecs": { " version" : " 8.0.0" } , "service": { " type" : " aws" } , "data_stream": { " namespace" : " default" , " type" : " metrics" , " dataset" : " aws.ec2_metrics" } , "metricset": { " period" : 3600000, " name" : " cloudwatch" } , "event": { " duration" : {{ $eventDuration } }, "agent_id_status": "verified", "ingested": "{ { $eventIngested .Format " 2006-01-02T15:04:05.999999Z07:00" } }", "module": "aws", "dataset": "aws.ec2_metrics" }, "aws": { " cloudwatch" : { " namespace" : " AWS/EC2" } },
72+ { {- $dimensionType := generate " dimensionType" -} }
73+ { {- if eq $dimensionType " AutoScalingGroupName" -} }
74+ "aws.dimensions.AutoScalingGroupName": "{ { $AutoScalingGroupName } }", "aws.ec2.metrics.CPUCreditBalance.avg": { { $CPUCreditBalanceAvg } }, "aws.ec2.metrics.CPUCreditUsage.avg": { { $CPUCreditUsageAvg } }, "aws.ec2.metrics.CPUSurplusCreditBalance.avg": { { $CPUSurplusCreditBalanceAvg } }, "aws.ec2.metrics.CPUSurplusCreditsCharged.avg": { { $CPUSurplusCreditsChargedAvg } }, "aws.ec2.metrics.CPUUtilization.avg": { { $CPUUtilizationAvg } }, "aws.ec2.metrics.NetworkIn.sum": { { $NetworkInSum } }, "aws.ec2.metrics.NetworkOut.sum": { { $NetworkOutSum } }, "aws.ec2.metrics.NetworkPacketsIn.sum": { { $NetworkPacketsInSum } }, "aws.ec2.metrics.NetworkPacketsOut.sum": { { $NetworkPacketsOutSum } }, "aws.ec2.metrics.StatusCheckFailed_Instance.avg": { { $StatusCheckFailed_InstanceAvg } }, "aws.ec2.metrics.StatusCheckFailed_System.avg": { { $StatusCheckFailed_SystemAvg } }, "aws.ec2.metrics.StatusCheckFailed.avg": { { $StatusCheckFailedAvg } } }
75+ { {- else if eq $dimensionType " ImageId" -} }
76+ "aws.dimensions.ImageId": "{ { $ImageId } }", "aws.ec2.metrics.CPUUtilization.avg": { { $CPUUtilizationAvg } }, "aws.ec2.metrics.DiskReadBytes.sum": { { $DiskReadBytesSum } }, "aws.ec2.metrics.DiskReadOps.sum": { { $DiskReadOpsSum } }, "aws.ec2.metrics.DiskWriteBytes.sum": { { $DiskWriteBytesSum } }, "aws.ec2.metrics.DiskWriteOps.sum": { { $DiskWriteOpsSum } }, "aws.ec2.metrics.NetworkIn.sum": { { $NetworkInSum } }, "aws.ec2.metrics.NetworkOut.sum": { { $NetworkOutSum } } }
77+ { {- else if eq $dimensionType " InstanceId" -} }
78+ "aws.dimensions.InstanceId": "{{ $InstanceId }}", "aws.ec2.instance.core.count": {{ $instanceCoreCount }}, "aws.ec2.instance.image.id": "{{ $instanceImageId }}", "aws.ec2.instance.monitoring.state": "{{ $instanceMonitoringState }}", "aws.ec2.instance.private.dns_name": "{{ $instancePrivateDns }}", "aws.ec2.instance.private.ip": "{{ $instancePrivateIP }}", "aws.ec2.instance.public.dns_name": "{{ $instancePublicDns }}", "aws.ec2.instance.public.ip": "{{ $instancePublicIP }}", "aws.ec2.instance.state.code": {{ $instanceStateCode }}, "aws.ec2.instance.state.name": "{{ $instanceStateName }}", "aws.ec2.instance.threads_per_core": {{ $instanceThreadPerCore }}, "aws.ec2.metrics.CPUCreditBalance.avg": {{ $CPUCreditBalanceAvg }}, "aws.ec2.metrics.CPUCreditUsage.avg": {{ $CPUCreditUsageAvg }}, "aws.ec2.metrics.CPUSurplusCreditBalance.avg": {{ $CPUSurplusCreditBalanceAvg }}, "aws.ec2.metrics.CPUSurplusCreditsCharged.avg": {{ $CPUSurplusCreditsChargedAvg }}, "aws.ec2.metrics.CPUUtilization.avg": {{ $CPUUtilizationAvg }}, "aws.ec2.metrics.DiskReadBytes.rate": {{ divf $DiskReadBytesSum $period }}, "aws.ec2.metrics.DiskReadBytes.sum": {{ $DiskReadBytesSum }}, "aws.ec2.metrics.DiskReadOps.rate": {{ divf $DiskReadOpsSum $period }}, "aws.ec2.metrics.DiskReadOps.sum": {{ $DiskReadOpsSum }}, "aws.ec2.metrics.DiskWriteBytes.rate": {{ divf $DiskWriteBytesSum $period }}, "aws.ec2.metrics.DiskWriteBytes.sum": {{ $DiskWriteBytesSum }}, "aws.ec2.metrics.DiskWriteOps.rate": {{ divf $DiskWriteOpsSum $period }}, "aws.ec2.metrics.DiskWriteOps.sum": {{ $DiskWriteOpsSum }}, "aws.ec2.metrics.NetworkIn.rate": {{ divf $NetworkInSum $period }}, "aws.ec2.metrics.NetworkIn.sum": {{ $NetworkInSum }}, "aws.ec2.metrics.NetworkOut.rate": {{ divf $NetworkOutSum $period }}, "aws.ec2.metrics.NetworkOut.sum": {{ $NetworkOutSum }}, "aws.ec2.metrics.NetworkPacketsIn.rate": {{ divf $NetworkPacketsInSum $period }}, "aws.ec2.metrics.NetworkPacketsIn.sum": {{ $NetworkPacketsInSum }}, "aws.ec2.metrics.NetworkPacketsOut.rate": {{ divf $NetworkPacketsOutSum $period }}, "aws.ec2.metrics.NetworkPacketsOut.sum": {{ $NetworkPacketsOutSum }}, "aws.ec2.metrics.StatusCheckFailed_Instance.avg": {{ $StatusCheckFailed_InstanceAvg }}, "aws.ec2.metrics.StatusCheckFailed_System.avg": {{ $StatusCheckFailed_SystemAvg }}, "aws.ec2.metrics.StatusCheckFailed.avg": {{ $StatusCheckFailedAvg }}, "aws.tags.Name": "{{ $cloudInstanceName }}", {{ $autoScalingGroupTag }} "cloud.availability_zone": "{{ $AvailabilityZone }}", "cloud.instance.id": "{{ $InstanceId }}", "cloud.instance.name": "{{ $cloudInstanceName }}", "cloud.machine.type": "{{ $InstanceType }}", "host.cpu.usage": {{ $CPUUtilizationAvg }}, "host.disk.read.bytes": {{ $DiskReadBytesSum }}, "host.disk.write.bytes": {{ $DiskWriteBytesSum }}, "host.id": "{{ $InstanceId }}", "host.name": "{{ $cloudInstanceName }}", "host.network.egress.bytes": {{ $NetworkOutSum }}, "host.network.egress.packets": {{ $NetworkPacketsOutSum }}, "host.network.ingress.bytes": {{ $NetworkInSum }}, "host.network.ingress.packets": {{ $NetworkPacketsInSum }} }
79+ { {- else if eq $dimensionType " InstanceType" -} }
80+ "aws.dimensions.InstanceType": "{ { $InstanceType } }", "aws.ec2.metrics.CPUUtilization.avg": { { $CPUUtilizationAvg } }, "aws.ec2.metrics.DiskReadBytes.sum": { { $DiskReadBytesSum } }, "aws.ec2.metrics.DiskReadOps.sum": { { $DiskReadOpsSum } }, "aws.ec2.metrics.DiskWriteBytes.sum": { { $DiskWriteBytesSum } }, "aws.ec2.metrics.DiskWriteOps.sum": { { $DiskWriteOpsSum } }, "aws.ec2.metrics.NetworkIn.sum": { { $NetworkInSum } }, "aws.ec2.metrics.NetworkOut.sum": { { $NetworkOutSum } } }
81+ { {- else -} }
82+ "aws.ec2.metrics.CPUUtilization.avg": { { $CPUUtilizationAvg } }, "aws.ec2.metrics.DiskReadBytes.sum": { { $DiskReadBytesSum } }, "aws.ec2.metrics.DiskReadOps.sum": { { $DiskReadOpsSum } }, "aws.ec2.metrics.DiskWriteBytes.sum": { { $DiskWriteBytesSum } }, "aws.ec2.metrics.DiskWriteOps.sum": { { $DiskWriteOpsSum } }, "aws.ec2.metrics.NetworkIn.sum": { { $NetworkInSum } }, "aws.ec2.metrics.NetworkOut.sum": { { $NetworkOutSum } } }
83+ { {- end -} }
0 commit comments