Skip to content

Commit 5bf1579

Browse files
committed
Add samples to nginx package
1 parent fb7598f commit 5bf1579

File tree

6 files changed

+263
-218
lines changed

6 files changed

+263
-218
lines changed

internal/testrunner/runners/system/runner.go

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -720,7 +720,7 @@ func (r *runner) runTest(config *testConfig, ctxt servicedeployer.ServiceContext
720720
}
721721

722722
// Write sample events file from first doc, if requested
723-
if err := r.generateTestResult(docs); err != nil {
723+
if err := r.generateTestResult(config, docs); err != nil {
724724
return result.WithError(err)
725725
}
726726

@@ -1183,13 +1183,18 @@ func filterAgents(allAgents []kibana.Agent, ctx servicedeployer.ServiceContext)
11831183
return filtered
11841184
}
11851185

1186-
func writeSampleEvent(path string, doc common.MapStr) error {
1186+
func writeSampleEvent(path string, doc common.MapStr, name string) error {
11871187
body, err := json.MarshalIndent(doc, "", " ")
11881188
if err != nil {
11891189
return fmt.Errorf("marshalling sample event failed: %w", err)
11901190
}
11911191

1192-
err = os.WriteFile(filepath.Join(path, "sample_event.json"), body, 0644)
1192+
sampleName := "sample_event.json"
1193+
if name != "" {
1194+
sampleName = "sample_event_" + name + ".json"
1195+
}
1196+
1197+
err = os.WriteFile(filepath.Join(path, sampleName), body, 0644)
11931198
if err != nil {
11941199
return fmt.Errorf("writing sample event failed: %w", err)
11951200
}
@@ -1249,7 +1254,7 @@ func (r *runner) selectVariants(variantsFile *servicedeployer.VariantsFile) []st
12491254
return variantNames
12501255
}
12511256

1252-
func (r *runner) generateTestResult(docs []common.MapStr) error {
1257+
func (r *runner) generateTestResult(config *testConfig, docs []common.MapStr) error {
12531258
if !r.options.GenerateTestResult {
12541259
return nil
12551260
}
@@ -1259,8 +1264,27 @@ func (r *runner) generateTestResult(docs []common.MapStr) error {
12591264
rootPath = filepath.Join(rootPath, "data_stream", ds)
12601265
}
12611266

1262-
if err := writeSampleEvent(rootPath, docs[0]); err != nil {
1263-
return fmt.Errorf("failed to write sample event file: %w", err)
1267+
if len(config.Samples) == 0 {
1268+
if err := writeSampleEvent(rootPath, docs[0], ""); err != nil {
1269+
return fmt.Errorf("failed to write sample event file: %w", err)
1270+
}
1271+
return nil
1272+
}
1273+
1274+
for _, sample := range config.Samples {
1275+
found := false
1276+
for _, doc := range docs {
1277+
if sample.Matches(doc) {
1278+
if err := writeSampleEvent(rootPath, docs[0], sample.Name); err != nil {
1279+
return fmt.Errorf("failed to write sample event file: %w", err)
1280+
}
1281+
found = true
1282+
break
1283+
}
1284+
}
1285+
if !found {
1286+
return fmt.Errorf("could not find sample for %q", sample.Name)
1287+
}
12641288
}
12651289

12661290
return nil

test/packages/parallel/nginx/data_stream/access/_dev/test/system/test-default-config.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,8 @@ data_stream:
33
vars:
44
paths:
55
- "{{SERVICE_LOGS_DIR}}/access.log*"
6+
samples:
7+
- name: "200"
8+
condition:
9+
key: "http.response.status_code"
10+
value: "200"

test/packages/parallel/nginx/data_stream/access/sample_event.json

Lines changed: 0 additions & 106 deletions
This file was deleted.
Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
{
2+
"@timestamp": "2023-08-30T21:58:41.000Z",
3+
"_tmp": {},
4+
"agent": {
5+
"ephemeral_id": "539ad62b-52e5-459a-8412-ab7c327cfd3e",
6+
"id": "1fa30280-2acf-49e3-834c-cb600d113118",
7+
"name": "docker-fleet-agent",
8+
"type": "filebeat",
9+
"version": "8.8.2"
10+
},
11+
"data_stream": {
12+
"dataset": "nginx.access",
13+
"namespace": "ep",
14+
"type": "logs"
15+
},
16+
"ecs": {
17+
"version": "1.12.0"
18+
},
19+
"elastic_agent": {
20+
"id": "1fa30280-2acf-49e3-834c-cb600d113118",
21+
"snapshot": false,
22+
"version": "8.8.2"
23+
},
24+
"event": {
25+
"agent_id_status": "verified",
26+
"category": [
27+
"web"
28+
],
29+
"created": "2023-08-30T21:58:57.127Z",
30+
"dataset": "nginx.access",
31+
"ingested": "2023-08-30T21:58:58Z",
32+
"kind": "event",
33+
"outcome": "success",
34+
"timezone": "+00:00",
35+
"type": [
36+
"access"
37+
]
38+
},
39+
"host": {
40+
"architecture": "x86_64",
41+
"containerized": false,
42+
"hostname": "docker-fleet-agent",
43+
"id": "f61391496aaa43bb94736676494450c5",
44+
"ip": [
45+
"172.19.0.7"
46+
],
47+
"mac": [
48+
"02-42-AC-13-00-07"
49+
],
50+
"name": "docker-fleet-agent",
51+
"os": {
52+
"codename": "focal",
53+
"family": "debian",
54+
"kernel": "5.19.0-50-generic",
55+
"name": "Ubuntu",
56+
"platform": "ubuntu",
57+
"type": "linux",
58+
"version": "20.04.6 LTS (Focal Fossa)"
59+
}
60+
},
61+
"http": {
62+
"request": {
63+
"method": "get"
64+
},
65+
"response": {
66+
"body": {
67+
"bytes": 97
68+
},
69+
"status_code": 200
70+
},
71+
"version": "1.1"
72+
},
73+
"input": {
74+
"type": "log"
75+
},
76+
"log": {
77+
"file": {
78+
"path": "/tmp/service_logs/access.log"
79+
},
80+
"offset": 0
81+
},
82+
"nginx": {
83+
"access": {
84+
"remote_ip_list": [
85+
"127.0.0.1"
86+
]
87+
}
88+
},
89+
"related": {
90+
"ip": [
91+
"127.0.0.1"
92+
]
93+
},
94+
"source": {
95+
"address": "127.0.0.1",
96+
"ip": "127.0.0.1"
97+
},
98+
"tags": [
99+
"nginx-access"
100+
],
101+
"url": {
102+
"original": "/server-status",
103+
"path": "/server-status"
104+
},
105+
"user_agent": {
106+
"device": {
107+
"name": "Other"
108+
},
109+
"name": "curl",
110+
"original": "curl/7.64.0",
111+
"version": "7.64.0"
112+
}
113+
}

0 commit comments

Comments
 (0)