Skip to content

Commit 2ac3b6c

Browse files
authored
[chore] Add benchmark for container parser (#34281)
**Description:** <Describe what has changed.> <!--Ex. Fixing a bug - Describe the bug and how this fixes the issue. Ex. Adding a feature - Explain what this achieves.--> This PR adds benchmark for the [container parser](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/pkg/stanza/docs/operators/container.md). Results: ``` # Test PerformanceResults Started: Sun, 28 Jul 2024 20:31:06 +0300 Test |Result|Duration|CPU Avg%|CPU Max%|RAM Avg MiB|RAM Max MiB|Sent Items|Received Items| ----------------------------------------|------|-------:|-------:|-------:|----------:|----------:|---------:|-------------:| Log10kDPS/OTLP |PASS | 15s| 10.4| 11.0| 68| 94| 150100| 150100| Log10kDPS/OTLP-HTTP |PASS | 15s| 7.9| 9.7| 63| 90| 150100| 150100| Log10kDPS/filelog |PASS | 15s| 7.8| 8.7| 65| 93| 150100| 150100| Log10kDPS/filelog_checkpoints |PASS | 15s| 7.1| 8.0| 63| 91| 150100| 150100| Log10kDPS/kubernetes_containers |PASS | 15s| 18.3| 19.7| 67| 96| 150100| 150100| Log10kDPS/kubernetes_containers_parser |PASS | 15s| 18.2| 19.0| 66| 95| 150100| 150100| Log10kDPS/k8s_CRI-Containerd |PASS | 15s| 15.4| 16.3| 66| 95| 150100| 150100| Log10kDPS/k8s_CRI-Containerd_no_attr_ops|PASS | 15s| 15.1| 16.3| 66| 95| 150100| 150100| Log10kDPS/CRI-Containerd |PASS | 15s| 11.1| 13.0| 65| 93| 150100| 150100| Log10kDPS/syslog-tcp-batch-1 |PASS | 15s| 16.4| 18.0| 63| 91| 150100| 150100| Log10kDPS/syslog-tcp-batch-100 |PASS | 15s| 6.1| 6.7| 61| 90| 150100| 150100| Log10kDPS/FluentForward-SplunkHEC |PASS | 15s| 26.7| 28.0| 65| 94| 149800| 149800| Log10kDPS/tcp-batch-1 |PASS | 15s| 17.7| 18.7| 62| 91| 150100| 150100| Log10kDPS/tcp-batch-100 |PASS | 15s| 6.2| 7.0| 62| 90| 150100| 150100| Total duration: 213s ``` **Link to tracking Issue:** <Issue number if applicable> #31959 **Testing:** <Describe what testing was performed and which tests were added.> **Documentation:** <Describe the documentation added.> FYI @djaglowski @TylerHelmuth Signed-off-by: ChrsMark <[email protected]>
1 parent 91dce71 commit 2ac3b6c

File tree

3 files changed

+31
-6
lines changed

3 files changed

+31
-6
lines changed

examples/kubernetes/README.md

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,13 @@ Following table shows result of example run:
4747

4848
Test |Result|Duration|CPU Avg%|CPU Max%|RAM Avg MiB|RAM Max MiB|Sent Items|Received Items|
4949
----------------------------------------|------|-------:|-------:|-------:|----------:|----------:|---------:|-------------:|
50-
Log10kDPS/OTLP |PASS | 15s| 15.2| 15.7| 69| 73| 149900| 149900|
51-
Log10kDPS/filelog |PASS | 15s| 16.5| 18.0| 61| 74| 150000| 150000|
52-
Log10kDPS/kubernetes_containers |PASS | 15s| 42.3| 44.0| 66| 80| 150000| 150000|
53-
Log10kDPS/k8s_CRI-Containerd |PASS | 15s| 36.7| 38.0| 64| 78| 150000| 150000|
54-
Log10kDPS/k8s_CRI-Containerd_no_attr_ops|PASS | 15s| 28.9| 29.7| 64| 77| 150000| 150000|
55-
Log10kDPS/CRI-Containerd |PASS | 15s| 19.0| 21.0| 63| 77| 150000| 150000|
50+
Log10kDPS/OTLP |PASS | 15s| 10.4| 11.0| 68| 94| 150100| 150100|
51+
Log10kDPS/filelog |PASS | 15s| 7.8| 8.7| 65| 93| 150100| 150100|
52+
Log10kDPS/kubernetes_containers |PASS | 15s| 18.3| 19.7| 67| 96| 150100| 150100|
53+
Log10kDPS/kubernetes_containers_parser |PASS | 15s| 18.2| 19.0| 66| 95| 150100| 150100|
54+
Log10kDPS/k8s_CRI-Containerd |PASS | 15s| 15.4| 16.3| 66| 95| 150100| 150100|
55+
Log10kDPS/k8s_CRI-Containerd_no_attr_ops|PASS | 15s| 15.1| 16.3| 66| 95| 150100| 150100|
56+
Log10kDPS/CRI-Containerd |PASS | 15s| 11.1| 13.0| 65| 93| 150100| 150100|
5657

5758
## ToDo
5859

testbed/datasenders/k8s.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,21 @@ func NewKubernetesContainerWriter() *FileLogK8sWriter {
223223
`)
224224
}
225225

226+
// NewKubernetesContainerParserWriter returns FileLogK8sWriter with configuration
227+
// to recognize and parse kubernetes container logs using the container parser
228+
func NewKubernetesContainerParserWriter() *FileLogK8sWriter {
229+
return NewFileLogK8sWriter(`
230+
filelog:
231+
include: [ %s ]
232+
start_at: beginning
233+
include_file_path: true
234+
include_file_name: false
235+
operators:
236+
- type: container
237+
id: container-parser
238+
`)
239+
}
240+
226241
// NewKubernetesCRIContainerdWriter returns FileLogK8sWriter with configuration
227242
// to parse only CRI-Containerd kubernetes logs
228243
func NewKubernetesCRIContainerdWriter() *FileLogK8sWriter {

testbed/tests/log_test.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,15 @@ func TestLog10kDPS(t *testing.T) {
6969
ExpectedMaxRAM: 150,
7070
},
7171
},
72+
{
73+
name: "kubernetes containers parser",
74+
sender: datasenders.NewKubernetesContainerParserWriter(),
75+
receiver: testbed.NewOTLPDataReceiver(testutil.GetAvailablePort(t)),
76+
resourceSpec: testbed.ResourceSpec{
77+
ExpectedMaxCPU: 110,
78+
ExpectedMaxRAM: 150,
79+
},
80+
},
7281
{
7382
name: "k8s CRI-Containerd",
7483
sender: datasenders.NewKubernetesCRIContainerdWriter(),

0 commit comments

Comments
 (0)