Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[chore] change JSON marshaler to goccy-json #3660

Merged
merged 1 commit into from
Feb 5, 2025

Conversation

atoulme
Copy link
Contributor

@atoulme atoulme commented Jan 25, 2025

Description:
jsoniter is no longer maintained; this PR switches over to github.com/goccy/go-json

@atoulme atoulme requested a review from a team as a code owner January 25, 2025 07:08
@atoulme atoulme force-pushed the change_json_marshaler branch from c6c6626 to 928c757 Compare January 25, 2025 07:09
Comment on lines -54 to -56
EscapeHTML: false,
MarshalFloatWith6Digits: true,
ObjectFieldMustBeSimpleString: true,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you know how go-json behaves when it comes to these settings?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it follows the same best practices as encoding/json. It doesn't cut any corners.

I assume test coverage would catch any regressions related to this change, is that an incorrect assumption?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It should, I'm just a bit wary of Hyrum's Law. But looking through jsoniter's documentation, these seem to be performance optimizations, so we should be fine switching.

On that note, could you run the benchmark in https://github.com/open-telemetry/opentelemetry-operator/blob/main/cmd/otel-allocator/server/bench_test.go before and after this change?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, jsoniter was trying for higher performance by cutting corners, so if you have those flags off, there is no performance improvement from it. I have attached before/after/benchstat results below.

FWIW the collector project as a whole has moved over to goccy-json a little while back.

@atoulme
Copy link
Contributor Author

atoulme commented Jan 30, 2025

Before:

GOROOT=/Users/atoulme/go/pkg/mod/golang.org/[email protected] #gosetup
GOPATH=/Users/atoulme/go #gosetup
/Users/atoulme/go/pkg/mod/golang.org/[email protected]/bin/go test -c -o /Users/atoulme/Library/Caches/JetBrains/IntelliJIdea2024.2/tmp/GoLand/___gobench_github_com_open_telemetry_opentelemetry_operator_cmd_otel_allocator_server.test github.com/open-telemetry/opentelemetry-operator/cmd/otel-allocator/server #gosetup
/Users/atoulme/Library/Caches/JetBrains/IntelliJIdea2024.2/tmp/GoLand/___gobench_github_com_open_telemetry_opentelemetry_operator_cmd_otel_allocator_server.test -test.v -test.paniconexit0 -test.bench . -test.run ^$
goos: darwin
goarch: arm64
pkg: github.com/open-telemetry/opentelemetry-operator/cmd/otel-allocator/server
BenchmarkServerTargetsHandler
BenchmarkServerTargetsHandler/least-weighted_num_cols_100_num_jobs_100
BenchmarkServerTargetsHandler/least-weighted_num_cols_100_num_jobs_100-10         	  359851	      3010 ns/op	    6988 B/op	      25 allocs/op
BenchmarkServerTargetsHandler/least-weighted_num_cols_100_num_jobs_1000
BenchmarkServerTargetsHandler/least-weighted_num_cols_100_num_jobs_1000-10        	  342391	      3052 ns/op	    7008 B/op	      25 allocs/op
BenchmarkServerTargetsHandler/least-weighted_num_cols_100_num_jobs_10000
BenchmarkServerTargetsHandler/least-weighted_num_cols_100_num_jobs_10000-10       	  357673	      2989 ns/op	    7009 B/op	      26 allocs/op
BenchmarkServerTargetsHandler/least-weighted_num_cols_100_num_jobs_100000
BenchmarkServerTargetsHandler/least-weighted_num_cols_100_num_jobs_100000-10      	  310776	      3219 ns/op	    7006 B/op	      26 allocs/op
BenchmarkServerTargetsHandler/least-weighted_num_cols_1000_num_jobs_100
BenchmarkServerTargetsHandler/least-weighted_num_cols_1000_num_jobs_100-10        	  357727	      3018 ns/op	    7001 B/op	      25 allocs/op
BenchmarkServerTargetsHandler/least-weighted_num_cols_1000_num_jobs_1000
BenchmarkServerTargetsHandler/least-weighted_num_cols_1000_num_jobs_1000-10       	  379381	      2964 ns/op	    7009 B/op	      26 allocs/op
BenchmarkServerTargetsHandler/least-weighted_num_cols_1000_num_jobs_10000
BenchmarkServerTargetsHandler/least-weighted_num_cols_1000_num_jobs_10000-10      	  393924	      2960 ns/op	    7009 B/op	      26 allocs/op
BenchmarkServerTargetsHandler/least-weighted_num_cols_1000_num_jobs_100000
BenchmarkServerTargetsHandler/least-weighted_num_cols_1000_num_jobs_100000-10     	  390514	      3266 ns/op	    7007 B/op	      26 allocs/op
BenchmarkServerTargetsHandler/consistent-hashing_num_cols_100_num_jobs_100
BenchmarkServerTargetsHandler/consistent-hashing_num_cols_100_num_jobs_100-10     	  412264	      2810 ns/op	    6988 B/op	      25 allocs/op
BenchmarkServerTargetsHandler/consistent-hashing_num_cols_100_num_jobs_1000
BenchmarkServerTargetsHandler/consistent-hashing_num_cols_100_num_jobs_1000-10    	  391568	      2874 ns/op	    7007 B/op	      25 allocs/op
BenchmarkServerTargetsHandler/consistent-hashing_num_cols_100_num_jobs_10000
BenchmarkServerTargetsHandler/consistent-hashing_num_cols_100_num_jobs_10000-10   	  406995	      2920 ns/op	    7009 B/op	      26 allocs/op
BenchmarkServerTargetsHandler/consistent-hashing_num_cols_100_num_jobs_100000
BenchmarkServerTargetsHandler/consistent-hashing_num_cols_100_num_jobs_100000-10  	  405908	      2964 ns/op	    7006 B/op	      26 allocs/op
BenchmarkServerTargetsHandler/consistent-hashing_num_cols_1000_num_jobs_100
BenchmarkServerTargetsHandler/consistent-hashing_num_cols_1000_num_jobs_100-10    	  424369	      2832 ns/op	    7001 B/op	      25 allocs/op
BenchmarkServerTargetsHandler/consistent-hashing_num_cols_1000_num_jobs_1000
BenchmarkServerTargetsHandler/consistent-hashing_num_cols_1000_num_jobs_1000-10   	  374486	      2948 ns/op	    7009 B/op	      26 allocs/op
BenchmarkServerTargetsHandler/consistent-hashing_num_cols_1000_num_jobs_10000
BenchmarkServerTargetsHandler/consistent-hashing_num_cols_1000_num_jobs_10000-10  	  366759	      2936 ns/op	    7009 B/op	      26 allocs/op
BenchmarkServerTargetsHandler/consistent-hashing_num_cols_1000_num_jobs_100000
BenchmarkServerTargetsHandler/consistent-hashing_num_cols_1000_num_jobs_100000-10 	  318016	      3369 ns/op	    7007 B/op	      26 allocs/op
BenchmarkServerTargetsHandler/per-node_num_cols_100_num_jobs_100
BenchmarkServerTargetsHandler/per-node_num_cols_100_num_jobs_100-10               	  433080	      2848 ns/op	    6980 B/op	      25 allocs/op
BenchmarkServerTargetsHandler/per-node_num_cols_100_num_jobs_1000
BenchmarkServerTargetsHandler/per-node_num_cols_100_num_jobs_1000-10              	  414410	      2768 ns/op	    6999 B/op	      25 allocs/op
BenchmarkServerTargetsHandler/per-node_num_cols_100_num_jobs_10000
BenchmarkServerTargetsHandler/per-node_num_cols_100_num_jobs_10000-10             	  422122	      2762 ns/op	    7002 B/op	      25 allocs/op
BenchmarkServerTargetsHandler/per-node_num_cols_100_num_jobs_100000
BenchmarkServerTargetsHandler/per-node_num_cols_100_num_jobs_100000-10            	  404152	      3053 ns/op	    7000 B/op	      26 allocs/op
BenchmarkServerTargetsHandler/per-node_num_cols_1000_num_jobs_100
BenchmarkServerTargetsHandler/per-node_num_cols_1000_num_jobs_100-10              	  434769	      3093 ns/op	    6999 B/op	      25 allocs/op
[controller-runtime] log.SetLogger(...) was never called; logs will not be displayed.
Detected at:
	>  goroutine 77 [running]:
	>  runtime/debug.Stack()
	>  	/Users/atoulme/go/pkg/mod/golang.org/[email protected]/src/runtime/debug/stack.go:24 +0x64
	>  sigs.k8s.io/controller-runtime/pkg/log.eventuallyFulfillRoot()
	>  	/Users/atoulme/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/log/log.go:60 +0xf4
	>  sigs.k8s.io/controller-runtime/pkg/log.(*delegatingLogSink).WithValues(0x14000aae7c0, {0x140003206a0, 0x2, 0x2})
	>  	/Users/atoulme/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/log/deleg.go:168 +0x38
	>  github.com/go-logr/logr.Logger.WithValues(...)
	>  	/Users/atoulme/go/pkg/mod/github.com/go-logr/[email protected]/logr.go:332
	>  github.com/open-telemetry/opentelemetry-operator/cmd/otel-allocator/allocation.New({0x1031e36fb, 0x8}, {{0x10493a448?, 0x14000aae7c0?}, 0x3?}, {0x0, 0x0, 0x0})
	>  	/Users/atoulme/w/opentelemetry-operator/cmd/otel-allocator/allocation/strategy.go:89 +0x114
	>  github.com/open-telemetry/opentelemetry-operator/cmd/otel-allocator/server.BenchmarkServerTargetsHandler(0x14000702a08)
	>  	/Users/atoulme/w/opentelemetry-operator/cmd/otel-allocator/server/bench_test.go:52 +0x354
	>  testing.(*B).runN(0x14000702a08, 0x1)
	>  	/Users/atoulme/go/pkg/mod/golang.org/[email protected]/src/testing/benchmark.go:193 +0x130
	>  testing.(*B).run1.func1()
	>  	/Users/atoulme/go/pkg/mod/golang.org/[email protected]/src/testing/benchmark.go:215 +0x50
	>  created by testing.(*B).run1 in goroutine 1
	>  	/Users/atoulme/go/pkg/mod/golang.org/[email protected]/src/testing/benchmark.go:208 +0x90
