This is an automated email from the ASF dual-hosted git repository.
wusheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking-cli.git
The following commit(s) were added to refs/heads/master by this push:
new 405b113 Remove cli module from pkg module (#212)
405b113 is described below
commit 405b113f5688e7fb30c947033de6eb7ff3ffedc9
Author: kezhenxu94 <[email protected]>
AuthorDate: Mon Mar 24 14:40:11 2025 +0800
Remove cli module from pkg module (#212)
---
.golangci.yml | 13 ++++---
Makefile | 2 +-
cmd/swctl/main.go | 9 +++--
internal/commands/alarm/autopleteKeys.go | 5 ++-
internal/commands/alarm/autopleteValues.go | 4 +-
internal/commands/alarm/list.go | 8 ++--
internal/commands/browser/logs/list.go | 4 +-
internal/commands/browser/page/list.go | 5 +--
internal/commands/browser/service/list.go | 6 +--
internal/commands/browser/version/list.go | 5 +--
internal/commands/dashboard/global/global.go | 15 ++++++--
internal/commands/dashboard/global/metrics.go | 20 ++++++----
internal/commands/dependency/endpoint.go | 5 +--
internal/commands/dependency/global.go | 8 ++--
internal/commands/dependency/instance.go | 5 +--
internal/commands/dependency/process.go | 4 +-
internal/commands/dependency/service.go | 5 +--
internal/commands/endpoint/get.go | 4 +-
internal/commands/endpoint/list.go | 4 +-
internal/commands/event/list.go | 11 +++---
internal/commands/event/report.go | 2 +-
internal/commands/healthcheck/healthcheck.go | 3 +-
internal/commands/hierarchy/instance.go | 4 +-
internal/commands/hierarchy/layers.go | 4 +-
internal/commands/hierarchy/service.go | 4 +-
internal/commands/instance/get.go | 4 +-
internal/commands/instance/list.go | 5 +--
internal/commands/instance/search.go | 5 +--
internal/commands/interceptor/duration.go | 28 +++++++++-----
internal/commands/interceptor/interceptor.go | 18 +++++++--
internal/commands/interceptor/service.go | 4 +-
internal/commands/interceptor/timezone.go | 3 +-
internal/commands/layer/list.go | 4 +-
internal/commands/logs/list.go | 9 ++---
internal/commands/menu/get.go | 4 +-
internal/commands/metrics/aggregation/metrics.go | 4 +-
.../commands/metrics/aggregation/sampled-record.go | 10 ++---
internal/commands/metrics/aggregation/topn.go | 4 +-
internal/commands/metrics/expression/exec.go | 4 +-
internal/commands/metrics/linear/linear-metrics.go | 5 +--
.../metrics/linear/multiple-linear-metrics.go | 7 ++--
internal/commands/metrics/list/list-metrics.go | 5 +--
.../commands/metrics/single/nullable-metrics.go | 5 +--
internal/commands/metrics/single/single-metrics.go | 5 +--
.../metrics/thermodynamic/thermodynamic.go | 5 +--
internal/commands/process/estimate/scale.go | 5 +--
internal/commands/process/get.go | 4 +-
internal/commands/process/list.go | 4 +-
.../commands/profiling/asyncprofiler/create.go | 4 +-
.../commands/profiling/asyncprofiler/getAnalyze.go | 5 +--
.../profiling/asyncprofiler/getTaskList.go | 5 +--
.../profiling/asyncprofiler/getTaskProgress.go | 5 +--
internal/commands/profiling/continuous/list.go | 4 +-
.../commands/profiling/continuous/monitoring.go | 4 +-
internal/commands/profiling/continuous/set.go | 4 +-
internal/commands/profiling/ebpf/analysis.go | 8 ++--
.../profiling/ebpf/create/createByFixedTime.go | 5 +--
internal/commands/profiling/ebpf/create/network.go | 7 ++--
.../profiling/ebpf/create/prepareCreate.go | 4 +-
internal/commands/profiling/ebpf/keep/network.go | 4 +-
internal/commands/profiling/ebpf/list.go | 6 ++-
internal/commands/profiling/ebpf/schedules.go | 4 +-
internal/commands/profiling/trace/create.go | 5 +--
.../commands/profiling/trace/getProfileAnalyze.go | 9 ++---
internal/commands/profiling/trace/getTaskList.go | 5 +--
internal/commands/profiling/trace/getTaskLogs.go | 5 +--
.../commands/profiling/trace/getTaskSegmentList.go | 5 +--
internal/commands/service/layer.go | 4 +-
internal/commands/service/list.go | 6 +--
internal/commands/trace/list.go | 9 ++---
internal/commands/trace/trace.go | 5 +--
{pkg => internal}/display/display.go | 45 ++++++----------------
{pkg => internal}/util/commandNotFound.go | 0
{pkg => internal}/util/commandNotFound_test.go | 0
.../common/common.go => contextkey/contextkey.go} | 33 ++++++++--------
pkg/display/display.go | 44 ++-------------------
pkg/display/graph/dashboard/global.go | 45 +++++++++++-----------
pkg/display/graph/flamegraph/adapter.go | 4 +-
pkg/display/graph/flamegraph/flamegraph.go | 16 ++++----
pkg/display/graph/gauge/gauge.go | 12 +++---
pkg/display/graph/graph.go | 5 +--
pkg/display/graph/linear/linear.go | 12 +++---
pkg/display/graph/tree/list.go | 35 +++++++++--------
pkg/graphql/alarm/alarm.go | 10 ++---
pkg/graphql/client/client.go | 17 ++++----
pkg/graphql/common/common.go | 6 +--
pkg/graphql/dashboard/global.go | 30 ++++++++-------
pkg/graphql/dependency/dependency.go | 15 ++++----
pkg/graphql/event/event.go | 6 +--
pkg/graphql/healthcheck/healthcheck.go | 5 ++-
pkg/graphql/hierarchy/hierarchy.go | 10 ++---
pkg/graphql/log/log.go | 8 ++--
pkg/graphql/menu/menu.go | 6 +--
pkg/graphql/metadata/metadata.go | 42 ++++++++++----------
pkg/graphql/metrics/metrics.go | 28 ++++++++------
pkg/graphql/profiling/asyncprofiler.go | 11 +++---
pkg/graphql/profiling/continuous.go | 13 ++++---
pkg/graphql/profiling/ebpf.go | 26 +++++++------
pkg/graphql/profiling/trace.go | 14 +++----
pkg/graphql/trace/trace.go | 7 ++--
pkg/heatmap/heatmap.go | 2 +-
101 files changed, 458 insertions(+), 481 deletions(-)
diff --git a/.golangci.yml b/.golangci.yml
index 82a287f..93a77e9 100644
--- a/.golangci.yml
+++ b/.golangci.yml
@@ -46,6 +46,13 @@ linters-settings:
whitespace:
multi-if: false
multi-func: false
+ depguard:
+ rules:
+ prevent_cli_in_pkg:
+ files: ["**/pkg/**/*.go"]
+ deny:
+ - pkg: "github.com/urfave/cli/v2"
+ desc: "github.com/urfave/cli/v2 is not allowed in pkg module"
linters:
enable:
@@ -74,8 +81,4 @@ linters:
- unparam
- unused
- whitespace
-
-service:
- golangci-lint-version: 1.20.x
- prepare:
- - echo "here I can run custom commands, but no preparation needed for this
repo"
+ - depguard
diff --git a/Makefile b/Makefile
index 0cbf198..6c036b0 100644
--- a/Makefile
+++ b/Makefile
@@ -55,7 +55,7 @@ build: $(BUILDS)
.PHONY: deps
deps:
- @$(GO_GET) -v -t -d ./...
+ @$(GO_GET) -v -t ./...
$(GO_LINT):
@$(GO_LINT) version > /dev/null 2>&1 || go install
github.com/golangci/golangci-lint/cmd/[email protected]
diff --git a/cmd/swctl/main.go b/cmd/swctl/main.go
index 1023861..1fd6d38 100644
--- a/cmd/swctl/main.go
+++ b/cmd/swctl/main.go
@@ -44,6 +44,7 @@ import (
"github.com/apache/skywalking-cli/internal/commands/service"
"github.com/apache/skywalking-cli/internal/commands/trace"
"github.com/apache/skywalking-cli/internal/logger"
+ intutil "github.com/apache/skywalking-cli/internal/util"
"github.com/apache/skywalking-cli/pkg/util"
"github.com/sirupsen/logrus"
@@ -51,8 +52,10 @@ import (
"github.com/urfave/cli/v2/altsrc"
)
-var log *logrus.Logger
-var version string // Will be initialized when building
+var (
+ log *logrus.Logger
+ version string // Will be initialized when building
+)
func init() {
log = logger.Log
@@ -119,7 +122,7 @@ services, service instances, etc.`
)
app.Flags = flags
- app.CommandNotFound = util.CommandNotFound
+ app.CommandNotFound = intutil.CommandNotFound
// Enable auto-completion.
app.EnableBashCompletion = true
diff --git a/internal/commands/alarm/autopleteKeys.go
b/internal/commands/alarm/autopleteKeys.go
index 6a9b081..44f8777 100644
--- a/internal/commands/alarm/autopleteKeys.go
+++ b/internal/commands/alarm/autopleteKeys.go
@@ -57,11 +57,12 @@ $ swctl alarm autocomplete-keys
Step: step.(*model.StepEnumValue).Selected,
}
- autocompleteKeys, err := alarm.TagAutocompleteKeys(ctx,
duration)
+ autocompleteKeys, err := alarm.TagAutocompleteKeys(ctx.Context,
duration)
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
autocompleteKeys, Condition: duration})
+ ctx.Lineage()
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: autocompleteKeys, Condition: duration})
},
}
diff --git a/internal/commands/alarm/autopleteValues.go
b/internal/commands/alarm/autopleteValues.go
index 8876e41..583d0bf 100644
--- a/internal/commands/alarm/autopleteValues.go
+++ b/internal/commands/alarm/autopleteValues.go
@@ -66,11 +66,11 @@ $ swctl alarm autocomplete-values --key=tagKey
Step: step.(*model.StepEnumValue).Selected,
}
- autocompleteValues, err := alarm.TagAutocompleteValues(ctx,
duration, tagKey)
+ autocompleteValues, err :=
alarm.TagAutocompleteValues(ctx.Context, duration, tagKey)
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
autocompleteValues, Condition: tagKey})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: autocompleteValues, Condition: tagKey})
},
}
diff --git a/internal/commands/alarm/list.go b/internal/commands/alarm/list.go
index 7137bff..03682b7 100644
--- a/internal/commands/alarm/list.go
+++ b/internal/commands/alarm/list.go
@@ -89,8 +89,8 @@ $ swctl alarm list
var tags []*api.AlarmTag
if tagStr != "" {
- tagArr := strings.Split(tagStr, ",")
- for _, tag := range tagArr {
+ tagArr := strings.SplitSeq(tagStr, ",")
+ for tag := range tagArr {
kv := strings.SplitN(tag, "=", 2)
if len(kv) != 2 {
return fmt.Errorf("invalid tag, cannot
be splitted into 2 parts. %s", tag)
@@ -112,11 +112,11 @@ $ swctl alarm list
Tags: tags,
Paging: &paging,
}
- alarms, err := alarm.Alarms(ctx, condition)
+ alarms, err := alarm.Alarms(ctx.Context, condition)
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
alarms, Condition: condition})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: alarms, Condition: condition})
},
}
diff --git a/internal/commands/browser/logs/list.go
b/internal/commands/browser/logs/list.go
index c1adbce..9989b9a 100644
--- a/internal/commands/browser/logs/list.go
+++ b/internal/commands/browser/logs/list.go
@@ -80,11 +80,11 @@ $ swctl browser logs list`,
Paging: &paging,
}
- logs, err := log.BrowserLogs(ctx, condition)
+ logs, err := log.BrowserLogs(ctx.Context, condition)
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
logs, Condition: condition})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: logs, Condition: condition})
},
}
diff --git a/internal/commands/browser/page/list.go
b/internal/commands/browser/page/list.go
index 757f400..f7c5877 100644
--- a/internal/commands/browser/page/list.go
+++ b/internal/commands/browser/page/list.go
@@ -58,12 +58,11 @@ $ swctl browser page ls --service-id dGVzdC11aQ==.1`,
serviceID := ctx.String("service-id")
limit := ctx.Int("limit")
- endpoints, err := metadata.SearchEndpoints(ctx, serviceID, "",
limit, nil)
-
+ endpoints, err := metadata.SearchEndpoints(ctx.Context,
serviceID, "", limit, nil)
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
endpoints})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: endpoints})
},
}
diff --git a/internal/commands/browser/service/list.go
b/internal/commands/browser/service/list.go
index 6fe2e38..d676c36 100644
--- a/internal/commands/browser/service/list.go
+++ b/internal/commands/browser/service/list.go
@@ -56,7 +56,7 @@ $ swctl browser svc ls test-ui`,
var err error
if args := ctx.Args(); args.Len() == 0 {
- services, err = metadata.AllBrowserServices(ctx,
api.Duration{
+ services, err =
metadata.AllBrowserServices(ctx.Context, api.Duration{
Start: start,
End: end,
Step: step.(*model.StepEnumValue).Selected,
@@ -65,13 +65,13 @@ $ swctl browser svc ls test-ui`,
return err
}
} else {
- service, err := metadata.SearchBrowserService(ctx,
args.First())
+ service, err :=
metadata.SearchBrowserService(ctx.Context, args.First())
if err != nil {
return err
}
services = []api.Service{service}
}
- return display.Display(ctx, &displayable.Displayable{Data:
services})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: services})
},
}
diff --git a/internal/commands/browser/version/list.go
b/internal/commands/browser/version/list.go
index 9fb0978..aa47ae0 100644
--- a/internal/commands/browser/version/list.go
+++ b/internal/commands/browser/version/list.go
@@ -56,16 +56,15 @@ $ swctl browser version ls --service-id dGVzdC11aQ==.1`,
step := ctx.Generic("step")
serviceID := ctx.String("service-id")
- instances, err := metadata.Instances(ctx, serviceID,
api.Duration{
+ instances, err := metadata.Instances(ctx.Context, serviceID,
api.Duration{
Start: start,
End: end,
Step: step.(*model.StepEnumValue).Selected,
})
-
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
instances})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: instances})
},
}
diff --git a/internal/commands/dashboard/global/global.go
b/internal/commands/dashboard/global/global.go
index 2bfaf0d..4e941d0 100644
--- a/internal/commands/dashboard/global/global.go
+++ b/internal/commands/dashboard/global/global.go
@@ -18,6 +18,8 @@
package global
import (
+ "context"
+
"github.com/urfave/cli/v2"
api "skywalking.apache.org/repo/goapi/query"
@@ -25,6 +27,7 @@ import (
"github.com/apache/skywalking-cli/internal/commands/interceptor"
"github.com/apache/skywalking-cli/internal/flags"
"github.com/apache/skywalking-cli/internal/model"
+ "github.com/apache/skywalking-cli/pkg/contextkey"
"github.com/apache/skywalking-cli/pkg/display"
"github.com/apache/skywalking-cli/pkg/display/displayable"
"github.com/apache/skywalking-cli/pkg/graphql/dashboard"
@@ -62,22 +65,28 @@ $ swctl dashboard global --template my-global-template.yml
),
Before: interceptor.BeforeChain(
interceptor.DurationInterceptor,
+ func(cliCtx *cli.Context) error {
+ ctx := cliCtx.Context
+ ctx = context.WithValue(ctx,
contextkey.DashboardTemplate{}, cliCtx.String("template"))
+ ctx = context.WithValue(ctx,
contextkey.DashboardRefreshInterval{}, cliCtx.Int("refresh"))
+ cliCtx.Context = ctx
+ return nil
+ },
),
Action: func(ctx *cli.Context) error {
end := ctx.String("end")
start := ctx.String("start")
step := ctx.Generic("step")
- globalData, err := dashboard.Global(ctx, api.Duration{
+ globalData, err := dashboard.Global(ctx.Context, api.Duration{
Start: start,
End: end,
Step: step.(*model.StepEnumValue).Selected,
})
-
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
globalData})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: globalData})
},
}
diff --git a/internal/commands/dashboard/global/metrics.go
b/internal/commands/dashboard/global/metrics.go
index 37c9a9a..7653c54 100644
--- a/internal/commands/dashboard/global/metrics.go
+++ b/internal/commands/dashboard/global/metrics.go
@@ -18,11 +18,14 @@
package global
import (
+ "context"
+
"github.com/urfave/cli/v2"
"github.com/apache/skywalking-cli/internal/commands/interceptor"
"github.com/apache/skywalking-cli/internal/flags"
"github.com/apache/skywalking-cli/internal/model"
+ "github.com/apache/skywalking-cli/pkg/contextkey"
"github.com/apache/skywalking-cli/pkg/display"
"github.com/apache/skywalking-cli/pkg/display/displayable"
"github.com/apache/skywalking-cli/pkg/graphql/dashboard"
@@ -47,21 +50,24 @@ var Metrics = &cli.Command{
Before: interceptor.BeforeChain(
interceptor.DurationInterceptor,
),
- Action: func(ctx *cli.Context) error {
- end := ctx.String("end")
- start := ctx.String("start")
- step := ctx.Generic("step")
+ Action: func(cliCtx *cli.Context) error {
+ end := cliCtx.String("end")
+ start := cliCtx.String("start")
+ step := cliCtx.Generic("step")
+
+ ctx := cliCtx.Context
+ ctx = context.WithValue(ctx, contextkey.DashboardTemplate{},
cliCtx.String("template"))
+ cliCtx.Context = ctx
- globalMetrics, err := dashboard.Metrics(ctx, api.Duration{
+ globalMetrics, err := dashboard.Metrics(cliCtx.Context,
api.Duration{
Start: start,
End: end,
Step: step.(*model.StepEnumValue).Selected,
})
-
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
globalMetrics})
+ return display.Display(cliCtx.Context,
&displayable.Displayable{Data: globalMetrics})
},
}
diff --git a/internal/commands/dependency/endpoint.go
b/internal/commands/dependency/endpoint.go
index 8901028..9203996 100644
--- a/internal/commands/dependency/endpoint.go
+++ b/internal/commands/dependency/endpoint.go
@@ -57,12 +57,11 @@ var EndpointCommand = &cli.Command{
Step: step.(*model.StepEnumValue).Selected,
}
- dependency, err := dependency.EndpointDependency(ctx,
endpointID, duration)
-
+ dependency, err := dependency.EndpointDependency(ctx.Context,
endpointID, duration)
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
dependency})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: dependency})
},
}
diff --git a/internal/commands/dependency/global.go
b/internal/commands/dependency/global.go
index c0ad798..ae1d240 100644
--- a/internal/commands/dependency/global.go
+++ b/internal/commands/dependency/global.go
@@ -62,25 +62,25 @@ var GlobalCommand = &cli.Command{
Step: step.(*model.StepEnumValue).Selected,
}
- major, _, err := metadata.BackendVersion(ctx)
+ major, _, err := metadata.BackendVersion(ctx.Context)
if err != nil {
return err
}
var topology api.Topology
if major >= 10 {
- topology, err = dependency.GlobalTopology(ctx, layer,
duration)
+ topology, err = dependency.GlobalTopology(ctx.Context,
layer, duration)
} else {
if layer != "" {
return fmt.Errorf("the layer parameter only
available when OAP version >= 10.0.0")
}
- topology, err =
dependency.GlobalTopologyWithoutLayer(ctx, duration)
+ topology, err =
dependency.GlobalTopologyWithoutLayer(ctx.Context, duration)
}
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
topology})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: topology})
},
}
diff --git a/internal/commands/dependency/instance.go
b/internal/commands/dependency/instance.go
index c272601..f17d1e9 100644
--- a/internal/commands/dependency/instance.go
+++ b/internal/commands/dependency/instance.go
@@ -59,12 +59,11 @@ var InstanceCommand = &cli.Command{
Step: step.(*model.StepEnumValue).Selected,
}
- dependency, err := dependency.InstanceTopology(ctx, srcSvcID,
dstSvcID, duration)
-
+ dependency, err := dependency.InstanceTopology(ctx.Context,
srcSvcID, dstSvcID, duration)
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
dependency})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: dependency})
},
}
diff --git a/internal/commands/dependency/process.go
b/internal/commands/dependency/process.go
index 8a89679..fc2a21e 100644
--- a/internal/commands/dependency/process.go
+++ b/internal/commands/dependency/process.go
@@ -57,11 +57,11 @@ var ProcessCommand = &cli.Command{
Step: step.(*model.StepEnumValue).Selected,
}
- dependency, err := dependency.ProcessTopology(ctx, instanceID,
duration)
+ dependency, err := dependency.ProcessTopology(ctx.Context,
instanceID, duration)
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
dependency})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: dependency})
},
}
diff --git a/internal/commands/dependency/service.go
b/internal/commands/dependency/service.go
index bf176fd..1823162 100644
--- a/internal/commands/dependency/service.go
+++ b/internal/commands/dependency/service.go
@@ -57,12 +57,11 @@ var ServiceCommand = &cli.Command{
Step: step.(*model.StepEnumValue).Selected,
}
- dependency, err := dependency.ServiceTopology(ctx, serviceID,
duration)
-
+ dependency, err := dependency.ServiceTopology(ctx.Context,
serviceID, duration)
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
dependency})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: dependency})
},
}
diff --git a/internal/commands/endpoint/get.go
b/internal/commands/endpoint/get.go
index ec6a09c..e14b37c 100644
--- a/internal/commands/endpoint/get.go
+++ b/internal/commands/endpoint/get.go
@@ -40,11 +40,11 @@ $ swctl endpoint get cHJvdmlkZXI=.1_L3VzZXJz`,
return fmt.Errorf("endpoint-id must be provide")
}
- endpointInfo, err := metadata.GetEndpointInfo(ctx,
ctx.Args().First())
+ endpointInfo, err := metadata.GetEndpointInfo(ctx.Context,
ctx.Args().First())
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
endpointInfo})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: endpointInfo})
},
}
diff --git a/internal/commands/endpoint/list.go
b/internal/commands/endpoint/list.go
index 2249b12..a24344a 100644
--- a/internal/commands/endpoint/list.go
+++ b/internal/commands/endpoint/list.go
@@ -90,11 +90,11 @@ $ swctl endpoint ls --service-name business-zone::projectC
--keyword projectC`,
}
}
- endpoints, err := metadata.SearchEndpoints(ctx, serviceID,
keyword, limit, duration)
+ endpoints, err := metadata.SearchEndpoints(ctx.Context,
serviceID, keyword, limit, duration)
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
endpoints})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: endpoints})
},
}
diff --git a/internal/commands/event/list.go b/internal/commands/event/list.go
index 63ff72b..c0dd5a5 100644
--- a/internal/commands/event/list.go
+++ b/internal/commands/event/list.go
@@ -33,8 +33,10 @@ import (
"github.com/urfave/cli/v2"
)
-const DefaultPageSize = 15
-const EventTypeAll event.Type = -1
+const (
+ DefaultPageSize = 15
+ EventTypeAll event.Type = -1
+)
func init() {
event.Type_name[-1] = "All"
@@ -122,12 +124,11 @@ $ swctl event list
condition.Type = &t
}
- events, err := eventQl.Events(ctx, condition)
-
+ events, err := eventQl.Events(ctx.Context, condition)
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
events, Condition: condition})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: events, Condition: condition})
},
}
diff --git a/internal/commands/event/report.go
b/internal/commands/event/report.go
index 4c7b193..395d0cf 100644
--- a/internal/commands/event/report.go
+++ b/internal/commands/event/report.go
@@ -112,6 +112,6 @@ one for starting of the event (--start-time is required)
and the other one for e
}
logger.Log.Printf("Report the event successfully, whose uuid is
%s\n", ctx.String("uuid"))
- return display.Display(ctx, &displayable.Displayable{Data:
reply})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: reply})
},
}
diff --git a/internal/commands/healthcheck/healthcheck.go
b/internal/commands/healthcheck/healthcheck.go
index b4cb9e2..f67efc1 100644
--- a/internal/commands/healthcheck/healthcheck.go
+++ b/internal/commands/healthcheck/healthcheck.go
@@ -59,8 +59,7 @@ $ swctl health --grpc=false
},
},
Action: func(ctx *cli.Context) error {
- healthStatus, err := hc.CheckHealth(ctx)
-
+ healthStatus, err := hc.CheckHealth(ctx.Context)
if err != nil {
return err
}
diff --git a/internal/commands/hierarchy/instance.go
b/internal/commands/hierarchy/instance.go
index 7ff865f..6d49c01 100644
--- a/internal/commands/hierarchy/instance.go
+++ b/internal/commands/hierarchy/instance.go
@@ -49,10 +49,10 @@ var instanceCommand = &cli.Command{
instanceID := ctx.String("instance-id")
layer := ctx.String("layer")
- hierarchy, err := hierarchy.InstanceHierarchy(ctx, instanceID,
layer)
+ hierarchy, err := hierarchy.InstanceHierarchy(ctx.Context,
instanceID, layer)
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
hierarchy, Condition: instanceID})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: hierarchy, Condition: instanceID})
},
}
diff --git a/internal/commands/hierarchy/layers.go
b/internal/commands/hierarchy/layers.go
index ffbdb20..5f734c8 100644
--- a/internal/commands/hierarchy/layers.go
+++ b/internal/commands/hierarchy/layers.go
@@ -34,10 +34,10 @@ var layerCommand = &cli.Command{
Flags: flags.Flags(),
Before: interceptor.BeforeChain(),
Action: func(ctx *cli.Context) error {
- levels, err := hierarchy.ListLayerLevels(ctx)
+ levels, err := hierarchy.ListLayerLevels(ctx.Context)
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
levels})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: levels})
},
}
diff --git a/internal/commands/hierarchy/service.go
b/internal/commands/hierarchy/service.go
index 8d8beb7..aaccfe4 100644
--- a/internal/commands/hierarchy/service.go
+++ b/internal/commands/hierarchy/service.go
@@ -48,10 +48,10 @@ var serviceCommand = &cli.Command{
serviceID := ctx.String("service-id")
layer := ctx.String("layer")
- hierarchy, err := hierarchy.ServiceHierarchy(ctx, serviceID,
layer)
+ hierarchy, err := hierarchy.ServiceHierarchy(ctx.Context,
serviceID, layer)
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
hierarchy, Condition: serviceID})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: hierarchy, Condition: serviceID})
},
}
diff --git a/internal/commands/instance/get.go
b/internal/commands/instance/get.go
index 766c2c9..c0b57bf 100644
--- a/internal/commands/instance/get.go
+++ b/internal/commands/instance/get.go
@@ -40,11 +40,11 @@ $ swctl instance get cHJvdmlkZXI=.1_cHJvdmlkZXIx`,
return fmt.Errorf("instance-id must be provide")
}
- instance, err := metadata.GetInstance(ctx, ctx.Args().First())
+ instance, err := metadata.GetInstance(ctx.Context,
ctx.Args().First())
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
instance})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: instance})
},
}
diff --git a/internal/commands/instance/list.go
b/internal/commands/instance/list.go
index 11ba23b..13f304e 100644
--- a/internal/commands/instance/list.go
+++ b/internal/commands/instance/list.go
@@ -56,16 +56,15 @@ $ swctl instance ls --service-id
YnVzaW5lc3Mtem9uZTo6cHJvamVjdEM=.1`,
step := ctx.Generic("step")
serviceID := ctx.String("service-id")
- instances, err := metadata.Instances(ctx, serviceID,
api.Duration{
+ instances, err := metadata.Instances(ctx.Context, serviceID,
api.Duration{
Start: start,
End: end,
Step: step.(*model.StepEnumValue).Selected,
})
-
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
instances})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: instances})
},
}
diff --git a/internal/commands/instance/search.go
b/internal/commands/instance/search.go
index a7bee0f..3064021 100644
--- a/internal/commands/instance/search.go
+++ b/internal/commands/instance/search.go
@@ -51,12 +51,11 @@ var SearchCommand = &cli.Command{
step := ctx.Generic("step")
regex := ctx.String("regex")
- instances, err := metadata.Instances(ctx, serviceID,
api.Duration{
+ instances, err := metadata.Instances(ctx.Context, serviceID,
api.Duration{
Start: start,
End: end,
Step: step.(*model.StepEnumValue).Selected,
})
-
if err != nil {
return err
}
@@ -69,6 +68,6 @@ var SearchCommand = &cli.Command{
}
}
}
- return display.Display(ctx, &displayable.Displayable{Data:
result})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: result})
},
}
diff --git a/internal/commands/interceptor/duration.go
b/internal/commands/interceptor/duration.go
index 5d93c89..0d08f17 100644
--- a/internal/commands/interceptor/duration.go
+++ b/internal/commands/interceptor/duration.go
@@ -18,12 +18,14 @@
package interceptor
import (
+ "context"
"fmt"
"strconv"
"time"
api "skywalking.apache.org/repo/goapi/query"
+ "github.com/apache/skywalking-cli/pkg/contextkey"
"github.com/apache/skywalking-cli/pkg/graphql/utils"
"github.com/urfave/cli/v2"
@@ -50,11 +52,11 @@ func TryParseTime(unparsed string, userStep api.Step)
(api.Step, time.Time, erro
// DurationInterceptor sets the duration if absent, and formats it accordingly,
// see ParseDuration
-func DurationInterceptor(ctx *cli.Context) error {
- start := ctx.String("start")
- end := ctx.String("end")
- userStep := ctx.Generic("step")
- if timezone := ctx.String("timezone"); timezone != "" {
+func DurationInterceptor(cliCtx *cli.Context) error {
+ start := cliCtx.String("start")
+ end := cliCtx.String("end")
+ userStep := cliCtx.Generic("step")
+ if timezone := cliCtx.String("timezone"); timezone != "" {
if offset, err := strconv.Atoi(timezone); err == nil {
// `offset` is in form of "+1300", while
`time.FixedZone` takes offset in seconds
time.Local = time.FixedZone("", offset/100*60*60)
@@ -68,15 +70,23 @@ func DurationInterceptor(ctx *cli.Context) error {
startTime, endTime, step, dt := ParseDuration(start, end, s)
- if err := ctx.Set("start", startTime.Format(utils.StepFormats[step]));
err != nil {
+ if err := cliCtx.Set("start",
startTime.Format(utils.StepFormats[step])); err != nil {
return err
- } else if err := ctx.Set("end",
endTime.Format(utils.StepFormats[step])); err != nil {
+ } else if err := cliCtx.Set("end",
endTime.Format(utils.StepFormats[step])); err != nil {
return err
- } else if err := ctx.Set("step", step.String()); err != nil {
+ } else if err := cliCtx.Set("step", step.String()); err != nil {
return err
- } else if err := ctx.Set("duration-type", dt.String()); err != nil {
+ } else if err := cliCtx.Set("duration-type", dt.String()); err != nil {
return err
}
+
+ ctx := cliCtx.Context
+ ctx = context.WithValue(ctx, contextkey.DurationStart{},
startTime.Format(utils.StepFormats[step]))
+ ctx = context.WithValue(ctx, contextkey.DurationEnd{},
endTime.Format(utils.StepFormats[step]))
+ ctx = context.WithValue(ctx, contextkey.DurationStep{}, step)
+ ctx = context.WithValue(ctx, contextkey.DurationType{},
utils.DurationType(dt.String()))
+ cliCtx.Context = ctx
+
return nil
}
diff --git a/internal/commands/interceptor/interceptor.go
b/internal/commands/interceptor/interceptor.go
index 572d11c..6bf49b6 100644
--- a/internal/commands/interceptor/interceptor.go
+++ b/internal/commands/interceptor/interceptor.go
@@ -18,18 +18,30 @@
package interceptor
import (
+ "context"
+
+ "github.com/apache/skywalking-cli/pkg/contextkey"
+
"github.com/urfave/cli/v2"
)
// BeforeChain is a convenient function to chain up multiple cli.BeforeFunc
func BeforeChain(beforeFunctions ...cli.BeforeFunc) cli.BeforeFunc {
- return func(ctx *cli.Context) error {
+ return func(cliCtx *cli.Context) error {
+ ctx := cliCtx.Context
+ ctx = context.WithValue(ctx, contextkey.BaseURL{},
cliCtx.String("base-url"))
+ ctx = context.WithValue(ctx, contextkey.Username{},
cliCtx.String("username"))
+ ctx = context.WithValue(ctx, contextkey.Password{},
cliCtx.String("password"))
+ ctx = context.WithValue(ctx, contextkey.Authorization{},
cliCtx.String("authorization"))
+ ctx = context.WithValue(ctx, contextkey.Display{},
cliCtx.String("display"))
+ cliCtx.Context = ctx
+
// --timezone is global option, it should be applied always.
- if err := TimezoneInterceptor(ctx); err != nil {
+ if err := TimezoneInterceptor(cliCtx); err != nil {
return err
}
for _, beforeFunc := range beforeFunctions {
- if err := beforeFunc(ctx); err != nil {
+ if err := beforeFunc(cliCtx); err != nil {
return err
}
}
diff --git a/internal/commands/interceptor/service.go
b/internal/commands/interceptor/service.go
index 72b5fbf..e770c15 100644
--- a/internal/commands/interceptor/service.go
+++ b/internal/commands/interceptor/service.go
@@ -94,9 +94,9 @@ func parseService(required bool, idFlagName, nameFlagName
string, nodeType nodeT
var err error
switch nodeType {
case normal:
- service, err = metadata.SearchService(ctx, name)
+ service, err =
metadata.SearchService(ctx.Context, name)
case browser:
- service, err =
metadata.SearchBrowserService(ctx, name)
+ service, err =
metadata.SearchBrowserService(ctx.Context, name)
}
if err != nil {
return err
diff --git a/internal/commands/interceptor/timezone.go
b/internal/commands/interceptor/timezone.go
index 83fa904..425d8dd 100644
--- a/internal/commands/interceptor/timezone.go
+++ b/internal/commands/interceptor/timezone.go
@@ -35,8 +35,7 @@ func TimezoneInterceptor(ctx *cli.Context) error {
return nil
}
- serverTimeInfo, err := metadata.ServerTimeInfo(ctx)
-
+ serverTimeInfo, err := metadata.ServerTimeInfo(ctx.Context)
if err != nil {
logger.Log.Debugf("Failed to get server time info: %v\n", err)
return nil
diff --git a/internal/commands/layer/list.go b/internal/commands/layer/list.go
index fb9d500..dee4079 100644
--- a/internal/commands/layer/list.go
+++ b/internal/commands/layer/list.go
@@ -36,11 +36,11 @@ Examples:
$ swctl layer list
`,
Action: func(ctx *cli.Context) error {
- layers, err := metadata.ListLayers(ctx)
+ layers, err := metadata.ListLayers(ctx.Context)
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
layers})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: layers})
},
}
diff --git a/internal/commands/logs/list.go b/internal/commands/logs/list.go
index 10a33fc..4f6c42c 100644
--- a/internal/commands/logs/list.go
+++ b/internal/commands/logs/list.go
@@ -87,8 +87,8 @@ $ swctl logs list --trace-id
3d56f33f-bcd3-4e40-9e4f-5dc547998ef5`,
tagStr := ctx.String("tags")
var tags []*api.LogTag = nil
if tagStr != "" {
- tagArr := strings.Split(tagStr, ",")
- for _, tag := range tagArr {
+ tagArr := strings.SplitSeq(tagStr, ",")
+ for tag := range tagArr {
kv := strings.Split(tag, "=")
tags = append(tags, &api.LogTag{Key: kv[0],
Value: &kv[1]})
}
@@ -108,12 +108,11 @@ $ swctl logs list --trace-id
3d56f33f-bcd3-4e40-9e4f-5dc547998ef5`,
QueryDuration: &duration,
Paging: &paging,
}
- logs, err := log.Logs(ctx, condition)
-
+ logs, err := log.Logs(ctx.Context, condition)
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
logs, Condition: condition})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: logs, Condition: condition})
},
}
diff --git a/internal/commands/menu/get.go b/internal/commands/menu/get.go
index 151b2b0..c7b9aac 100644
--- a/internal/commands/menu/get.go
+++ b/internal/commands/menu/get.go
@@ -34,10 +34,10 @@ Examples:
1. Get the UI menu items:
$swctl menu get`,
Action: func(ctx *cli.Context) error {
- menuItems, err := menu.GetItems(ctx)
+ menuItems, err := menu.GetItems(ctx.Context)
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
menuItems})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: menuItems})
},
}
diff --git a/internal/commands/metrics/aggregation/metrics.go
b/internal/commands/metrics/aggregation/metrics.go
index 4e1e8d1..6f4c72d 100644
--- a/internal/commands/metrics/aggregation/metrics.go
+++ b/internal/commands/metrics/aggregation/metrics.go
@@ -74,11 +74,11 @@ $ swctl metrics sorted --name service_instance_sla
--service-name boutique::adse
}
logger.Log.Debugln(condition.Name, condition.Scope,
condition.TopN)
- metricsValues, err := metrics.SortMetrics(ctx, *condition,
*duration)
+ metricsValues, err := metrics.SortMetrics(ctx.Context,
*condition, *duration)
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
metricsValues})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: metricsValues})
},
}
diff --git a/internal/commands/metrics/aggregation/sampled-record.go
b/internal/commands/metrics/aggregation/sampled-record.go
index 4f26881..16fddae 100644
--- a/internal/commands/metrics/aggregation/sampled-record.go
+++ b/internal/commands/metrics/aggregation/sampled-record.go
@@ -70,7 +70,7 @@ $ swctl metrics sampled-record --name
top_n_database_statement 5
),
Action: func(ctx *cli.Context) error {
// read OAP version
- major, minor, err := metadata.BackendVersion(ctx)
+ major, minor, err := metadata.BackendVersion(ctx.Context)
if err != nil {
return fmt.Errorf("read backend version failure: %v",
err)
}
@@ -83,12 +83,12 @@ $ swctl metrics sampled-record --name
top_n_database_statement 5
}
logger.Log.Debugln(condition.Name, condition.TopN)
- records, err1 := metrics.ReadRecords(ctx, *condition,
*duration)
+ records, err1 := metrics.ReadRecords(ctx.Context,
*condition, *duration)
if err1 != nil {
return err1
}
- return display.Display(ctx,
&displayable.Displayable{Data: records})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: records})
}
condition, duration, err := buildSortedCondition(ctx, false)
@@ -97,11 +97,11 @@ $ swctl metrics sampled-record --name
top_n_database_statement 5
}
logger.Log.Debugln(condition.Name, condition.Scope,
condition.TopN)
- sampledRecords, err := metrics.SampledRecords(ctx, *condition,
*duration)
+ sampledRecords, err := metrics.SampledRecords(ctx.Context,
*condition, *duration)
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
sampledRecords})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: sampledRecords})
},
}
diff --git a/internal/commands/metrics/aggregation/topn.go
b/internal/commands/metrics/aggregation/topn.go
index 7a537b7..134a31c 100644
--- a/internal/commands/metrics/aggregation/topn.go
+++ b/internal/commands/metrics/aggregation/topn.go
@@ -74,11 +74,11 @@ $ swctl metrics top --name service_instance_sla
--service-name boutique::adservi
}
logger.Log.Debugln(condition.Name, condition.Scope,
condition.TopN)
- metricsValues, err := metrics.SortMetrics(ctx, *condition,
*duration)
+ metricsValues, err := metrics.SortMetrics(ctx.Context,
*condition, *duration)
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
metricsValues})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: metricsValues})
},
}
diff --git a/internal/commands/metrics/expression/exec.go
b/internal/commands/metrics/expression/exec.go
index 25c414e..a40724e 100644
--- a/internal/commands/metrics/expression/exec.go
+++ b/internal/commands/metrics/expression/exec.go
@@ -77,11 +77,11 @@ $ swctl metrics execute --expression="service_resp_time"
--service-name business
Step: step.(*model.StepEnumValue).Selected,
}
- result, err := metrics.Execute(ctx, expression, entity,
duration)
+ result, err := metrics.Execute(ctx.Context, expression, entity,
duration)
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
result})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: result})
},
}
diff --git a/internal/commands/metrics/linear/linear-metrics.go
b/internal/commands/metrics/linear/linear-metrics.go
index d6c4d9a..359866e 100644
--- a/internal/commands/metrics/linear/linear-metrics.go
+++ b/internal/commands/metrics/linear/linear-metrics.go
@@ -77,15 +77,14 @@ $ swctl metrics linear --name=service_relation_client_cpm
--service-name consume
Step: step.(*model.StepEnumValue).Selected,
}
- metricsValues, err := metrics.LinearIntValues(ctx,
api.MetricsCondition{
+ metricsValues, err := metrics.LinearIntValues(ctx.Context,
api.MetricsCondition{
Name: metricsName,
Entity: entity,
}, duration)
-
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
utils.MetricsValuesToMap(duration, metricsValues)})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: utils.MetricsValuesToMap(duration,
metricsValues)})
},
}
diff --git a/internal/commands/metrics/linear/multiple-linear-metrics.go
b/internal/commands/metrics/linear/multiple-linear-metrics.go
index c94c1b8..966af2b 100644
--- a/internal/commands/metrics/linear/multiple-linear-metrics.go
+++ b/internal/commands/metrics/linear/multiple-linear-metrics.go
@@ -93,7 +93,7 @@ $ swctl metrics multiple-linear --name all_percentile
--labels=0,1,2,3,4 --relab
case labelsString != "" && relabelsString != "" && len(labels)
!= len(relabels):
return fmt.Errorf(`"--labels" and "--relabels" must be
in same size if both specified, but was %v != %v`, len(labels), len(relabels))
case relabelsString != "":
- for i := 0; i < len(labels); i++ {
+ for i := range labels {
labelMapping[labels[i]] = relabels[i]
}
}
@@ -113,16 +113,15 @@ $ swctl metrics multiple-linear --name all_percentile
--labels=0,1,2,3,4 --relab
Step: step.(*model.StepEnumValue).Selected,
}
- metricsValuesArray, err := metrics.MultipleLinearIntValues(ctx,
api.MetricsCondition{
+ metricsValuesArray, err :=
metrics.MultipleLinearIntValues(ctx.Context, api.MetricsCondition{
Name: metricsName,
Entity: entity,
}, labels, duration)
-
if err != nil {
return err
}
reshaped := utils.MetricsValuesArrayToMap(duration,
metricsValuesArray, labelMapping)
- return display.Display(ctx, &displayable.Displayable{Data:
reshaped})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: reshaped})
},
}
diff --git a/internal/commands/metrics/list/list-metrics.go
b/internal/commands/metrics/list/list-metrics.go
index cdc15e7..7d5e46c 100644
--- a/internal/commands/metrics/list/list-metrics.go
+++ b/internal/commands/metrics/list/list-metrics.go
@@ -45,12 +45,11 @@ $ swctl metrics list --regex "service_.*"`,
Action: func(ctx *cli.Context) error {
regex := ctx.String("regex")
- metricsValue, err := metrics.ListMetrics(ctx, regex)
-
+ metricsValue, err := metrics.ListMetrics(ctx.Context, regex)
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
metricsValue})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: metricsValue})
},
}
diff --git a/internal/commands/metrics/single/nullable-metrics.go
b/internal/commands/metrics/single/nullable-metrics.go
index 58ebd3c..6d74ef3 100644
--- a/internal/commands/metrics/single/nullable-metrics.go
+++ b/internal/commands/metrics/single/nullable-metrics.go
@@ -71,15 +71,14 @@ $ swctl metrics nullable --name endpoint_cpm --service-name
business-zone::proje
Step: step.(*model.StepEnumValue).Selected,
}
- metricsValue, err := metrics.NullableIntValue(ctx,
api.MetricsCondition{
+ metricsValue, err := metrics.NullableIntValue(ctx.Context,
api.MetricsCondition{
Name: metricsName,
Entity: entity,
}, duration)
-
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
metricsValue})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: metricsValue})
},
}
diff --git a/internal/commands/metrics/single/single-metrics.go
b/internal/commands/metrics/single/single-metrics.go
index f10dac5..3650cca 100644
--- a/internal/commands/metrics/single/single-metrics.go
+++ b/internal/commands/metrics/single/single-metrics.go
@@ -71,15 +71,14 @@ $ swctl metrics single --name endpoint_cpm --service-name
business-zone::project
Step: step.(*model.StepEnumValue).Selected,
}
- metricsValue, err := metrics.IntValues(ctx,
api.MetricsCondition{
+ metricsValue, err := metrics.IntValues(ctx.Context,
api.MetricsCondition{
Name: metricsName,
Entity: entity,
}, duration)
-
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
metricsValue})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: metricsValue})
},
}
diff --git a/internal/commands/metrics/thermodynamic/thermodynamic.go
b/internal/commands/metrics/thermodynamic/thermodynamic.go
index dbc8303..b01b550 100644
--- a/internal/commands/metrics/thermodynamic/thermodynamic.go
+++ b/internal/commands/metrics/thermodynamic/thermodynamic.go
@@ -70,16 +70,15 @@ $ swctl metrics thermodynamic --scope all --name all_heatmap
Step: step.(*model.StepEnumValue).Selected,
}
- metricsValues, err := metrics.Thermodynamic(ctx,
api.MetricsCondition{
+ metricsValues, err := metrics.Thermodynamic(ctx.Context,
api.MetricsCondition{
Name: metricsName,
Entity: entity,
}, duration)
-
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{
+ return display.Display(ctx.Context, &displayable.Displayable{
Data: metricsValues,
Duration: duration,
Title: metricsName,
diff --git a/internal/commands/process/estimate/scale.go
b/internal/commands/process/estimate/scale.go
index 77d5509..5324741 100644
--- a/internal/commands/process/estimate/scale.go
+++ b/internal/commands/process/estimate/scale.go
@@ -57,12 +57,11 @@ $ swctl process estimate scale --service-name abc --labels
t1,t2`,
labels = strings.Split(labelString, ",")
}
- scale, err := metadata.EstimateProcessScale(ctx, serviceID,
labels)
-
+ scale, err := metadata.EstimateProcessScale(ctx.Context,
serviceID, labels)
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
scale})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: scale})
},
}
diff --git a/internal/commands/process/get.go b/internal/commands/process/get.go
index e7a035a..85e4db3 100644
--- a/internal/commands/process/get.go
+++ b/internal/commands/process/get.go
@@ -40,11 +40,11 @@ $ swctl process get
2b9e46c13c91803695a4364257415e523af7cbf17bf4058e025c16b944a6
return fmt.Errorf("process-id must be provided")
}
- instance, err := metadata.GetProcess(ctx, ctx.Args().First())
+ instance, err := metadata.GetProcess(ctx.Context,
ctx.Args().First())
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
instance})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: instance})
},
}
diff --git a/internal/commands/process/list.go
b/internal/commands/process/list.go
index 3fea5e0..866118e 100644
--- a/internal/commands/process/list.go
+++ b/internal/commands/process/list.go
@@ -57,7 +57,7 @@ $ swctl process ls --instance-id cHJvdmlkZXI=.1_cHJvdmlkZXIx`,
start := ctx.String("start")
step := ctx.Generic("step")
- processes, err := metadata.Processes(ctx, instanceID,
api.Duration{
+ processes, err := metadata.Processes(ctx.Context, instanceID,
api.Duration{
Start: start,
End: end,
Step: step.(*model.StepEnumValue).Selected,
@@ -66,6 +66,6 @@ $ swctl process ls --instance-id cHJvdmlkZXI=.1_cHJvdmlkZXIx`,
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
processes})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: processes})
},
}
diff --git a/internal/commands/profiling/asyncprofiler/create.go
b/internal/commands/profiling/asyncprofiler/create.go
index 5df4327..0113a7a 100644
--- a/internal/commands/profiling/asyncprofiler/create.go
+++ b/internal/commands/profiling/asyncprofiler/create.go
@@ -85,11 +85,11 @@ $ swctl profiling async create --service-name=service-name
--duration=60 --event
Events: eventTypes,
ExecArgs: execArgs,
}
- task, err := profiling.CreateAsyncProfilerTask(ctx, request)
+ task, err := profiling.CreateAsyncProfilerTask(ctx.Context,
request)
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
task, Condition: request})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: task, Condition: request})
},
}
diff --git a/internal/commands/profiling/asyncprofiler/getAnalyze.go
b/internal/commands/profiling/asyncprofiler/getAnalyze.go
index c1b0387..6bd7146 100644
--- a/internal/commands/profiling/asyncprofiler/getAnalyze.go
+++ b/internal/commands/profiling/asyncprofiler/getAnalyze.go
@@ -74,12 +74,11 @@ $ swctl profiling async analysis
--service-name=service-name --task-id=task-id \
EventType: eventType,
}
- analyze, err := profiling.GetAsyncProfilerAnalyze(ctx, request)
-
+ analyze, err := profiling.GetAsyncProfilerAnalyze(ctx.Context,
request)
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
analyze, Condition: request})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: analyze, Condition: request})
},
}
diff --git a/internal/commands/profiling/asyncprofiler/getTaskList.go
b/internal/commands/profiling/asyncprofiler/getTaskList.go
index 554fac8..157b7ed 100644
--- a/internal/commands/profiling/asyncprofiler/getTaskList.go
+++ b/internal/commands/profiling/asyncprofiler/getTaskList.go
@@ -73,12 +73,11 @@ $ swctl profiling async list --service-name=service-name`,
Limit: limit,
}
- tasks, err := profiling.GetAsyncProfilerTaskList(ctx, request)
-
+ tasks, err := profiling.GetAsyncProfilerTaskList(ctx.Context,
request)
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
tasks, Condition: request})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: tasks, Condition: request})
},
}
diff --git a/internal/commands/profiling/asyncprofiler/getTaskProgress.go
b/internal/commands/profiling/asyncprofiler/getTaskProgress.go
index 3943e84..9bfa933 100644
--- a/internal/commands/profiling/asyncprofiler/getTaskProgress.go
+++ b/internal/commands/profiling/asyncprofiler/getTaskProgress.go
@@ -44,12 +44,11 @@ $ swctl profiling async progress --task-id=task-id`,
Action: func(ctx *cli.Context) error {
taskID := ctx.String("task-id")
- data, err := profiling.GetAsyncProfilerTaskProgress(ctx, taskID)
-
+ data, err :=
profiling.GetAsyncProfilerTaskProgress(ctx.Context, taskID)
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
data, Condition: taskID})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: data, Condition: taskID})
},
}
diff --git a/internal/commands/profiling/continuous/list.go
b/internal/commands/profiling/continuous/list.go
index 7790638..cc06ca5 100644
--- a/internal/commands/profiling/continuous/list.go
+++ b/internal/commands/profiling/continuous/list.go
@@ -46,11 +46,11 @@ $ swctl profiling continuous list
--service-name=business-zone::projectC
Action: func(ctx *cli.Context) error {
serviceID := ctx.String("service-id")
- result, err :=
profiling.QueryContinuousProfilingServiceTargets(ctx, serviceID)
+ result, err :=
profiling.QueryContinuousProfilingServiceTargets(ctx.Context, serviceID)
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
result})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: result})
},
}
diff --git a/internal/commands/profiling/continuous/monitoring.go
b/internal/commands/profiling/continuous/monitoring.go
index d8d8126..fc79613 100644
--- a/internal/commands/profiling/continuous/monitoring.go
+++ b/internal/commands/profiling/continuous/monitoring.go
@@ -71,11 +71,11 @@ $ swctl profiling continuous monitoring
--service-name=business-zone::projectC -
return fmt.Errorf("unknown target type: %s",
targetString)
}
- instances, err :=
profiling.QueryContinuousProfilingMonitoringInstances(ctx, serviceID, target)
+ instances, err :=
profiling.QueryContinuousProfilingMonitoringInstances(ctx.Context, serviceID,
target)
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
instances})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: instances})
},
}
diff --git a/internal/commands/profiling/continuous/set.go
b/internal/commands/profiling/continuous/set.go
index 7299130..f4aff4a 100644
--- a/internal/commands/profiling/continuous/set.go
+++ b/internal/commands/profiling/continuous/set.go
@@ -101,12 +101,12 @@ $ swctl profiling continuous set --service-name=abc
--config=/path/to/config.yam
Targets: targets,
}
- result, err := profiling.SetContinuousProfilingPolicy(ctx,
request)
+ result, err :=
profiling.SetContinuousProfilingPolicy(ctx.Context, request)
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
result, Condition: request})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: result, Condition: request})
},
}
diff --git a/internal/commands/profiling/ebpf/analysis.go
b/internal/commands/profiling/ebpf/analysis.go
index 6698ff4..d560f88 100644
--- a/internal/commands/profiling/ebpf/analysis.go
+++ b/internal/commands/profiling/ebpf/analysis.go
@@ -72,8 +72,8 @@ $ swctl profiling ebpf analysis --schedule-id=abc
--time-ranges=1648020042869-16
timeRangeStr := ctx.String("time-ranges")
var timeRanges []*api.EBPFProfilingAnalyzeTimeRange = nil
if timeRangeStr != "" {
- tagArr := strings.Split(timeRangeStr, ",")
- for _, tag := range tagArr {
+ tagArr := strings.SplitSeq(timeRangeStr, ",")
+ for tag := range tagArr {
kv := strings.Split(tag, "-")
start, err := strconv.ParseInt(kv[0], 10, 64)
if err != nil {
@@ -88,11 +88,11 @@ $ swctl profiling ebpf analysis --schedule-id=abc
--time-ranges=1648020042869-16
}
aggregateType :=
ctx.Generic("aggregate").(*ebpf.ProfilingAnalyzeAggregateTypeEnumValue).Selected
- analyzation, err := profiling.AnalysisEBPFProfilingResult(ctx,
scheduleIDList, timeRanges, aggregateType)
+ analyzation, err :=
profiling.AnalysisEBPFProfilingResult(ctx.Context, scheduleIDList, timeRanges,
aggregateType)
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
analyzation})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: analyzation})
},
}
diff --git a/internal/commands/profiling/ebpf/create/createByFixedTime.go
b/internal/commands/profiling/ebpf/create/createByFixedTime.go
index 436719c..9b7c348 100644
--- a/internal/commands/profiling/ebpf/create/createByFixedTime.go
+++ b/internal/commands/profiling/ebpf/create/createByFixedTime.go
@@ -89,12 +89,11 @@ $ swctl profiling ebpf fixed --service-id=abc
--process-id=abc --duration=1m --t
TargetType:
ctx.Generic("target-type").(*ebpf.ProfilingTargetTypeEnumValue).Selected,
}
- task, err := profiling.CreateEBPFProfilingFixedTimeTask(ctx,
request)
-
+ task, err :=
profiling.CreateEBPFProfilingFixedTimeTask(ctx.Context, request)
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
task, Condition: request})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: task, Condition: request})
},
}
diff --git a/internal/commands/profiling/ebpf/create/network.go
b/internal/commands/profiling/ebpf/create/network.go
index b30c86b..541c7cf 100644
--- a/internal/commands/profiling/ebpf/create/network.go
+++ b/internal/commands/profiling/ebpf/create/network.go
@@ -82,7 +82,7 @@ $ swctl profiling ebpf create network
--service-instance-id=abc`,
samplingConfigFile := ctx.String("sampling-config")
// convert the sampling rule
- var samplings = make([]*api.EBPFNetworkSamplingRule, 0)
+ samplings := make([]*api.EBPFNetworkSamplingRule, 0)
if samplingConfigFile != "" {
config, err := os.ReadFile(samplingConfigFile)
if err != nil {
@@ -104,13 +104,12 @@ $ swctl profiling ebpf create network
--service-instance-id=abc`,
Samplings: samplings,
}
- task, err := profiling.CreateEBPFNetworkProfilingTask(ctx,
request)
-
+ task, err :=
profiling.CreateEBPFNetworkProfilingTask(ctx.Context, request)
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
task, Condition: request})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: task, Condition: request})
},
}
diff --git a/internal/commands/profiling/ebpf/create/prepareCreate.go
b/internal/commands/profiling/ebpf/create/prepareCreate.go
index f8067f4..d5342d2 100644
--- a/internal/commands/profiling/ebpf/create/prepareCreate.go
+++ b/internal/commands/profiling/ebpf/create/prepareCreate.go
@@ -45,11 +45,11 @@ $ swctl profiling ebpf create prepare --service-id=abc`,
Action: func(ctx *cli.Context) error {
serviceID := ctx.String("service-id")
- prepare, err :=
profiling.QueryPrepareCreateEBPFProfilingTaskData(ctx, serviceID)
+ prepare, err :=
profiling.QueryPrepareCreateEBPFProfilingTaskData(ctx.Context, serviceID)
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
prepare, Condition: serviceID})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: prepare, Condition: serviceID})
},
}
diff --git a/internal/commands/profiling/ebpf/keep/network.go
b/internal/commands/profiling/ebpf/keep/network.go
index 8d86f6d..7225e44 100644
--- a/internal/commands/profiling/ebpf/keep/network.go
+++ b/internal/commands/profiling/ebpf/keep/network.go
@@ -47,11 +47,11 @@ $ swctl profiling ebpf keep network --task-id=abc`,
Action: func(ctx *cli.Context) error {
taskID := ctx.String("task-id")
- keepResult, err := profiling.KeepNetworkProfilingTask(ctx,
taskID)
+ keepResult, err :=
profiling.KeepNetworkProfilingTask(ctx.Context, taskID)
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
keepResult})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: keepResult})
},
}
diff --git a/internal/commands/profiling/ebpf/list.go
b/internal/commands/profiling/ebpf/list.go
index 35dcd4f..429e7a7 100644
--- a/internal/commands/profiling/ebpf/list.go
+++ b/internal/commands/profiling/ebpf/list.go
@@ -60,11 +60,13 @@ $ swctl profiling ebpf list --service-name=service-name
Action: func(ctx *cli.Context) error {
serviceID := ctx.String("service-id")
- processes, err := profiling.QueryEBPFProfilingTaskList(ctx,
serviceID,
ctx.Generic("trigger").(*ebpf.ProfilingTriggerTypeEnumValue).Selected)
+ processes, err := profiling.QueryEBPFProfilingTaskList(
+ ctx.Context, serviceID,
+
ctx.Generic("trigger").(*ebpf.ProfilingTriggerTypeEnumValue).Selected)
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
processes})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: processes})
},
}
diff --git a/internal/commands/profiling/ebpf/schedules.go
b/internal/commands/profiling/ebpf/schedules.go
index 976b3bc..7b6fa87 100644
--- a/internal/commands/profiling/ebpf/schedules.go
+++ b/internal/commands/profiling/ebpf/schedules.go
@@ -48,11 +48,11 @@ $ swctl profiling ebpf schedules --task-id=abc
Action: func(ctx *cli.Context) error {
taskID := ctx.String("task-id")
- schedules, err := profiling.QueryEBPFProfilingScheduleList(ctx,
taskID)
+ schedules, err :=
profiling.QueryEBPFProfilingScheduleList(ctx.Context, taskID)
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
schedules})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: schedules})
},
}
diff --git a/internal/commands/profiling/trace/create.go
b/internal/commands/profiling/trace/create.go
index 75ec402..9466392 100644
--- a/internal/commands/profiling/trace/create.go
+++ b/internal/commands/profiling/trace/create.go
@@ -81,12 +81,11 @@ $ swctl profiling trace create --service-name=service-name
--endpoint=endpoint -
MaxSamplingCount: ctx.Int("max-sampling-count"),
}
- task, err := profiling.CreateTraceTask(ctx, request)
-
+ task, err := profiling.CreateTraceTask(ctx.Context, request)
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
task, Condition: request})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: task, Condition: request})
},
}
diff --git a/internal/commands/profiling/trace/getProfileAnalyze.go
b/internal/commands/profiling/trace/getProfileAnalyze.go
index 676e59e..24b7411 100644
--- a/internal/commands/profiling/trace/getProfileAnalyze.go
+++ b/internal/commands/profiling/trace/getProfileAnalyze.go
@@ -52,8 +52,8 @@ var getProfiledAnalyzeCommand = &cli.Command{
tagStr := ctx.String("time-ranges")
var queries []*api.SegmentProfileAnalyzeQuery = nil
if tagStr != "" {
- tagArr := strings.Split(tagStr, ",")
- for _, tag := range tagArr {
+ tagArr := strings.SplitSeq(tagStr, ",")
+ for tag := range tagArr {
kv := strings.Split(tag, "-")
start, err := strconv.ParseInt(kv[0], 10, 64)
if err != nil {
@@ -76,12 +76,11 @@ var getProfiledAnalyzeCommand = &cli.Command{
}
}
- analysis, err := profiling.GetTraceProfilingAnalyze(ctx,
queries)
-
+ analysis, err :=
profiling.GetTraceProfilingAnalyze(ctx.Context, queries)
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
analysis, Condition: segmentIDs})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: analysis, Condition: segmentIDs})
},
}
diff --git a/internal/commands/profiling/trace/getTaskList.go
b/internal/commands/profiling/trace/getTaskList.go
index 840be06..9235a06 100644
--- a/internal/commands/profiling/trace/getTaskList.go
+++ b/internal/commands/profiling/trace/getTaskList.go
@@ -49,12 +49,11 @@ $ swctl profiling trace list
--service-name=business-zone::projectC --endpoint-n
serviceID := ctx.String("service-id")
endpoint := ctx.String("endpoint-name")
- task, err := profiling.GetTraceProfilingTaskList(ctx,
serviceID, endpoint)
-
+ task, err := profiling.GetTraceProfilingTaskList(ctx.Context,
serviceID, endpoint)
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
task, Condition: serviceID})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: task, Condition: serviceID})
},
}
diff --git a/internal/commands/profiling/trace/getTaskLogs.go
b/internal/commands/profiling/trace/getTaskLogs.go
index 2c23219..8c115b3 100644
--- a/internal/commands/profiling/trace/getTaskLogs.go
+++ b/internal/commands/profiling/trace/getTaskLogs.go
@@ -43,12 +43,11 @@ $ swctl profiling trace logs --task-id=task-id`,
Action: func(ctx *cli.Context) error {
taskID := ctx.String("task-id")
- task, err := profiling.GetTraceProfilingTaskLogList(ctx, taskID)
-
+ task, err :=
profiling.GetTraceProfilingTaskLogList(ctx.Context, taskID)
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
task, Condition: taskID})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: task, Condition: taskID})
},
}
diff --git a/internal/commands/profiling/trace/getTaskSegmentList.go
b/internal/commands/profiling/trace/getTaskSegmentList.go
index 58b78dd..e622eae 100644
--- a/internal/commands/profiling/trace/getTaskSegmentList.go
+++ b/internal/commands/profiling/trace/getTaskSegmentList.go
@@ -42,12 +42,11 @@ $ swctl profiling trace segment-list
--service-name=service-name --endpoint-name
},
Action: func(ctx *cli.Context) error {
taskID := ctx.String("task-id")
- segmentList, err :=
profiling.GetTraceProfilingTaskSegmentList(ctx, taskID)
-
+ segmentList, err :=
profiling.GetTraceProfilingTaskSegmentList(ctx.Context, taskID)
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
segmentList, Condition: taskID})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: segmentList, Condition: taskID})
},
}
diff --git a/internal/commands/service/layer.go
b/internal/commands/service/layer.go
index ec5ce3e..7213d2b 100644
--- a/internal/commands/service/layer.go
+++ b/internal/commands/service/layer.go
@@ -45,11 +45,11 @@ $ swctl svc ly GENERAL`,
if args := ctx.Args(); args.Len() == 0 {
return fmt.Errorf("layer must be provide")
}
- services, err := metadata.ListLayerService(ctx,
ctx.Args().First())
+ services, err := metadata.ListLayerService(ctx.Context,
ctx.Args().First())
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
services})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: services})
},
}
diff --git a/internal/commands/service/list.go
b/internal/commands/service/list.go
index 516a6a7..4c3caf0 100644
--- a/internal/commands/service/list.go
+++ b/internal/commands/service/list.go
@@ -57,7 +57,7 @@ $ swctl svc ls projectC`,
var err error
if args := ctx.Args(); args.Len() == 0 {
- services, err = metadata.AllServices(ctx, api.Duration{
+ services, err = metadata.AllServices(ctx.Context,
api.Duration{
Start: start,
End: end,
Step: step.(*model.StepEnumValue).Selected,
@@ -66,13 +66,13 @@ $ swctl svc ls projectC`,
return err
}
} else {
- service, err := metadata.SearchService(ctx,
args.First())
+ service, err := metadata.SearchService(ctx.Context,
args.First())
if err != nil {
return err
}
services = []api.Service{service}
}
- return display.Display(ctx, &displayable.Displayable{Data:
services})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: services})
},
}
diff --git a/internal/commands/trace/list.go b/internal/commands/trace/list.go
index b480ee7..6160bb2 100644
--- a/internal/commands/trace/list.go
+++ b/internal/commands/trace/list.go
@@ -98,8 +98,8 @@ $ swctl trace ls --trace-id
"321661b1-9a31-4e12-ad64-c8f6711f108d"
tagStr := ctx.String("tags")
var tags []*api.SpanTag = nil
if tagStr != "" {
- tagArr := strings.Split(tagStr, ",")
- for _, tag := range tagArr {
+ tagArr := strings.SplitSeq(tagStr, ",")
+ for tag := range tagArr {
kv := strings.Split(tag, "=")
tags = append(tags, &api.SpanTag{Key: kv[0],
Value: &kv[1]})
}
@@ -134,12 +134,11 @@ $ swctl trace ls --trace-id
"321661b1-9a31-4e12-ad64-c8f6711f108d"
Tags: tags,
Paging: &paging,
}
- traces, err := trace.Traces(ctx, condition)
-
+ traces, err := trace.Traces(ctx.Context, condition)
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
traces, Condition: condition})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: traces, Condition: condition})
},
}
diff --git a/internal/commands/trace/trace.go b/internal/commands/trace/trace.go
index a6614c8..f7f31a0 100644
--- a/internal/commands/trace/trace.go
+++ b/internal/commands/trace/trace.go
@@ -44,13 +44,12 @@ $ swctl trace "321661b1-9a31-4e12-ad64-c8f6711f108d"`,
return fmt.Errorf("command trace without sub command
requires 1 trace id as argument")
}
- trace, err := trace.Trace(ctx, ctx.Args().First())
-
+ trace, err := trace.Trace(ctx.Context, ctx.Args().First())
if err != nil {
return err
}
- return display.Display(ctx, &displayable.Displayable{Data:
trace})
+ return display.Display(ctx.Context,
&displayable.Displayable{Data: trace})
},
Subcommands: cli.Commands{
ListCommand,
diff --git a/pkg/display/display.go b/internal/display/display.go
similarity index 68%
copy from pkg/display/display.go
copy to internal/display/display.go
index 6e3f822..e1b783d 100644
--- a/pkg/display/display.go
+++ b/internal/display/display.go
@@ -18,30 +18,18 @@
package display
import (
- "fmt"
-
- "strings"
+ "context"
+ "github.com/apache/skywalking-cli/pkg/contextkey"
+ "github.com/apache/skywalking-cli/pkg/display"
d "github.com/apache/skywalking-cli/pkg/display/displayable"
- "github.com/apache/skywalking-cli/pkg/display/graph"
-
"github.com/urfave/cli/v2"
-
- "github.com/apache/skywalking-cli/pkg/display/json"
- "github.com/apache/skywalking-cli/pkg/display/table"
- "github.com/apache/skywalking-cli/pkg/display/yaml"
-)
-
-const (
- JSON = "json"
- YAML = "yaml"
- TABLE = "table"
- GRAPH = "graph"
)
// The variable style sets the output style for the command.
-var style = map[string]string{"dashboard global": "graph",
+var style = map[string]string{
+ "dashboard global": "graph",
"dashboard global-metrics": "graph",
"metrics top": "table",
"metrics sorted": "table",
@@ -55,14 +43,14 @@ var style = map[string]string{"dashboard global": "graph",
}
// Display the object in the style specified in flag --display
-func Display(ctx *cli.Context, displayable *d.Displayable) error {
- displayStyle := ctx.String("display")
+func Display(cliCtx *cli.Context, displayable *d.Displayable) error {
+ displayStyle := cliCtx.String("display")
if displayStyle == "" {
- commandFullName := ctx.Command.FullName()
+ commandFullName := cliCtx.Command.FullName()
if commandFullName != "" {
displayStyle = getDisplayStyle(commandFullName)
} else {
- for _, c := range ctx.Lineage() {
+ for _, c := range cliCtx.Lineage() {
if s := getDisplayStyle(c.Args().First()); s !=
"" {
displayStyle = s
break
@@ -73,18 +61,9 @@ func Display(ctx *cli.Context, displayable *d.Displayable)
error {
if displayStyle == "" {
displayStyle = "json"
}
- switch strings.ToLower(displayStyle) {
- case JSON:
- return json.Display(displayable)
- case YAML:
- return yaml.Display(displayable)
- case TABLE:
- return table.Display(displayable)
- case GRAPH:
- return graph.Display(ctx, displayable)
- default:
- return fmt.Errorf("unsupported display style: %s", displayStyle)
- }
+ ctx := cliCtx.Context
+ ctx = context.WithValue(ctx, contextkey.Display{}, displayStyle)
+ return display.Display(ctx, displayable)
}
// getDisplayStyle gets the default display settings.
diff --git a/pkg/util/commandNotFound.go b/internal/util/commandNotFound.go
similarity index 100%
rename from pkg/util/commandNotFound.go
rename to internal/util/commandNotFound.go
diff --git a/pkg/util/commandNotFound_test.go
b/internal/util/commandNotFound_test.go
similarity index 100%
rename from pkg/util/commandNotFound_test.go
rename to internal/util/commandNotFound_test.go
diff --git a/pkg/graphql/common/common.go b/pkg/contextkey/contextkey.go
similarity index 65%
copy from pkg/graphql/common/common.go
copy to pkg/contextkey/contextkey.go
index 4a17d19..0f5380e 100644
--- a/pkg/graphql/common/common.go
+++ b/pkg/contextkey/contextkey.go
@@ -15,23 +15,24 @@
// specific language governing permissions and limitations
// under the License.
-package common
+package contextkey
-import (
- "github.com/machinebox/graphql"
-
- "github.com/urfave/cli/v2"
-
- "github.com/apache/skywalking-cli/assets"
- "github.com/apache/skywalking-cli/pkg/graphql/client"
+type (
+ BaseURL struct{}
+ Username struct{}
+ Password struct{}
+ Authorization struct{}
)
-func Version(ctx *cli.Context) (string, error) {
- var response map[string]string
-
- request :=
graphql.NewRequest(assets.Read("graphqls/common/version.graphql"))
-
- err := client.ExecuteQuery(ctx, request, &response)
+type (
+ DurationStart struct{}
+ DurationEnd struct{}
+ DurationStep struct{}
+ DurationType struct{}
+)
- return response["result"], err
-}
+type (
+ Display struct{}
+ DashboardTemplate struct{}
+ DashboardRefreshInterval struct{}
+)
diff --git a/pkg/display/display.go b/pkg/display/display.go
index 6e3f822..8ac7f16 100644
--- a/pkg/display/display.go
+++ b/pkg/display/display.go
@@ -18,16 +18,15 @@
package display
import (
+ "context"
"fmt"
-
"strings"
+ "github.com/apache/skywalking-cli/pkg/contextkey"
d "github.com/apache/skywalking-cli/pkg/display/displayable"
"github.com/apache/skywalking-cli/pkg/display/graph"
- "github.com/urfave/cli/v2"
-
"github.com/apache/skywalking-cli/pkg/display/json"
"github.com/apache/skywalking-cli/pkg/display/table"
"github.com/apache/skywalking-cli/pkg/display/yaml"
@@ -40,36 +39,9 @@ const (
GRAPH = "graph"
)
-// The variable style sets the output style for the command.
-var style = map[string]string{"dashboard global": "graph",
- "dashboard global-metrics": "graph",
- "metrics top": "table",
- "metrics sorted": "table",
- "metrics linear": "graph",
- "metrics list": "table",
- "service list": "table",
- "t": "graph",
- "trace": "graph",
- "ebpf analysis": "graph",
- "trace analysis": "graph",
-}
-
// Display the object in the style specified in flag --display
-func Display(ctx *cli.Context, displayable *d.Displayable) error {
- displayStyle := ctx.String("display")
- if displayStyle == "" {
- commandFullName := ctx.Command.FullName()
- if commandFullName != "" {
- displayStyle = getDisplayStyle(commandFullName)
- } else {
- for _, c := range ctx.Lineage() {
- if s := getDisplayStyle(c.Args().First()); s !=
"" {
- displayStyle = s
- break
- }
- }
- }
- }
+func Display(ctx context.Context, displayable *d.Displayable) error {
+ displayStyle := ctx.Value(contextkey.Display{}).(string)
if displayStyle == "" {
displayStyle = "json"
}
@@ -86,11 +58,3 @@ func Display(ctx *cli.Context, displayable *d.Displayable)
error {
return fmt.Errorf("unsupported display style: %s", displayStyle)
}
}
-
-// getDisplayStyle gets the default display settings.
-func getDisplayStyle(fullName string) string {
- if command, ok := style[fullName]; ok {
- return command
- }
- return ""
-}
diff --git a/pkg/display/graph/dashboard/global.go
b/pkg/display/graph/dashboard/global.go
index b7f8682..1a5a10b 100644
--- a/pkg/display/graph/dashboard/global.go
+++ b/pkg/display/graph/dashboard/global.go
@@ -27,6 +27,7 @@ import (
api "skywalking.apache.org/repo/goapi/query"
"github.com/apache/skywalking-cli/internal/commands/interceptor"
+ "github.com/apache/skywalking-cli/pkg/contextkey"
"github.com/apache/skywalking-cli/pkg/graphql/utils"
lib "github.com/apache/skywalking-cli/pkg/heatmap"
@@ -36,9 +37,7 @@ import (
"github.com/mum4k/termdash/linestyle"
"github.com/mum4k/termdash/terminal/termbox"
"github.com/mum4k/termdash/terminal/terminalapi"
- "github.com/urfave/cli/v2"
- "github.com/apache/skywalking-cli/internal/model"
"github.com/apache/skywalking-cli/pkg/display/graph/gauge"
"github.com/apache/skywalking-cli/pkg/display/graph/heatmap"
"github.com/apache/skywalking-cli/pkg/display/graph/linear"
@@ -88,12 +87,16 @@ var template *dashboard.GlobalTemplate
var allWidgets *widgets
-var initStartStr string
-var initStep = api.StepMinute
-var initEndStr string
+var (
+ initStartStr string
+ initStep = api.StepMinute
+ initEndStr string
+)
-var curStartTime time.Time
-var curEndTime time.Time
+var (
+ curStartTime time.Time
+ curEndTime time.Time
+)
// setLayout sets the specified layout.
func setLayout(c *container.Container, lt layoutType) error {
@@ -231,7 +234,7 @@ func newWidgets(data *dashboard.GlobalData) error {
return nil
}
-func Display(ctx *cli.Context, data *dashboard.GlobalData) error {
+func Display(ctx context.Context, data *dashboard.GlobalData) error {
t, err := termbox.New(termbox.ColorMode(terminalapi.ColorMode256))
if err != nil {
return err
@@ -247,7 +250,7 @@ func Display(ctx *cli.Context, data *dashboard.GlobalData)
error {
return err
}
- te, err := dashboard.LoadTemplate(ctx.String("template"))
+ te, err :=
dashboard.LoadTemplate(ctx.Value(contextkey.DashboardTemplate{}).(string))
if err != nil {
return err
}
@@ -279,22 +282,23 @@ func Display(ctx *cli.Context, data
*dashboard.GlobalData) error {
return e
}
- con, cancel := context.WithCancel(context.Background())
+ var cancel context.CancelFunc
+ ctx, cancel = context.WithCancel(ctx)
quitter := func(keyboard *terminalapi.Keyboard) {
if strings.EqualFold(keyboard.Key.String(), "q") {
cancel()
}
}
- refreshInterval := time.Duration(ctx.Int("refresh")) * time.Second
- dt := utils.DurationType(ctx.String("duration-type"))
+ refreshInterval :=
time.Duration(ctx.Value(contextkey.DashboardRefreshInterval{}).(int)) *
time.Second
+ dt := ctx.Value(contextkey.DurationType{}).(utils.DurationType)
// Only when users use the relative time, the duration will be adjusted
to refresh.
if dt != utils.BothPresent {
- go refresh(con, ctx, refreshInterval)
+ go refresh(ctx, refreshInterval)
}
- err = termdash.Run(con, t, c, termdash.KeyboardSubscriber(quitter),
termdash.RedrawInterval(refreshInterval))
+ err = termdash.Run(ctx, t, c, termdash.KeyboardSubscriber(quitter),
termdash.RedrawInterval(refreshInterval))
return err
}
@@ -312,16 +316,13 @@ func longestString(strs []string) (ret string) {
}
// refresh updates the duration and query the new data to update all of
widgets, once every delay.
-func refresh(con context.Context, ctx *cli.Context, interval time.Duration) {
+func refresh(ctx context.Context, interval time.Duration) {
ticker := time.NewTicker(interval)
defer ticker.Stop()
- initStartStr = ctx.String("start")
- initEndStr = ctx.String("end")
-
- if s := ctx.Generic("step"); s != nil {
- initStep = s.(*model.StepEnumValue).Selected
- }
+ initStartStr = ctx.Value(contextkey.DurationStart{}).(string)
+ initEndStr = ctx.Value(contextkey.DurationEnd{}).(string)
+ initStep = ctx.Value(contextkey.DurationStep{}).(api.Step)
_, start, err := interceptor.TryParseTime(initStartStr, initStep)
if err != nil {
@@ -351,7 +352,7 @@ func refresh(con context.Context, ctx *cli.Context,
interval time.Duration) {
if err := updateAllWidgets(data); err != nil {
continue
}
- case <-con.Done():
+ case <-ctx.Done():
return
}
}
diff --git a/pkg/display/graph/flamegraph/adapter.go
b/pkg/display/graph/flamegraph/adapter.go
index d12cd64..a71c545 100644
--- a/pkg/display/graph/flamegraph/adapter.go
+++ b/pkg/display/graph/flamegraph/adapter.go
@@ -63,11 +63,11 @@ func (e *traceStackElementAdapter) ParentID() string {
}
func (e *traceStackElementAdapter) DumpCount() int64 {
- return int64(e.ProfileStackElement.Count)
+ return int64(e.Count)
}
func (e *traceStackElementAdapter) Symbol() string {
- return e.ProfileStackElement.CodeSignature
+ return e.CodeSignature
}
func (e *traceStackElementAdapter) StackType() StackType {
diff --git a/pkg/display/graph/flamegraph/flamegraph.go
b/pkg/display/graph/flamegraph/flamegraph.go
index b4afddf..4eb1c8d 100644
--- a/pkg/display/graph/flamegraph/flamegraph.go
+++ b/pkg/display/graph/flamegraph/flamegraph.go
@@ -19,6 +19,7 @@ package flamegraph
import (
"bytes"
+ "context"
"fmt"
"html/template"
"os"
@@ -28,11 +29,9 @@ import (
"github.com/apache/skywalking-cli/internal/logger"
api "skywalking.apache.org/repo/goapi/query"
-
- "github.com/urfave/cli/v2"
)
-func DisplayByTrace(ctx *cli.Context, analysis api.ProfileAnalyzation) error {
+func DisplayByTrace(ctx context.Context, analysis api.ProfileAnalyzation)
error {
trees := make([]*ProfilingDataTree, 0)
for _, tree := range analysis.Trees {
elements := make([]ProfilingDataStackElement, 0)
@@ -45,7 +44,7 @@ func DisplayByTrace(ctx *cli.Context, analysis
api.ProfileAnalyzation) error {
return display(ctx, trees)
}
-func DisplayByEBPF(ctx *cli.Context, analysis *api.EBPFProfilingAnalyzation)
error {
+func DisplayByEBPF(ctx context.Context, analysis
*api.EBPFProfilingAnalyzation) error {
trees := make([]*ProfilingDataTree, 0)
for _, tree := range analysis.Trees {
elements := make([]ProfilingDataStackElement, 0)
@@ -58,7 +57,7 @@ func DisplayByEBPF(ctx *cli.Context, analysis
*api.EBPFProfilingAnalyzation) err
return display(ctx, trees)
}
-func display(_ *cli.Context, trees []*ProfilingDataTree) error {
+func display(_ context.Context, trees []*ProfilingDataTree) error {
if len(trees) == 0 {
return fmt.Errorf("could not find the analysis data")
}
@@ -70,7 +69,7 @@ func display(_ *cli.Context, trees []*ProfilingDataTree)
error {
}
// build data
- data := make(map[string]interface{})
+ data := make(map[string]any)
elements, maxDepth := buildFlameGraphElements(trees)
data["elements"] = elements
data["maxDepth"] = maxDepth + 1
@@ -80,7 +79,7 @@ func display(_ *cli.Context, trees []*ProfilingDataTree)
error {
return renderFlameGraphAndWrite(flameGraphPath, data)
}
-func renderFlameGraphAndWrite(path string, data map[string]interface{}) error {
+func renderFlameGraphAndWrite(path string, data map[string]any) error {
// render template
var b bytes.Buffer
tmpl, err := template.New("flameGraphTemplate").Parse(flameGraphHTML)
@@ -141,7 +140,8 @@ func buildFlameGraphElements(trees []*ProfilingDataTree)
(result []*StackElement
}
func buildFlameGraphChildElements(renderElements []*StackElement, dataElements
[]ProfilingDataStackElement,
- parent *StackElement, relativeLeft int64) (result []*StackElement, left
int64) {
+ parent *StackElement, relativeLeft int64,
+) (result []*StackElement, left int64) {
parentID := "0"
var depth int64 = 1
left = relativeLeft
diff --git a/pkg/display/graph/gauge/gauge.go b/pkg/display/graph/gauge/gauge.go
index e0ac696..3e91e72 100644
--- a/pkg/display/graph/gauge/gauge.go
+++ b/pkg/display/graph/gauge/gauge.go
@@ -26,8 +26,7 @@ import (
api "skywalking.apache.org/repo/goapi/query"
- "github.com/urfave/cli/v2"
-
+ "github.com/apache/skywalking-cli/pkg/contextkey"
"github.com/apache/skywalking-cli/pkg/graphql/dashboard"
"github.com/apache/skywalking-cli/pkg/util"
@@ -162,7 +161,7 @@ func MetricColumnsElement(columns []*MetricColumn)
[]grid.Element {
columnWidthPerc = 99
}
- for i := 0; i < columnNum; i++ {
+ for i := range columnNum {
var column []grid.Element
column = append(column, grid.RowHeightPerc(TitleHeight,
grid.Widget(columns[i].title)))
@@ -171,7 +170,7 @@ func MetricColumnsElement(columns []*MetricColumn)
[]grid.Element {
gaugeNum := int(math.Min(MaxGaugeNum,
float64(len(columns[i].gauges))))
gaugeHeight := int(math.Floor(float64(99-TitleHeight) /
float64(gaugeNum)))
- for j := 0; j < gaugeNum; j++ {
+ for j := range gaugeNum {
column = append(column, grid.RowHeightPerc(gaugeHeight,
grid.Widget(columns[i].gauges[j])))
}
metricColumns = append(metricColumns,
grid.ColWidthPerc(columnWidthPerc, column...))
@@ -194,7 +193,7 @@ func layout(columns []grid.Element) ([]container.Option,
error) {
return gridOpts, nil
}
-func Display(ctx *cli.Context, metrics [][]*api.SelectedRecord) error {
+func Display(ctx context.Context, metrics [][]*api.SelectedRecord) error {
t, err := termbox.New()
if err != nil {
return err
@@ -211,7 +210,7 @@ func Display(ctx *cli.Context, metrics
[][]*api.SelectedRecord) error {
var columns []*MetricColumn
- configs, err := dashboard.LoadTemplate(ctx.String("template"))
+ configs, err :=
dashboard.LoadTemplate(ctx.Value(contextkey.DashboardTemplate{}).(string))
if err != nil {
return nil
}
@@ -234,7 +233,6 @@ func Display(ctx *cli.Context, metrics
[][]*api.SelectedRecord) error {
container.Border(linestyle.Light),
container.BorderTitle("[Global Metrics]-PRESS Q TO QUIT"))...,
)
-
if err != nil {
return err
}
diff --git a/pkg/display/graph/graph.go b/pkg/display/graph/graph.go
index 64c850c..09efb47 100644
--- a/pkg/display/graph/graph.go
+++ b/pkg/display/graph/graph.go
@@ -18,6 +18,7 @@
package graph
import (
+ "context"
"fmt"
"reflect"
@@ -25,8 +26,6 @@ import (
api "skywalking.apache.org/repo/goapi/query"
- "github.com/urfave/cli/v2"
-
d "github.com/apache/skywalking-cli/pkg/display/displayable"
db "github.com/apache/skywalking-cli/pkg/display/graph/dashboard"
"github.com/apache/skywalking-cli/pkg/display/graph/gauge"
@@ -60,7 +59,7 @@ var (
TraceProfilingAnalysisDataType =
reflect.TypeOf(TraceProfilingAnalysis{})
)
-func Display(ctx *cli.Context, displayable *d.Displayable) error {
+func Display(ctx context.Context, displayable *d.Displayable) error {
data := displayable.Data
switch reflect.TypeOf(data) {
diff --git a/pkg/display/graph/linear/linear.go
b/pkg/display/graph/linear/linear.go
index ce4a29d..78ee639 100644
--- a/pkg/display/graph/linear/linear.go
+++ b/pkg/display/graph/linear/linear.go
@@ -33,8 +33,6 @@ import (
"github.com/mum4k/termdash/terminal/termbox"
"github.com/mum4k/termdash/terminal/terminalapi"
"github.com/mum4k/termdash/widgets/linechart"
-
- "github.com/urfave/cli/v2"
)
const RootID = "root"
@@ -95,7 +93,7 @@ func LineChartElements(lineCharts
map[string]*linechart.LineChart) [][]grid.Elem
charts = append(charts, lineCharts[title])
}
- for r := 0; r < len(rows); r++ {
+ for r := range rows {
var row []grid.Element
for c := 0; c < cols && r*cols+c < len(lineCharts); c++ {
percentage := int(math.Floor(float64(100) /
float64(cols)))
@@ -133,7 +131,7 @@ func layout(rows [][]grid.Element) ([]container.Option,
error) {
return builder.Build()
}
-func Display(cliCtx *cli.Context, inputs
map[string]map[string]*displayable.MetricValue) error {
+func Display(ctx context.Context, inputs
map[string]map[string]*displayable.MetricValue) error {
t, err := termbox.New()
if err != nil {
return err
@@ -166,15 +164,15 @@ func Display(cliCtx *cli.Context, inputs
map[string]map[string]*displayable.Metr
err = c.Update(RootID, append(
gridOpts,
container.Border(linestyle.Light),
- container.BorderTitle(fmt.Sprintf("[%s]-PRESS Q TO QUIT",
cliCtx.String("name"))),
+ container.BorderTitle(fmt.Sprintf("[%s]-PRESS Q TO QUIT",
ctx.Value("name").(string))),
container.BorderTitleAlignLeft())...,
)
-
if err != nil {
return err
}
- ctx, cancel := context.WithCancel(context.Background())
+ var cancel context.CancelFunc
+ ctx, cancel = context.WithCancel(ctx)
quitter := func(keyboard *terminalapi.Keyboard) {
if strings.EqualFold(keyboard.Key.String(), "q") {
cancel()
diff --git a/pkg/display/graph/tree/list.go b/pkg/display/graph/tree/list.go
index 84e2060..89cd4c8 100644
--- a/pkg/display/graph/tree/list.go
+++ b/pkg/display/graph/tree/list.go
@@ -18,6 +18,7 @@
package tree
import (
+ "context"
"fmt"
"strings"
@@ -28,17 +29,18 @@ import (
ui "github.com/gizak/termui/v3"
"github.com/gizak/termui/v3/widgets"
- "github.com/urfave/cli/v2"
"github.com/apache/skywalking-cli/internal/logger"
)
-const DefaultPageSize = 15
-const KeyMap = " Keymap "
-const Detail = " Detail "
-const Quit = "<C-c>"
+const (
+ DefaultPageSize = 15
+ KeyMap = " Keymap "
+ Detail = " Detail "
+ Quit = "<C-c>"
+)
-func DisplayList(ctx *cli.Context, displayable *d.Displayable) error {
+func DisplayList(ctx context.Context, displayable *d.Displayable) error {
data := displayable.Data.(api.TraceBrief)
condition := displayable.Condition.(*api.TraceQueryCondition)
if err := ui.Init(); err != nil {
@@ -84,19 +86,20 @@ func DisplayList(ctx *cli.Context, displayable
*d.Displayable) error {
detail.Title = Detail
detail.WrapText = false
- draw(list, tree, detail, help, data, ctx, condition)
- listenTracesKeyboard(list, tree, data, ctx, detail, help, condition)
+ draw(ctx, list, tree, detail, help, data, condition)
+ listenTracesKeyboard(ctx, list, tree, data, detail, help, condition)
return nil
}
-func draw(list *widgets.List, tree *widgets.Tree, detail, help
*widgets.Paragraph, data api.TraceBrief,
- ctx *cli.Context, _ *api.TraceQueryCondition) {
+func draw(ctx context.Context, list *widgets.List, tree *widgets.Tree, detail,
help *widgets.Paragraph, data api.TraceBrief,
+ _ *api.TraceQueryCondition,
+) {
x, y := ui.TerminalDimensions()
if len(data.Traces) != 0 {
showIndex := list.SelectedRow
- var traceID = data.Traces[showIndex].TraceIds[0]
+ traceID := data.Traces[showIndex].TraceIds[0]
list.Title = fmt.Sprintf("[%s]", traceID)
nodes, serviceNames := getNodeData(ctx, traceID)
tree.Title = fmt.Sprintf("[%s]", strings.Join(serviceNames,
"->"))
@@ -119,8 +122,9 @@ func draw(list *widgets.List, tree *widgets.Tree, detail,
help *widgets.Paragrap
ui.Render(list, tree, detail, help)
}
-func listenTracesKeyboard(list *widgets.List, tree *widgets.Tree, data
api.TraceBrief, ctx *cli.Context,
- detail, help *widgets.Paragraph, condition *api.TraceQueryCondition) {
+func listenTracesKeyboard(ctx context.Context, list *widgets.List, tree
*widgets.Tree, data api.TraceBrief,
+ detail, help *widgets.Paragraph, condition *api.TraceQueryCondition,
+) {
uiEvents := ui.PollEvents()
listActive := true
var err error
@@ -160,7 +164,7 @@ func listenTracesKeyboard(list *widgets.List, tree
*widgets.Tree, data api.Trace
}
}
- draw(list, tree, detail, help, data, ctx, condition)
+ draw(ctx, list, tree, detail, help, data, condition)
}
}
@@ -198,9 +202,8 @@ func listActions(key string, list *widgets.List, tree
*widgets.Tree, listActive
return f
}
-func getNodeData(ctx *cli.Context, traceID string) (nodes []*widgets.TreeNode,
serviceNames []string) {
+func getNodeData(ctx context.Context, traceID string) (nodes
[]*widgets.TreeNode, serviceNames []string) {
data, err := trace.Trace(ctx, traceID)
-
if err != nil {
logger.Log.Fatalln(err)
}
diff --git a/pkg/graphql/alarm/alarm.go b/pkg/graphql/alarm/alarm.go
index 87d6ad3..1e3a93a 100644
--- a/pkg/graphql/alarm/alarm.go
+++ b/pkg/graphql/alarm/alarm.go
@@ -18,13 +18,13 @@
package alarm
import (
+ "context"
+
"github.com/apache/skywalking-cli/assets"
"github.com/apache/skywalking-cli/pkg/graphql/client"
"github.com/machinebox/graphql"
- "github.com/urfave/cli/v2"
-
api "skywalking.apache.org/repo/goapi/query"
)
@@ -36,7 +36,7 @@ type ListAlarmCondition struct {
Paging *api.Pagination
}
-func Alarms(ctx *cli.Context, condition *ListAlarmCondition) (api.Alarms,
error) {
+func Alarms(ctx context.Context, condition *ListAlarmCondition) (api.Alarms,
error) {
var response map[string]api.Alarms
request :=
graphql.NewRequest(assets.Read("graphqls/alarm/alarms.graphql"))
@@ -53,7 +53,7 @@ func Alarms(ctx *cli.Context, condition *ListAlarmCondition)
(api.Alarms, error)
return response["result"], err
}
-func TagAutocompleteKeys(ctx *cli.Context, duration api.Duration) ([]string,
error) {
+func TagAutocompleteKeys(ctx context.Context, duration api.Duration)
([]string, error) {
var response map[string][]string
request :=
graphql.NewRequest(assets.Read("graphqls/alarm/tagAutocompleteKeys.graphql"))
@@ -64,7 +64,7 @@ func TagAutocompleteKeys(ctx *cli.Context, duration
api.Duration) ([]string, err
return response["result"], err
}
-func TagAutocompleteValues(ctx *cli.Context, duration api.Duration, key
string) ([]string, error) {
+func TagAutocompleteValues(ctx context.Context, duration api.Duration, key
string) ([]string, error) {
var response map[string][]string
request :=
graphql.NewRequest(assets.Read("graphqls/alarm/tagAutocompleteValues.graphql"))
diff --git a/pkg/graphql/client/client.go b/pkg/graphql/client/client.go
index f265fbc..40b4947 100644
--- a/pkg/graphql/client/client.go
+++ b/pkg/graphql/client/client.go
@@ -22,13 +22,13 @@ import (
"encoding/base64"
"github.com/machinebox/graphql"
- "github.com/urfave/cli/v2"
"github.com/apache/skywalking-cli/internal/logger"
+ "github.com/apache/skywalking-cli/pkg/contextkey"
)
-func newClient(cliCtx *cli.Context) (client *graphql.Client) {
- client = graphql.NewClient(cliCtx.String("base-url"))
+func newClient(ctx context.Context) (client *graphql.Client) {
+ client = graphql.NewClient(ctx.Value(contextkey.BaseURL{}).(string))
client.Log = func(msg string) {
logger.Log.Debugln(msg)
}
@@ -36,10 +36,10 @@ func newClient(cliCtx *cli.Context) (client
*graphql.Client) {
}
// ExecuteQuery executes the `request` and parse to the `response`, returning
`error` if there is any.
-func ExecuteQuery(cliCtx *cli.Context, request *graphql.Request, response
interface{}) error {
- username := cliCtx.String("username")
- password := cliCtx.String("password")
- authorization := cliCtx.String("authorization")
+func ExecuteQuery(ctx context.Context, request *graphql.Request, response any)
error {
+ username := ctx.Value(contextkey.Username{}).(string)
+ password := ctx.Value(contextkey.Password{}).(string)
+ authorization := ctx.Value(contextkey.Authorization{}).(string)
if authorization == "" && username != "" && password != "" {
authorization = "Basic " +
base64.StdEncoding.EncodeToString([]byte(username+":"+password))
}
@@ -47,8 +47,7 @@ func ExecuteQuery(cliCtx *cli.Context, request
*graphql.Request, response interf
request.Header.Set("Authorization", authorization)
}
- client := newClient(cliCtx)
- ctx := context.Background()
+ client := newClient(ctx)
err := client.Run(ctx, request, response)
return err
}
diff --git a/pkg/graphql/common/common.go b/pkg/graphql/common/common.go
index 4a17d19..1cd4606 100644
--- a/pkg/graphql/common/common.go
+++ b/pkg/graphql/common/common.go
@@ -18,15 +18,15 @@
package common
import (
- "github.com/machinebox/graphql"
+ "context"
- "github.com/urfave/cli/v2"
+ "github.com/machinebox/graphql"
"github.com/apache/skywalking-cli/assets"
"github.com/apache/skywalking-cli/pkg/graphql/client"
)
-func Version(ctx *cli.Context) (string, error) {
+func Version(ctx context.Context) (string, error) {
var response map[string]string
request :=
graphql.NewRequest(assets.Read("graphqls/common/version.graphql"))
diff --git a/pkg/graphql/dashboard/global.go b/pkg/graphql/dashboard/global.go
index 5b5adc5..3c9c1d1 100644
--- a/pkg/graphql/dashboard/global.go
+++ b/pkg/graphql/dashboard/global.go
@@ -19,10 +19,12 @@ package dashboard
import (
"bytes"
+ "context"
"os"
"strings"
"sync"
+ "github.com/apache/skywalking-cli/pkg/contextkey"
"github.com/apache/skywalking-cli/pkg/display/displayable"
"golang.org/x/text/cases"
@@ -30,7 +32,6 @@ import (
api "skywalking.apache.org/repo/goapi/query"
"github.com/spf13/viper"
- "github.com/urfave/cli/v2"
"gopkg.in/yaml.v2"
@@ -77,8 +78,10 @@ type GlobalData struct {
// Use singleton pattern to make sure to load template only once.
var globalTemplate *GlobalTemplate
-const templateType = "yml"
-const DefaultTemplatePath = "templates/dashboard/global.yml"
+const (
+ templateType = "yml"
+ DefaultTemplatePath = "templates/dashboard/global.yml"
+)
// newGlobalTemplate create a new GlobalTemplate and set default values for
buttons' template.
func newGlobalTemplate() GlobalTemplate {
@@ -131,7 +134,7 @@ func LoadTemplate(filename string) (*GlobalTemplate, error)
{
func getButtonTexts(byteValue []byte) ([]string, error) {
var ret []string
- c := make(map[string]interface{})
+ c := make(map[string]any)
if err := yaml.Unmarshal(byteValue, &c); err != nil {
return nil, err
}
@@ -144,10 +147,10 @@ func getButtonTexts(byteValue []byte) ([]string, error) {
return ret, nil
}
-func Metrics(ctx *cli.Context, duration api.Duration)
([][]*api.SelectedRecord, error) {
+func Metrics(ctx context.Context, duration api.Duration)
([][]*api.SelectedRecord, error) {
var ret [][]*api.SelectedRecord
- template, err := LoadTemplate(ctx.String("template"))
+ template, err :=
LoadTemplate(ctx.Value(contextkey.DashboardTemplate{}).(string))
if err != nil {
return nil, nil
}
@@ -168,8 +171,8 @@ func Metrics(ctx *cli.Context, duration api.Duration)
([][]*api.SelectedRecord,
return ret, nil
}
-func responseLatency(ctx *cli.Context, duration api.Duration)
map[string]map[string]*displayable.MetricValue {
- template, err := LoadTemplate(ctx.String("template"))
+func responseLatency(ctx context.Context, duration api.Duration)
map[string]map[string]*displayable.MetricValue {
+ template, err :=
LoadTemplate(ctx.Value(contextkey.DashboardTemplate{}).(string))
if err != nil {
return nil
}
@@ -185,13 +188,12 @@ func responseLatency(ctx *cli.Context, duration
api.Duration) map[string]map[str
relabels := strings.Split(template.ResponseLatency.Relabels, ",")
responseLatency, err := metrics.MultipleLinearIntValues(ctx,
template.ResponseLatency.Condition, labels, duration)
-
if err != nil {
logger.Log.Fatalln(err)
}
mapping := make(map[string]string, len(labels))
- for i := 0; i < len(labels); i++ {
+ for i := range labels {
mapping[labels[i]] = relabels[i]
}
@@ -199,8 +201,8 @@ func responseLatency(ctx *cli.Context, duration
api.Duration) map[string]map[str
return utils.MetricsValuesArrayToMap(duration, responseLatency, mapping)
}
-func heatMap(ctx *cli.Context, duration api.Duration) (api.HeatMap, error) {
- template, err := LoadTemplate(ctx.String("template"))
+func heatMap(ctx context.Context, duration api.Duration) (api.HeatMap, error) {
+ template, err :=
LoadTemplate(ctx.Value(contextkey.DashboardTemplate{}).(string))
if err != nil {
return api.HeatMap{}, nil
}
@@ -213,9 +215,9 @@ func heatMap(ctx *cli.Context, duration api.Duration)
(api.HeatMap, error) {
return metrics.Thermodynamic(ctx, template.HeatMap.Condition, duration)
}
-func Global(ctx *cli.Context, duration api.Duration) (*GlobalData, error) {
+func Global(ctx context.Context, duration api.Duration) (*GlobalData, error) {
// Load template to `globalTemplate`, so the subsequent three calls can
ues it directly.
- _, err := LoadTemplate(ctx.String("template"))
+ _, err :=
LoadTemplate(ctx.Value(contextkey.DashboardTemplate{}).(string))
if err != nil {
return nil, nil
}
diff --git a/pkg/graphql/dependency/dependency.go
b/pkg/graphql/dependency/dependency.go
index 958835e..be3dff2 100644
--- a/pkg/graphql/dependency/dependency.go
+++ b/pkg/graphql/dependency/dependency.go
@@ -18,8 +18,9 @@
package dependency
import (
+ "context"
+
"github.com/machinebox/graphql"
- "github.com/urfave/cli/v2"
api "skywalking.apache.org/repo/goapi/query"
@@ -27,7 +28,7 @@ import (
"github.com/apache/skywalking-cli/pkg/graphql/client"
)
-func EndpointDependency(ctx *cli.Context, endpointID string, duration
api.Duration) (api.EndpointTopology, error) {
+func EndpointDependency(ctx context.Context, endpointID string, duration
api.Duration) (api.EndpointTopology, error) {
var response map[string]api.EndpointTopology
request :=
graphql.NewRequest(assets.Read("graphqls/dependency/EndpointDependency.graphql"))
@@ -39,7 +40,7 @@ func EndpointDependency(ctx *cli.Context, endpointID string,
duration api.Durati
return response["result"], err
}
-func GlobalTopology(ctx *cli.Context, layer string, duration api.Duration)
(api.Topology, error) {
+func GlobalTopology(ctx context.Context, layer string, duration api.Duration)
(api.Topology, error) {
var response map[string]api.Topology
request :=
graphql.NewRequest(assets.Read("graphqls/dependency/GlobalTopology.graphql"))
@@ -51,7 +52,7 @@ func GlobalTopology(ctx *cli.Context, layer string, duration
api.Duration) (api.
return response["result"], err
}
-func GlobalTopologyWithoutLayer(ctx *cli.Context, duration api.Duration)
(api.Topology, error) {
+func GlobalTopologyWithoutLayer(ctx context.Context, duration api.Duration)
(api.Topology, error) {
var response map[string]api.Topology
request :=
graphql.NewRequest(assets.Read("graphqls/dependency/GlobalTopologyWithoutLayer.graphql"))
@@ -62,7 +63,7 @@ func GlobalTopologyWithoutLayer(ctx *cli.Context, duration
api.Duration) (api.To
return response["result"], err
}
-func ServiceTopology(ctx *cli.Context, serviceID string, duration
api.Duration) (api.Topology, error) {
+func ServiceTopology(ctx context.Context, serviceID string, duration
api.Duration) (api.Topology, error) {
var response map[string]api.Topology
request :=
graphql.NewRequest(assets.Read("graphqls/dependency/ServiceTopology.graphql"))
@@ -74,7 +75,7 @@ func ServiceTopology(ctx *cli.Context, serviceID string,
duration api.Duration)
return response["result"], err
}
-func InstanceTopology(ctx *cli.Context, clientServiceID, serverServiceID
string, duration api.Duration) (api.ServiceInstanceTopology, error) {
+func InstanceTopology(ctx context.Context, clientServiceID, serverServiceID
string, duration api.Duration) (api.ServiceInstanceTopology, error) {
var response map[string]api.ServiceInstanceTopology
request :=
graphql.NewRequest(assets.Read("graphqls/dependency/InstanceTopology.graphql"))
@@ -87,7 +88,7 @@ func InstanceTopology(ctx *cli.Context, clientServiceID,
serverServiceID string,
return response["result"], err
}
-func ProcessTopology(ctx *cli.Context, instanceID string, duration
api.Duration) (api.ProcessTopology, error) {
+func ProcessTopology(ctx context.Context, instanceID string, duration
api.Duration) (api.ProcessTopology, error) {
var response map[string]api.ProcessTopology
request :=
graphql.NewRequest(assets.Read("graphqls/dependency/ProcessTopology.graphql"))
diff --git a/pkg/graphql/event/event.go b/pkg/graphql/event/event.go
index d46b035..04106ce 100644
--- a/pkg/graphql/event/event.go
+++ b/pkg/graphql/event/event.go
@@ -18,17 +18,17 @@
package event
import (
+ "context"
+
"github.com/apache/skywalking-cli/assets"
"github.com/apache/skywalking-cli/pkg/graphql/client"
"github.com/machinebox/graphql"
- "github.com/urfave/cli/v2"
-
api "skywalking.apache.org/repo/goapi/query"
)
-func Events(ctx *cli.Context, condition *api.EventQueryCondition) (api.Events,
error) {
+func Events(ctx context.Context, condition *api.EventQueryCondition)
(api.Events, error) {
var response map[string]api.Events
request :=
graphql.NewRequest(assets.Read("graphqls/event/events.graphql"))
diff --git a/pkg/graphql/healthcheck/healthcheck.go
b/pkg/graphql/healthcheck/healthcheck.go
index a16b9e3..35f9213 100644
--- a/pkg/graphql/healthcheck/healthcheck.go
+++ b/pkg/graphql/healthcheck/healthcheck.go
@@ -18,8 +18,9 @@
package healthcheck
import (
+ "context"
+
"github.com/machinebox/graphql"
- "github.com/urfave/cli/v2"
api "skywalking.apache.org/repo/goapi/query"
@@ -28,7 +29,7 @@ import (
)
// CheckHealth intends to query the health status of OAP server
-func CheckHealth(ctx *cli.Context) (api.HealthStatus, error) {
+func CheckHealth(ctx context.Context) (api.HealthStatus, error) {
var response map[string]api.HealthStatus
request :=
graphql.NewRequest(assets.Read("graphqls/healthcheck/healthcheck.graphql"))
diff --git a/pkg/graphql/hierarchy/hierarchy.go
b/pkg/graphql/hierarchy/hierarchy.go
index 52803b9..bf64ff7 100644
--- a/pkg/graphql/hierarchy/hierarchy.go
+++ b/pkg/graphql/hierarchy/hierarchy.go
@@ -18,17 +18,17 @@
package hierarchy
import (
+ "context"
+
"github.com/apache/skywalking-cli/assets"
"github.com/apache/skywalking-cli/pkg/graphql/client"
"github.com/machinebox/graphql"
- "github.com/urfave/cli/v2"
-
api "skywalking.apache.org/repo/goapi/query"
)
-func ServiceHierarchy(ctx *cli.Context, serviceID, layer string)
(api.ServiceHierarchy, error) {
+func ServiceHierarchy(ctx context.Context, serviceID, layer string)
(api.ServiceHierarchy, error) {
var response map[string]api.ServiceHierarchy
request :=
graphql.NewRequest(assets.Read("graphqls/hierarchy/ServiceHierarchy.graphql"))
@@ -40,7 +40,7 @@ func ServiceHierarchy(ctx *cli.Context, serviceID, layer
string) (api.ServiceHie
return response["result"], err
}
-func InstanceHierarchy(ctx *cli.Context, instanceID, layer string)
(api.InstanceHierarchy, error) {
+func InstanceHierarchy(ctx context.Context, instanceID, layer string)
(api.InstanceHierarchy, error) {
var response map[string]api.InstanceHierarchy
request :=
graphql.NewRequest(assets.Read("graphqls/hierarchy/InstanceHierarchy.graphql"))
@@ -52,7 +52,7 @@ func InstanceHierarchy(ctx *cli.Context, instanceID, layer
string) (api.Instance
return response["result"], err
}
-func ListLayerLevels(ctx *cli.Context) ([]api.LayerLevel, error) {
+func ListLayerLevels(ctx context.Context) ([]api.LayerLevel, error) {
var response map[string][]api.LayerLevel
request :=
graphql.NewRequest(assets.Read("graphqls/hierarchy/ListLayerLevels.graphql"))
diff --git a/pkg/graphql/log/log.go b/pkg/graphql/log/log.go
index 76613d5..18be0b7 100644
--- a/pkg/graphql/log/log.go
+++ b/pkg/graphql/log/log.go
@@ -18,17 +18,17 @@
package log
import (
+ "context"
+
"github.com/apache/skywalking-cli/assets"
"github.com/apache/skywalking-cli/pkg/graphql/client"
"github.com/machinebox/graphql"
- "github.com/urfave/cli/v2"
-
api "skywalking.apache.org/repo/goapi/query"
)
-func Logs(ctx *cli.Context, condition *api.LogQueryCondition) (api.Logs,
error) {
+func Logs(ctx context.Context, condition *api.LogQueryCondition) (api.Logs,
error) {
var response map[string]api.Logs
request := graphql.NewRequest(assets.Read("graphqls/logs/Logs.graphql"))
@@ -39,7 +39,7 @@ func Logs(ctx *cli.Context, condition *api.LogQueryCondition)
(api.Logs, error)
return response["result"], err
}
-func BrowserLogs(ctx *cli.Context, condition
*api.BrowserErrorLogQueryCondition) (api.BrowserErrorLogs, error) {
+func BrowserLogs(ctx context.Context, condition
*api.BrowserErrorLogQueryCondition) (api.BrowserErrorLogs, error) {
var response map[string]api.BrowserErrorLogs
request :=
graphql.NewRequest(assets.Read("graphqls/logs/BrowserLogs.graphql"))
diff --git a/pkg/graphql/menu/menu.go b/pkg/graphql/menu/menu.go
index 614174e..b46815c 100644
--- a/pkg/graphql/menu/menu.go
+++ b/pkg/graphql/menu/menu.go
@@ -18,17 +18,17 @@
package menu
import (
+ "context"
+
"github.com/apache/skywalking-cli/assets"
"github.com/apache/skywalking-cli/pkg/graphql/client"
"github.com/machinebox/graphql"
- "github.com/urfave/cli/v2"
-
api "skywalking.apache.org/repo/goapi/query"
)
-func GetItems(ctx *cli.Context) ([]*api.MenuItem, error) {
+func GetItems(ctx context.Context) ([]*api.MenuItem, error) {
var response map[string][]*api.MenuItem
request :=
graphql.NewRequest(assets.Read("graphqls/menu/GetItems.graphql"))
diff --git a/pkg/graphql/metadata/metadata.go b/pkg/graphql/metadata/metadata.go
index 85823d0..73b9b26 100644
--- a/pkg/graphql/metadata/metadata.go
+++ b/pkg/graphql/metadata/metadata.go
@@ -18,6 +18,7 @@
package metadata
import (
+ "context"
"fmt"
"regexp"
"strconv"
@@ -25,7 +26,6 @@ import (
api "skywalking.apache.org/repo/goapi/query"
"github.com/machinebox/graphql"
- "github.com/urfave/cli/v2"
"github.com/apache/skywalking-cli/assets"
"github.com/apache/skywalking-cli/pkg/graphql/client"
@@ -34,7 +34,7 @@ import (
var backendVersion = regexp.MustCompile(`^(?P<Major>\d+)\.(?P<Minor>\d+)`)
-func AllServices(cliCtx *cli.Context, duration api.Duration) ([]api.Service,
error) {
+func AllServices(cliCtx context.Context, duration api.Duration)
([]api.Service, error) {
var response map[string][]api.Service
version, err := protocolVersion(cliCtx)
@@ -49,10 +49,10 @@ func AllServices(cliCtx *cli.Context, duration
api.Duration) ([]api.Service, err
return response["result"], err
}
-func SearchService(cliCtx *cli.Context, serviceCode string) (service
api.Service, err error) {
+func SearchService(ctx context.Context, serviceCode string) (service
api.Service, err error) {
var response map[string]api.Service
- majorVersion, _, err := BackendVersion(cliCtx)
+ majorVersion, _, err := BackendVersion(ctx)
if err != nil {
return api.Service{}, err
}
@@ -65,7 +65,7 @@ func SearchService(cliCtx *cli.Context, serviceCode string)
(service api.Service
request.Var("serviceCode", serviceCode)
}
- err = client.ExecuteQuery(cliCtx, request, &response)
+ err = client.ExecuteQuery(ctx, request, &response)
service = response["result"]
@@ -76,7 +76,7 @@ func SearchService(cliCtx *cli.Context, serviceCode string)
(service api.Service
return service, err
}
-func AllBrowserServices(cliCtx *cli.Context, duration api.Duration)
([]api.Service, error) {
+func AllBrowserServices(cliCtx context.Context, duration api.Duration)
([]api.Service, error) {
var response map[string][]api.Service
version, err := protocolVersion(cliCtx)
@@ -91,7 +91,7 @@ func AllBrowserServices(cliCtx *cli.Context, duration
api.Duration) ([]api.Servi
return response["result"], err
}
-func SearchBrowserService(cliCtx *cli.Context, serviceCode string) (service
api.Service, err error) {
+func SearchBrowserService(cliCtx context.Context, serviceCode string) (service
api.Service, err error) {
var response map[string]api.Service
version, err := protocolVersion(cliCtx)
@@ -112,7 +112,7 @@ func SearchBrowserService(cliCtx *cli.Context, serviceCode
string) (service api.
return service, err
}
-func SearchEndpoints(cliCtx *cli.Context, serviceID, keyword string, limit
int, duration *api.Duration) ([]api.Endpoint, error) {
+func SearchEndpoints(cliCtx context.Context, serviceID, keyword string, limit
int, duration *api.Duration) ([]api.Endpoint, error) {
var response map[string][]api.Endpoint
majorVersion, minorVersion, err := BackendVersion(cliCtx)
@@ -142,7 +142,7 @@ func SearchEndpoints(cliCtx *cli.Context, serviceID,
keyword string, limit int,
return response["result"], err
}
-func Instances(cliCtx *cli.Context, serviceID string, duration api.Duration)
([]api.ServiceInstance, error) {
+func Instances(cliCtx context.Context, serviceID string, duration
api.Duration) ([]api.ServiceInstance, error) {
var response map[string][]api.ServiceInstance
version, err := protocolVersion(cliCtx)
@@ -158,7 +158,7 @@ func Instances(cliCtx *cli.Context, serviceID string,
duration api.Duration) ([]
return response["result"], err
}
-func GetInstance(cliCtx *cli.Context, instanceID string) (api.ServiceInstance,
error) {
+func GetInstance(cliCtx context.Context, instanceID string)
(api.ServiceInstance, error) {
var response map[string]api.ServiceInstance
request :=
graphql.NewRequest(assets.Read("graphqls/metadata/v2/GetInstance.graphql"))
@@ -169,7 +169,7 @@ func GetInstance(cliCtx *cli.Context, instanceID string)
(api.ServiceInstance, e
return response["result"], err
}
-func GetEndpointInfo(cliCtx *cli.Context, endpointID string)
(api.EndpointInfo, error) {
+func GetEndpointInfo(cliCtx context.Context, endpointID string)
(api.EndpointInfo, error) {
var response map[string]api.EndpointInfo
request :=
graphql.NewRequest(assets.Read("graphqls/metadata/v2/GetEndpointInfo.graphql"))
@@ -180,7 +180,7 @@ func GetEndpointInfo(cliCtx *cli.Context, endpointID
string) (api.EndpointInfo,
return response["result"], err
}
-func Processes(cliCtx *cli.Context, instanceID string, duration api.Duration)
([]api.Process, error) {
+func Processes(cliCtx context.Context, instanceID string, duration
api.Duration) ([]api.Process, error) {
var response map[string][]api.Process
request :=
graphql.NewRequest(assets.Read("graphqls/metadata/v2/Processes.graphql"))
@@ -192,7 +192,7 @@ func Processes(cliCtx *cli.Context, instanceID string,
duration api.Duration) ([
return response["result"], err
}
-func GetProcess(cliCtx *cli.Context, processID string) (api.Process, error) {
+func GetProcess(cliCtx context.Context, processID string) (api.Process, error)
{
var response map[string]api.Process
request :=
graphql.NewRequest(assets.Read("graphqls/metadata/v2/GetProcess.graphql"))
@@ -203,7 +203,7 @@ func GetProcess(cliCtx *cli.Context, processID string)
(api.Process, error) {
return response["result"], err
}
-func EstimateProcessScale(cliCtx *cli.Context, serviceID string, labels
[]string) (int64, error) {
+func EstimateProcessScale(cliCtx context.Context, serviceID string, labels
[]string) (int64, error) {
var response map[string]int64
request :=
graphql.NewRequest(assets.Read("graphqls/metadata/v2/EstimateProcessScale.graphql"))
@@ -215,7 +215,7 @@ func EstimateProcessScale(cliCtx *cli.Context, serviceID
string, labels []string
return response["result"], err
}
-func ServerTimeInfo(cliCtx *cli.Context) (api.TimeInfo, error) {
+func ServerTimeInfo(cliCtx context.Context) (api.TimeInfo, error) {
var response map[string]api.TimeInfo
request :=
graphql.NewRequest(assets.Read("graphqls/metadata/v2/ServerTimeInfo.graphql"))
@@ -227,7 +227,7 @@ func ServerTimeInfo(cliCtx *cli.Context) (api.TimeInfo,
error) {
return response["result"], nil
}
-func ListLayers(cliCtx *cli.Context) ([]string, error) {
+func ListLayers(cliCtx context.Context) ([]string, error) {
var response map[string][]string
request :=
graphql.NewRequest(assets.Read("graphqls/metadata/v2/ListLayers.graphql"))
@@ -239,7 +239,7 @@ func ListLayers(cliCtx *cli.Context) ([]string, error) {
return response["result"], nil
}
-func ListLayerService(cliCtx *cli.Context, layer string) ([]api.Service,
error) {
+func ListLayerService(cliCtx context.Context, layer string) ([]api.Service,
error) {
var response map[string][]api.Service
request :=
graphql.NewRequest(assets.Read("graphqls/metadata/v2/ListService.graphql"))
@@ -250,8 +250,8 @@ func ListLayerService(cliCtx *cli.Context, layer string)
([]api.Service, error)
return response["result"], err
}
-func BackendVersion(cliCtx *cli.Context) (major, minor int, err error) {
- version, err := common.Version(cliCtx)
+func BackendVersion(ctx context.Context) (major, minor int, err error) {
+ version, err := common.Version(ctx)
if err != nil {
return 0, 0, err
}
@@ -274,8 +274,8 @@ func BackendVersion(cliCtx *cli.Context) (major, minor int,
err error) {
return major, minor, nil
}
-func protocolVersion(cliCtx *cli.Context) (string, error) {
- if majorVersion, _, err := BackendVersion(cliCtx); err != nil {
+func protocolVersion(ctx context.Context) (string, error) {
+ if majorVersion, _, err := BackendVersion(ctx); err != nil {
return "", err
} else if majorVersion >= 9 {
return "v2", nil
diff --git a/pkg/graphql/metrics/metrics.go b/pkg/graphql/metrics/metrics.go
index 9fcae90..3d25ef4 100644
--- a/pkg/graphql/metrics/metrics.go
+++ b/pkg/graphql/metrics/metrics.go
@@ -18,8 +18,9 @@
package metrics
import (
+ "context"
+
"github.com/machinebox/graphql"
- "github.com/urfave/cli/v2"
"github.com/apache/skywalking-cli/assets"
"github.com/apache/skywalking-cli/pkg/graphql/client"
@@ -27,7 +28,7 @@ import (
api "skywalking.apache.org/repo/goapi/query"
)
-func IntValues(ctx *cli.Context, condition api.MetricsCondition, duration
api.Duration) (int, error) {
+func IntValues(ctx context.Context, condition api.MetricsCondition, duration
api.Duration) (int, error) {
var response map[string]int
request :=
graphql.NewRequest(assets.Read("graphqls/metrics/MetricsValue.graphql"))
@@ -40,7 +41,7 @@ func IntValues(ctx *cli.Context, condition
api.MetricsCondition, duration api.Du
return response["result"], err
}
-func NullableIntValue(ctx *cli.Context, condition api.MetricsCondition,
duration api.Duration) (api.NullableValue, error) {
+func NullableIntValue(ctx context.Context, condition api.MetricsCondition,
duration api.Duration) (api.NullableValue, error) {
var response map[string]api.NullableValue
request :=
graphql.NewRequest(assets.Read("graphqls/metrics/NullableMetricsValue.graphql"))
@@ -53,7 +54,7 @@ func NullableIntValue(ctx *cli.Context, condition
api.MetricsCondition, duration
return response["result"], err
}
-func LinearIntValues(ctx *cli.Context, condition api.MetricsCondition,
duration api.Duration) (api.MetricsValues, error) {
+func LinearIntValues(ctx context.Context, condition api.MetricsCondition,
duration api.Duration) (api.MetricsValues, error) {
var response map[string]api.MetricsValues
request :=
graphql.NewRequest(assets.Read("graphqls/metrics/MetricsValues.graphql"))
@@ -66,7 +67,12 @@ func LinearIntValues(ctx *cli.Context, condition
api.MetricsCondition, duration
return response["result"], err
}
-func MultipleLinearIntValues(ctx *cli.Context, condition api.MetricsCondition,
labels []string, duration api.Duration) ([]api.MetricsValues, error) {
+func MultipleLinearIntValues(
+ ctx context.Context,
+ condition api.MetricsCondition,
+ labels []string,
+ duration api.Duration,
+) ([]api.MetricsValues, error) {
var response map[string][]api.MetricsValues
request :=
graphql.NewRequest(assets.Read("graphqls/metrics/LabeledMetricsValues.graphql"))
@@ -80,7 +86,7 @@ func MultipleLinearIntValues(ctx *cli.Context, condition
api.MetricsCondition, l
return response["result"], err
}
-func Thermodynamic(ctx *cli.Context, condition api.MetricsCondition, duration
api.Duration) (api.HeatMap, error) {
+func Thermodynamic(ctx context.Context, condition api.MetricsCondition,
duration api.Duration) (api.HeatMap, error) {
var response map[string]api.HeatMap
request :=
graphql.NewRequest(assets.Read("graphqls/metrics/HeatMap.graphql"))
@@ -93,7 +99,7 @@ func Thermodynamic(ctx *cli.Context, condition
api.MetricsCondition, duration ap
return response["result"], err
}
-func SortMetrics(ctx *cli.Context, condition api.TopNCondition, duration
api.Duration) ([]*api.SelectedRecord, error) {
+func SortMetrics(ctx context.Context, condition api.TopNCondition, duration
api.Duration) ([]*api.SelectedRecord, error) {
var response map[string][]*api.SelectedRecord
request :=
graphql.NewRequest(assets.Read("graphqls/metrics/SortMetrics.graphql"))
@@ -105,7 +111,7 @@ func SortMetrics(ctx *cli.Context, condition
api.TopNCondition, duration api.Dur
return response["result"], err
}
-func SampledRecords(ctx *cli.Context, condition api.TopNCondition, duration
api.Duration) ([]*api.SelectedRecord, error) {
+func SampledRecords(ctx context.Context, condition api.TopNCondition, duration
api.Duration) ([]*api.SelectedRecord, error) {
var response map[string][]*api.SelectedRecord
request :=
graphql.NewRequest(assets.Read("graphqls/metrics/SampledRecords.graphql"))
@@ -117,7 +123,7 @@ func SampledRecords(ctx *cli.Context, condition
api.TopNCondition, duration api.
return response["result"], err
}
-func ReadRecords(ctx *cli.Context, condition api.RecordCondition, duration
api.Duration) ([]*api.Record, error) {
+func ReadRecords(ctx context.Context, condition api.RecordCondition, duration
api.Duration) ([]*api.Record, error) {
var response map[string][]*api.Record
request :=
graphql.NewRequest(assets.Read("graphqls/metrics/ReadRecords.graphql"))
@@ -129,7 +135,7 @@ func ReadRecords(ctx *cli.Context, condition
api.RecordCondition, duration api.D
return response["result"], err
}
-func ListMetrics(ctx *cli.Context, regex string) ([]*api.MetricDefinition,
error) {
+func ListMetrics(ctx context.Context, regex string) ([]*api.MetricDefinition,
error) {
var response map[string][]*api.MetricDefinition
request :=
graphql.NewRequest(assets.Read("graphqls/metrics/ListMetrics.graphql"))
request.Var("regex", regex)
@@ -139,7 +145,7 @@ func ListMetrics(ctx *cli.Context, regex string)
([]*api.MetricDefinition, error
return response["result"], err
}
-func Execute(ctx *cli.Context, expression string, entity *api.Entity, duration
api.Duration) (api.ExpressionResult, error) {
+func Execute(ctx context.Context, expression string, entity *api.Entity,
duration api.Duration) (api.ExpressionResult, error) {
var response map[string]api.ExpressionResult
request :=
graphql.NewRequest(assets.Read("graphqls/metrics/ExecuteExpression.graphql"))
diff --git a/pkg/graphql/profiling/asyncprofiler.go
b/pkg/graphql/profiling/asyncprofiler.go
index 5db697f..34b1857 100644
--- a/pkg/graphql/profiling/asyncprofiler.go
+++ b/pkg/graphql/profiling/asyncprofiler.go
@@ -18,15 +18,16 @@
package profiling
import (
+ "context"
+
"github.com/machinebox/graphql"
- "github.com/urfave/cli/v2"
api "skywalking.apache.org/repo/goapi/query"
"github.com/apache/skywalking-cli/assets"
"github.com/apache/skywalking-cli/pkg/graphql/client"
)
-func CreateAsyncProfilerTask(ctx *cli.Context, condition
*api.AsyncProfilerTaskCreationRequest) (api.AsyncProfilerTaskCreationResult,
error) {
+func CreateAsyncProfilerTask(ctx context.Context, condition
*api.AsyncProfilerTaskCreationRequest) (api.AsyncProfilerTaskCreationResult,
error) {
var response map[string]api.AsyncProfilerTaskCreationResult
request :=
graphql.NewRequest(assets.Read("graphqls/profiling/asyncprofiler/CreateTask.graphql"))
@@ -37,7 +38,7 @@ func CreateAsyncProfilerTask(ctx *cli.Context, condition
*api.AsyncProfilerTaskC
return response["result"], err
}
-func GetAsyncProfilerTaskList(ctx *cli.Context, condition
*api.AsyncProfilerTaskListRequest) (api.AsyncProfilerTaskListResult, error) {
+func GetAsyncProfilerTaskList(ctx context.Context, condition
*api.AsyncProfilerTaskListRequest) (api.AsyncProfilerTaskListResult, error) {
var response map[string]api.AsyncProfilerTaskListResult
request :=
graphql.NewRequest(assets.Read("graphqls/profiling/asyncprofiler/GetTaskList.graphql"))
@@ -48,7 +49,7 @@ func GetAsyncProfilerTaskList(ctx *cli.Context, condition
*api.AsyncProfilerTask
return response["result"], err
}
-func GetAsyncProfilerTaskProgress(ctx *cli.Context, taskID string)
(api.AsyncProfilerTaskProgress, error) {
+func GetAsyncProfilerTaskProgress(ctx context.Context, taskID string)
(api.AsyncProfilerTaskProgress, error) {
var response map[string]api.AsyncProfilerTaskProgress
request :=
graphql.NewRequest(assets.Read("graphqls/profiling/asyncprofiler/GetTaskProgress.graphql"))
@@ -59,7 +60,7 @@ func GetAsyncProfilerTaskProgress(ctx *cli.Context, taskID
string) (api.AsyncPro
return response["result"], err
}
-func GetAsyncProfilerAnalyze(ctx *cli.Context, condition
*api.AsyncProfilerAnalyzationRequest) (api.AsyncProfilerAnalyzation, error) {
+func GetAsyncProfilerAnalyze(ctx context.Context, condition
*api.AsyncProfilerAnalyzationRequest) (api.AsyncProfilerAnalyzation, error) {
var response map[string]api.AsyncProfilerAnalyzation
request :=
graphql.NewRequest(assets.Read("graphqls/profiling/asyncprofiler/GetAnalysis.graphql"))
diff --git a/pkg/graphql/profiling/continuous.go
b/pkg/graphql/profiling/continuous.go
index 7d590ea..e31f4ee 100644
--- a/pkg/graphql/profiling/continuous.go
+++ b/pkg/graphql/profiling/continuous.go
@@ -18,17 +18,17 @@
package profiling
import (
+ "context"
+
"github.com/apache/skywalking-cli/assets"
"github.com/apache/skywalking-cli/pkg/graphql/client"
"github.com/machinebox/graphql"
- "github.com/urfave/cli/v2"
-
api "skywalking.apache.org/repo/goapi/query"
)
-func SetContinuousProfilingPolicy(ctx *cli.Context, creation
*api.ContinuousProfilingPolicyCreation) (api.ContinuousProfilingSetResult,
error) {
+func SetContinuousProfilingPolicy(ctx context.Context, creation
*api.ContinuousProfilingPolicyCreation) (api.ContinuousProfilingSetResult,
error) {
var response map[string]api.ContinuousProfilingSetResult
request :=
graphql.NewRequest(assets.Read("graphqls/profiling/continuous/SetContinuousProfilingPolicy.graphql"))
@@ -39,7 +39,7 @@ func SetContinuousProfilingPolicy(ctx *cli.Context, creation
*api.ContinuousProf
return response["result"], err
}
-func QueryContinuousProfilingServiceTargets(ctx *cli.Context, serviceID
string) ([]*api.ContinuousProfilingPolicyTarget, error) {
+func QueryContinuousProfilingServiceTargets(ctx context.Context, serviceID
string) ([]*api.ContinuousProfilingPolicyTarget, error) {
var response map[string][]*api.ContinuousProfilingPolicyTarget
request :=
graphql.NewRequest(assets.Read("graphqls/profiling/continuous/QueryContinuousProfilingServiceTargets.graphql"))
@@ -50,8 +50,9 @@ func QueryContinuousProfilingServiceTargets(ctx *cli.Context,
serviceID string)
return response["result"], err
}
-func QueryContinuousProfilingMonitoringInstances(ctx *cli.Context, serviceID
string,
- target api.ContinuousProfilingTargetType)
([]api.ContinuousProfilingMonitoringInstance, error) {
+func QueryContinuousProfilingMonitoringInstances(ctx context.Context,
serviceID string,
+ target api.ContinuousProfilingTargetType,
+) ([]api.ContinuousProfilingMonitoringInstance, error) {
var response map[string][]api.ContinuousProfilingMonitoringInstance
request :=
graphql.NewRequest(assets.Read("graphqls/profiling/continuous/QueryContinuousProfilingMonitoringInstances.graphql"))
diff --git a/pkg/graphql/profiling/ebpf.go b/pkg/graphql/profiling/ebpf.go
index 0cdf3d4..a788e5d 100644
--- a/pkg/graphql/profiling/ebpf.go
+++ b/pkg/graphql/profiling/ebpf.go
@@ -18,18 +18,19 @@
package profiling
import (
+ "context"
+
"github.com/apache/skywalking-cli/assets"
"github.com/apache/skywalking-cli/pkg/graphql/client"
"github.com/machinebox/graphql"
- "github.com/urfave/cli/v2"
-
api "skywalking.apache.org/repo/goapi/query"
)
-func CreateEBPFProfilingFixedTimeTask(ctx *cli.Context,
- condition *api.EBPFProfilingTaskFixedTimeCreationRequest)
(api.EBPFProfilingTaskCreationResult, error) {
+func CreateEBPFProfilingFixedTimeTask(ctx context.Context,
+ condition *api.EBPFProfilingTaskFixedTimeCreationRequest,
+) (api.EBPFProfilingTaskCreationResult, error) {
var response map[string]api.EBPFProfilingTaskCreationResult
request :=
graphql.NewRequest(assets.Read("graphqls/profiling/ebpf/CreateEBPFProfilingFixedTimeTask.graphql"))
@@ -40,7 +41,9 @@ func CreateEBPFProfilingFixedTimeTask(ctx *cli.Context,
return response["result"], err
}
-func CreateEBPFNetworkProfilingTask(ctx *cli.Context, condition
*api.EBPFProfilingNetworkTaskRequest) (api.EBPFProfilingTaskCreationResult,
error) {
+func CreateEBPFNetworkProfilingTask(ctx context.Context,
+ condition *api.EBPFProfilingNetworkTaskRequest,
+) (api.EBPFProfilingTaskCreationResult, error) {
var response map[string]api.EBPFProfilingTaskCreationResult
request :=
graphql.NewRequest(assets.Read("graphqls/profiling/ebpf/CreateEBPFNetworkProfilingTask.graphql"))
@@ -51,7 +54,7 @@ func CreateEBPFNetworkProfilingTask(ctx *cli.Context,
condition *api.EBPFProfili
return response["result"], err
}
-func QueryPrepareCreateEBPFProfilingTaskData(ctx *cli.Context, serviceID
string) (*api.EBPFProfilingTaskPrepare, error) {
+func QueryPrepareCreateEBPFProfilingTaskData(ctx context.Context, serviceID
string) (*api.EBPFProfilingTaskPrepare, error) {
var response map[string]*api.EBPFProfilingTaskPrepare
request :=
graphql.NewRequest(assets.Read("graphqls/profiling/ebpf/QueryPrepareCreateEBPFProfilingTaskData.graphql"))
@@ -62,7 +65,7 @@ func QueryPrepareCreateEBPFProfilingTaskData(ctx
*cli.Context, serviceID string)
return response["result"], err
}
-func QueryEBPFProfilingTaskList(ctx *cli.Context, serviceID string,
triggerType api.EBPFProfilingTriggerType) ([]*api.EBPFProfilingTask, error) {
+func QueryEBPFProfilingTaskList(ctx context.Context, serviceID string,
triggerType api.EBPFProfilingTriggerType) ([]*api.EBPFProfilingTask, error) {
var response map[string][]*api.EBPFProfilingTask
request :=
graphql.NewRequest(assets.Read("graphqls/profiling/ebpf/QueryEBPFProfilingTaskList.graphql"))
@@ -74,7 +77,7 @@ func QueryEBPFProfilingTaskList(ctx *cli.Context, serviceID
string, triggerType
return response["result"], err
}
-func QueryEBPFProfilingScheduleList(ctx *cli.Context, taskID string)
([]*api.EBPFProfilingSchedule, error) {
+func QueryEBPFProfilingScheduleList(ctx context.Context, taskID string)
([]*api.EBPFProfilingSchedule, error) {
var response map[string][]*api.EBPFProfilingSchedule
request :=
graphql.NewRequest(assets.Read("graphqls/profiling/ebpf/QueryEBPFProfilingScheduleList.graphql"))
@@ -85,8 +88,9 @@ func QueryEBPFProfilingScheduleList(ctx *cli.Context, taskID
string) ([]*api.EBP
return response["result"], err
}
-func AnalysisEBPFProfilingResult(ctx *cli.Context, scheduleIDList []string,
- timeRanges []*api.EBPFProfilingAnalyzeTimeRange, aggregateType
api.EBPFProfilingAnalyzeAggregateType) (*api.EBPFProfilingAnalyzation, error) {
+func AnalysisEBPFProfilingResult(ctx context.Context, scheduleIDList []string,
+ timeRanges []*api.EBPFProfilingAnalyzeTimeRange, aggregateType
api.EBPFProfilingAnalyzeAggregateType,
+) (*api.EBPFProfilingAnalyzation, error) {
var response map[string]*api.EBPFProfilingAnalyzation
request :=
graphql.NewRequest(assets.Read("graphqls/profiling/ebpf/AnalysisEBPFProfilingResult.graphql"))
@@ -99,7 +103,7 @@ func AnalysisEBPFProfilingResult(ctx *cli.Context,
scheduleIDList []string,
return response["result"], err
}
-func KeepNetworkProfilingTask(ctx *cli.Context, taskID string)
(*api.EBPFNetworkKeepProfilingResult, error) {
+func KeepNetworkProfilingTask(ctx context.Context, taskID string)
(*api.EBPFNetworkKeepProfilingResult, error) {
var response map[string]*api.EBPFNetworkKeepProfilingResult
request :=
graphql.NewRequest(assets.Read("graphqls/profiling/ebpf/KeepNetworkProfilingTask.graphql"))
diff --git a/pkg/graphql/profiling/trace.go b/pkg/graphql/profiling/trace.go
index a1e0b47..6d9aa0d 100644
--- a/pkg/graphql/profiling/trace.go
+++ b/pkg/graphql/profiling/trace.go
@@ -18,17 +18,17 @@
package profiling
import (
+ "context"
+
"github.com/apache/skywalking-cli/assets"
"github.com/apache/skywalking-cli/pkg/graphql/client"
"github.com/machinebox/graphql"
- "github.com/urfave/cli/v2"
-
api "skywalking.apache.org/repo/goapi/query"
)
-func CreateTraceTask(ctx *cli.Context, condition
*api.ProfileTaskCreationRequest) (api.ProfileTaskCreationResult, error) {
+func CreateTraceTask(ctx context.Context, condition
*api.ProfileTaskCreationRequest) (api.ProfileTaskCreationResult, error) {
var response map[string]api.ProfileTaskCreationResult
request :=
graphql.NewRequest(assets.Read("graphqls/profiling/trace/CreateTask.graphql"))
@@ -39,7 +39,7 @@ func CreateTraceTask(ctx *cli.Context, condition
*api.ProfileTaskCreationRequest
return response["result"], err
}
-func GetTraceProfilingTaskList(ctx *cli.Context, serviceID, endpointName
string) ([]*api.ProfileTask, error) {
+func GetTraceProfilingTaskList(ctx context.Context, serviceID, endpointName
string) ([]*api.ProfileTask, error) {
var response map[string][]*api.ProfileTask
request :=
graphql.NewRequest(assets.Read("graphqls/profiling/trace/GetTaskList.graphql"))
@@ -51,7 +51,7 @@ func GetTraceProfilingTaskList(ctx *cli.Context, serviceID,
endpointName string)
return response["result"], err
}
-func GetTraceProfilingTaskLogList(ctx *cli.Context, taskID string)
([]*api.ProfileTaskLog, error) {
+func GetTraceProfilingTaskLogList(ctx context.Context, taskID string)
([]*api.ProfileTaskLog, error) {
var response map[string][]*api.ProfileTaskLog
request :=
graphql.NewRequest(assets.Read("graphqls/profiling/trace/GetProfileTaskLogs.graphql"))
@@ -62,7 +62,7 @@ func GetTraceProfilingTaskLogList(ctx *cli.Context, taskID
string) ([]*api.Profi
return response["result"], err
}
-func GetTraceProfilingTaskSegmentList(ctx *cli.Context, taskID string)
([]*api.ProfiledTraceSegments, error) {
+func GetTraceProfilingTaskSegmentList(ctx context.Context, taskID string)
([]*api.ProfiledTraceSegments, error) {
var response map[string][]*api.ProfiledTraceSegments
request :=
graphql.NewRequest(assets.Read("graphqls/profiling/trace/GetTaskSegmentsList.graphql"))
@@ -73,7 +73,7 @@ func GetTraceProfilingTaskSegmentList(ctx *cli.Context,
taskID string) ([]*api.P
return response["result"], err
}
-func GetTraceProfilingAnalyze(ctx *cli.Context, queries
[]*api.SegmentProfileAnalyzeQuery) (api.ProfileAnalyzation, error) {
+func GetTraceProfilingAnalyze(ctx context.Context, queries
[]*api.SegmentProfileAnalyzeQuery) (api.ProfileAnalyzation, error) {
var response map[string]api.ProfileAnalyzation
request :=
graphql.NewRequest(assets.Read("graphqls/profiling/trace/GetSegmentsProfileAnalyze.graphql"))
diff --git a/pkg/graphql/trace/trace.go b/pkg/graphql/trace/trace.go
index 6071846..1a44060 100644
--- a/pkg/graphql/trace/trace.go
+++ b/pkg/graphql/trace/trace.go
@@ -18,8 +18,9 @@
package trace
import (
+ "context"
+
"github.com/machinebox/graphql"
- "github.com/urfave/cli/v2"
api "skywalking.apache.org/repo/goapi/query"
@@ -27,7 +28,7 @@ import (
"github.com/apache/skywalking-cli/pkg/graphql/client"
)
-func Trace(ctx *cli.Context, traceID string) (api.Trace, error) {
+func Trace(ctx context.Context, traceID string) (api.Trace, error) {
var response map[string]api.Trace
request :=
graphql.NewRequest(assets.Read("graphqls/trace/Trace.graphql"))
@@ -38,7 +39,7 @@ func Trace(ctx *cli.Context, traceID string) (api.Trace,
error) {
return response["result"], err
}
-func Traces(ctx *cli.Context, condition *api.TraceQueryCondition)
(api.TraceBrief, error) {
+func Traces(ctx context.Context, condition *api.TraceQueryCondition)
(api.TraceBrief, error) {
var response map[string]api.TraceBrief
request :=
graphql.NewRequest(assets.Read("graphqls/trace/Traces.graphql"))
diff --git a/pkg/heatmap/heatmap.go b/pkg/heatmap/heatmap.go
index 74c9ff0..a66d2d6 100644
--- a/pkg/heatmap/heatmap.go
+++ b/pkg/heatmap/heatmap.go
@@ -193,7 +193,7 @@ func (hp *HeatMap) drawColumns(cvs *canvas.Canvas, xd
*axes.XDetails, yd *axes.Y
for i, xl := range hp.XLabels {
cv := hp.columns[xl]
- for j := 0; j < len(cv.values); j++ {
+ for j := range cv.values {
v := cv.values[j]
startX := xd.Start.X + 1 + i*hp.opts.cellWidth