From b28da8baf1688b04ef9355d3be1ce8c60999922c Mon Sep 17 00:00:00 2001 From: luky116 Date: Tue, 11 Jul 2023 11:42:38 +0800 Subject: [PATCH 1/3] fix makefile and log --- tools/pika_exporter/Makefile | 5 ++++- .../exporter/metrics/command_exec_count.go | 2 +- tools/pika_exporter/exporter/metrics/parser.go | 5 +++-- tools/pika_exporter/exporter/parser_test.go | 6 ++++-- tools/pika_exporter/exporter/pika.go | 3 ++- tools/pika_exporter/exporter/pika_test.go | 6 ++++-- .../pika_exporter/exporter/test/v3.3.5_master.go | 2 +- tools/pika_exporter/exporter/test/v3.3.5_slave.go | 2 +- tools/pika_exporter/go.mod | 2 +- tools/pika_exporter/go.sum | 4 ++-- tools/pika_exporter/main.go | 15 ++++++++++++--- 11 files changed, 35 insertions(+), 17 deletions(-) diff --git a/tools/pika_exporter/Makefile b/tools/pika_exporter/Makefile index 4daf11aabc..aab53d8a7b 100644 --- a/tools/pika_exporter/Makefile +++ b/tools/pika_exporter/Makefile @@ -5,6 +5,7 @@ # export PATH := $(PATH):$(GOPATH)/bin UNAME := $(shell uname) +UNAME_M := $(shell uname -m) # for mac BRANCH := $(shell git branch | sed 's/* \(.*\)/\1/p') # for Linux @@ -65,8 +66,10 @@ all: build build: deps ifeq ($(UNAME), Linux) CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o bin/$(PROJNAME) -else ifeq ($(UNAME), Darwin) +else ifeq ($(UNAME_M), x86_64) CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -o bin/$(PROJNAME) +else ifeq ($(UNAME_M), arm64) + CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -o bin/$(PROJNAME) endif deps: generateVer diff --git a/tools/pika_exporter/exporter/metrics/command_exec_count.go b/tools/pika_exporter/exporter/metrics/command_exec_count.go index b9c027101d..304dfb895c 100644 --- a/tools/pika_exporter/exporter/metrics/command_exec_count.go +++ b/tools/pika_exporter/exporter/metrics/command_exec_count.go @@ -16,7 +16,7 @@ var collectCommandExecCountMetrics = map[string]MetricConfig{ Parser: ®exParser{ name: "command_exec_count_command", source: "commands_count", - reg: regexp.MustCompile(`(\r|\n)*(?P[^:]+):(?P[\d]*)`), + reg: regexp.MustCompile(`(\r|\n)*(?P[^:]+):(?P[\d]*)`), Parser: &normalParser{}, }, }, diff --git a/tools/pika_exporter/exporter/metrics/parser.go b/tools/pika_exporter/exporter/metrics/parser.go index 0b2e2773a0..7d4f5fbf22 100644 --- a/tools/pika_exporter/exporter/metrics/parser.go +++ b/tools/pika_exporter/exporter/metrics/parser.go @@ -210,7 +210,7 @@ func (p *timeParser) Parse(m MetricMeta, c Collector, opt ParseOption) { } else { t, err := convertTimeToUnix(v) if err != nil { - log.Warnf("time is '0' and cannot be parsed", err) + log.Warnf("time is '0' and cannot be parsed", err) } metric.Value = float64(t) } @@ -264,7 +264,8 @@ func mustNewVersionConstraint(version string) *semver.Constraints { func convertTimeToUnix(ts string) (int64, error) { t, err := time.Parse(time.RFC3339, ts) if err != nil { - return 0, err + log.Warnf("format time failed, ts: %d, err: %v", ts, err) + return 0, nil } return t.Unix(), nil } diff --git a/tools/pika_exporter/exporter/parser_test.go b/tools/pika_exporter/exporter/parser_test.go index 3e3d80771e..ded4f598b4 100644 --- a/tools/pika_exporter/exporter/parser_test.go +++ b/tools/pika_exporter/exporter/parser_test.go @@ -2,11 +2,13 @@ package exporter import ( "fmt" + "testing" + "github.com/Masterminds/semver" + "github.com/stretchr/testify/assert" + "github.com/OpenAtomFoundation/pika/tools/pika_exporter/exporter/metrics" "github.com/OpenAtomFoundation/pika/tools/pika_exporter/exporter/test" - "github.com/stretchr/testify/assert" - "testing" ) func mustNewVersionConstraint(version string) *semver.Constraints { diff --git a/tools/pika_exporter/exporter/pika.go b/tools/pika_exporter/exporter/pika.go index fe9ae11821..9604bb85f8 100644 --- a/tools/pika_exporter/exporter/pika.go +++ b/tools/pika_exporter/exporter/pika.go @@ -10,9 +10,10 @@ import ( "github.com/OpenAtomFoundation/pika/tools/pika_exporter/discovery" - "github.com/OpenAtomFoundation/pika/tools/pika_exporter/exporter/metrics" "github.com/prometheus/client_golang/prometheus" log "github.com/sirupsen/logrus" + + "github.com/OpenAtomFoundation/pika/tools/pika_exporter/exporter/metrics" ) type dbKeyPair struct { diff --git a/tools/pika_exporter/exporter/pika_test.go b/tools/pika_exporter/exporter/pika_test.go index 3d41d2a8b9..81e8cc630b 100644 --- a/tools/pika_exporter/exporter/pika_test.go +++ b/tools/pika_exporter/exporter/pika_test.go @@ -1,10 +1,12 @@ package exporter import ( - "github.com/OpenAtomFoundation/pika/tools/pika_exporter/discovery" + "testing" + "github.com/prometheus/client_golang/prometheus" "github.com/stretchr/testify/assert" - "testing" + + "github.com/OpenAtomFoundation/pika/tools/pika_exporter/discovery" ) type fakeDiscovery struct { diff --git a/tools/pika_exporter/exporter/test/v3.3.5_master.go b/tools/pika_exporter/exporter/test/v3.3.5_master.go index 21a1c4bd1d..0d0e81029a 100644 --- a/tools/pika_exporter/exporter/test/v3.3.5_master.go +++ b/tools/pika_exporter/exporter/test/v3.3.5_master.go @@ -88,4 +88,4 @@ db0 Strings_keys=83922112, expires=0, invalid_keys=0 db0 Hashes_keys=4887344, expires=0, invalid_keys=0 db0 Lists_keys=1, expires=0, invalid_keys=0 db0 Zsets_keys=1, expires=0, invalid_keys=0 -db0 Sets_keys=0, expires=0, invalid_keys=1` \ No newline at end of file +db0 Sets_keys=0, expires=0, invalid_keys=1` diff --git a/tools/pika_exporter/exporter/test/v3.3.5_slave.go b/tools/pika_exporter/exporter/test/v3.3.5_slave.go index 987ccb4c00..1af496865e 100644 --- a/tools/pika_exporter/exporter/test/v3.3.5_slave.go +++ b/tools/pika_exporter/exporter/test/v3.3.5_slave.go @@ -89,4 +89,4 @@ db0 Strings_keys=1000, expires=0, invalid_keys=0 db0 Hashes_keys=0, expires=0, invalid_keys=0 db0 Lists_keys=0, expires=0, invalid_keys=0 db0 Zsets_keys=0, expires=100, invalid_keys=0 -db0 Sets_keys=0, expires=0, invalid_keys=0` \ No newline at end of file +db0 Sets_keys=0, expires=0, invalid_keys=0` diff --git a/tools/pika_exporter/go.mod b/tools/pika_exporter/go.mod index 0059c93fdb..5517eadfa3 100644 --- a/tools/pika_exporter/go.mod +++ b/tools/pika_exporter/go.mod @@ -22,7 +22,7 @@ require ( github.com/prometheus/common v0.42.0 // indirect github.com/prometheus/procfs v0.9.0 // indirect github.com/rogpeppe/go-internal v1.10.0 // indirect - golang.org/x/sys v0.6.0 // indirect + golang.org/x/sys v0.10.0 // indirect google.golang.org/protobuf v1.30.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/tools/pika_exporter/go.sum b/tools/pika_exporter/go.sum index 2893043e01..467dc4f22f 100644 --- a/tools/pika_exporter/go.sum +++ b/tools/pika_exporter/go.sum @@ -46,8 +46,8 @@ github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= -golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.10.0 h1:SqMFp9UcQJZa+pmYuAKjd9xq1f0j5rLcDIk0mj4qAsA= +golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= diff --git a/tools/pika_exporter/main.go b/tools/pika_exporter/main.go index 14f06a9a17..ebb004072d 100644 --- a/tools/pika_exporter/main.go +++ b/tools/pika_exporter/main.go @@ -5,6 +5,7 @@ import ( "net/http" "os" "strconv" + "time" "github.com/OpenAtomFoundation/pika/tools/pika_exporter/discovery" "github.com/OpenAtomFoundation/pika/tools/pika_exporter/exporter" @@ -28,7 +29,7 @@ var ( listenAddress = flag.String("web.listen-address", getEnv("PIKA_EXPORTER_WEB_LISTEN_ADDRESS", ":9121"), "Address to listen on for web interface and telemetry.") metricPath = flag.String("web.telemetry-path", getEnv("PIKA_EXPORTER_WEB_TELEMETRY_PATH", "/metrics"), "Path under which to expose metrics.") logLevel = flag.String("log.level", getEnv("PIKA_EXPORTER_LOG_LEVEL", "info"), "Log level, valid options: panic fatal error warn warning info debug.") - logFormat = flag.String("log.format", getEnv("PIKA_EXPORTER_LOG_FORMAT", "json"), "Log format, valid options: txt and json.") + logFormat = flag.String("log.format", getEnv("PIKA_EXPORTER_LOG_FORMAT", "text"), "Log format, valid options: txt and json.") showVersion = flag.Bool("version", false, "Show version information and exit.") ) @@ -63,9 +64,17 @@ func main() { log.SetLevel(level) switch *logFormat { case "json": - log.SetFormatter(&log.JSONFormatter{}) + log.SetFormatter(&log.JSONFormatter{ + TimestampFormat: "2006-01-02 15:04:05.999999", + PrettyPrint: true, + }) default: - log.SetFormatter(&log.TextFormatter{}) + log.SetFormatter(&log.TextFormatter{ + ForceColors: true, + ForceQuote: true, //键值对加引号 + TimestampFormat: time.RFC3339, //时间格式 + FullTimestamp: true, + }) } var dis discovery.Discovery From dc4dfdbafb302cd277a073244d89ab095ec1e39e Mon Sep 17 00:00:00 2001 From: luky116 Date: Tue, 11 Jul 2023 11:43:59 +0800 Subject: [PATCH 2/3] fix makefile and log --- tools/pika_exporter/main.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/pika_exporter/main.go b/tools/pika_exporter/main.go index ebb004072d..6b94774ce4 100644 --- a/tools/pika_exporter/main.go +++ b/tools/pika_exporter/main.go @@ -71,8 +71,8 @@ func main() { default: log.SetFormatter(&log.TextFormatter{ ForceColors: true, - ForceQuote: true, //键值对加引号 - TimestampFormat: time.RFC3339, //时间格式 + ForceQuote: true, + TimestampFormat: time.RFC3339, FullTimestamp: true, }) } From ec2125707f790d3bd6454c179994a5ba074cfb87 Mon Sep 17 00:00:00 2001 From: luky116 Date: Tue, 11 Jul 2023 19:47:31 +0800 Subject: [PATCH 3/3] fix makefile --- tools/pika_exporter/Makefile | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/tools/pika_exporter/Makefile b/tools/pika_exporter/Makefile index aab53d8a7b..ff5fbc1e88 100644 --- a/tools/pika_exporter/Makefile +++ b/tools/pika_exporter/Makefile @@ -4,8 +4,8 @@ # export PATH := $(PATH):$(GOPATH)/bin -UNAME := $(shell uname) -UNAME_M := $(shell uname -m) +OS := $(shell uname) +ARCH := $(shell uname -m) # for mac BRANCH := $(shell git branch | sed 's/* \(.*\)/\1/p') # for Linux @@ -64,12 +64,18 @@ export TEST_COVER all: build build: deps -ifeq ($(UNAME), Linux) - CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o bin/$(PROJNAME) -else ifeq ($(UNAME_M), x86_64) - CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -o bin/$(PROJNAME) -else ifeq ($(UNAME_M), arm64) - CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -o bin/$(PROJNAME) +ifeq ($(OS), Linux) + ifeq ($(ARCH), x86_64) + CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o bin/$(PROJNAME) + else ifeq ($(ARCH), arm6411) + CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -o bin/$(PROJNAME) + endif +else ifeq ($(OS), Darwin) + ifeq ($(ARCH), x86_64) + CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -o bin/$(PROJNAME) + else ifeq ($(ARCH), arm64) + CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -o bin/$(PROJNAME) + endif endif deps: generateVer