Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 8 additions & 5 deletions .golangci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down Expand Up @@ -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
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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/golangci-lint@v1.64.0
Expand Down
9 changes: 6 additions & 3 deletions cmd/swctl/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,15 +44,18 @@ 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"
"github.com/urfave/cli/v2"
"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
Expand Down Expand Up @@ -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
Expand Down
5 changes: 3 additions & 2 deletions internal/commands/alarm/autopleteKeys.go
Original file line number Diff line number Diff line change
Expand Up @@ -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})
},
}
4 changes: 2 additions & 2 deletions internal/commands/alarm/autopleteValues.go
Original file line number Diff line number Diff line change
Expand Up @@ -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})
},
}
8 changes: 4 additions & 4 deletions internal/commands/alarm/list.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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})
},
}
4 changes: 2 additions & 2 deletions internal/commands/browser/logs/list.go
Original file line number Diff line number Diff line change
Expand Up @@ -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})
},
}
5 changes: 2 additions & 3 deletions internal/commands/browser/page/list.go
Original file line number Diff line number Diff line change
Expand Up @@ -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})
},
}
6 changes: 3 additions & 3 deletions internal/commands/browser/service/list.go
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -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})
},
}
5 changes: 2 additions & 3 deletions internal/commands/browser/version/list.go
Original file line number Diff line number Diff line change
Expand Up @@ -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})
},
}
15 changes: 12 additions & 3 deletions internal/commands/dashboard/global/global.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,16 @@
package global

import (
"context"

"github.com/urfave/cli/v2"

api "skywalking.apache.org/repo/goapi/query"

"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"
Expand Down Expand Up @@ -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})
},
}
20 changes: 13 additions & 7 deletions internal/commands/dashboard/global/metrics.go
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand All @@ -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})
},
}
5 changes: 2 additions & 3 deletions internal/commands/dependency/endpoint.go
Original file line number Diff line number Diff line change
Expand Up @@ -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})
},
}
8 changes: 4 additions & 4 deletions internal/commands/dependency/global.go
Original file line number Diff line number Diff line change
Expand Up @@ -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})
},
}
5 changes: 2 additions & 3 deletions internal/commands/dependency/instance.go
Original file line number Diff line number Diff line change
Expand Up @@ -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})
},
}
4 changes: 2 additions & 2 deletions internal/commands/dependency/process.go
Original file line number Diff line number Diff line change
Expand Up @@ -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})
},
}
5 changes: 2 additions & 3 deletions internal/commands/dependency/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -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})
},
}
4 changes: 2 additions & 2 deletions internal/commands/endpoint/get.go
Original file line number Diff line number Diff line change
Expand Up @@ -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})
},
}
Loading
Loading