BenchmarkServerTargetsHandler/per-node_num_cols_1000_num_jobs_1000
BenchmarkServerTargetsHandler/per-node_num_cols_1000_num_jobs_1000-10             	  426286	      2787 ns/op	    7007 B/op	      26 allocs/op
BenchmarkServerTargetsHandler/per-node_num_cols_1000_num_jobs_10000
BenchmarkServerTargetsHandler/per-node_num_cols_1000_num_jobs_10000-10            	  407527	      2993 ns/op	    7008 B/op	      26 allocs/op
BenchmarkServerTargetsHandler/per-node_num_cols_1000_num_jobs_100000
BenchmarkServerTargetsHandler/per-node_num_cols_1000_num_jobs_100000-10           	  385030	      2946 ns/op	    7006 B/op	      26 allocs/op
BenchmarkScrapeConfigsHandler
BenchmarkScrapeConfigsHandler/0_targets
BenchmarkScrapeConfigsHandler/0_targets-10                                        	  512766	      2323 ns/op	    6849 B/op	      26 allocs/op
BenchmarkScrapeConfigsHandler/5_targets
BenchmarkScrapeConfigsHandler/5_targets-10                                        	  434955	      2452 ns/op	    9089 B/op	      26 allocs/op
BenchmarkScrapeConfigsHandler/10_targets
BenchmarkScrapeConfigsHandler/10_targets-10                                       	  391899	      2901 ns/op	   11649 B/op	      26 allocs/op
BenchmarkScrapeConfigsHandler/50_targets
BenchmarkScrapeConfigsHandler/50_targets-10                                       	  275178	      4373 ns/op	   28547 B/op	      26 allocs/op
BenchmarkScrapeConfigsHandler/100_targets
BenchmarkScrapeConfigsHandler/100_targets-10                                      	  165014	      7177 ns/op	   55942 B/op	      26 allocs/op
BenchmarkScrapeConfigsHandler/500_targets
BenchmarkScrapeConfigsHandler/500_targets-10                                      	   54470	     21406 ns/op	  219796 B/op	      26 allocs/op
BenchmarkCollectorMapJSONHandler
BenchmarkCollectorMapJSONHandler/0_collectors_0_targets
BenchmarkCollectorMapJSONHandler/0_collectors_0_targets-10                        	 1455573	       827.9 ns/op	    1752 B/op	      15 allocs/op
BenchmarkCollectorMapJSONHandler/5_collectors_5_targets
BenchmarkCollectorMapJSONHandler/5_collectors_5_targets-10                        	    3062	    386218 ns/op	  535492 B/op	    2792 allocs/op
BenchmarkCollectorMapJSONHandler/5_collectors_50_targets
BenchmarkCollectorMapJSONHandler/5_collectors_50_targets-10                       	     325	   3660315 ns/op	 4991828 B/op	   27622 allocs/op
BenchmarkCollectorMapJSONHandler/5_collectors_500_targets
BenchmarkCollectorMapJSONHandler/5_collectors_500_targets-10                      	      32	  34914491 ns/op	46780893 B/op	  275853 allocs/op
BenchmarkCollectorMapJSONHandler/50_collectors_5_targets
BenchmarkCollectorMapJSONHandler/50_collectors_5_targets-10                       	     318	   3732919 ns/op	 5025731 B/op	   27760 allocs/op
BenchmarkCollectorMapJSONHandler/50_collectors_50_targets
BenchmarkCollectorMapJSONHandler/50_collectors_50_targets-10                      	      32	  34902423 ns/op	46818529 B/op	  276001 allocs/op
BenchmarkCollectorMapJSONHandler/50_collectors_500_targets
BenchmarkCollectorMapJSONHandler/50_collectors_500_targets-10                     	       3	 337770208 ns/op	543216306 B/op	 2757984 allocs/op
BenchmarkCollectorMapJSONHandler/50_collectors_5000_targets
BenchmarkCollectorMapJSONHandler/50_collectors_5000_targets-10                    	       1	3697991084 ns/op	5029540176 B/op	27579637 allocs/op
BenchmarkTargetItemsJSONHandler
BenchmarkTargetItemsJSONHandler/0_targets_0_labels
BenchmarkTargetItemsJSONHandler/0_targets_0_labels-10                             	 1396296	       792.4 ns/op	    1648 B/op	      13 allocs/op
BenchmarkTargetItemsJSONHandler/5_targets_5_labels
BenchmarkTargetItemsJSONHandler/5_targets_5_labels-10                             	  121575	      9617 ns/op	   16868 B/op	      96 allocs/op
BenchmarkTargetItemsJSONHandler/5_targets_50_labels
BenchmarkTargetItemsJSONHandler/5_targets_50_labels-10                            	   15054	     79922 ns/op	  110792 B/op	     567 allocs/op
BenchmarkTargetItemsJSONHandler/50_targets_5_labels
BenchmarkTargetItemsJSONHandler/50_targets_5_labels-10                            	   14005	    107019 ns/op	  153930 B/op	     819 allocs/op
BenchmarkTargetItemsJSONHandler/50_targets_50_labels
BenchmarkTargetItemsJSONHandler/50_targets_50_labels-10                           	    1456	    769680 ns/op	 1071360 B/op	    5537 allocs/op
BenchmarkTargetItemsJSONHandler/500_targets_50_labels
BenchmarkTargetItemsJSONHandler/500_targets_50_labels-10                          	     158	   7427050 ns/op	 9983358 B/op	   55193 allocs/op
BenchmarkTargetItemsJSONHandler/500_targets_500_labels
BenchmarkTargetItemsJSONHandler/500_targets_500_labels-10                         	      14	  93533393 ns/op	109908411 B/op	  514904 allocs/op
BenchmarkTargetItemsJSONHandler/5000_targets_50_labels
BenchmarkTargetItemsJSONHandler/5000_targets_50_labels-10                         	      16	  67886164 ns/op	93553866 B/op	  551638 allocs/op
BenchmarkTargetItemsJSONHandler/5000_targets_500_labels
BenchmarkTargetItemsJSONHandler/5000_targets_500_labels-10                        	       2	 795892542 ns/op	1248932304 B/op	 5148502 allocs/op
PASS

