@@ -16,9 +16,12 @@ import (
16
16
)
17
17
18
18
type findingsInfo struct {
19
- Name string
20
- Severity string
21
- Attributes []* ecr.Attribute
19
+ Name string
20
+ Severity string
21
+ PackageVersion string
22
+ PackageName string
23
+ CVSS2VECTOR string
24
+ CVSS2SCORE string
22
25
}
23
26
24
27
var (
29
32
Name : "image_scan_findings" ,
30
33
Help : "ECR Image Scan Findings" ,
31
34
},
32
- []string {"name" , "severity" , "attributes " },
35
+ []string {"name" , "severity" , "package_version" , "package_name" , "CVSS2_VECTOR" , "CVSS2_SCORE " },
33
36
)
34
37
)
35
38
@@ -67,10 +70,12 @@ func snapshot() error {
67
70
68
71
for _ , findingsInfo := range findingsInfos {
69
72
labels := prometheus.Labels {
70
- "name" : findingsInfo .Name ,
71
- "severity" : findingsInfo .Severity ,
72
- "attributes" : "hoge" ,
73
- // "attributes": findingsInfo.Attributes,
73
+ "name" : findingsInfo .Name ,
74
+ "severity" : findingsInfo .Severity ,
75
+ "package_version" : findingsInfo .PackageName ,
76
+ "package_name" : findingsInfo .PackageName ,
77
+ "CVSS2_VECTOR" : findingsInfo .CVSS2VECTOR ,
78
+ "CVSS2_SCORE" : findingsInfo .CVSS2SCORE ,
74
79
}
75
80
findings .With (labels ).Set (1 )
76
81
}
@@ -106,6 +111,13 @@ func getECRImageScanFindings() ([]findingsInfo, error) {
106
111
RepositoryName : aws .String ("api" ),
107
112
}
108
113
114
+ var (
115
+ packageVersion string
116
+ packageName string
117
+ CVSS2VECTOR string
118
+ CVSS2SCORE string
119
+ )
120
+
109
121
for {
110
122
findings , err := svc .DescribeImageScanFindings (input )
111
123
if err != nil {
@@ -114,11 +126,27 @@ func getECRImageScanFindings() ([]findingsInfo, error) {
114
126
115
127
results := make ([]findingsInfo , len (findings .ImageScanFindings .Findings ))
116
128
for i , finding := range findings .ImageScanFindings .Findings {
129
+ for _ , attr := range finding .Attributes {
130
+ switch * attr .Key {
131
+ case "package_version" :
132
+ packageVersion = * attr .Value
133
+ case "package_name" :
134
+ packageName = * attr .Value
135
+ case "CVSS2_VECTOR" :
136
+ CVSS2VECTOR = * attr .Value
137
+ case "CVSS2_SCORE" :
138
+ CVSS2SCORE = * attr .Value
139
+ }
140
+ }
117
141
results [i ] = findingsInfo {
118
- Name : aws .StringValue (finding .Name ),
119
- Severity : aws .StringValue (finding .Severity ),
120
- Attributes : finding .Attributes ,
142
+ Name : aws .StringValue (finding .Name ),
143
+ Severity : aws .StringValue (finding .Severity ),
144
+ PackageName : packageVersion ,
145
+ PackageVersion : packageName ,
146
+ CVSS2VECTOR : CVSS2VECTOR ,
147
+ CVSS2SCORE : CVSS2SCORE ,
121
148
}
149
+ fmt .Printf ("attributes: %#v" , finding .Attributes )
122
150
}
123
151
124
152
findingsInfos = append (findingsInfos , results ... )
0 commit comments