You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: cmd/stack.go
+1Lines changed: 1 addition & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -24,6 +24,7 @@ var availableServices = map[string]struct{}{
24
24
"fleet-server": {},
25
25
"kibana": {},
26
26
"package-registry": {},
27
+
"logstash": {},
27
28
}
28
29
29
30
conststackLongDescription=`Use this command to spin up a Docker-based Elastic Stack consisting of Elasticsearch, Kibana, and the Package Registry. By default the latest released version of the stack is spun up but it is possible to specify a different version, including SNAPSHOT versions by appending --version <version>.
Copy file name to clipboardExpand all lines: docs/howto/system_testing.md
+19Lines changed: 19 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -579,6 +579,25 @@ Example `expected_errors` file content:
579
579
<testcasename=\"system test: pagination\"classname=\"httpjson_false_positive_asserts.generic\"time=\".*\"> * <failure>observed hit count 4 did not match expected hit count 2</failure>
580
580
```
581
581
582
+
### System testing with logstash
583
+
584
+
It is possible to test packages that output to Logstash which in turn publishes events to Elasticsearch.
585
+
A profile config option `stack.logstash_enabled` has been added to profile configuration.
586
+
587
+
When this profile config is enabled
588
+
- Logstash output is added in Fleet with id `fleet-logstash-output`
589
+
- Logstash service is created in the stack which reads from `elastic-agent` input and outputs to `elasticsearch`.
590
+
- Logstash is also configured with `elastic-integration` plugin. Once configured to point to an Elasticsearch cluster, this filter will detect which ingest pipeline (if any) should be executed for each event, auto-detecting the event’s data-stream and its default pipeline.
591
+
592
+
A sample workflow would look like:
593
+
594
+
- You can [create](https://github.com/elastic/elastic-package#elastic-package-profiles-create) a new profile / [use existing profile](https://github.com/elastic/elastic-package#elastic-package-profiles-use) to test this.
595
+
- Navigate to `~/.elastic-package/profiles/<profilename>/`.
596
+
- Rename `config.yml.example` to `config.yml`[ If config is not used before ]
597
+
- Add the following line (or uncomment if present) `stack.logstash_enabled: true`
598
+
- Run `elastic-package stack up -d -v`
599
+
- Navigate to the package folder in integrations and run `elastic-package test system -v`
600
+
582
601
## Continuous Integration
583
602
584
603
`elastic-package` runs a set of system tests on some [dummy packages](https://github.com/elastic/elastic-package/tree/main/test/packages) to ensure it's functionalities work as expected. This allows to test changes affecting package testing within `elastic-package` before merging and releasing the changes.
0 commit comments