Process finished with the exit code 0

After:

GOROOT=/Users/atoulme/go/pkg/mod/golang.org/[email protected] #gosetup
GOPATH=/Users/atoulme/go #gosetup
/Users/atoulme/go/pkg/mod/golang.org/[email protected]/bin/go test -c -o /Users/atoulme/Library/Caches/JetBrains/IntelliJIdea2024.2/tmp/GoLand/___gobench_github_com_open_telemetry_opentelemetry_operator_cmd_otel_allocator_server.test github.com/open-telemetry/opentelemetry-operator/cmd/otel-allocator/server #gosetup
/Users/atoulme/Library/Caches/JetBrains/IntelliJIdea2024.2/tmp/GoLand/___gobench_github_com_open_telemetry_opentelemetry_operator_cmd_otel_allocator_server.test -test.v -test.paniconexit0 -test.bench . -test.run ^$
goos: darwin
goarch: arm64
pkg: github.com/open-telemetry/opentelemetry-operator/cmd/otel-allocator/server
BenchmarkServerTargetsHandler
BenchmarkServerTargetsHandler/least-weighted_num_cols_100_num_jobs_100
BenchmarkServerTargetsHandler/least-weighted_num_cols_100_num_jobs_100-10         	  455734	      2554 ns/op	    6370 B/op	      22 allocs/op
BenchmarkServerTargetsHandler/least-weighted_num_cols_100_num_jobs_1000
BenchmarkServerTargetsHandler/least-weighted_num_cols_100_num_jobs_1000-10        	  414816	      3224 ns/op	    6389 B/op	      22 allocs/op
BenchmarkServerTargetsHandler/least-weighted_num_cols_100_num_jobs_10000
BenchmarkServerTargetsHandler/least-weighted_num_cols_100_num_jobs_10000-10       	  427243	      2654 ns/op	    6393 B/op	      23 allocs/op
BenchmarkServerTargetsHandler/least-weighted_num_cols_100_num_jobs_100000
BenchmarkServerTargetsHandler/least-weighted_num_cols_100_num_jobs_100000-10      	  406468	      4087 ns/op	    6391 B/op	      23 allocs/op
BenchmarkServerTargetsHandler/least-weighted_num_cols_1000_num_jobs_100
BenchmarkServerTargetsHandler/least-weighted_num_cols_1000_num_jobs_100-10        	  403759	      4557 ns/op	    6383 B/op	      22 allocs/op
BenchmarkServerTargetsHandler/least-weighted_num_cols_1000_num_jobs_1000
BenchmarkServerTargetsHandler/least-weighted_num_cols_1000_num_jobs_1000-10       	  336313	      3711 ns/op	    6392 B/op	      23 allocs/op
BenchmarkServerTargetsHandler/least-weighted_num_cols_1000_num_jobs_10000
BenchmarkServerTargetsHandler/least-weighted_num_cols_1000_num_jobs_10000-10      	  351069	      3144 ns/op	    6393 B/op	      23 allocs/op
BenchmarkServerTargetsHandler/least-weighted_num_cols_1000_num_jobs_100000
BenchmarkServerTargetsHandler/least-weighted_num_cols_1000_num_jobs_100000-10     	  318456	      3418 ns/op	    6391 B/op	      23 allocs/op
BenchmarkServerTargetsHandler/consistent-hashing_num_cols_100_num_jobs_100
BenchmarkServerTargetsHandler/consistent-hashing_num_cols_100_num_jobs_100-10     	  440250	      2761 ns/op	    6370 B/op	      22 allocs/op
BenchmarkServerTargetsHandler/consistent-hashing_num_cols_100_num_jobs_1000
BenchmarkServerTargetsHandler/consistent-hashing_num_cols_100_num_jobs_1000-10    	  413475	      2742 ns/op	    6389 B/op	      22 allocs/op
BenchmarkServerTargetsHandler/consistent-hashing_num_cols_100_num_jobs_10000
BenchmarkServerTargetsHandler/consistent-hashing_num_cols_100_num_jobs_10000-10   	  377085	      3107 ns/op	    6393 B/op	      23 allocs/op
BenchmarkServerTargetsHandler/consistent-hashing_num_cols_100_num_jobs_100000
BenchmarkServerTargetsHandler/consistent-hashing_num_cols_100_num_jobs_100000-10  	  353540	      2931 ns/op	    6391 B/op	      23 allocs/op
BenchmarkServerTargetsHandler/consistent-hashing_num_cols_1000_num_jobs_100
BenchmarkServerTargetsHandler/consistent-hashing_num_cols_1000_num_jobs_100-10    	  425239	      2648 ns/op	    6383 B/op	      22 allocs/op
BenchmarkServerTargetsHandler/consistent-hashing_num_cols_1000_num_jobs_1000
BenchmarkServerTargetsHandler/consistent-hashing_num_cols_1000_num_jobs_1000-10   	  424780	      2631 ns/op	    6392 B/op	      23 allocs/op
BenchmarkServerTargetsHandler/consistent-hashing_num_cols_1000_num_jobs_10000
BenchmarkServerTargetsHandler/consistent-hashing_num_cols_1000_num_jobs_10000-10  	  448666	      2697 ns/op	    6393 B/op	      23 allocs/op
BenchmarkServerTargetsHandler/consistent-hashing_num_cols_1000_num_jobs_100000
BenchmarkServerTargetsHandler/consistent-hashing_num_cols_1000_num_jobs_100000-10 	  405319	      2819 ns/op	    6391 B/op	      23 allocs/op
BenchmarkServerTargetsHandler/per-node_num_cols_100_num_jobs_100
BenchmarkServerTargetsHandler/per-node_num_cols_100_num_jobs_100-10               	  492544	      2401 ns/op	    6363 B/op	      22 allocs/op
[controller-runtime] log.SetLogger(...) was never called; logs will not be displayed.
Detected at:
	>  goroutine 70 [running]:
	>  runtime/debug.Stack()
	>  	/Users/atoulme/go/pkg/mod/golang.org/[email protected]/src/runtime/debug/stack.go:24 +0x64
	>  sigs.k8s.io/controller-runtime/pkg/log.eventuallyFulfillRoot()
	>  	/Users/atoulme/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/log/log.go:60 +0xf4
	>  sigs.k8s.io/controller-runtime/pkg/log.(*delegatingLogSink).WithValues(0x1400133d7c0, {0x14006262020, 0x2, 0x2})
	>  	/Users/atoulme/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/log/deleg.go:168 +0x38
	>  github.com/go-logr/logr.Logger.WithValues(...)
	>  	/Users/atoulme/go/pkg/mod/github.com/go-logr/[email protected]/logr.go:332
	>  github.com/open-telemetry/opentelemetry-operator/cmd/otel-allocator/allocation.New({0x104ee8841, 0x8}, {{0x106668148?, 0x1400133d7c0?}, 0x3?}, {0x0, 0x0, 0x0})
	>  	/Users/atoulme/w/opentelemetry-operator/cmd/otel-allocator/allocation/strategy.go:89 +0x114
	>  github.com/open-telemetry/opentelemetry-operator/cmd/otel-allocator/server.BenchmarkServerTargetsHandler(0x140015fb688)
	>  	/Users/atoulme/w/opentelemetry-operator/cmd/otel-allocator/server/bench_test.go:52 +0x354
	>  testing.(*B).runN(0x140015fb688, 0x1)
	>  	/Users/atoulme/go/pkg/mod/golang.org/[email protected]/src/testing/benchmark.go:193 +0x130
	>  testing.(*B).run1.func1()
	>  	/Users/atoulme/go/pkg/mod/golang.org/[email protected]/src/testing/benchmark.go:215 +0x50
	>  created by testing.(*B).run1 in goroutine 1
	>  	/Users/atoulme/go/pkg/mod/golang.org/[email protected]/src/testing/benchmark.go:208 +0x90
