Skip to content

Commit 98e4cfe

Browse files
authored
[chore] change JSON marshaler to goccy-json (#3660)
1 parent af567cd commit 98e4cfe

File tree

2 files changed

+10
-23
lines changed

2 files changed

+10
-23
lines changed

cmd/otel-allocator/server/bench_test.go

+2-4
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,7 @@ func BenchmarkScrapeConfigsHandler(b *testing.B) {
8686
func BenchmarkCollectorMapJSONHandler(b *testing.B) {
8787
random := rand.New(rand.NewSource(time.Now().UnixNano())) // nolint: gosec
8888
s := &Server{
89-
logger: logger,
90-
jsonMarshaller: jsonConfig,
89+
logger: logger,
9190
}
9291

9392
tests := []struct {
@@ -142,8 +141,7 @@ func BenchmarkCollectorMapJSONHandler(b *testing.B) {
142141
func BenchmarkTargetItemsJSONHandler(b *testing.B) {
143142
random := rand.New(rand.NewSource(time.Now().UnixNano())) // nolint: gosec
144143
s := &Server{
145-
logger: logger,
146-
jsonMarshaller: jsonConfig,
144+
logger: logger,
147145
}
148146

149147
tests := []struct {

cmd/otel-allocator/server/server.go

+8-19
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ package server
66
import (
77
"context"
88
"crypto/tls"
9-
"encoding/json"
109
"fmt"
1110
"net/http"
1211
"net/http/pprof"
@@ -18,7 +17,7 @@ import (
1817
yaml2 "github.com/ghodss/yaml"
1918
"github.com/gin-gonic/gin"
2019
"github.com/go-logr/logr"
21-
jsoniter "github.com/json-iterator/go"
20+
"github.com/goccy/go-json"
2221
"github.com/prometheus/client_golang/prometheus"
2322
"github.com/prometheus/client_golang/prometheus/promauto"
2423
"github.com/prometheus/client_golang/prometheus/promhttp"
@@ -38,14 +37,6 @@ var (
3837
}, []string{"path"})
3938
)
4039

41-
var (
42-
jsonConfig = jsoniter.Config{
43-
EscapeHTML: false,
44-
MarshalFloatWith6Digits: true,
45-
ObjectFieldMustBeSimpleString: true,
46-
}.Froze()
47-
)
48-
4940
type collectorJSON struct {
5041
Link string `json:"_link"`
5142
Jobs []*targetJSON `json:"targets"`
@@ -61,11 +52,10 @@ type targetJSON struct {
6152
}
6253

6354
type Server struct {
64-
logger logr.Logger
65-
allocator allocation.Allocator
66-
server *http.Server
67-
httpsServer *http.Server
68-
jsonMarshaller jsoniter.API
55+
logger logr.Logger
56+
allocator allocation.Allocator
57+
server *http.Server
58+
httpsServer *http.Server
6959

7060
// Use RWMutex to protect scrapeConfigResponse, since it
7161
// will be predominantly read and only written when config
@@ -105,9 +95,8 @@ func (s *Server) setRouter(router *gin.Engine) {
10595

10696
func NewServer(log logr.Logger, allocator allocation.Allocator, listenAddr string, options ...Option) *Server {
10797
s := &Server{
108-
logger: log,
109-
allocator: allocator,
110-
jsonMarshaller: jsonConfig,
98+
logger: log,
99+
allocator: allocator,
111100
}
112101

113102
gin.SetMode(gin.ReleaseMode)
@@ -312,7 +301,7 @@ func (s *Server) errorHandler(w http.ResponseWriter, err error) {
312301

313302
func (s *Server) jsonHandler(w http.ResponseWriter, data interface{}) {
314303
w.Header().Set("Content-Type", "application/json")
315-
err := s.jsonMarshaller.NewEncoder(w).Encode(data)
304+
err := json.NewEncoder(w).Encode(data)
316305
if err != nil {
317306
s.logger.Error(err, "failed to encode data for http response")
318307
}

0 commit comments

Comments
 (0)