From c85ae6b1fec850f0aa0f4a7490952e109e151abd Mon Sep 17 00:00:00 2001 From: SuperQ Date: Fri, 30 Aug 2024 16:56:27 +0200 Subject: [PATCH] Update supported Go versions Now that 1.23 is out, update the supported version matrix to Go 1.21 through 1.23. This allows us to start using `log/slog`. * Update generated tests. Signed-off-by: SuperQ --- .github/workflows/go.yml | 2 +- .github/workflows/golangci-lint.yml | 2 +- README.md | 4 +- go.mod | 2 +- go.sum | 4 + .../collectors/go_collector_go117_test.go | 110 --------- .../collectors/go_collector_go119_test.go | 128 ---------- .../collectors/go_collector_go123_test.go | 232 ++++++++++++++++++ prometheus/go_collector_metrics_go117_test.go | 41 ---- prometheus/go_collector_metrics_go118_test.go | 41 ---- prometheus/go_collector_metrics_go119_test.go | 45 ---- prometheus/go_collector_metrics_go123_test.go | 108 ++++++++ supported_go_versions.txt | 2 +- 13 files changed, 350 insertions(+), 371 deletions(-) delete mode 100644 prometheus/collectors/go_collector_go117_test.go delete mode 100644 prometheus/collectors/go_collector_go119_test.go create mode 100644 prometheus/collectors/go_collector_go123_test.go delete mode 100644 prometheus/go_collector_metrics_go117_test.go delete mode 100644 prometheus/go_collector_metrics_go118_test.go delete mode 100644 prometheus/go_collector_metrics_go119_test.go create mode 100644 prometheus/go_collector_metrics_go123_test.go diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index b9be9db..9b91e3e 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -54,7 +54,7 @@ jobs: - name: Run style and unused uses: dagger/dagger-for-github@v6 - if: ${{ matrix.go_version == '1.20' }} + if: ${{ matrix.go_version == '1.21' }} with: version: "latest" verb: call diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml index f4a7385..a15cfc9 100644 --- a/.github/workflows/golangci-lint.yml +++ b/.github/workflows/golangci-lint.yml @@ -28,7 +28,7 @@ jobs: - name: Install Go uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2 with: - go-version: 1.22.x + go-version: 1.23.x - name: Install snmp_exporter/generator dependencies run: sudo apt-get update && sudo apt-get -y install libsnmp-dev if: github.repository == 'prometheus/snmp_exporter' diff --git a/README.md b/README.md index d83a30c..8168fac 100644 --- a/README.md +++ b/README.md @@ -10,8 +10,8 @@ This is the [Go](http://golang.org) client library for instrumenting application code, and one for creating clients that talk to the Prometheus HTTP API. -**This library requires Go1.20 or later.** -> The library mandates the use of Go1.20 or subsequent versions. While it has demonstrated functionality with versions as old as Go 1.17, our commitment remains to offer support and rectifications for only the most recent three major releases. +**This library requires Go1.21 or later.** +> The library mandates the use of Go1.21 or subsequent versions. While it has demonstrated functionality with versions as old as Go 1.17, our commitment remains to offer support and rectifications for only the most recent three major releases. ## Important note about releases and stability diff --git a/go.mod b/go.mod index 918344c..e0ad015 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/prometheus/client_golang -go 1.20 +go 1.21 require ( github.com/beorn7/perks v1.0.1 diff --git a/go.sum b/go.sum index 6102926..0d9ba5c 100644 --- a/go.sum +++ b/go.sum @@ -41,9 +41,11 @@ github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0leargg github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= +github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs= @@ -56,6 +58,8 @@ google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6h google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/prometheus/collectors/go_collector_go117_test.go b/prometheus/collectors/go_collector_go117_test.go deleted file mode 100644 index f378d40..0000000 --- a/prometheus/collectors/go_collector_go117_test.go +++ /dev/null @@ -1,110 +0,0 @@ -// Copyright 2022 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -//go:build go1.17 && !go1.19 -// +build go1.17,!go1.19 - -package collectors - -func withAllMetrics() []string { - return withBaseMetrics([]string{ - "go_gc_cycles_automatic_gc_cycles_total", - "go_gc_cycles_forced_gc_cycles_total", - "go_gc_cycles_total_gc_cycles_total", - "go_gc_heap_allocs_by_size_bytes", - "go_gc_heap_allocs_bytes_total", - "go_gc_heap_allocs_objects_total", - "go_gc_heap_frees_by_size_bytes", - "go_gc_heap_frees_bytes_total", - "go_gc_heap_frees_objects_total", - "go_gc_heap_goal_bytes", - "go_gc_heap_objects_objects", - "go_gc_heap_tiny_allocs_objects_total", - "go_gc_pauses_seconds", - "go_memory_classes_heap_free_bytes", - "go_memory_classes_heap_objects_bytes", - "go_memory_classes_heap_released_bytes", - "go_memory_classes_heap_stacks_bytes", - "go_memory_classes_heap_unused_bytes", - "go_memory_classes_metadata_mcache_free_bytes", - "go_memory_classes_metadata_mcache_inuse_bytes", - "go_memory_classes_metadata_mspan_free_bytes", - "go_memory_classes_metadata_mspan_inuse_bytes", - "go_memory_classes_metadata_other_bytes", - "go_memory_classes_os_stacks_bytes", - "go_memory_classes_other_bytes", - "go_memory_classes_profiling_buckets_bytes", - "go_memory_classes_total_bytes", - "go_sched_goroutines_goroutines", - "go_sched_latencies_seconds", - }) -} - -func withGCMetrics() []string { - return withBaseMetrics([]string{ - "go_gc_cycles_automatic_gc_cycles_total", - "go_gc_cycles_forced_gc_cycles_total", - "go_gc_cycles_total_gc_cycles_total", - "go_gc_heap_allocs_by_size_bytes", - "go_gc_heap_allocs_bytes_total", - "go_gc_heap_allocs_objects_total", - "go_gc_heap_frees_by_size_bytes", - "go_gc_heap_frees_bytes_total", - "go_gc_heap_frees_objects_total", - "go_gc_heap_goal_bytes", - "go_gc_heap_objects_objects", - "go_gc_heap_tiny_allocs_objects_total", - "go_gc_pauses_seconds", - }) -} - -func withMemoryMetrics() []string { - return withBaseMetrics([]string{ - "go_memory_classes_heap_free_bytes", - "go_memory_classes_heap_objects_bytes", - "go_memory_classes_heap_released_bytes", - "go_memory_classes_heap_stacks_bytes", - "go_memory_classes_heap_unused_bytes", - "go_memory_classes_metadata_mcache_free_bytes", - "go_memory_classes_metadata_mcache_inuse_bytes", - "go_memory_classes_metadata_mspan_free_bytes", - "go_memory_classes_metadata_mspan_inuse_bytes", - "go_memory_classes_metadata_other_bytes", - "go_memory_classes_os_stacks_bytes", - "go_memory_classes_other_bytes", - "go_memory_classes_profiling_buckets_bytes", - "go_memory_classes_total_bytes", - }) -} - -func withSchedulerMetrics() []string { - return []string{ - "go_gc_duration_seconds", - "go_goroutines", - "go_info", - "go_memstats_last_gc_time_seconds", - "go_sched_goroutines_goroutines", - "go_sched_latencies_seconds", - "go_threads", - } -} - -func withDebugMetrics() []string { - return withBaseMetrics([]string{}) -} - -var defaultRuntimeMetrics = []string{} - -func withDefaultRuntimeMetrics(metricNames []string, withoutGC, withoutSched bool) []string { - return metricNames -} diff --git a/prometheus/collectors/go_collector_go119_test.go b/prometheus/collectors/go_collector_go119_test.go deleted file mode 100644 index 4febad2..0000000 --- a/prometheus/collectors/go_collector_go119_test.go +++ /dev/null @@ -1,128 +0,0 @@ -// Copyright 2022 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -//go:build go1.19 && !go1.20 -// +build go1.19,!go1.20 - -package collectors - -import "sort" - -func withAllMetrics() []string { - return withBaseMetrics([]string{ - "go_cgo_go_to_c_calls_calls_total", - "go_gc_cycles_automatic_gc_cycles_total", - "go_gc_cycles_forced_gc_cycles_total", - "go_gc_cycles_total_gc_cycles_total", - "go_gc_heap_allocs_by_size_bytes", - "go_gc_heap_allocs_bytes_total", - "go_gc_heap_allocs_objects_total", - "go_gc_heap_frees_by_size_bytes", - "go_gc_heap_frees_bytes_total", - "go_gc_heap_frees_objects_total", - "go_gc_heap_goal_bytes", - "go_gc_heap_objects_objects", - "go_gc_heap_tiny_allocs_objects_total", - "go_gc_limiter_last_enabled_gc_cycle", - "go_gc_pauses_seconds", - "go_gc_stack_starting_size_bytes", - "go_memory_classes_heap_free_bytes", - "go_memory_classes_heap_objects_bytes", - "go_memory_classes_heap_released_bytes", - "go_memory_classes_heap_stacks_bytes", - "go_memory_classes_heap_unused_bytes", - "go_memory_classes_metadata_mcache_free_bytes", - "go_memory_classes_metadata_mcache_inuse_bytes", - "go_memory_classes_metadata_mspan_free_bytes", - "go_memory_classes_metadata_mspan_inuse_bytes", - "go_memory_classes_metadata_other_bytes", - "go_memory_classes_os_stacks_bytes", - "go_memory_classes_other_bytes", - "go_memory_classes_profiling_buckets_bytes", - "go_memory_classes_total_bytes", - "go_sched_gomaxprocs_threads", - "go_sched_goroutines_goroutines", - "go_sched_latencies_seconds", - }) -} - -func withGCMetrics() []string { - return withBaseMetrics([]string{ - "go_gc_cycles_automatic_gc_cycles_total", - "go_gc_cycles_forced_gc_cycles_total", - "go_gc_cycles_total_gc_cycles_total", - "go_gc_heap_allocs_by_size_bytes", - "go_gc_heap_allocs_bytes_total", - "go_gc_heap_allocs_objects_total", - "go_gc_heap_frees_by_size_bytes", - "go_gc_heap_frees_bytes_total", - "go_gc_heap_frees_objects_total", - "go_gc_heap_goal_bytes", - "go_gc_heap_objects_objects", - "go_gc_heap_tiny_allocs_objects_total", - "go_gc_limiter_last_enabled_gc_cycle", - "go_gc_pauses_seconds", - "go_gc_stack_starting_size_bytes", - }) -} - -func withMemoryMetrics() []string { - return withBaseMetrics([]string{ - "go_memory_classes_heap_free_bytes", - "go_memory_classes_heap_objects_bytes", - "go_memory_classes_heap_released_bytes", - "go_memory_classes_heap_stacks_bytes", - "go_memory_classes_heap_unused_bytes", - "go_memory_classes_metadata_mcache_free_bytes", - "go_memory_classes_metadata_mcache_inuse_bytes", - "go_memory_classes_metadata_mspan_free_bytes", - "go_memory_classes_metadata_mspan_inuse_bytes", - "go_memory_classes_metadata_other_bytes", - "go_memory_classes_os_stacks_bytes", - "go_memory_classes_other_bytes", - "go_memory_classes_profiling_buckets_bytes", - "go_memory_classes_total_bytes", - }) -} - -func withSchedulerMetrics() []string { - return []string{ - "go_gc_duration_seconds", - "go_goroutines", - "go_info", - "go_memstats_last_gc_time_seconds", - "go_sched_gomaxprocs_threads", - "go_sched_goroutines_goroutines", - "go_sched_latencies_seconds", - "go_threads", - } -} - -func withDebugMetrics() []string { - return withBaseMetrics([]string{}) -} - -var defaultRuntimeMetrics = []string{ - "go_sched_gomaxprocs_threads", -} - -func withDefaultRuntimeMetrics(metricNames []string, withoutGC, withoutSched bool) []string { - // If withoutSched is true, exclude "go_sched_gomaxprocs_threads". - if withoutSched { - return metricNames - } - metricNames = append(metricNames, defaultRuntimeMetrics...) - // sorting is required - sort.Strings(metricNames) - return metricNames -} diff --git a/prometheus/collectors/go_collector_go123_test.go b/prometheus/collectors/go_collector_go123_test.go new file mode 100644 index 0000000..43395dd --- /dev/null +++ b/prometheus/collectors/go_collector_go123_test.go @@ -0,0 +1,232 @@ +// Copyright 2022 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build go1.23 && !go1.24 +// +build go1.23,!go1.24 + +package collectors + +import "sort" + +func withAllMetrics() []string { + return withBaseMetrics([]string{ + "go_cgo_go_to_c_calls_calls_total", + "go_cpu_classes_gc_mark_assist_cpu_seconds_total", + "go_cpu_classes_gc_mark_dedicated_cpu_seconds_total", + "go_cpu_classes_gc_mark_idle_cpu_seconds_total", + "go_cpu_classes_gc_pause_cpu_seconds_total", + "go_cpu_classes_gc_total_cpu_seconds_total", + "go_cpu_classes_idle_cpu_seconds_total", + "go_cpu_classes_scavenge_assist_cpu_seconds_total", + "go_cpu_classes_scavenge_background_cpu_seconds_total", + "go_cpu_classes_scavenge_total_cpu_seconds_total", + "go_cpu_classes_total_cpu_seconds_total", + "go_cpu_classes_user_cpu_seconds_total", + "go_gc_cycles_automatic_gc_cycles_total", + "go_gc_cycles_forced_gc_cycles_total", + "go_gc_cycles_total_gc_cycles_total", + "go_gc_gogc_percent", + "go_gc_gomemlimit_bytes", + "go_gc_heap_allocs_by_size_bytes", + "go_gc_heap_allocs_bytes_total", + "go_gc_heap_allocs_objects_total", + "go_gc_heap_frees_by_size_bytes", + "go_gc_heap_frees_bytes_total", + "go_gc_heap_frees_objects_total", + "go_gc_heap_goal_bytes", + "go_gc_heap_live_bytes", + "go_gc_heap_objects_objects", + "go_gc_heap_tiny_allocs_objects_total", + "go_gc_limiter_last_enabled_gc_cycle", + "go_gc_pauses_seconds", + "go_gc_scan_globals_bytes", + "go_gc_scan_heap_bytes", + "go_gc_scan_stack_bytes", + "go_gc_scan_total_bytes", + "go_gc_stack_starting_size_bytes", + "go_godebug_non_default_behavior_asynctimerchan_events_total", + "go_godebug_non_default_behavior_execerrdot_events_total", + "go_godebug_non_default_behavior_gocachehash_events_total", + "go_godebug_non_default_behavior_gocachetest_events_total", + "go_godebug_non_default_behavior_gocacheverify_events_total", + "go_godebug_non_default_behavior_gotypesalias_events_total", + "go_godebug_non_default_behavior_http2client_events_total", + "go_godebug_non_default_behavior_http2server_events_total", + "go_godebug_non_default_behavior_httplaxcontentlength_events_total", + "go_godebug_non_default_behavior_httpmuxgo121_events_total", + "go_godebug_non_default_behavior_httpservecontentkeepheaders_events_total", + "go_godebug_non_default_behavior_installgoroot_events_total", + "go_godebug_non_default_behavior_multipartmaxheaders_events_total", + "go_godebug_non_default_behavior_multipartmaxparts_events_total", + "go_godebug_non_default_behavior_multipathtcp_events_total", + "go_godebug_non_default_behavior_netedns0_events_total", + "go_godebug_non_default_behavior_panicnil_events_total", + "go_godebug_non_default_behavior_randautoseed_events_total", + "go_godebug_non_default_behavior_tarinsecurepath_events_total", + "go_godebug_non_default_behavior_tls10server_events_total", + "go_godebug_non_default_behavior_tls3des_events_total", + "go_godebug_non_default_behavior_tlsmaxrsasize_events_total", + "go_godebug_non_default_behavior_tlsrsakex_events_total", + "go_godebug_non_default_behavior_tlsunsafeekm_events_total", + "go_godebug_non_default_behavior_winreadlinkvolume_events_total", + "go_godebug_non_default_behavior_winsymlink_events_total", + "go_godebug_non_default_behavior_x509keypairleaf_events_total", + "go_godebug_non_default_behavior_x509negativeserial_events_total", + "go_godebug_non_default_behavior_x509sha1_events_total", + "go_godebug_non_default_behavior_x509usefallbackroots_events_total", + "go_godebug_non_default_behavior_x509usepolicies_events_total", + "go_godebug_non_default_behavior_zipinsecurepath_events_total", + "go_memory_classes_heap_free_bytes", + "go_memory_classes_heap_objects_bytes", + "go_memory_classes_heap_released_bytes", + "go_memory_classes_heap_stacks_bytes", + "go_memory_classes_heap_unused_bytes", + "go_memory_classes_metadata_mcache_free_bytes", + "go_memory_classes_metadata_mcache_inuse_bytes", + "go_memory_classes_metadata_mspan_free_bytes", + "go_memory_classes_metadata_mspan_inuse_bytes", + "go_memory_classes_metadata_other_bytes", + "go_memory_classes_os_stacks_bytes", + "go_memory_classes_other_bytes", + "go_memory_classes_profiling_buckets_bytes", + "go_memory_classes_total_bytes", + "go_sched_gomaxprocs_threads", + "go_sched_goroutines_goroutines", + "go_sched_latencies_seconds", + "go_sched_pauses_stopping_gc_seconds", + "go_sched_pauses_stopping_other_seconds", + "go_sched_pauses_total_gc_seconds", + "go_sched_pauses_total_other_seconds", + "go_sync_mutex_wait_total_seconds_total", + }) +} + +func withGCMetrics() []string { + return withBaseMetrics([]string{ + "go_gc_cycles_automatic_gc_cycles_total", + "go_gc_cycles_forced_gc_cycles_total", + "go_gc_cycles_total_gc_cycles_total", + "go_gc_gogc_percent", + "go_gc_gomemlimit_bytes", + "go_gc_heap_allocs_by_size_bytes", + "go_gc_heap_allocs_bytes_total", + "go_gc_heap_allocs_objects_total", + "go_gc_heap_frees_by_size_bytes", + "go_gc_heap_frees_bytes_total", + "go_gc_heap_frees_objects_total", + "go_gc_heap_goal_bytes", + "go_gc_heap_live_bytes", + "go_gc_heap_objects_objects", + "go_gc_heap_tiny_allocs_objects_total", + "go_gc_limiter_last_enabled_gc_cycle", + "go_gc_pauses_seconds", + "go_gc_scan_globals_bytes", + "go_gc_scan_heap_bytes", + "go_gc_scan_stack_bytes", + "go_gc_scan_total_bytes", + "go_gc_stack_starting_size_bytes", + }) +} + +func withMemoryMetrics() []string { + return withBaseMetrics([]string{ + "go_memory_classes_heap_free_bytes", + "go_memory_classes_heap_objects_bytes", + "go_memory_classes_heap_released_bytes", + "go_memory_classes_heap_stacks_bytes", + "go_memory_classes_heap_unused_bytes", + "go_memory_classes_metadata_mcache_free_bytes", + "go_memory_classes_metadata_mcache_inuse_bytes", + "go_memory_classes_metadata_mspan_free_bytes", + "go_memory_classes_metadata_mspan_inuse_bytes", + "go_memory_classes_metadata_other_bytes", + "go_memory_classes_os_stacks_bytes", + "go_memory_classes_other_bytes", + "go_memory_classes_profiling_buckets_bytes", + "go_memory_classes_total_bytes", + }) +} + +func withSchedulerMetrics() []string { + return withBaseMetrics([]string{ + "go_sched_gomaxprocs_threads", + "go_sched_goroutines_goroutines", + "go_sched_latencies_seconds", + "go_sched_pauses_stopping_gc_seconds", + "go_sched_pauses_stopping_other_seconds", + "go_sched_pauses_total_gc_seconds", + "go_sched_pauses_total_other_seconds", + }) +} + +func withDebugMetrics() []string { + return withBaseMetrics([]string{ + "go_godebug_non_default_behavior_asynctimerchan_events_total", + "go_godebug_non_default_behavior_execerrdot_events_total", + "go_godebug_non_default_behavior_gocachehash_events_total", + "go_godebug_non_default_behavior_gocachetest_events_total", + "go_godebug_non_default_behavior_gocacheverify_events_total", + "go_godebug_non_default_behavior_gotypesalias_events_total", + "go_godebug_non_default_behavior_http2client_events_total", + "go_godebug_non_default_behavior_http2server_events_total", + "go_godebug_non_default_behavior_httplaxcontentlength_events_total", + "go_godebug_non_default_behavior_httpmuxgo121_events_total", + "go_godebug_non_default_behavior_httpservecontentkeepheaders_events_total", + "go_godebug_non_default_behavior_installgoroot_events_total", + "go_godebug_non_default_behavior_multipartmaxheaders_events_total", + "go_godebug_non_default_behavior_multipartmaxparts_events_total", + "go_godebug_non_default_behavior_multipathtcp_events_total", + "go_godebug_non_default_behavior_netedns0_events_total", + "go_godebug_non_default_behavior_panicnil_events_total", + "go_godebug_non_default_behavior_randautoseed_events_total", + "go_godebug_non_default_behavior_tarinsecurepath_events_total", + "go_godebug_non_default_behavior_tls10server_events_total", + "go_godebug_non_default_behavior_tls3des_events_total", + "go_godebug_non_default_behavior_tlsmaxrsasize_events_total", + "go_godebug_non_default_behavior_tlsrsakex_events_total", + "go_godebug_non_default_behavior_tlsunsafeekm_events_total", + "go_godebug_non_default_behavior_winreadlinkvolume_events_total", + "go_godebug_non_default_behavior_winsymlink_events_total", + "go_godebug_non_default_behavior_x509keypairleaf_events_total", + "go_godebug_non_default_behavior_x509negativeserial_events_total", + "go_godebug_non_default_behavior_x509sha1_events_total", + "go_godebug_non_default_behavior_x509usefallbackroots_events_total", + "go_godebug_non_default_behavior_x509usepolicies_events_total", + "go_godebug_non_default_behavior_zipinsecurepath_events_total", + }) +} + +var defaultRuntimeMetrics = []string{ + "go_gc_gogc_percent", + "go_gc_gomemlimit_bytes", + "go_sched_gomaxprocs_threads", +} + +func withDefaultRuntimeMetrics(metricNames []string, withoutGC, withoutSched bool) []string { + if withoutGC && withoutSched { + // If both flags are true, return the metricNames as is. + return metricNames + } else if withoutGC && !withoutSched { + // If only withoutGC is true, include "go_sched_gomaxprocs_threads" only. + metricNames = append(metricNames, []string{"go_sched_gomaxprocs_threads"}...) + } else if withoutSched && !withoutGC { + // If only withoutSched is true, exclude "go_sched_gomaxprocs_threads". + metricNames = append(metricNames, []string{"go_gc_gogc_percent", "go_gc_gomemlimit_bytes"}...) + } else { + // If neither flag is true, use the default metrics. + metricNames = append(metricNames, defaultRuntimeMetrics...) + } + // sorting is required + sort.Strings(metricNames) + return metricNames +} diff --git a/prometheus/go_collector_metrics_go117_test.go b/prometheus/go_collector_metrics_go117_test.go deleted file mode 100644 index 1b8a869..0000000 --- a/prometheus/go_collector_metrics_go117_test.go +++ /dev/null @@ -1,41 +0,0 @@ -// Code generated by gen_go_collector_metrics_set.go; DO NOT EDIT. -//go:generate go run gen_go_collector_metrics_set.go go1.17 - -//go:build go1.17 && !go1.18 -// +build go1.17,!go1.18 - -package prometheus - -var expectedRuntimeMetrics = map[string]string{ - "/gc/cycles/automatic:gc-cycles": "go_gc_cycles_automatic_gc_cycles_total", - "/gc/cycles/forced:gc-cycles": "go_gc_cycles_forced_gc_cycles_total", - "/gc/cycles/total:gc-cycles": "go_gc_cycles_total_gc_cycles_total", - "/gc/heap/allocs-by-size:bytes": "go_gc_heap_allocs_by_size_bytes", - "/gc/heap/allocs:bytes": "go_gc_heap_allocs_bytes_total", - "/gc/heap/allocs:objects": "go_gc_heap_allocs_objects_total", - "/gc/heap/frees-by-size:bytes": "go_gc_heap_frees_by_size_bytes", - "/gc/heap/frees:bytes": "go_gc_heap_frees_bytes_total", - "/gc/heap/frees:objects": "go_gc_heap_frees_objects_total", - "/gc/heap/goal:bytes": "go_gc_heap_goal_bytes", - "/gc/heap/objects:objects": "go_gc_heap_objects_objects", - "/gc/heap/tiny/allocs:objects": "go_gc_heap_tiny_allocs_objects_total", - "/gc/pauses:seconds": "go_gc_pauses_seconds", - "/memory/classes/heap/free:bytes": "go_memory_classes_heap_free_bytes", - "/memory/classes/heap/objects:bytes": "go_memory_classes_heap_objects_bytes", - "/memory/classes/heap/released:bytes": "go_memory_classes_heap_released_bytes", - "/memory/classes/heap/stacks:bytes": "go_memory_classes_heap_stacks_bytes", - "/memory/classes/heap/unused:bytes": "go_memory_classes_heap_unused_bytes", - "/memory/classes/metadata/mcache/free:bytes": "go_memory_classes_metadata_mcache_free_bytes", - "/memory/classes/metadata/mcache/inuse:bytes": "go_memory_classes_metadata_mcache_inuse_bytes", - "/memory/classes/metadata/mspan/free:bytes": "go_memory_classes_metadata_mspan_free_bytes", - "/memory/classes/metadata/mspan/inuse:bytes": "go_memory_classes_metadata_mspan_inuse_bytes", - "/memory/classes/metadata/other:bytes": "go_memory_classes_metadata_other_bytes", - "/memory/classes/os-stacks:bytes": "go_memory_classes_os_stacks_bytes", - "/memory/classes/other:bytes": "go_memory_classes_other_bytes", - "/memory/classes/profiling/buckets:bytes": "go_memory_classes_profiling_buckets_bytes", - "/memory/classes/total:bytes": "go_memory_classes_total_bytes", - "/sched/goroutines:goroutines": "go_sched_goroutines_goroutines", - "/sched/latencies:seconds": "go_sched_latencies_seconds", -} - -const expectedRuntimeMetricsCardinality = 77 diff --git a/prometheus/go_collector_metrics_go118_test.go b/prometheus/go_collector_metrics_go118_test.go deleted file mode 100644 index 44bfb86..0000000 --- a/prometheus/go_collector_metrics_go118_test.go +++ /dev/null @@ -1,41 +0,0 @@ -// Code generated by gen_go_collector_metrics_set.go; DO NOT EDIT. -//go:generate go run gen_go_collector_metrics_set.go go1.18 - -//go:build go1.18 && !go1.19 -// +build go1.18,!go1.19 - -package prometheus - -var expectedRuntimeMetrics = map[string]string{ - "/gc/cycles/automatic:gc-cycles": "go_gc_cycles_automatic_gc_cycles_total", - "/gc/cycles/forced:gc-cycles": "go_gc_cycles_forced_gc_cycles_total", - "/gc/cycles/total:gc-cycles": "go_gc_cycles_total_gc_cycles_total", - "/gc/heap/allocs-by-size:bytes": "go_gc_heap_allocs_by_size_bytes", - "/gc/heap/allocs:bytes": "go_gc_heap_allocs_bytes_total", - "/gc/heap/allocs:objects": "go_gc_heap_allocs_objects_total", - "/gc/heap/frees-by-size:bytes": "go_gc_heap_frees_by_size_bytes", - "/gc/heap/frees:bytes": "go_gc_heap_frees_bytes_total", - "/gc/heap/frees:objects": "go_gc_heap_frees_objects_total", - "/gc/heap/goal:bytes": "go_gc_heap_goal_bytes", - "/gc/heap/objects:objects": "go_gc_heap_objects_objects", - "/gc/heap/tiny/allocs:objects": "go_gc_heap_tiny_allocs_objects_total", - "/gc/pauses:seconds": "go_gc_pauses_seconds", - "/memory/classes/heap/free:bytes": "go_memory_classes_heap_free_bytes", - "/memory/classes/heap/objects:bytes": "go_memory_classes_heap_objects_bytes", - "/memory/classes/heap/released:bytes": "go_memory_classes_heap_released_bytes", - "/memory/classes/heap/stacks:bytes": "go_memory_classes_heap_stacks_bytes", - "/memory/classes/heap/unused:bytes": "go_memory_classes_heap_unused_bytes", - "/memory/classes/metadata/mcache/free:bytes": "go_memory_classes_metadata_mcache_free_bytes", - "/memory/classes/metadata/mcache/inuse:bytes": "go_memory_classes_metadata_mcache_inuse_bytes", - "/memory/classes/metadata/mspan/free:bytes": "go_memory_classes_metadata_mspan_free_bytes", - "/memory/classes/metadata/mspan/inuse:bytes": "go_memory_classes_metadata_mspan_inuse_bytes", - "/memory/classes/metadata/other:bytes": "go_memory_classes_metadata_other_bytes", - "/memory/classes/os-stacks:bytes": "go_memory_classes_os_stacks_bytes", - "/memory/classes/other:bytes": "go_memory_classes_other_bytes", - "/memory/classes/profiling/buckets:bytes": "go_memory_classes_profiling_buckets_bytes", - "/memory/classes/total:bytes": "go_memory_classes_total_bytes", - "/sched/goroutines:goroutines": "go_sched_goroutines_goroutines", - "/sched/latencies:seconds": "go_sched_latencies_seconds", -} - -const expectedRuntimeMetricsCardinality = 77 diff --git a/prometheus/go_collector_metrics_go119_test.go b/prometheus/go_collector_metrics_go119_test.go deleted file mode 100644 index ec3430a..0000000 --- a/prometheus/go_collector_metrics_go119_test.go +++ /dev/null @@ -1,45 +0,0 @@ -// Code generated by gen_go_collector_metrics_set.go; DO NOT EDIT. -//go:generate go run gen_go_collector_metrics_set.go go1.19 - -//go:build go1.19 && !go1.20 -// +build go1.19,!go1.20 - -package prometheus - -var expectedRuntimeMetrics = map[string]string{ - "/cgo/go-to-c-calls:calls": "go_cgo_go_to_c_calls_calls_total", - "/gc/cycles/automatic:gc-cycles": "go_gc_cycles_automatic_gc_cycles_total", - "/gc/cycles/forced:gc-cycles": "go_gc_cycles_forced_gc_cycles_total", - "/gc/cycles/total:gc-cycles": "go_gc_cycles_total_gc_cycles_total", - "/gc/heap/allocs-by-size:bytes": "go_gc_heap_allocs_by_size_bytes", - "/gc/heap/allocs:bytes": "go_gc_heap_allocs_bytes_total", - "/gc/heap/allocs:objects": "go_gc_heap_allocs_objects_total", - "/gc/heap/frees-by-size:bytes": "go_gc_heap_frees_by_size_bytes", - "/gc/heap/frees:bytes": "go_gc_heap_frees_bytes_total", - "/gc/heap/frees:objects": "go_gc_heap_frees_objects_total", - "/gc/heap/goal:bytes": "go_gc_heap_goal_bytes", - "/gc/heap/objects:objects": "go_gc_heap_objects_objects", - "/gc/heap/tiny/allocs:objects": "go_gc_heap_tiny_allocs_objects_total", - "/gc/limiter/last-enabled:gc-cycle": "go_gc_limiter_last_enabled_gc_cycle", - "/gc/pauses:seconds": "go_gc_pauses_seconds", - "/gc/stack/starting-size:bytes": "go_gc_stack_starting_size_bytes", - "/memory/classes/heap/free:bytes": "go_memory_classes_heap_free_bytes", - "/memory/classes/heap/objects:bytes": "go_memory_classes_heap_objects_bytes", - "/memory/classes/heap/released:bytes": "go_memory_classes_heap_released_bytes", - "/memory/classes/heap/stacks:bytes": "go_memory_classes_heap_stacks_bytes", - "/memory/classes/heap/unused:bytes": "go_memory_classes_heap_unused_bytes", - "/memory/classes/metadata/mcache/free:bytes": "go_memory_classes_metadata_mcache_free_bytes", - "/memory/classes/metadata/mcache/inuse:bytes": "go_memory_classes_metadata_mcache_inuse_bytes", - "/memory/classes/metadata/mspan/free:bytes": "go_memory_classes_metadata_mspan_free_bytes", - "/memory/classes/metadata/mspan/inuse:bytes": "go_memory_classes_metadata_mspan_inuse_bytes", - "/memory/classes/metadata/other:bytes": "go_memory_classes_metadata_other_bytes", - "/memory/classes/os-stacks:bytes": "go_memory_classes_os_stacks_bytes", - "/memory/classes/other:bytes": "go_memory_classes_other_bytes", - "/memory/classes/profiling/buckets:bytes": "go_memory_classes_profiling_buckets_bytes", - "/memory/classes/total:bytes": "go_memory_classes_total_bytes", - "/sched/gomaxprocs:threads": "go_sched_gomaxprocs_threads", - "/sched/goroutines:goroutines": "go_sched_goroutines_goroutines", - "/sched/latencies:seconds": "go_sched_latencies_seconds", -} - -const expectedRuntimeMetricsCardinality = 81 diff --git a/prometheus/go_collector_metrics_go123_test.go b/prometheus/go_collector_metrics_go123_test.go new file mode 100644 index 0000000..cb9d12d --- /dev/null +++ b/prometheus/go_collector_metrics_go123_test.go @@ -0,0 +1,108 @@ +// Code generated by gen_go_collector_metrics_set.go; DO NOT EDIT. +//go:generate go run gen_go_collector_metrics_set.go go1.23 + +//go:build go1.23 && !go1.24 +// +build go1.23,!go1.24 + +package prometheus + +var ( + expectedRuntimeMetrics = map[string]string{ + "/cgo/go-to-c-calls:calls": "go_cgo_go_to_c_calls_calls_total", + "/cpu/classes/gc/mark/assist:cpu-seconds": "go_cpu_classes_gc_mark_assist_cpu_seconds_total", + "/cpu/classes/gc/mark/dedicated:cpu-seconds": "go_cpu_classes_gc_mark_dedicated_cpu_seconds_total", + "/cpu/classes/gc/mark/idle:cpu-seconds": "go_cpu_classes_gc_mark_idle_cpu_seconds_total", + "/cpu/classes/gc/pause:cpu-seconds": "go_cpu_classes_gc_pause_cpu_seconds_total", + "/cpu/classes/gc/total:cpu-seconds": "go_cpu_classes_gc_total_cpu_seconds_total", + "/cpu/classes/idle:cpu-seconds": "go_cpu_classes_idle_cpu_seconds_total", + "/cpu/classes/scavenge/assist:cpu-seconds": "go_cpu_classes_scavenge_assist_cpu_seconds_total", + "/cpu/classes/scavenge/background:cpu-seconds": "go_cpu_classes_scavenge_background_cpu_seconds_total", + "/cpu/classes/scavenge/total:cpu-seconds": "go_cpu_classes_scavenge_total_cpu_seconds_total", + "/cpu/classes/total:cpu-seconds": "go_cpu_classes_total_cpu_seconds_total", + "/cpu/classes/user:cpu-seconds": "go_cpu_classes_user_cpu_seconds_total", + "/gc/cycles/automatic:gc-cycles": "go_gc_cycles_automatic_gc_cycles_total", + "/gc/cycles/forced:gc-cycles": "go_gc_cycles_forced_gc_cycles_total", + "/gc/cycles/total:gc-cycles": "go_gc_cycles_total_gc_cycles_total", + "/gc/gogc:percent": "go_gc_gogc_percent", + "/gc/gomemlimit:bytes": "go_gc_gomemlimit_bytes", + "/gc/heap/allocs-by-size:bytes": "go_gc_heap_allocs_by_size_bytes", + "/gc/heap/allocs:bytes": "go_gc_heap_allocs_bytes_total", + "/gc/heap/allocs:objects": "go_gc_heap_allocs_objects_total", + "/gc/heap/frees-by-size:bytes": "go_gc_heap_frees_by_size_bytes", + "/gc/heap/frees:bytes": "go_gc_heap_frees_bytes_total", + "/gc/heap/frees:objects": "go_gc_heap_frees_objects_total", + "/gc/heap/goal:bytes": "go_gc_heap_goal_bytes", + "/gc/heap/live:bytes": "go_gc_heap_live_bytes", + "/gc/heap/objects:objects": "go_gc_heap_objects_objects", + "/gc/heap/tiny/allocs:objects": "go_gc_heap_tiny_allocs_objects_total", + "/gc/limiter/last-enabled:gc-cycle": "go_gc_limiter_last_enabled_gc_cycle", + "/gc/pauses:seconds": "go_gc_pauses_seconds", + "/gc/scan/globals:bytes": "go_gc_scan_globals_bytes", + "/gc/scan/heap:bytes": "go_gc_scan_heap_bytes", + "/gc/scan/stack:bytes": "go_gc_scan_stack_bytes", + "/gc/scan/total:bytes": "go_gc_scan_total_bytes", + "/gc/stack/starting-size:bytes": "go_gc_stack_starting_size_bytes", + "/godebug/non-default-behavior/asynctimerchan:events": "go_godebug_non_default_behavior_asynctimerchan_events_total", + "/godebug/non-default-behavior/execerrdot:events": "go_godebug_non_default_behavior_execerrdot_events_total", + "/godebug/non-default-behavior/gocachehash:events": "go_godebug_non_default_behavior_gocachehash_events_total", + "/godebug/non-default-behavior/gocachetest:events": "go_godebug_non_default_behavior_gocachetest_events_total", + "/godebug/non-default-behavior/gocacheverify:events": "go_godebug_non_default_behavior_gocacheverify_events_total", + "/godebug/non-default-behavior/gotypesalias:events": "go_godebug_non_default_behavior_gotypesalias_events_total", + "/godebug/non-default-behavior/http2client:events": "go_godebug_non_default_behavior_http2client_events_total", + "/godebug/non-default-behavior/http2server:events": "go_godebug_non_default_behavior_http2server_events_total", + "/godebug/non-default-behavior/httplaxcontentlength:events": "go_godebug_non_default_behavior_httplaxcontentlength_events_total", + "/godebug/non-default-behavior/httpmuxgo121:events": "go_godebug_non_default_behavior_httpmuxgo121_events_total", + "/godebug/non-default-behavior/httpservecontentkeepheaders:events": "go_godebug_non_default_behavior_httpservecontentkeepheaders_events_total", + "/godebug/non-default-behavior/installgoroot:events": "go_godebug_non_default_behavior_installgoroot_events_total", + "/godebug/non-default-behavior/multipartmaxheaders:events": "go_godebug_non_default_behavior_multipartmaxheaders_events_total", + "/godebug/non-default-behavior/multipartmaxparts:events": "go_godebug_non_default_behavior_multipartmaxparts_events_total", + "/godebug/non-default-behavior/multipathtcp:events": "go_godebug_non_default_behavior_multipathtcp_events_total", + "/godebug/non-default-behavior/netedns0:events": "go_godebug_non_default_behavior_netedns0_events_total", + "/godebug/non-default-behavior/panicnil:events": "go_godebug_non_default_behavior_panicnil_events_total", + "/godebug/non-default-behavior/randautoseed:events": "go_godebug_non_default_behavior_randautoseed_events_total", + "/godebug/non-default-behavior/tarinsecurepath:events": "go_godebug_non_default_behavior_tarinsecurepath_events_total", + "/godebug/non-default-behavior/tls10server:events": "go_godebug_non_default_behavior_tls10server_events_total", + "/godebug/non-default-behavior/tls3des:events": "go_godebug_non_default_behavior_tls3des_events_total", + "/godebug/non-default-behavior/tlsmaxrsasize:events": "go_godebug_non_default_behavior_tlsmaxrsasize_events_total", + "/godebug/non-default-behavior/tlsrsakex:events": "go_godebug_non_default_behavior_tlsrsakex_events_total", + "/godebug/non-default-behavior/tlsunsafeekm:events": "go_godebug_non_default_behavior_tlsunsafeekm_events_total", + "/godebug/non-default-behavior/winreadlinkvolume:events": "go_godebug_non_default_behavior_winreadlinkvolume_events_total", + "/godebug/non-default-behavior/winsymlink:events": "go_godebug_non_default_behavior_winsymlink_events_total", + "/godebug/non-default-behavior/x509keypairleaf:events": "go_godebug_non_default_behavior_x509keypairleaf_events_total", + "/godebug/non-default-behavior/x509negativeserial:events": "go_godebug_non_default_behavior_x509negativeserial_events_total", + "/godebug/non-default-behavior/x509sha1:events": "go_godebug_non_default_behavior_x509sha1_events_total", + "/godebug/non-default-behavior/x509usefallbackroots:events": "go_godebug_non_default_behavior_x509usefallbackroots_events_total", + "/godebug/non-default-behavior/x509usepolicies:events": "go_godebug_non_default_behavior_x509usepolicies_events_total", + "/godebug/non-default-behavior/zipinsecurepath:events": "go_godebug_non_default_behavior_zipinsecurepath_events_total", + "/memory/classes/heap/free:bytes": "go_memory_classes_heap_free_bytes", + "/memory/classes/heap/objects:bytes": "go_memory_classes_heap_objects_bytes", + "/memory/classes/heap/released:bytes": "go_memory_classes_heap_released_bytes", + "/memory/classes/heap/stacks:bytes": "go_memory_classes_heap_stacks_bytes", + "/memory/classes/heap/unused:bytes": "go_memory_classes_heap_unused_bytes", + "/memory/classes/metadata/mcache/free:bytes": "go_memory_classes_metadata_mcache_free_bytes", + "/memory/classes/metadata/mcache/inuse:bytes": "go_memory_classes_metadata_mcache_inuse_bytes", + "/memory/classes/metadata/mspan/free:bytes": "go_memory_classes_metadata_mspan_free_bytes", + "/memory/classes/metadata/mspan/inuse:bytes": "go_memory_classes_metadata_mspan_inuse_bytes", + "/memory/classes/metadata/other:bytes": "go_memory_classes_metadata_other_bytes", + "/memory/classes/os-stacks:bytes": "go_memory_classes_os_stacks_bytes", + "/memory/classes/other:bytes": "go_memory_classes_other_bytes", + "/memory/classes/profiling/buckets:bytes": "go_memory_classes_profiling_buckets_bytes", + "/memory/classes/total:bytes": "go_memory_classes_total_bytes", + "/sched/gomaxprocs:threads": "go_sched_gomaxprocs_threads", + "/sched/goroutines:goroutines": "go_sched_goroutines_goroutines", + "/sched/latencies:seconds": "go_sched_latencies_seconds", + "/sched/pauses/stopping/gc:seconds": "go_sched_pauses_stopping_gc_seconds", + "/sched/pauses/stopping/other:seconds": "go_sched_pauses_stopping_other_seconds", + "/sched/pauses/total/gc:seconds": "go_sched_pauses_total_gc_seconds", + "/sched/pauses/total/other:seconds": "go_sched_pauses_total_other_seconds", + "/sync/mutex/wait/total:seconds": "go_sync_mutex_wait_total_seconds_total", + } + + expMetrics = map[string]string{ + "/gc/gogc:percent": "go_gc_gogc_percent", + "/gc/gomemlimit:bytes": "go_gc_gomemlimit_bytes", + "/sched/gomaxprocs:threads": "go_sched_gomaxprocs_threads", + } +) + +const expectedRuntimeMetricsCardinality = 168 diff --git a/supported_go_versions.txt b/supported_go_versions.txt index 321c2b6..fc1f801 100644 --- a/supported_go_versions.txt +++ b/supported_go_versions.txt @@ -1,3 +1,3 @@ +1.23 1.22 1.21 -1.20 \ No newline at end of file