BenchmarkServerTargetsHandler/per-node_num_cols_100_num_jobs_1000
BenchmarkServerTargetsHandler/per-node_num_cols_100_num_jobs_1000-10              	  448234	      2481 ns/op	    6382 B/op	      22 allocs/op
BenchmarkServerTargetsHandler/per-node_num_cols_100_num_jobs_10000
BenchmarkServerTargetsHandler/per-node_num_cols_100_num_jobs_10000-10             	  491791	      2494 ns/op	    6386 B/op	      22 allocs/op
BenchmarkServerTargetsHandler/per-node_num_cols_100_num_jobs_100000
BenchmarkServerTargetsHandler/per-node_num_cols_100_num_jobs_100000-10            	  409038	      2635 ns/op	    6385 B/op	      23 allocs/op
BenchmarkServerTargetsHandler/per-node_num_cols_1000_num_jobs_100
BenchmarkServerTargetsHandler/per-node_num_cols_1000_num_jobs_100-10              	  462172	      2572 ns/op	    6382 B/op	      22 allocs/op
BenchmarkServerTargetsHandler/per-node_num_cols_1000_num_jobs_1000
BenchmarkServerTargetsHandler/per-node_num_cols_1000_num_jobs_1000-10             	  432405	      2524 ns/op	    6391 B/op	      23 allocs/op
BenchmarkServerTargetsHandler/per-node_num_cols_1000_num_jobs_10000
BenchmarkServerTargetsHandler/per-node_num_cols_1000_num_jobs_10000-10            	  483624	      2542 ns/op	    6393 B/op	      23 allocs/op
BenchmarkServerTargetsHandler/per-node_num_cols_1000_num_jobs_100000
BenchmarkServerTargetsHandler/per-node_num_cols_1000_num_jobs_100000-10           	  468217	      2625 ns/op	    6391 B/op	      23 allocs/op
BenchmarkScrapeConfigsHandler
BenchmarkScrapeConfigsHandler/0_targets
BenchmarkScrapeConfigsHandler/0_targets-10                                        	  595968	      2221 ns/op	    6848 B/op	      26 allocs/op
BenchmarkScrapeConfigsHandler/5_targets
BenchmarkScrapeConfigsHandler/5_targets-10                                        	  389935	      3475 ns/op	    9088 B/op	      26 allocs/op
BenchmarkScrapeConfigsHandler/10_targets
BenchmarkScrapeConfigsHandler/10_targets-10                                       	  369668	      3337 ns/op	   11648 B/op	      26 allocs/op
BenchmarkScrapeConfigsHandler/50_targets
BenchmarkScrapeConfigsHandler/50_targets-10                                       	  268698	      6298 ns/op	   28545 B/op	      26 allocs/op
BenchmarkScrapeConfigsHandler/100_targets
BenchmarkScrapeConfigsHandler/100_targets-10                                      	  154066	      8107 ns/op	   55939 B/op	      26 allocs/op
BenchmarkScrapeConfigsHandler/500_targets
BenchmarkScrapeConfigsHandler/500_targets-10                                      	   43149	     26934 ns/op	  219787 B/op	      26 allocs/op
BenchmarkCollectorMapJSONHandler
BenchmarkCollectorMapJSONHandler/0_collectors_0_targets
BenchmarkCollectorMapJSONHandler/0_collectors_0_targets-10                        	 2049250	       560.4 ns/op	    1008 B/op	       9 allocs/op
BenchmarkCollectorMapJSONHandler/5_collectors_5_targets
BenchmarkCollectorMapJSONHandler/5_collectors_5_targets-10                        	    2608	    445179 ns/op	  341479 B/op	    2742 allocs/op
BenchmarkCollectorMapJSONHandler/5_collectors_50_targets
BenchmarkCollectorMapJSONHandler/5_collectors_50_targets-10                       	     261	   4393276 ns/op	 3380375 B/op	   27342 allocs/op
BenchmarkCollectorMapJSONHandler/5_collectors_500_targets
BenchmarkCollectorMapJSONHandler/5_collectors_500_targets-10                      	      26	  44026253 ns/op	39933099 B/op	  273318 allocs/op
BenchmarkCollectorMapJSONHandler/50_collectors_5_targets
BenchmarkCollectorMapJSONHandler/50_collectors_5_targets-10                       	     262	   4699976 ns/op	 3459269 B/op	   27344 allocs/op
BenchmarkCollectorMapJSONHandler/50_collectors_50_targets
BenchmarkCollectorMapJSONHandler/50_collectors_50_targets-10                      	      25	  43922282 ns/op	41090018 B/op	  273343 allocs/op
BenchmarkCollectorMapJSONHandler/50_collectors_500_targets
BenchmarkCollectorMapJSONHandler/50_collectors_500_targets-10                     	       3	 440617333 ns/op	663422853 B/op	 2732996 allocs/op
BenchmarkCollectorMapJSONHandler/50_collectors_5000_targets
BenchmarkCollectorMapJSONHandler/50_collectors_5000_targets-10                    	       1	7705813250 ns/op	10323411048 B/op	27329282 allocs/op
BenchmarkTargetItemsJSONHandler
BenchmarkTargetItemsJSONHandler/0_targets_0_labels
BenchmarkTargetItemsJSONHandler/0_targets_0_labels-10                             	 1941990	       622.4 ns/op	    1032 B/op	      10 allocs/op
BenchmarkTargetItemsJSONHandler/5_targets_5_labels
BenchmarkTargetItemsJSONHandler/5_targets_5_labels-10                             	  135684	      8567 ns/op	    7738 B/op	      80 allocs/op
BenchmarkTargetItemsJSONHandler/5_targets_50_labels
BenchmarkTargetItemsJSONHandler/5_targets_50_labels-10                            	   13550	     88328 ns/op	   69529 B/op	     556 allocs/op
BenchmarkTargetItemsJSONHandler/50_targets_5_labels
BenchmarkTargetItemsJSONHandler/50_targets_5_labels-10                            	   14961	     81859 ns/op	   68690 B/op	     710 allocs/op
BenchmarkTargetItemsJSONHandler/50_targets_50_labels
BenchmarkTargetItemsJSONHandler/50_targets_50_labels-10                           	    1186	    959784 ns/op	  682171 B/op	    5476 allocs/op
BenchmarkTargetItemsJSONHandler/500_targets_50_labels
BenchmarkTargetItemsJSONHandler/500_targets_50_labels-10                          	     100	  10290251 ns/op	 6810970 B/op	   54679 allocs/op
BenchmarkTargetItemsJSONHandler/500_targets_500_labels
BenchmarkTargetItemsJSONHandler/500_targets_500_labels-10                         	      10	 117840050 ns/op	90563709 B/op	  514362 allocs/op
BenchmarkTargetItemsJSONHandler/5000_targets_50_labels
BenchmarkTargetItemsJSONHandler/5000_targets_50_labels-10                         	      12	  91613920 ns/op	72807198 B/op	  546639 allocs/op
BenchmarkTargetItemsJSONHandler/5000_targets_500_labels
BenchmarkTargetItemsJSONHandler/5000_targets_500_labels-10                        	       1	1203193208 ns/op	1454810904 B/op	 5143758 allocs/op
PASS

