@@ -12,6 +12,8 @@ import (
12
12
13
13
"github.com/rs/zerolog"
14
14
"github.com/stretchr/testify/assert"
15
+
16
+ testlog "github.com/elastic/fleet-server/v7/internal/pkg/testing/log"
15
17
)
16
18
17
19
func Test_hasChangedAndUpdateRemoteOutputConfig (t * testing.T ) {
@@ -78,9 +80,10 @@ func Test_hasChangedAndUpdateRemoteOutputConfig(t *testing.T) {
78
80
79
81
for _ , tc := range testcases {
80
82
t .Run (tc .name , func (t * testing.T ) {
83
+ log := testlog .SetLogger (t )
81
84
bulker := NewBulker (nil , nil )
82
85
bulker .remoteOutputConfigMap ["remote1" ] = tc .cfg
83
- hasChanged := bulker .hasChangedAndUpdateRemoteOutputConfig (zerolog . Nop () , "remote1" , tc .newCfg )
86
+ hasChanged := bulker .hasChangedAndUpdateRemoteOutputConfig (log , "remote1" , tc .newCfg )
84
87
assert .Equal (t , tc .changed , hasChanged )
85
88
assert .Equal (t , tc .newCfg , bulker .remoteOutputConfigMap ["remote1" ])
86
89
})
@@ -148,3 +151,57 @@ func Test_CreateAndGetBulkerChanged(t *testing.T) {
148
151
assert .Nil (t , err )
149
152
assert .Equal (t , true , cancelFnCalled )
150
153
}
154
+
155
+ func Benchmark_CreateAndGetBulker (b * testing.B ) {
156
+ b .Skip ("Crashes on remote runner" )
157
+ ctx , cancel := context .WithCancel (context .Background ())
158
+ defer cancel ()
159
+ log := zerolog .Nop ()
160
+ outputMap := map [string ]map [string ]any {
161
+ "remote1" : map [string ]any {
162
+ "type" : "remote_elasticsearch" ,
163
+ "hosts" : []interface {}{"https://remote-es:443" },
164
+ "service_token" : "token1" ,
165
+ },
166
+ }
167
+ b .Run ("new remote bulker" , func (b * testing.B ) {
168
+ bulker := NewBulker (nil , nil )
169
+ b .ReportAllocs ()
170
+ for range b .N {
171
+ b .StopTimer ()
172
+ bulker .bulkerMap = make (map [string ]Bulk )
173
+ bulker .remoteOutputConfigMap = make (map [string ]map [string ]any )
174
+ b .StartTimer ()
175
+
176
+ bulker .CreateAndGetBulker (ctx , log , "remote1" , outputMap )
177
+ }
178
+ })
179
+ b .Run ("existing remote bulker" , func (b * testing.B ) {
180
+ bulker := NewBulker (nil , nil )
181
+ outputBulker := NewBulker (nil , nil )
182
+ bulker .bulkerMap ["remote1" ] = outputBulker
183
+ bulker .remoteOutputConfigMap ["remote1" ] = outputMap ["remote1" ]
184
+ b .ResetTimer ()
185
+ b .ReportAllocs ()
186
+ for range b .N {
187
+ bulker .CreateAndGetBulker (ctx , log , "remote1" , outputMap )
188
+ }
189
+ })
190
+ b .Run ("changed remote bulker" , func (b * testing.B ) {
191
+ b .ReportAllocs ()
192
+ for range b .N {
193
+ b .StopTimer ()
194
+ bulker := NewBulker (nil , nil )
195
+ outputBulker := NewBulker (nil , nil )
196
+ bulker .bulkerMap ["remote1" ] = outputBulker
197
+ bulker .remoteOutputConfigMap ["remote1" ] = map [string ]any {
198
+ "type" : "remote_elasticsearch" ,
199
+ "hosts" : []interface {}{"https://remote-es:443" },
200
+ "service_token" : "wrong token" ,
201
+ }
202
+ b .StartTimer ()
203
+
204
+ bulker .CreateAndGetBulker (ctx , log , "remote1" , outputMap )
205
+ }
206
+ })
207
+ }
0 commit comments