diff --git a/internal/meta/meta.go b/internal/meta/meta.go index 8f2c3ebe4..461e7b9fa 100644 --- a/internal/meta/meta.go +++ b/internal/meta/meta.go @@ -7,6 +7,7 @@ import ( "google.golang.org/grpc/metadata" "github.com/ydb-platform/ydb-go-sdk/v3/internal/credentials" + "github.com/ydb-platform/ydb-go-sdk/v3/internal/version" "github.com/ydb-platform/ydb-go-sdk/v3/internal/xerrors" "github.com/ydb-platform/ydb-go-sdk/v3/trace" ) @@ -83,7 +84,7 @@ func (m *Meta) meta(ctx context.Context) (_ metadata.MD, err error) { } if len(md.Get(HeaderVersion)) == 0 { - md.Set(HeaderVersion, "ydb-go-sdk/"+Version) + md.Set(HeaderVersion, "ydb-go-sdk/"+version.Version) } if m.requestsType != "" { diff --git a/internal/meta/test/meta_test.go b/internal/meta/test/meta_test.go index dbd657fc1..e077b7f6b 100644 --- a/internal/meta/test/meta_test.go +++ b/internal/meta/test/meta_test.go @@ -9,6 +9,7 @@ import ( "github.com/ydb-platform/ydb-go-sdk/v3/internal/credentials" internal "github.com/ydb-platform/ydb-go-sdk/v3/internal/meta" + "github.com/ydb-platform/ydb-go-sdk/v3/internal/version" "github.com/ydb-platform/ydb-go-sdk/v3/meta" "github.com/ydb-platform/ydb-go-sdk/v3/trace" ) @@ -45,7 +46,7 @@ func TestMetaRequiredHeaders(t *testing.T) { require.Equal(t, []string{"userAgent", "user-agent"}, md.Get(internal.HeaderUserAgent)) require.Equal(t, []string{"traceID"}, md.Get(internal.HeaderTraceID)) require.Equal(t, []string{ - "ydb-go-sdk/" + internal.VersionMajor + "." + internal.VersionMinor + "." + internal.VersionPatch, + "ydb-go-sdk/" + version.Major + "." + version.Minor + "." + version.Patch, }, md.Get(internal.HeaderVersion)) require.Equal(t, []string{"some-user-value"}, md.Get("some-user-header")) } diff --git a/internal/meta/version.go b/internal/meta/version.go deleted file mode 100644 index c909e5b61..000000000 --- a/internal/meta/version.go +++ /dev/null @@ -1,9 +0,0 @@ -package meta - -const ( - VersionMajor = "3" - VersionMinor = "48" - VersionPatch = "8" -) - -const Version = VersionMajor + "." + VersionMinor + "." + VersionPatch diff --git a/internal/version/parse.go b/internal/version/parse.go new file mode 100644 index 000000000..f088defdb --- /dev/null +++ b/internal/version/parse.go @@ -0,0 +1,93 @@ +package version + +import ( + "strconv" + "strings" + + "github.com/ydb-platform/ydb-go-sdk/v3/internal/xerrors" +) + +type version struct { + Major uint64 + Minor uint64 + Patch uint64 + Suffix string +} + +func (lhs version) Less(rhs version) bool { + if lhs.Major < rhs.Major { + return true + } + if lhs.Major > rhs.Major { + return false + } + if lhs.Minor < rhs.Minor { + return true + } + if lhs.Minor > rhs.Minor { + return false + } + if lhs.Patch < rhs.Patch { + return true + } + if lhs.Patch > rhs.Patch { + return false + } + return lhs.Suffix < rhs.Suffix +} + +// Lt compare lhs and rhs as (lhs < rhs) +func Lt(lhs, rhs string) bool { + v1, err := parse(lhs) + if err != nil { + return false + } + v2, err := parse(rhs) + if err != nil { + return false + } + return v1.Less(v2) +} + +// Gte compare lhs and rhs as (lhs >= rhs) +func Gte(lhs, rhs string) bool { + v1, err := parse(lhs) + if err != nil { + return false + } + v2, err := parse(rhs) + if err != nil { + return false + } + if v1.Less(v2) { + return false + } + return true +} + +func parse(s string) (v version, err error) { + ss := strings.SplitN(s, "-", 2) + if len(ss) == 2 { + v.Suffix = ss[1] + } + sss := strings.SplitN(ss[0], ".", 3) + if len(sss) == 3 { + v.Patch, err = strconv.ParseUint(sss[2], 10, 64) + if err != nil { + return version{}, xerrors.WithStackTrace(err) + } + } + if len(sss) >= 2 { + v.Minor, err = strconv.ParseUint(sss[1], 10, 64) + if err != nil { + return version{}, xerrors.WithStackTrace(err) + } + } + if len(sss) >= 1 { + v.Major, err = strconv.ParseUint(sss[0], 10, 64) + if err != nil { + return version{}, xerrors.WithStackTrace(err) + } + } + return v, nil +} diff --git a/internal/version/parse_test.go b/internal/version/parse_test.go new file mode 100644 index 000000000..eade4b7ad --- /dev/null +++ b/internal/version/parse_test.go @@ -0,0 +1,182 @@ +package version + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestParse(t *testing.T) { + for _, tt := range []struct { + s string + v version + err bool + }{ + { + s: "1", + v: version{Major: 1}, + err: false, + }, + { + s: "1.2", + v: version{Major: 1, Minor: 2}, + err: false, + }, + { + s: "1.2.3", + v: version{Major: 1, Minor: 2, Patch: 3}, + err: false, + }, + { + s: "1.2.3-alpha", + v: version{Major: 1, Minor: 2, Patch: 3, Suffix: "alpha"}, + err: false, + }, + { + s: "22.5", + v: version{Major: 22, Minor: 5}, + err: false, + }, + { + s: "23.1", + v: version{Major: 23, Minor: 1}, + err: false, + }, + { + s: "23.2", + v: version{Major: 23, Minor: 2}, + err: false, + }, + { + s: "trunk", + v: version{}, + err: true, + }, + } { + t.Run(tt.s, func(t *testing.T) { + v, err := parse(tt.s) + if tt.err { + require.Error(t, err) + } else { + require.NoError(t, err) + require.Equal(t, tt.v, v) + } + }) + } +} + +func TestLt(t *testing.T) { + for _, tt := range []struct { + lhs string + rhs string + less bool + }{ + { + lhs: "1", + rhs: "2", + less: true, + }, + { + lhs: "2", + rhs: "1", + less: false, + }, + { + lhs: "1", + rhs: "1", + less: false, + }, + { + lhs: "22.5", + rhs: "23.1", + less: true, + }, + { + lhs: "23.1", + rhs: "22.5", + less: false, + }, + { + lhs: "trunk", + rhs: "22.5", + less: false, + }, + { + lhs: "trunk", + rhs: "23.1", + less: false, + }, + { + lhs: "22.5", + rhs: "trunk", + less: false, + }, + { + lhs: "23.1", + rhs: "trunk", + less: false, + }, + } { + t.Run("", func(t *testing.T) { + require.Equal(t, tt.less, Lt(tt.lhs, tt.rhs)) + }) + } +} + +func TestGte(t *testing.T) { + for _, tt := range []struct { + lhs string + rhs string + less bool + }{ + { + lhs: "1", + rhs: "2", + less: false, + }, + { + lhs: "2", + rhs: "1", + less: true, + }, + { + lhs: "1", + rhs: "1", + less: true, + }, + { + lhs: "22.5", + rhs: "23.1", + less: false, + }, + { + lhs: "23.1", + rhs: "22.5", + less: true, + }, + { + lhs: "trunk", + rhs: "22.5", + less: false, + }, + { + lhs: "trunk", + rhs: "23.1", + less: false, + }, + { + lhs: "22.5", + rhs: "trunk", + less: false, + }, + { + lhs: "23.1", + rhs: "trunk", + less: false, + }, + } { + t.Run("", func(t *testing.T) { + require.Equal(t, tt.less, Gte(tt.lhs, tt.rhs)) + }) + } +} diff --git a/internal/version/version.go b/internal/version/version.go new file mode 100644 index 000000000..bcb1030f3 --- /dev/null +++ b/internal/version/version.go @@ -0,0 +1,9 @@ +package version + +const ( + Major = "3" + Minor = "48" + Patch = "8" +) + +const Version = Major + "." + Minor + "." + Patch diff --git a/log/discovery.go b/log/discovery.go index c089ceb03..f9b7c60d5 100644 --- a/log/discovery.go +++ b/log/discovery.go @@ -25,14 +25,14 @@ func internalDiscovery(l *wrapper, d trace.Detailer) (t trace.Discovery) { return func(info trace.DiscoveryDiscoverDoneInfo) { if info.Error == nil { l.Log(WithLevel(ctx, INFO), "done", - latency(start), + latencyField(start), Stringer("endpoints", endpoints(info.Endpoints)), ) } else { l.Log(WithLevel(ctx, ERROR), "failed", Error(info.Error), - latency(start), - version(), + latencyField(start), + versionField(), ) } } @@ -47,15 +47,15 @@ func internalDiscovery(l *wrapper, d trace.Detailer) (t trace.Discovery) { return func(info trace.DiscoveryWhoAmIDoneInfo) { if info.Error == nil { l.Log(ctx, "done", - latency(start), + latencyField(start), String("user", info.User), Strings("groups", info.Groups), ) } else { l.Log(WithLevel(ctx, WARN), "failed", Error(info.Error), - latency(start), - version(), + latencyField(start), + versionField(), ) } } diff --git a/log/driver.go b/log/driver.go index 1e2ad3370..7ceb14631 100644 --- a/log/driver.go +++ b/log/driver.go @@ -40,7 +40,7 @@ func internalDriver(l *wrapper, d trace.Detailer) (t trace.Driver) { //nolint:go Error(info.Error), String("target", target), Strings("resolved", addresses), - version(), + versionField(), ) } } @@ -65,7 +65,7 @@ func internalDriver(l *wrapper, d trace.Detailer) (t trace.Driver) { //nolint:go String("endpoint", endpoint), String("database", database), Bool("secure", secure), - latency(start), + latencyField(start), ) } else { l.Log(WithLevel(ctx, ERROR), "failed", @@ -73,8 +73,8 @@ func internalDriver(l *wrapper, d trace.Detailer) (t trace.Driver) { //nolint:go String("endpoint", endpoint), String("database", database), Bool("secure", secure), - latency(start), - version(), + latencyField(start), + versionField(), ) } } @@ -89,13 +89,13 @@ func internalDriver(l *wrapper, d trace.Detailer) (t trace.Driver) { //nolint:go return func(info trace.DriverCloseDoneInfo) { if info.Error == nil { l.Log(ctx, "done", - latency(start), + latencyField(start), ) } else { l.Log(WithLevel(ctx, WARN), "failed", Error(info.Error), - latency(start), - version(), + latencyField(start), + versionField(), ) } } @@ -114,14 +114,14 @@ func internalDriver(l *wrapper, d trace.Detailer) (t trace.Driver) { //nolint:go if info.Error == nil { l.Log(ctx, "done", Stringer("endpoint", endpoint), - latency(start), + latencyField(start), ) } else { l.Log(WithLevel(ctx, WARN), "failed", Error(info.Error), Stringer("endpoint", endpoint), - latency(start), - version(), + latencyField(start), + versionField(), ) } } @@ -140,7 +140,7 @@ func internalDriver(l *wrapper, d trace.Detailer) (t trace.Driver) { //nolint:go return func(info trace.DriverConnStateChangeDoneInfo) { l.Log(ctx, "done", Stringer("endpoint", endpoint), - latency(start), + latencyField(start), Stringer("state", info.State), ) } @@ -159,14 +159,14 @@ func internalDriver(l *wrapper, d trace.Detailer) (t trace.Driver) { //nolint:go if info.Error == nil { l.Log(ctx, "done", Stringer("endpoint", endpoint), - latency(start), + latencyField(start), ) } else { l.Log(WithLevel(ctx, WARN), "failed", Error(info.Error), Stringer("endpoint", endpoint), - latency(start), - version(), + latencyField(start), + versionField(), ) } } @@ -185,14 +185,14 @@ func internalDriver(l *wrapper, d trace.Detailer) (t trace.Driver) { //nolint:go if info.Error == nil { l.Log(ctx, "done", Stringer("endpoint", endpoint), - latency(start), + latencyField(start), ) } else { l.Log(WithLevel(ctx, WARN), "failed", Error(info.Error), Stringer("endpoint", endpoint), - latency(start), - version(), + latencyField(start), + versionField(), ) } } @@ -214,7 +214,7 @@ func internalDriver(l *wrapper, d trace.Detailer) (t trace.Driver) { //nolint:go l.Log(ctx, "done", Stringer("endpoint", endpoint), String("method", method), - latency(start), + latencyField(start), Stringer("metadata", metadata(info.Metadata)), ) } else { @@ -222,9 +222,9 @@ func internalDriver(l *wrapper, d trace.Detailer) (t trace.Driver) { //nolint:go Error(info.Error), Stringer("endpoint", endpoint), String("method", method), - latency(start), + latencyField(start), Stringer("metadata", metadata(info.Metadata)), - version(), + versionField(), ) } } @@ -252,15 +252,15 @@ func internalDriver(l *wrapper, d trace.Detailer) (t trace.Driver) { //nolint:go l.Log(ctx, "intermediate receive", Stringer("endpoint", endpoint), String("method", method), - latency(start), + latencyField(start), ) } else { l.Log(WithLevel(ctx, WARN), "intermediate fail", Error(info.Error), Stringer("endpoint", endpoint), String("method", method), - latency(start), - version(), + latencyField(start), + versionField(), ) } return func(info trace.DriverConnNewStreamDoneInfo) { @@ -268,7 +268,7 @@ func internalDriver(l *wrapper, d trace.Detailer) (t trace.Driver) { //nolint:go l.Log(ctx, "done", Stringer("endpoint", endpoint), String("method", method), - latency(start), + latencyField(start), Stringer("metadata", metadata(info.Metadata)), ) } else { @@ -276,9 +276,9 @@ func internalDriver(l *wrapper, d trace.Detailer) (t trace.Driver) { //nolint:go Error(info.Error), Stringer("endpoint", endpoint), String("method", method), - latency(start), + latencyField(start), Stringer("metadata", metadata(info.Metadata)), - version(), + versionField(), ) } } @@ -293,15 +293,15 @@ func internalDriver(l *wrapper, d trace.Detailer) (t trace.Driver) { //nolint:go l.Log(ctx, "start", Stringer("endpoint", endpoint), NamedError("cause", info.Cause), - version(), + versionField(), ) start := time.Now() return func(info trace.DriverConnBanDoneInfo) { l.Log(WithLevel(ctx, WARN), "done", Stringer("endpoint", endpoint), - latency(start), + latencyField(start), Stringer("state", info.State), - version(), + versionField(), ) } } @@ -318,7 +318,7 @@ func internalDriver(l *wrapper, d trace.Detailer) (t trace.Driver) { //nolint:go return func(info trace.DriverConnAllowDoneInfo) { l.Log(ctx, "done", Stringer("endpoint", endpoint), - latency(start), + latencyField(start), Stringer("state", info.State), ) } @@ -340,15 +340,15 @@ func internalDriver(l *wrapper, d trace.Detailer) (t trace.Driver) { //nolint:go l.Log(ctx, "done", String("name", name), String("event", event), - latency(start), + latencyField(start), ) } else { l.Log(WithLevel(ctx, ERROR), "failed", Error(info.Error), String("name", name), String("event", event), - latency(start), - version(), + latencyField(start), + versionField(), ) } } @@ -362,7 +362,7 @@ func internalDriver(l *wrapper, d trace.Detailer) (t trace.Driver) { //nolint:go start := time.Now() return func(info trace.DriverBalancerInitDoneInfo) { l.Log(WithLevel(ctx, INFO), "done", - latency(start), + latencyField(start), ) } } @@ -376,13 +376,13 @@ func internalDriver(l *wrapper, d trace.Detailer) (t trace.Driver) { //nolint:go return func(info trace.DriverBalancerCloseDoneInfo) { if info.Error == nil { l.Log(ctx, "done", - latency(start), + latencyField(start), ) } else { l.Log(WithLevel(ctx, WARN), "failed", Error(info.Error), - latency(start), - version(), + latencyField(start), + versionField(), ) } } @@ -401,14 +401,14 @@ func internalDriver(l *wrapper, d trace.Detailer) (t trace.Driver) { //nolint:go return func(info trace.DriverBalancerChooseEndpointDoneInfo) { if info.Error == nil { l.Log(ctx, "done", - latency(start), + latencyField(start), Stringer("endpoint", info.Endpoint), ) } else { l.Log(WithLevel(ctx, ERROR), "failed", Error(info.Error), - latency(start), - version(), + latencyField(start), + versionField(), ) } } @@ -428,7 +428,7 @@ func internalDriver(l *wrapper, d trace.Detailer) (t trace.Driver) { //nolint:go start := time.Now() return func(info trace.DriverBalancerUpdateDoneInfo) { l.Log(ctx, "done", - latency(start), + latencyField(start), Stringer("endpoints", endpoints(info.Endpoints)), String("detectedLocalDC", info.LocalDC), ) @@ -444,15 +444,15 @@ func internalDriver(l *wrapper, d trace.Detailer) (t trace.Driver) { //nolint:go return func(info trace.DriverGetCredentialsDoneInfo) { if info.Error == nil { l.Log(ctx, "done", - latency(start), + latencyField(start), String("token", secret.Token(info.Token)), ) } else { l.Log(WithLevel(ctx, ERROR), "done", Error(info.Error), - latency(start), + latencyField(start), String("token", secret.Token(info.Token)), - version(), + versionField(), ) } } diff --git a/log/field.go b/log/field.go index 899c0c4a2..f17619005 100644 --- a/log/field.go +++ b/log/field.go @@ -8,7 +8,7 @@ import ( "time" "github.com/ydb-platform/ydb-go-sdk/v3/internal/allocator" - "github.com/ydb-platform/ydb-go-sdk/v3/internal/meta" + "github.com/ydb-platform/ydb-go-sdk/v3/internal/version" "github.com/ydb-platform/ydb-go-sdk/v3/trace" ) @@ -330,14 +330,14 @@ func (ft FieldType) String() (typeName string) { return typeName } -// latency creates Field "latency": time.Since(start) -func latency(start time.Time) Field { +// latencyField creates Field "latency": time.Since(start) +func latencyField(start time.Time) Field { return Duration("latency", time.Since(start)) } -// version creates Field "version": meta.Version -func version() Field { - return String("version", meta.Version) +// versionField creates Field "version": version.Version +func versionField() Field { + return String("version", version.Version) } type endpoints []trace.EndpointInfo diff --git a/log/retry.go b/log/retry.go index 07d963efa..e7ec38f19 100644 --- a/log/retry.go +++ b/log/retry.go @@ -36,7 +36,7 @@ func internalRetry(l *wrapper, d trace.Detailer) (t trace.Retry) { if info.Error == nil { l.Log(ctx, "attempt done", String("id", id), - latency(start), + latencyField(start), ) } else { lvl := ERROR @@ -47,18 +47,18 @@ func internalRetry(l *wrapper, d trace.Detailer) (t trace.Retry) { l.Log(WithLevel(ctx, lvl), "attempt failed", Error(info.Error), String("id", id), - latency(start), + latencyField(start), Bool("retryable", m.MustRetry(idempotent)), Int64("code", m.StatusCode()), Bool("deleteSession", m.MustDeleteSession()), - version(), + versionField(), ) } return func(info trace.RetryLoopDoneInfo) { if info.Error == nil { l.Log(ctx, "done", String("id", id), - latency(start), + latencyField(start), Int("attempts", info.Attempts), ) } else { @@ -70,12 +70,12 @@ func internalRetry(l *wrapper, d trace.Detailer) (t trace.Retry) { l.Log(WithLevel(ctx, lvl), "failed", Error(info.Error), String("id", id), - latency(start), + latencyField(start), Int("attempts", info.Attempts), Bool("retryable", m.MustRetry(idempotent)), Int64("code", m.StatusCode()), Bool("deleteSession", m.MustDeleteSession()), - version(), + versionField(), ) } } diff --git a/log/scripting.go b/log/scripting.go index 303c1a832..6d45d60a1 100644 --- a/log/scripting.go +++ b/log/scripting.go @@ -22,15 +22,15 @@ func internalScripting(l *wrapper, d trace.Detailer) (t trace.Scripting) { return func(info trace.ScriptingExecuteDoneInfo) { if info.Error == nil { l.Log(ctx, "done", - latency(start), + latencyField(start), Int("resultSetCount", info.Result.ResultSetCount()), NamedError("resultSetError", info.Result.Err()), ) } else { l.Log(WithLevel(ctx, ERROR), "failed", Error(info.Error), - latency(start), - version(), + latencyField(start), + versionField(), ) } } @@ -45,14 +45,14 @@ func internalScripting(l *wrapper, d trace.Detailer) (t trace.Scripting) { return func(info trace.ScriptingExplainDoneInfo) { if info.Error == nil { l.Log(ctx, "done", - latency(start), + latencyField(start), String("plan", info.Plan), ) } else { l.Log(WithLevel(ctx, ERROR), "failed", Error(info.Error), - latency(start), - version(), + latencyField(start), + versionField(), ) } } @@ -85,7 +85,7 @@ func internalScripting(l *wrapper, d trace.Detailer) (t trace.Scripting) { } else { l.Log(WithLevel(ctx, WARN), "intermediate failed", Error(info.Error), - version(), + versionField(), ) } return func(info trace.ScriptingStreamExecuteDoneInfo) { @@ -93,7 +93,7 @@ func internalScripting(l *wrapper, d trace.Detailer) (t trace.Scripting) { l.Log(ctx, "done", appendFieldByCondition(l.logQuery, String("query", query), - latency(start), + latencyField(start), )..., ) } else { @@ -101,8 +101,8 @@ func internalScripting(l *wrapper, d trace.Detailer) (t trace.Scripting) { appendFieldByCondition(l.logQuery, String("query", query), Error(info.Error), - latency(start), - version(), + latencyField(start), + versionField(), )..., ) } @@ -119,13 +119,13 @@ func internalScripting(l *wrapper, d trace.Detailer) (t trace.Scripting) { return func(info trace.ScriptingCloseDoneInfo) { if info.Error == nil { l.Log(ctx, "done", - latency(start), + latencyField(start), ) } else { l.Log(WithLevel(ctx, WARN), "failed", Error(info.Error), - latency(start), - version(), + latencyField(start), + versionField(), ) } } diff --git a/log/sql.go b/log/sql.go index 571a5365a..a89994b37 100644 --- a/log/sql.go +++ b/log/sql.go @@ -28,15 +28,15 @@ func internalDatabaseSQL(l *wrapper, d trace.Detailer) (t trace.DatabaseSQL) { return func(info trace.DatabaseSQLConnectorConnectDoneInfo) { if info.Error == nil { l.Log(WithLevel(ctx, DEBUG), "connected", - latency(start), + latencyField(start), String("session_id", info.Session.ID()), String("session_status", info.Session.Status()), ) } else { l.Log(WithLevel(ctx, ERROR), "failed", Error(info.Error), - latency(start), - version(), + latencyField(start), + versionField(), ) } } @@ -52,13 +52,13 @@ func internalDatabaseSQL(l *wrapper, d trace.Detailer) (t trace.DatabaseSQL) { return func(info trace.DatabaseSQLConnPingDoneInfo) { if info.Error == nil { l.Log(ctx, "done", - latency(start), + latencyField(start), ) } else { l.Log(WithLevel(ctx, ERROR), "failed", Error(info.Error), - latency(start), - version(), + latencyField(start), + versionField(), ) } } @@ -73,13 +73,13 @@ func internalDatabaseSQL(l *wrapper, d trace.Detailer) (t trace.DatabaseSQL) { return func(info trace.DatabaseSQLConnCloseDoneInfo) { if info.Error == nil { l.Log(ctx, "done", - latency(start), + latencyField(start), ) } else { l.Log(WithLevel(ctx, WARN), "failed", Error(info.Error), - latency(start), - version(), + latencyField(start), + versionField(), ) } } @@ -94,13 +94,13 @@ func internalDatabaseSQL(l *wrapper, d trace.Detailer) (t trace.DatabaseSQL) { return func(info trace.DatabaseSQLConnBeginDoneInfo) { if info.Error == nil { l.Log(ctx, "done", - latency(start), + latencyField(start), ) } else { l.Log(WithLevel(ctx, ERROR), "failed", Error(info.Error), - latency(start), - version(), + latencyField(start), + versionField(), ) } } @@ -120,15 +120,15 @@ func internalDatabaseSQL(l *wrapper, d trace.Detailer) (t trace.DatabaseSQL) { return func(info trace.DatabaseSQLConnPrepareDoneInfo) { if info.Error == nil { l.Log(ctx, "done", - latency(start), + latencyField(start), ) } else { l.Log(WithLevel(ctx, ERROR), "failed", appendFieldByCondition(l.logQuery, String("query", query), Error(info.Error), - latency(start), - version(), + latencyField(start), + versionField(), )..., ) } @@ -150,7 +150,7 @@ func internalDatabaseSQL(l *wrapper, d trace.Detailer) (t trace.DatabaseSQL) { return func(info trace.DatabaseSQLConnExecDoneInfo) { if info.Error == nil { l.Log(ctx, "done", - latency(start), + latencyField(start), ) } else { m := retry.Check(info.Error) @@ -161,8 +161,8 @@ func internalDatabaseSQL(l *wrapper, d trace.Detailer) (t trace.DatabaseSQL) { Int64("code", m.StatusCode()), Bool("deleteSession", m.MustDeleteSession()), Error(info.Error), - latency(start), - version(), + latencyField(start), + versionField(), )..., ) } @@ -184,7 +184,7 @@ func internalDatabaseSQL(l *wrapper, d trace.Detailer) (t trace.DatabaseSQL) { return func(info trace.DatabaseSQLConnQueryDoneInfo) { if info.Error == nil { l.Log(ctx, "done", - latency(start), + latencyField(start), ) } else { m := retry.Check(info.Error) @@ -195,8 +195,8 @@ func internalDatabaseSQL(l *wrapper, d trace.Detailer) (t trace.DatabaseSQL) { Int64("code", m.StatusCode()), Bool("deleteSession", m.MustDeleteSession()), Error(info.Error), - latency(start), - version(), + latencyField(start), + versionField(), )..., ) } @@ -212,13 +212,13 @@ func internalDatabaseSQL(l *wrapper, d trace.Detailer) (t trace.DatabaseSQL) { return func(info trace.DatabaseSQLTxCommitDoneInfo) { if info.Error == nil { l.Log(ctx, "committed", - latency(start), + latencyField(start), ) } else { l.Log(WithLevel(ctx, ERROR), "failed", Error(info.Error), - latency(start), - version(), + latencyField(start), + versionField(), ) } } @@ -233,13 +233,13 @@ func internalDatabaseSQL(l *wrapper, d trace.Detailer) (t trace.DatabaseSQL) { return func(info trace.DatabaseSQLTxRollbackDoneInfo) { if info.Error == nil { l.Log(ctx, "done", - latency(start), + latencyField(start), ) } else { l.Log(WithLevel(ctx, WARN), "failed", Error(info.Error), - latency(start), - version(), + latencyField(start), + versionField(), ) } } @@ -254,13 +254,13 @@ func internalDatabaseSQL(l *wrapper, d trace.Detailer) (t trace.DatabaseSQL) { return func(info trace.DatabaseSQLStmtCloseDoneInfo) { if info.Error == nil { l.Log(ctx, "closed", - latency(start), + latencyField(start), ) } else { l.Log(WithLevel(ctx, ERROR), "close failed", Error(info.Error), - latency(start), - version(), + latencyField(start), + versionField(), ) } } @@ -281,15 +281,15 @@ func internalDatabaseSQL(l *wrapper, d trace.Detailer) (t trace.DatabaseSQL) { if info.Error == nil { l.Log(ctx, "done", Error(info.Error), - latency(start), + latencyField(start), ) } else { l.Log(WithLevel(ctx, ERROR), "failed", appendFieldByCondition(l.logQuery, String("query", query), Error(info.Error), - latency(start), - version(), + latencyField(start), + versionField(), )..., ) } @@ -310,15 +310,15 @@ func internalDatabaseSQL(l *wrapper, d trace.Detailer) (t trace.DatabaseSQL) { return func(info trace.DatabaseSQLStmtQueryDoneInfo) { if info.Error == nil { l.Log(ctx, "done", - latency(start), + latencyField(start), ) } else { l.Log(WithLevel(ctx, ERROR), "failed", appendFieldByCondition(l.logQuery, String("query", query), Error(info.Error), - latency(start), - version(), + latencyField(start), + versionField(), )..., ) } diff --git a/log/table.go b/log/table.go index aac114a8b..9e70d5183 100644 --- a/log/table.go +++ b/log/table.go @@ -35,7 +35,7 @@ func internalTable(l *wrapper, d trace.Detailer) (t trace.Table) { return func(info trace.TableDoIntermediateInfo) func(trace.TableDoDoneInfo) { if info.Error == nil { l.Log(ctx, "done", - latency(start), + latencyField(start), Bool("idempotent", idempotent), ) } else { @@ -45,19 +45,19 @@ func internalTable(l *wrapper, d trace.Detailer) (t trace.Table) { } m := retry.Check(info.Error) l.Log(WithLevel(ctx, lvl), "failed", - latency(start), + latencyField(start), Bool("idempotent", idempotent), Error(info.Error), Bool("retryable", m.MustRetry(idempotent)), Int64("code", m.StatusCode()), Bool("deleteSession", m.MustDeleteSession()), - version(), + versionField(), ) } return func(info trace.TableDoDoneInfo) { if info.Error == nil { l.Log(ctx, "done", - latency(start), + latencyField(start), Bool("idempotent", idempotent), Int("attempts", info.Attempts), ) @@ -68,14 +68,14 @@ func internalTable(l *wrapper, d trace.Detailer) (t trace.Table) { } m := retry.Check(info.Error) l.Log(WithLevel(ctx, lvl), "done", - latency(start), + latencyField(start), Bool("idempotent", idempotent), Int("attempts", info.Attempts), Error(info.Error), Bool("retryable", m.MustRetry(idempotent)), Int64("code", m.StatusCode()), Bool("deleteSession", m.MustDeleteSession()), - version(), + versionField(), ) } } @@ -100,7 +100,7 @@ func internalTable(l *wrapper, d trace.Detailer) (t trace.Table) { return func(info trace.TableDoTxIntermediateInfo) func(trace.TableDoTxDoneInfo) { if info.Error == nil { l.Log(ctx, "done", - latency(start), + latencyField(start), Bool("idempotent", idempotent), ) } else { @@ -110,19 +110,19 @@ func internalTable(l *wrapper, d trace.Detailer) (t trace.Table) { } m := retry.Check(info.Error) l.Log(WithLevel(ctx, lvl), "done", - latency(start), + latencyField(start), Bool("idempotent", idempotent), Error(info.Error), Bool("retryable", m.MustRetry(idempotent)), Int64("code", m.StatusCode()), Bool("deleteSession", m.MustDeleteSession()), - version(), + versionField(), ) } return func(info trace.TableDoTxDoneInfo) { if info.Error == nil { l.Log(ctx, "done", - latency(start), + latencyField(start), Bool("idempotent", idempotent), Int("attempts", info.Attempts), ) @@ -133,14 +133,14 @@ func internalTable(l *wrapper, d trace.Detailer) (t trace.Table) { } m := retry.Check(info.Error) l.Log(WithLevel(ctx, lvl), "done", - latency(start), + latencyField(start), Bool("idempotent", idempotent), Int("attempts", info.Attempts), Error(info.Error), Bool("retryable", m.MustRetry(idempotent)), Int64("code", m.StatusCode()), Bool("deleteSession", m.MustDeleteSession()), - version(), + versionField(), ) } } @@ -162,29 +162,29 @@ func internalTable(l *wrapper, d trace.Detailer) (t trace.Table) { return func(info trace.TableCreateSessionIntermediateInfo) func(trace.TableCreateSessionDoneInfo) { if info.Error == nil { l.Log(ctx, "intermediate", - latency(start), + latencyField(start), ) } else { l.Log(WithLevel(ctx, ERROR), "intermediate", - latency(start), + latencyField(start), Error(info.Error), - version(), + versionField(), ) } return func(info trace.TableCreateSessionDoneInfo) { if info.Error == nil { l.Log(ctx, "done", - latency(start), + latencyField(start), Int("attempts", info.Attempts), String("session_id", info.Session.ID()), String("session_status", info.Session.Status()), ) } else { l.Log(WithLevel(ctx, ERROR), "failed", - latency(start), + latencyField(start), Int("attempts", info.Attempts), Error(info.Error), - version(), + versionField(), ) } } @@ -201,20 +201,20 @@ func internalTable(l *wrapper, d trace.Detailer) (t trace.Table) { if info.Error == nil { if info.Session != nil { l.Log(ctx, "done", - latency(start), + latencyField(start), String("id", info.Session.ID()), ) } else { l.Log(WithLevel(ctx, WARN), "failed", - latency(start), - version(), + latencyField(start), + versionField(), ) } } else { l.Log(WithLevel(ctx, WARN), "failed", - latency(start), + latencyField(start), Error(info.Error), - version(), + versionField(), ) } } @@ -233,17 +233,17 @@ func internalTable(l *wrapper, d trace.Detailer) (t trace.Table) { return func(info trace.TableSessionDeleteDoneInfo) { if info.Error == nil { l.Log(ctx, "done", - latency(start), + latencyField(start), String("id", session.ID()), String("status", session.Status()), ) } else { l.Log(WithLevel(ctx, WARN), "failed", - latency(start), + latencyField(start), String("id", session.ID()), String("status", session.Status()), Error(info.Error), - version(), + versionField(), ) } } @@ -262,17 +262,17 @@ func internalTable(l *wrapper, d trace.Detailer) (t trace.Table) { return func(info trace.TableKeepAliveDoneInfo) { if info.Error == nil { l.Log(ctx, "done", - latency(start), + latencyField(start), String("id", session.ID()), String("status", session.Status()), ) } else { l.Log(WithLevel(ctx, WARN), "failed", - latency(start), + latencyField(start), String("id", session.ID()), String("status", session.Status()), Error(info.Error), - version(), + versionField(), ) } } @@ -305,7 +305,7 @@ func internalTable(l *wrapper, d trace.Detailer) (t trace.Table) { String("query", query), String("id", session.ID()), String("status", session.Status()), - latency(start), + latencyField(start), )..., )..., ) @@ -316,8 +316,8 @@ func internalTable(l *wrapper, d trace.Detailer) (t trace.Table) { Error(info.Error), String("id", session.ID()), String("status", session.Status()), - latency(start), - version(), + latencyField(start), + versionField(), )..., ) } @@ -353,7 +353,7 @@ func internalTable(l *wrapper, d trace.Detailer) (t trace.Table) { String("status", session.Status()), Bool("prepared", info.Prepared), NamedError("result_err", info.Result.Err()), - latency(start), + latencyField(start), )..., ) } else { @@ -364,8 +364,8 @@ func internalTable(l *wrapper, d trace.Detailer) (t trace.Table) { String("id", session.ID()), String("status", session.Status()), Bool("prepared", info.Prepared), - latency(start), - version(), + latencyField(start), + versionField(), )..., ) } @@ -402,7 +402,7 @@ func internalTable(l *wrapper, d trace.Detailer) (t trace.Table) { } else { l.Log(WithLevel(ctx, WARN), "failed", Error(info.Error), - version(), + versionField(), ) } return func(info trace.TableSessionQueryStreamExecuteDoneInfo) { @@ -413,7 +413,7 @@ func internalTable(l *wrapper, d trace.Detailer) (t trace.Table) { Error(info.Error), String("id", session.ID()), String("status", session.Status()), - latency(start), + latencyField(start), )..., ) } else { @@ -423,8 +423,8 @@ func internalTable(l *wrapper, d trace.Detailer) (t trace.Table) { Error(info.Error), String("id", session.ID()), String("status", session.Status()), - latency(start), - version(), + latencyField(start), + versionField(), )..., ) } @@ -458,23 +458,23 @@ func internalTable(l *wrapper, d trace.Detailer) (t trace.Table) { } else { l.Log(WithLevel(ctx, WARN), "failed", Error(info.Error), - version(), + versionField(), ) } return func(info trace.TableSessionQueryStreamReadDoneInfo) { if info.Error == nil { l.Log(ctx, "done", - latency(start), + latencyField(start), String("id", session.ID()), String("status", session.Status()), ) } else { l.Log(WithLevel(ctx, ERROR), "failed", - latency(start), + latencyField(start), String("id", session.ID()), String("status", session.Status()), Error(info.Error), - version(), + versionField(), ) } } @@ -498,18 +498,18 @@ func internalTable(l *wrapper, d trace.Detailer) (t trace.Table) { return func(info trace.TableSessionTransactionBeginDoneInfo) { if info.Error == nil { l.Log(ctx, "done", - latency(start), + latencyField(start), String("id", session.ID()), String("status", session.Status()), String("tx", info.Tx.ID()), ) } else { l.Log(WithLevel(ctx, WARN), "failed", - latency(start), + latencyField(start), String("id", session.ID()), String("status", session.Status()), Error(info.Error), - version(), + versionField(), ) } } @@ -534,19 +534,19 @@ func internalTable(l *wrapper, d trace.Detailer) (t trace.Table) { return func(info trace.TableSessionTransactionCommitDoneInfo) { if info.Error == nil { l.Log(ctx, "done", - latency(start), + latencyField(start), String("id", session.ID()), String("status", session.Status()), String("tx", tx.ID()), ) } else { l.Log(WithLevel(ctx, ERROR), "failed", - latency(start), + latencyField(start), String("id", session.ID()), String("status", session.Status()), String("tx", tx.ID()), Error(info.Error), - version(), + versionField(), ) } } @@ -571,19 +571,19 @@ func internalTable(l *wrapper, d trace.Detailer) (t trace.Table) { return func(info trace.TableSessionTransactionRollbackDoneInfo) { if info.Error == nil { l.Log(ctx, "done", - latency(start), + latencyField(start), String("id", session.ID()), String("status", session.Status()), String("tx", tx.ID()), ) } else { l.Log(WithLevel(ctx, ERROR), "failed", - latency(start), + latencyField(start), String("id", session.ID()), String("status", session.Status()), String("tx", tx.ID()), Error(info.Error), - version(), + versionField(), ) } } @@ -597,7 +597,7 @@ func internalTable(l *wrapper, d trace.Detailer) (t trace.Table) { start := time.Now() return func(info trace.TableInitDoneInfo) { l.Log(WithLevel(ctx, INFO), "done", - latency(start), + latencyField(start), Int("size_max", info.Limit), ) } @@ -612,13 +612,13 @@ func internalTable(l *wrapper, d trace.Detailer) (t trace.Table) { return func(info trace.TableCloseDoneInfo) { if info.Error == nil { l.Log(WithLevel(ctx, INFO), "done", - latency(start), + latencyField(start), ) } else { l.Log(WithLevel(ctx, ERROR), "failed", - latency(start), + latencyField(start), Error(info.Error), - version(), + versionField(), ) } } @@ -667,17 +667,17 @@ func internalTable(l *wrapper, d trace.Detailer) (t trace.Table) { return func(info trace.TablePoolPutDoneInfo) { if info.Error == nil { l.Log(ctx, "done", - latency(start), + latencyField(start), String("id", session.ID()), String("status", session.Status()), ) } else { l.Log(WithLevel(ctx, ERROR), "failed", - latency(start), + latencyField(start), String("id", session.ID()), String("status", session.Status()), Error(info.Error), - version(), + versionField(), ) } } @@ -693,17 +693,17 @@ func internalTable(l *wrapper, d trace.Detailer) (t trace.Table) { if info.Error == nil { session := info.Session l.Log(ctx, "done", - latency(start), + latencyField(start), String("id", session.ID()), String("status", session.Status()), Int("attempts", info.Attempts), ) } else { l.Log(WithLevel(ctx, WARN), "failed", - latency(start), + latencyField(start), Int("attempts", info.Attempts), Error(info.Error), - version(), + versionField(), ) } } @@ -717,7 +717,7 @@ func internalTable(l *wrapper, d trace.Detailer) (t trace.Table) { start := time.Now() return func(info trace.TablePoolWaitDoneInfo) { fields := []Field{ - latency(start), + latencyField(start), } if info.Session != nil { fields = append(fields, diff --git a/log/topic.go b/log/topic.go index 9635c285a..efa722f9c 100644 --- a/log/topic.go +++ b/log/topic.go @@ -24,7 +24,7 @@ func internalTopic(l *wrapper, d trace.Detailer) (t trace.Topic) { //nolint:gocy l.Log(ctx, "start") return func(doneInfo trace.TopicReaderReconnectDoneInfo) { l.Log(WithLevel(ctx, INFO), "reconnected", - latency(start), + latencyField(start), ) } } @@ -58,7 +58,7 @@ func internalTopic(l *wrapper, d trace.Detailer) (t trace.Topic) { //nolint:gocy String("reader_connection_id", info.ReaderConnectionID), Int64("partition_id", info.PartitionID), Int64("partition_session_id", info.PartitionSessionID), - latency(start), + latencyField(start), } if doneInfo.CommitOffset != nil { fields = append(fields, @@ -76,7 +76,7 @@ func internalTopic(l *wrapper, d trace.Detailer) (t trace.Topic) { //nolint:gocy l.Log(WithLevel(ctx, WARN), "read partition response completed", append(fields, Error(doneInfo.Error), - version(), + versionField(), )..., ) } @@ -105,7 +105,7 @@ func internalTopic(l *wrapper, d trace.Detailer) (t trace.Topic) { //nolint:gocy Int64("partition_session_id", info.PartitionSessionID), Int64("committed_offset", info.CommittedOffset), Bool("graceful", info.Graceful), - latency(start), + latencyField(start), } if doneInfo.Error == nil { l.Log(WithLevel(ctx, INFO), "reader partition stopped", fields...) @@ -113,7 +113,7 @@ func internalTopic(l *wrapper, d trace.Detailer) (t trace.Topic) { //nolint:gocy l.Log(WithLevel(ctx, WARN), "reader partition stopped", append(fields, Error(doneInfo.Error), - version(), + versionField(), )..., ) } @@ -139,7 +139,7 @@ func internalTopic(l *wrapper, d trace.Detailer) (t trace.Topic) { //nolint:gocy Int64("partition_session_id", info.PartitionSessionID), Int64("commit_start_offset", info.StartOffset), Int64("commit_end_offset", info.EndOffset), - latency(start), + latencyField(start), } if doneInfo.Error == nil { l.Log(ctx, "committed", fields...) @@ -147,7 +147,7 @@ func internalTopic(l *wrapper, d trace.Detailer) (t trace.Topic) { //nolint:gocy l.Log(WithLevel(ctx, WARN), "committed", append(fields, Error(doneInfo.Error), - version(), + versionField(), )..., ) } @@ -169,7 +169,7 @@ func internalTopic(l *wrapper, d trace.Detailer) (t trace.Topic) { //nolint:gocy fields := []Field{ Any("partitions_id", info.CommitsInfo.PartitionIDs()), Any("partitions_session_id", info.CommitsInfo.PartitionSessionIDs()), - latency(start), + latencyField(start), } if doneInfo.Error == nil { l.Log(ctx, "done", fields...) @@ -177,7 +177,7 @@ func internalTopic(l *wrapper, d trace.Detailer) (t trace.Topic) { //nolint:gocy l.Log(WithLevel(ctx, WARN), "commit message sent", append(fields, Error(doneInfo.Error), - version(), + versionField(), )..., ) } @@ -209,7 +209,7 @@ func internalTopic(l *wrapper, d trace.Detailer) (t trace.Topic) { //nolint:gocy return func(doneInfo trace.TopicReaderCloseDoneInfo) { fields := []Field{ String("reader_connection_id", info.ReaderConnectionID), - latency(start), + latencyField(start), } if doneInfo.CloseError == nil { l.Log(ctx, "closed", fields...) @@ -217,7 +217,7 @@ func internalTopic(l *wrapper, d trace.Detailer) (t trace.Topic) { //nolint:gocy l.Log(WithLevel(ctx, WARN), "closed", append(fields, Error(doneInfo.CloseError), - version(), + versionField(), )..., ) } @@ -240,7 +240,7 @@ func internalTopic(l *wrapper, d trace.Detailer) (t trace.Topic) { //nolint:gocy String("pre_init_reader_connection_id", info.PreInitReaderConnectionID), String("consumer", info.InitRequestInfo.GetConsumer()), Strings("topics", info.InitRequestInfo.GetTopics()), - latency(start), + latencyField(start), } if doneInfo.Error == nil { l.Log(ctx, "topic reader stream initialized", fields...) @@ -248,7 +248,7 @@ func internalTopic(l *wrapper, d trace.Detailer) (t trace.Topic) { //nolint:gocy l.Log(WithLevel(ctx, WARN), "topic reader stream initialized", append(fields, Error(doneInfo.Error), - version(), + versionField(), )..., ) } @@ -262,7 +262,7 @@ func internalTopic(l *wrapper, d trace.Detailer) (t trace.Topic) { //nolint:gocy l.Log(WithLevel(ctx, INFO), "stream error", Error(info.Error), String("reader_connection_id", info.ReaderConnectionID), - version(), + versionField(), ) } t.OnReaderUpdateToken = func( @@ -285,15 +285,15 @@ func internalTopic(l *wrapper, d trace.Detailer) (t trace.Topic) { //nolint:gocy l.Log(ctx, "got token", String("reader_connection_id", info.ReaderConnectionID), Int("token_len", updateTokenInfo.TokenLen), - latency(start), + latencyField(start), ) } else { l.Log(WithLevel(ctx, WARN), "got token", Error(updateTokenInfo.Error), String("reader_connection_id", info.ReaderConnectionID), Int("token_len", updateTokenInfo.TokenLen), - latency(start), - version(), + latencyField(start), + versionField(), ) } return func(doneInfo trace.OnReadStreamUpdateTokenDoneInfo) { @@ -301,15 +301,15 @@ func internalTopic(l *wrapper, d trace.Detailer) (t trace.Topic) { //nolint:gocy l.Log(ctx, "token updated on stream", String("reader_connection_id", info.ReaderConnectionID), Int("token_len", updateTokenInfo.TokenLen), - latency(start), + latencyField(start), ) } else { l.Log(WithLevel(ctx, WARN), "token updated on stream", Error(doneInfo.Error), String("reader_connection_id", info.ReaderConnectionID), Int("token_len", updateTokenInfo.TokenLen), - latency(start), - version(), + latencyField(start), + versionField(), ) } } @@ -352,7 +352,7 @@ func internalTopic(l *wrapper, d trace.Detailer) (t trace.Topic) { //nolint:gocy Int("partitions_count", partitionsCount), Int("batches_count", batchesCount), Int("messages_count", messagesCount), - latency(start), + latencyField(start), ) } else { l.Log(WithLevel(ctx, WARN), "data response received and processed", @@ -363,8 +363,8 @@ func internalTopic(l *wrapper, d trace.Detailer) (t trace.Topic) { //nolint:gocy Int("partitions_count", partitionsCount), Int("batches_count", batchesCount), Int("messages_count", messagesCount), - latency(start), - version(), + latencyField(start), + versionField(), ) } } @@ -388,7 +388,7 @@ func internalTopic(l *wrapper, d trace.Detailer) (t trace.Topic) { //nolint:gocy Int("min_count", info.MinCount), Int("max_count", info.MaxCount), Int("local_capacity_before", info.FreeBufferCapacity), - latency(start), + latencyField(start), ) } else { l.Log(WithLevel(ctx, WARN), "read messages returned", @@ -396,8 +396,8 @@ func internalTopic(l *wrapper, d trace.Detailer) (t trace.Topic) { //nolint:gocy Int("min_count", info.MinCount), Int("max_count", info.MaxCount), Int("local_capacity_before", info.FreeBufferCapacity), - latency(start), - version(), + latencyField(start), + versionField(), ) } } @@ -437,7 +437,7 @@ func internalTopic(l *wrapper, d trace.Detailer) (t trace.Topic) { //nolint:gocy String("producer_id", info.ProducerID), String("writer_instance_id", info.WriterInstanceID), Int("attempt", info.Attempt), - latency(start), + latencyField(start), ) } else { l.Log(WithLevel(ctx, WARN), "connect to topic writer stream completed", @@ -446,7 +446,7 @@ func internalTopic(l *wrapper, d trace.Detailer) (t trace.Topic) { //nolint:gocy String("producer_id", info.ProducerID), String("writer_instance_id", info.WriterInstanceID), Int("attempt", info.Attempt), - latency(start), + latencyField(start), ) } } @@ -472,7 +472,7 @@ func internalTopic(l *wrapper, d trace.Detailer) (t trace.Topic) { //nolint:gocy String("topic", info.Topic), String("producer_id", info.ProducerID), String("writer_instance_id", info.WriterInstanceID), - latency(start), + latencyField(start), String("session_id", doneInfo.SessionID), ) } else { @@ -481,7 +481,7 @@ func internalTopic(l *wrapper, d trace.Detailer) (t trace.Topic) { //nolint:gocy String("topic", info.Topic), String("producer_id", info.ProducerID), String("writer_instance_id", info.WriterInstanceID), - latency(start), + latencyField(start), String("session_id", doneInfo.SessionID), ) } @@ -503,14 +503,14 @@ func internalTopic(l *wrapper, d trace.Detailer) (t trace.Topic) { //nolint:gocy Error(doneInfo.Error), String("writer_instance_id", info.WriterInstanceID), NamedError("reason", info.Reason), - latency(start), + latencyField(start), ) } else { l.Log(WithLevel(ctx, WARN), "close topic writer completed", Error(doneInfo.Error), String("writer_instance_id", info.WriterInstanceID), NamedError("reason", info.Reason), - latency(start), + latencyField(start), ) } } @@ -541,7 +541,7 @@ func internalTopic(l *wrapper, d trace.Detailer) (t trace.Topic) { //nolint:gocy Any("codec", info.Codec), Int("messages_count", info.MessagesCount), Int64("first_seqno", info.FirstSeqNo), - latency(start), + latencyField(start), ) } else { l.Log(WithLevel(ctx, ERROR), "compress message completed", @@ -552,7 +552,7 @@ func internalTopic(l *wrapper, d trace.Detailer) (t trace.Topic) { //nolint:gocy Any("codec", info.Codec), Int("messages_count", info.MessagesCount), Int64("first_seqno", info.FirstSeqNo), - latency(start), + latencyField(start), ) } } @@ -580,7 +580,7 @@ func internalTopic(l *wrapper, d trace.Detailer) (t trace.Topic) { //nolint:gocy Any("codec", info.Codec), Int("messages_count", info.MessagesCount), Int64("first_seqno", info.FirstSeqNo), - latency(start), + latencyField(start), ) } else { l.Log(WithLevel(ctx, WARN), "send messages completed", @@ -590,7 +590,7 @@ func internalTopic(l *wrapper, d trace.Detailer) (t trace.Topic) { //nolint:gocy Any("codec", info.Codec), Int("messages_count", info.MessagesCount), Int64("first_seqno", info.FirstSeqNo), - latency(start), + latencyField(start), ) } } diff --git a/tests/integration/sugar_make_remove_recursive_test.go b/tests/integration/sugar_make_remove_recursive_test.go index e45a7329d..96eb1f063 100644 --- a/tests/integration/sugar_make_remove_recursive_test.go +++ b/tests/integration/sugar_make_remove_recursive_test.go @@ -7,12 +7,11 @@ import ( "fmt" "os" "path" - "strconv" - "strings" "testing" "github.com/stretchr/testify/require" + "github.com/ydb-platform/ydb-go-sdk/v3/internal/version" "github.com/ydb-platform/ydb-go-sdk/v3/sugar" ) @@ -39,25 +38,14 @@ func TestSugarMakeRemoveRecursive(t *testing.T) { _, err = db.Scripting().Execute(scope.Ctx, query, nil) require.NoError(t, err) - if v, has := os.LookupEnv("YDB_VERSION"); has { - vv := strings.Split(v, ".") - if len(vv) >= 2 { - year, err := strconv.Atoi(vv[0]) - if err == nil { - release, err := strconv.Atoi(vv[1]) - if err == nil { - if year >= 23 && release >= 2 { - tablePath = path.Join(testPrefix, "columnTableName") - query = fmt.Sprintf( - "CREATE TABLE `%v` (id Uint64 NOT NULL, PRIMARY KEY (id)) PARTITION BY HASH(id) WITH (STORE = COLUMN)", - tablePath, - ) - _, err = db.Scripting().Execute(scope.Ctx, query, nil) - require.NoError(t, err) - } - } - } - } + if version.Gte(os.Getenv("YDB_VERSION"), "23.1") { + tablePath = path.Join(testPrefix, "columnTableName") + query = fmt.Sprintf( + "CREATE TABLE `%v` (id Uint64 NOT NULL, PRIMARY KEY (id)) PARTITION BY HASH(id) WITH (STORE = COLUMN)", + tablePath, + ) + _, err = db.Scripting().Execute(scope.Ctx, query, nil) + require.NoError(t, err) } err = db.Topic().Create(scope.Ctx, path.Join(testPrefix, "topic")) diff --git a/version.go b/version.go index 80f968b30..6560a46d0 100644 --- a/version.go +++ b/version.go @@ -1,6 +1,8 @@ package ydb -import "github.com/ydb-platform/ydb-go-sdk/v3/internal/meta" +import ( + "github.com/ydb-platform/ydb-go-sdk/v3/internal/version" +) // Version reports current version of sdk -const Version = meta.Version +const Version = version.Version