Process finished with the exit code 0

Benchmark:

goos: darwin
goarch: arm64
pkg: github.com/open-telemetry/opentelemetry-operator/cmd/otel-allocator/server
                                                                         │  before.txt   │               after.txt               │
                                                                         │    sec/op     │    sec/op      vs base                │
ServerTargetsHandler/least-weighted_num_cols_100_num_jobs_100-10            3.010µ ± ∞ ¹    2.554µ ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/least-weighted_num_cols_100_num_jobs_1000-10           3.052µ ± ∞ ¹    3.224µ ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/least-weighted_num_cols_100_num_jobs_10000-10          2.989µ ± ∞ ¹    2.654µ ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/least-weighted_num_cols_100_num_jobs_100000-10         3.219µ ± ∞ ¹    4.087µ ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/least-weighted_num_cols_1000_num_jobs_100-10           3.018µ ± ∞ ¹    4.557µ ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/least-weighted_num_cols_1000_num_jobs_1000-10          2.964µ ± ∞ ¹    3.711µ ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/least-weighted_num_cols_1000_num_jobs_10000-10         2.960µ ± ∞ ¹    3.144µ ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/least-weighted_num_cols_1000_num_jobs_100000-10        3.266µ ± ∞ ¹    3.418µ ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/consistent-hashing_num_cols_100_num_jobs_100-10        2.810µ ± ∞ ¹    2.761µ ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/consistent-hashing_num_cols_100_num_jobs_1000-10       2.874µ ± ∞ ¹    2.742µ ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/consistent-hashing_num_cols_100_num_jobs_10000-10      2.920µ ± ∞ ¹    3.107µ ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/consistent-hashing_num_cols_100_num_jobs_100000-10     2.964µ ± ∞ ¹    2.931µ ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/consistent-hashing_num_cols_1000_num_jobs_100-10       2.832µ ± ∞ ¹    2.648µ ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/consistent-hashing_num_cols_1000_num_jobs_1000-10      2.948µ ± ∞ ¹    2.631µ ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/consistent-hashing_num_cols_1000_num_jobs_10000-10     2.936µ ± ∞ ¹    2.697µ ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/consistent-hashing_num_cols_1000_num_jobs_100000-10    3.369µ ± ∞ ¹    2.819µ ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/per-node_num_cols_100_num_jobs_100-10                  2.848µ ± ∞ ¹    2.401µ ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/per-node_num_cols_100_num_jobs_1000-10                 2.768µ ± ∞ ¹    2.481µ ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/per-node_num_cols_100_num_jobs_10000-10                2.762µ ± ∞ ¹    2.494µ ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/per-node_num_cols_100_num_jobs_100000-10               3.053µ ± ∞ ¹    2.635µ ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/per-node_num_cols_1000_num_jobs_100-10                 3.093µ ± ∞ ¹    2.572µ ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/per-node_num_cols_1000_num_jobs_1000-10                2.787µ ± ∞ ¹    2.524µ ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/per-node_num_cols_1000_num_jobs_10000-10               2.993µ ± ∞ ¹    2.542µ ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/per-node_num_cols_1000_num_jobs_100000-10              2.946µ ± ∞ ¹    2.625µ ± ∞ ¹       ~ (p=1.000 n=1) ²
ScrapeConfigsHandler/0_targets-10                                           2.323µ ± ∞ ¹    2.221µ ± ∞ ¹       ~ (p=1.000 n=1) ²
ScrapeConfigsHandler/5_targets-10                                           2.452µ ± ∞ ¹    3.475µ ± ∞ ¹       ~ (p=1.000 n=1) ²
ScrapeConfigsHandler/10_targets-10                                          2.901µ ± ∞ ¹    3.337µ ± ∞ ¹       ~ (p=1.000 n=1) ²
ScrapeConfigsHandler/50_targets-10                                          4.373µ ± ∞ ¹    6.298µ ± ∞ ¹       ~ (p=1.000 n=1) ²
ScrapeConfigsHandler/100_targets-10                                         7.177µ ± ∞ ¹    8.107µ ± ∞ ¹       ~ (p=1.000 n=1) ²
ScrapeConfigsHandler/500_targets-10                                         21.41µ ± ∞ ¹    26.93µ ± ∞ ¹       ~ (p=1.000 n=1) ²
CollectorMapJSONHandler/0_collectors_0_targets-10                           827.9n ± ∞ ¹    560.4n ± ∞ ¹       ~ (p=1.000 n=1) ²
CollectorMapJSONHandler/5_collectors_5_targets-10                           386.2µ ± ∞ ¹    445.2µ ± ∞ ¹       ~ (p=1.000 n=1) ²
CollectorMapJSONHandler/5_collectors_50_targets-10                          3.660m ± ∞ ¹    4.393m ± ∞ ¹       ~ (p=1.000 n=1) ²
CollectorMapJSONHandler/5_collectors_500_targets-10                         34.91m ± ∞ ¹    44.03m ± ∞ ¹       ~ (p=1.000 n=1) ²
CollectorMapJSONHandler/50_collectors_5_targets-10                          3.733m ± ∞ ¹    4.700m ± ∞ ¹       ~ (p=1.000 n=1) ²
CollectorMapJSONHandler/50_collectors_50_targets-10                         34.90m ± ∞ ¹    43.92m ± ∞ ¹       ~ (p=1.000 n=1) ²
CollectorMapJSONHandler/50_collectors_500_targets-10                        337.8m ± ∞ ¹    440.6m ± ∞ ¹       ~ (p=1.000 n=1) ²
CollectorMapJSONHandler/50_collectors_5000_targets-10                        3.698 ± ∞ ¹     7.706 ± ∞ ¹       ~ (p=1.000 n=1) ²
TargetItemsJSONHandler/0_targets_0_labels-10                                792.4n ± ∞ ¹    622.4n ± ∞ ¹       ~ (p=1.000 n=1) ²
TargetItemsJSONHandler/5_targets_5_labels-10                                9.617µ ± ∞ ¹    8.567µ ± ∞ ¹       ~ (p=1.000 n=1) ²
TargetItemsJSONHandler/5_targets_50_labels-10                               79.92µ ± ∞ ¹    88.33µ ± ∞ ¹       ~ (p=1.000 n=1) ²
TargetItemsJSONHandler/50_targets_5_labels-10                              107.02µ ± ∞ ¹    81.86µ ± ∞ ¹       ~ (p=1.000 n=1) ²
TargetItemsJSONHandler/50_targets_50_labels-10                              769.7µ ± ∞ ¹    959.8µ ± ∞ ¹       ~ (p=1.000 n=1) ²
TargetItemsJSONHandler/500_targets_50_labels-10                             7.427m ± ∞ ¹   10.290m ± ∞ ¹       ~ (p=1.000 n=1) ²
TargetItemsJSONHandler/500_targets_500_labels-10                            93.53m ± ∞ ¹   117.84m ± ∞ ¹       ~ (p=1.000 n=1) ²
TargetItemsJSONHandler/5000_targets_50_labels-10                            67.89m ± ∞ ¹    91.61m ± ∞ ¹       ~ (p=1.000 n=1) ²
TargetItemsJSONHandler/5000_targets_500_labels-10                           795.9m ± ∞ ¹   1203.2m ± ∞ ¹       ~ (p=1.000 n=1) ²
geomean                                                                     36.61µ          38.99µ        +6.49%
¹ need >= 6 samples for confidence interval at level 0.95
² need >= 4 samples to detect a difference at alpha level 0.05

                                                                         │   before.txt   │               after.txt                │
                                                                         │      B/op      │     B/op       vs base                 │
ServerTargetsHandler/least-weighted_num_cols_100_num_jobs_100-10            6.824Ki ± ∞ ¹   6.221Ki ± ∞ ¹        ~ (p=1.000 n=1) ²
ServerTargetsHandler/least-weighted_num_cols_100_num_jobs_1000-10           6.844Ki ± ∞ ¹   6.239Ki ± ∞ ¹        ~ (p=1.000 n=1) ²
ServerTargetsHandler/least-weighted_num_cols_100_num_jobs_10000-10          6.845Ki ± ∞ ¹   6.243Ki ± ∞ ¹        ~ (p=1.000 n=1) ²
ServerTargetsHandler/least-weighted_num_cols_100_num_jobs_100000-10         6.842Ki ± ∞ ¹   6.241Ki ± ∞ ¹        ~ (p=1.000 n=1) ²
ServerTargetsHandler/least-weighted_num_cols_1000_num_jobs_100-10           6.837Ki ± ∞ ¹   6.233Ki ± ∞ ¹        ~ (p=1.000 n=1) ²
ServerTargetsHandler/least-weighted_num_cols_1000_num_jobs_1000-10          6.845Ki ± ∞ ¹   6.242Ki ± ∞ ¹        ~ (p=1.000 n=1) ²
ServerTargetsHandler/least-weighted_num_cols_1000_num_jobs_10000-10         6.845Ki ± ∞ ¹   6.243Ki ± ∞ ¹        ~ (p=1.000 n=1) ²
ServerTargetsHandler/least-weighted_num_cols_1000_num_jobs_100000-10        6.843Ki ± ∞ ¹   6.241Ki ± ∞ ¹        ~ (p=1.000 n=1) ²
ServerTargetsHandler/consistent-hashing_num_cols_100_num_jobs_100-10        6.824Ki ± ∞ ¹   6.221Ki ± ∞ ¹        ~ (p=1.000 n=1) ²
ServerTargetsHandler/consistent-hashing_num_cols_100_num_jobs_1000-10       6.843Ki ± ∞ ¹   6.239Ki ± ∞ ¹        ~ (p=1.000 n=1) ²
ServerTargetsHandler/consistent-hashing_num_cols_100_num_jobs_10000-10      6.845Ki ± ∞ ¹   6.243Ki ± ∞ ¹        ~ (p=1.000 n=1) ²
ServerTargetsHandler/consistent-hashing_num_cols_100_num_jobs_100000-10     6.842Ki ± ∞ ¹   6.241Ki ± ∞ ¹        ~ (p=1.000 n=1) ²
ServerTargetsHandler/consistent-hashing_num_cols_1000_num_jobs_100-10       6.837Ki ± ∞ ¹   6.233Ki ± ∞ ¹        ~ (p=1.000 n=1) ²
ServerTargetsHandler/consistent-hashing_num_cols_1000_num_jobs_1000-10      6.845Ki ± ∞ ¹   6.242Ki ± ∞ ¹        ~ (p=1.000 n=1) ²
ServerTargetsHandler/consistent-hashing_num_cols_1000_num_jobs_10000-10     6.845Ki ± ∞ ¹   6.243Ki ± ∞ ¹        ~ (p=1.000 n=1) ²
ServerTargetsHandler/consistent-hashing_num_cols_1000_num_jobs_100000-10    6.843Ki ± ∞ ¹   6.241Ki ± ∞ ¹        ~ (p=1.000 n=1) ²
ServerTargetsHandler/per-node_num_cols_100_num_jobs_100-10                  6.816Ki ± ∞ ¹   6.214Ki ± ∞ ¹        ~ (p=1.000 n=1) ²
ServerTargetsHandler/per-node_num_cols_100_num_jobs_1000-10                 6.835Ki ± ∞ ¹   6.232Ki ± ∞ ¹        ~ (p=1.000 n=1) ²
ServerTargetsHandler/per-node_num_cols_100_num_jobs_10000-10                6.838Ki ± ∞ ¹   6.236Ki ± ∞ ¹        ~ (p=1.000 n=1) ²
ServerTargetsHandler/per-node_num_cols_100_num_jobs_100000-10               6.836Ki ± ∞ ¹   6.235Ki ± ∞ ¹        ~ (p=1.000 n=1) ²
ServerTargetsHandler/per-node_num_cols_1000_num_jobs_100-10                 6.835Ki ± ∞ ¹   6.232Ki ± ∞ ¹        ~ (p=1.000 n=1) ²
ServerTargetsHandler/per-node_num_cols_1000_num_jobs_1000-10                6.843Ki ± ∞ ¹   6.241Ki ± ∞ ¹        ~ (p=1.000 n=1) ²
ServerTargetsHandler/per-node_num_cols_1000_num_jobs_10000-10               6.844Ki ± ∞ ¹   6.243Ki ± ∞ ¹        ~ (p=1.000 n=1) ²
ServerTargetsHandler/per-node_num_cols_1000_num_jobs_100000-10              6.842Ki ± ∞ ¹   6.241Ki ± ∞ ¹        ~ (p=1.000 n=1) ²
ScrapeConfigsHandler/0_targets-10                                           6.688Ki ± ∞ ¹   6.688Ki ± ∞ ¹        ~ (p=1.000 n=1) ²
ScrapeConfigsHandler/5_targets-10                                           8.876Ki ± ∞ ¹   8.875Ki ± ∞ ¹        ~ (p=1.000 n=1) ²
ScrapeConfigsHandler/10_targets-10                                          11.38Ki ± ∞ ¹   11.38Ki ± ∞ ¹        ~ (p=1.000 n=1) ²
ScrapeConfigsHandler/50_targets-10                                          27.88Ki ± ∞ ¹   27.88Ki ± ∞ ¹        ~ (p=1.000 n=1) ²
ScrapeConfigsHandler/100_targets-10                                         54.63Ki ± ∞ ¹   54.63Ki ± ∞ ¹        ~ (p=1.000 n=1) ²
ScrapeConfigsHandler/500_targets-10                                         214.6Ki ± ∞ ¹   214.6Ki ± ∞ ¹        ~ (p=1.000 n=1) ²
CollectorMapJSONHandler/0_collectors_0_targets-10                            1752.0 ± ∞ ¹    1008.0 ± ∞ ¹        ~ (p=1.000 n=1) ²
CollectorMapJSONHandler/5_collectors_5_targets-10                           522.9Ki ± ∞ ¹   333.5Ki ± ∞ ¹        ~ (p=1.000 n=1) ²
CollectorMapJSONHandler/5_collectors_50_targets-10                          4.761Mi ± ∞ ¹   3.224Mi ± ∞ ¹        ~ (p=1.000 n=1) ²
CollectorMapJSONHandler/5_collectors_500_targets-10                         44.61Mi ± ∞ ¹   38.08Mi ± ∞ ¹        ~ (p=1.000 n=1) ²
CollectorMapJSONHandler/50_collectors_5_targets-10                          4.793Mi ± ∞ ¹   3.299Mi ± ∞ ¹        ~ (p=1.000 n=1) ²
CollectorMapJSONHandler/50_collectors_50_targets-10                         44.65Mi ± ∞ ¹   39.19Mi ± ∞ ¹        ~ (p=1.000 n=1) ²
CollectorMapJSONHandler/50_collectors_500_targets-10                        518.1Mi ± ∞ ¹   632.7Mi ± ∞ ¹        ~ (p=1.000 n=1) ²
CollectorMapJSONHandler/50_collectors_5000_targets-10                       4.684Gi ± ∞ ¹   9.614Gi ± ∞ ¹        ~ (p=1.000 n=1) ²
TargetItemsJSONHandler/0_targets_0_labels-10                                1.609Ki ± ∞ ¹   1.008Ki ± ∞ ¹        ~ (p=1.000 n=1) ²
TargetItemsJSONHandler/5_targets_5_labels-10                               16.473Ki ± ∞ ¹   7.557Ki ± ∞ ¹        ~ (p=1.000 n=1) ²
TargetItemsJSONHandler/5_targets_50_labels-10                              108.20Ki ± ∞ ¹   67.90Ki ± ∞ ¹        ~ (p=1.000 n=1) ²
TargetItemsJSONHandler/50_targets_5_labels-10                              150.32Ki ± ∞ ¹   67.08Ki ± ∞ ¹        ~ (p=1.000 n=1) ²
TargetItemsJSONHandler/50_targets_50_labels-10                             1046.2Ki ± ∞ ¹   666.2Ki ± ∞ ¹        ~ (p=1.000 n=1) ²
TargetItemsJSONHandler/500_targets_50_labels-10                             9.521Mi ± ∞ ¹   6.495Mi ± ∞ ¹        ~ (p=1.000 n=1) ²
TargetItemsJSONHandler/500_targets_500_labels-10                           104.82Mi ± ∞ ¹   86.37Mi ± ∞ ¹        ~ (p=1.000 n=1) ²
TargetItemsJSONHandler/5000_targets_50_labels-10                            89.22Mi ± ∞ ¹   69.43Mi ± ∞ ¹        ~ (p=1.000 n=1) ²
TargetItemsJSONHandler/5000_targets_500_labels-10                           1.163Gi ± ∞ ¹   1.355Gi ± ∞ ¹        ~ (p=1.000 n=1) ²
geomean                                                                     78.93Ki         68.02Ki        -13.83%
¹ need >= 6 samples for confidence interval at level 0.95
² need >= 4 samples to detect a difference at alpha level 0.05

                                                                         │  before.txt  │              after.txt               │
                                                                         │  allocs/op   │  allocs/op    vs base                │
ServerTargetsHandler/least-weighted_num_cols_100_num_jobs_100-10            25.00 ± ∞ ¹    22.00 ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/least-weighted_num_cols_100_num_jobs_1000-10           25.00 ± ∞ ¹    22.00 ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/least-weighted_num_cols_100_num_jobs_10000-10          26.00 ± ∞ ¹    23.00 ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/least-weighted_num_cols_100_num_jobs_100000-10         26.00 ± ∞ ¹    23.00 ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/least-weighted_num_cols_1000_num_jobs_100-10           25.00 ± ∞ ¹    22.00 ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/least-weighted_num_cols_1000_num_jobs_1000-10          26.00 ± ∞ ¹    23.00 ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/least-weighted_num_cols_1000_num_jobs_10000-10         26.00 ± ∞ ¹    23.00 ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/least-weighted_num_cols_1000_num_jobs_100000-10        26.00 ± ∞ ¹    23.00 ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/consistent-hashing_num_cols_100_num_jobs_100-10        25.00 ± ∞ ¹    22.00 ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/consistent-hashing_num_cols_100_num_jobs_1000-10       25.00 ± ∞ ¹    22.00 ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/consistent-hashing_num_cols_100_num_jobs_10000-10      26.00 ± ∞ ¹    23.00 ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/consistent-hashing_num_cols_100_num_jobs_100000-10     26.00 ± ∞ ¹    23.00 ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/consistent-hashing_num_cols_1000_num_jobs_100-10       25.00 ± ∞ ¹    22.00 ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/consistent-hashing_num_cols_1000_num_jobs_1000-10      26.00 ± ∞ ¹    23.00 ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/consistent-hashing_num_cols_1000_num_jobs_10000-10     26.00 ± ∞ ¹    23.00 ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/consistent-hashing_num_cols_1000_num_jobs_100000-10    26.00 ± ∞ ¹    23.00 ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/per-node_num_cols_100_num_jobs_100-10                  25.00 ± ∞ ¹    22.00 ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/per-node_num_cols_100_num_jobs_1000-10                 25.00 ± ∞ ¹    22.00 ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/per-node_num_cols_100_num_jobs_10000-10                25.00 ± ∞ ¹    22.00 ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/per-node_num_cols_100_num_jobs_100000-10               26.00 ± ∞ ¹    23.00 ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/per-node_num_cols_1000_num_jobs_100-10                 25.00 ± ∞ ¹    22.00 ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/per-node_num_cols_1000_num_jobs_1000-10                26.00 ± ∞ ¹    23.00 ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/per-node_num_cols_1000_num_jobs_10000-10               26.00 ± ∞ ¹    23.00 ± ∞ ¹       ~ (p=1.000 n=1) ²
ServerTargetsHandler/per-node_num_cols_1000_num_jobs_100000-10              26.00 ± ∞ ¹    23.00 ± ∞ ¹       ~ (p=1.000 n=1) ²
ScrapeConfigsHandler/0_targets-10                                           26.00 ± ∞ ¹    26.00 ± ∞ ¹       ~ (p=1.000 n=1) ³
ScrapeConfigsHandler/5_targets-10                                           26.00 ± ∞ ¹    26.00 ± ∞ ¹       ~ (p=1.000 n=1) ³
ScrapeConfigsHandler/10_targets-10                                          26.00 ± ∞ ¹    26.00 ± ∞ ¹       ~ (p=1.000 n=1) ³
ScrapeConfigsHandler/50_targets-10                                          26.00 ± ∞ ¹    26.00 ± ∞ ¹       ~ (p=1.000 n=1) ³
ScrapeConfigsHandler/100_targets-10                                         26.00 ± ∞ ¹    26.00 ± ∞ ¹       ~ (p=1.000 n=1) ³
ScrapeConfigsHandler/500_targets-10                                         26.00 ± ∞ ¹    26.00 ± ∞ ¹       ~ (p=1.000 n=1) ³
CollectorMapJSONHandler/0_collectors_0_targets-10                          15.000 ± ∞ ¹    9.000 ± ∞ ¹       ~ (p=1.000 n=1) ²
CollectorMapJSONHandler/5_collectors_5_targets-10                          2.792k ± ∞ ¹   2.742k ± ∞ ¹       ~ (p=1.000 n=1) ²
CollectorMapJSONHandler/5_collectors_50_targets-10                         27.62k ± ∞ ¹   27.34k ± ∞ ¹       ~ (p=1.000 n=1) ²
CollectorMapJSONHandler/5_collectors_500_targets-10                        275.9k ± ∞ ¹   273.3k ± ∞ ¹       ~ (p=1.000 n=1) ²
CollectorMapJSONHandler/50_collectors_5_targets-10                         27.76k ± ∞ ¹   27.34k ± ∞ ¹       ~ (p=1.000 n=1) ²
CollectorMapJSONHandler/50_collectors_50_targets-10                        276.0k ± ∞ ¹   273.3k ± ∞ ¹       ~ (p=1.000 n=1) ²
CollectorMapJSONHandler/50_collectors_500_targets-10                       2.758M ± ∞ ¹   2.733M ± ∞ ¹       ~ (p=1.000 n=1) ²
CollectorMapJSONHandler/50_collectors_5000_targets-10                      27.58M ± ∞ ¹   27.33M ± ∞ ¹       ~ (p=1.000 n=1) ²
TargetItemsJSONHandler/0_targets_0_labels-10                                13.00 ± ∞ ¹    10.00 ± ∞ ¹       ~ (p=1.000 n=1) ²
TargetItemsJSONHandler/5_targets_5_labels-10                                96.00 ± ∞ ¹    80.00 ± ∞ ¹       ~ (p=1.000 n=1) ²
TargetItemsJSONHandler/5_targets_50_labels-10                               567.0 ± ∞ ¹    556.0 ± ∞ ¹       ~ (p=1.000 n=1) ²
TargetItemsJSONHandler/50_targets_5_labels-10                               819.0 ± ∞ ¹    710.0 ± ∞ ¹       ~ (p=1.000 n=1) ²
TargetItemsJSONHandler/50_targets_50_labels-10                             5.537k ± ∞ ¹   5.476k ± ∞ ¹       ~ (p=1.000 n=1) ²
TargetItemsJSONHandler/500_targets_50_labels-10                            55.19k ± ∞ ¹   54.68k ± ∞ ¹       ~ (p=1.000 n=1) ²
TargetItemsJSONHandler/500_targets_500_labels-10                           514.9k ± ∞ ¹   514.4k ± ∞ ¹       ~ (p=1.000 n=1) ²
TargetItemsJSONHandler/5000_targets_50_labels-10                           551.6k ± ∞ ¹   546.6k ± ∞ ¹       ~ (p=1.000 n=1) ²
TargetItemsJSONHandler/5000_targets_500_labels-10                          5.149M ± ∞ ¹   5.144M ± ∞ ¹       ~ (p=1.000 n=1) ²
geomean                                                                     293.3          268.1        -8.60%
¹ need >= 6 samples for confidence interval at level 0.95
² need >= 4 samples to detect a difference at alpha level 0.05
³ all samples are equal

@swiatekm swiatekm self-requested a review January 31, 2025 09:30
Copy link
Contributor

@swiatekm swiatekm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm good with this, but I'd like another maintainer approval. @open-telemetry/operator-maintainers

@swiatekm swiatekm merged commit 98e4cfe into open-telemetry:main Feb 5, 2025
38 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants