Fix Go version in Dockerfile (#120)

1 file changed
tree: 2aadbdc71e5e1de041195394b2d0efd696ac1648
  1. .github/
  2. assets/
  3. cmd/
  4. dist/
  5. docs/
  6. examples/
  7. internal/
  8. pkg/
  9. scripts/
  10. test/
  11. .asf.yaml
  12. .gitignore
  13. .golangci.yml
  14. .graphqlconfig
  15. .licenserc.yaml
  16. action.yaml
  17. CHANGES.md
  18. CONTRIBUTING.md
  19. Dockerfile
  20. go.mod
  21. go.sum
  22. LICENSE
  23. Makefile
  24. NOTICE
  25. README.md
README.md

Apache SkyWalking CLI

The CLI (Command Line Interface) for Apache SkyWalking.

SkyWalking CLI is a command interaction tool for the SkyWalking user or OPS team, as an alternative besides using browser GUI. It is based on SkyWalking GraphQL query protocol, same as GUI.

Install

Quick install

Linux or macOS

Install the latest version with the following command:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/apache/skywalking-cli/tree/master/scripts/install.sh)"

Windows

Note: you need to start cmd or powershell in administrator mode.

curl -LO "https://raw.githubusercontent.com/apache/skywalking-cli/tree/master/scripts/install.bat" && .\install.bat

Install by available binaries

Go to the download page to download all available binaries, including macOS, Linux, Windows.

Build from source

If you want to try the latest features, you can compile the latest source code and build swctl by yourself. Since SkyWalking CLI is using Makefile, compiling the project is as easy as executing a command in the root directory of the project.

git clone https://github.com/apache/skywalking-cli
cd skywalking-cli
make

Then copy the ./bin/swctl-latest-(darwin|linux|windows)-amd64 to your PATH directory according to your OS, usually /usr/bin/ or /usr/local/bin.

You can also copy it to any directory you like, then add that directory to PATH. We recommend you to rename the swctl-latest-(darwin|linux|windows)-amd64 to swctl.

Run from Docker image

If you prefer to use Docker, skywalking-cli also provides Docker images for convenient usages since 0.9.0. We also push the snapshot Docker images to GitHub registry for developers who want to test the latest features, note that this is not Apache releases, and it's for test only, DO NOT use it in your production environment.

docker run -it --rm apache/skywalking-cli service ls

# Or to use the snapshot Docker image

docker run -it --rm ghcr.io/apache/skywalking-cli/skywalking-cli  service ls

Autocompletion

swctl provides auto-completion support for bash and powershell, which can save you a lot of typing.

Bash

The swctl completion script for bash can be generated with the command swctl completion bash. Sourcing the completion script in your shell enables swctl auto-completion:

swctl completion bash > bash_autocomplete &&
    sudo cp ./bash_autocomplete /etc/bash_completion.d/swctl &&
    echo >> ~/.bashrc &&
    echo "export PROG=swctl" >> ~/.bashrc

After reloading your shell, swctl auto-completion should be working.

powershell

Similarly, run the following command in your powershell terminal to enable auto-completion:

set-executionpolicy remotesigned -Scope CurrentUser
swctl completion powershell >> $profile

If you get an error like OpenError: (:) [Out-File], DirectoryNotFoundException, then you need to run the following command to create $profile file:

New-Item -Type file -Force $profile

After reloading your shell, swctl auto-completion should be working.

metrics

metrics linear

optiondescriptiondefault
--nameMetrics name, defined in OAL.
--serviceThe name of the service.""
--instanceThe name of the service instance.""
--endpointThe name of the endpoint.""
--destServiceThe name of the destination service.""
--destInstanceThe name of the destination instance.""
--destEndpointThe name of the destination endpoint.""
--isDestNormalSet the destination service to normal or unnormal.true
--startSee Common optionsSee Common options
--endSee Common optionsSee Common options

metrics multiple-linear

optiondescriptiondefault
--nameMetrics name that ends with _percentile, defined in OAL, such as all_percentile, etc.
--serviceThe name of the service, when scope is All, no name is required.""
--labelsThe labels you need to query0,1,2,3,4
--instanceThe name of the service instance.""
--endpointThe name of the endpoint.""
--isNormalSet the service to normal or unnormal.true
--destServiceThe name of the destination service.""
--destInstanceThe name of the destination instance.""
--destEndpointThe name of the destination endpoint.""
--isDestNormalSet the destination service to normal or unnormal.true
--startSee Common optionsSee Common options
--endSee Common optionsSee Common options

metrics single

optiondescriptiondefault
--nameMetrics name, defined in OAL, such as service_sla, etc.
--serviceThe name of the service.""
--instanceThe name of the service instance.""
--endpointThe name of the endpoint.""
--isNormalSet the service to normal or unnormal.true
--destServiceThe name of the destination service.""
--destInstanceThe name of the destination instance.""
--destEndpointThe name of the destination endpoint.""
--isDestNormalSet the destination service to normal or unnormal.true
--startSee Common optionsSee Common options
--endSee Common optionsSee Common options

dashboard

dashboard global-metrics

dashboard global-metrics displays global metrics in the form of a dashboard.

argumentdescriptiondefault
--templateThe template file to customize how to display informationtemplates/Dashboard.Global.json
--startSee Common optionsSee Common options
--endSee Common optionsSee Common options

You can imitate the content of the default template file to customize the dashboard.

dashboard global

dashboard global displays global metrics, global response latency and global heat map in the form of a dashboard.

argumentdescriptiondefault
--templateThe template file to customize how to display informationtemplates/dashboard/global.yml
--refreshThe interval of auto-refresh (s). When start and end are both present, auto-refresh is disabled.6
--startSee Common optionsSee Common options
--endSee Common optionsSee Common options

You can imitate the content of the default template file to customize the dashboard.

install

manifest

argumentdescriptiondefault
--nameThe name of prefix of generated resourcesskywalking
--namespaceThe namespace where resource will be deployedskywalking-system
-fThe custom resource file describing custom resources defined by swck

event

report

event report reports an event to OAP server via gRPC.

argumentdescriptiondefault
uuidThe unique ID of the event.
serviceThe service of the event occurred on.
instanceThe service instance of the event occurred on.
endpointThe endpoint of the event occurred on.
nameThe name of the event. For example, ‘Reboot’ and ‘Upgrade’ etc.
typeThe type of the event, could be Normal or Error.Normal
messageThe detail of the event. This should be a one-line message that briefly describes why the event is reported.
startTimeThe start time (in milliseconds) of the event, measured between the current time and midnight, January 1, 1970 UTC.
endTimeThe end time (in milliseconds) of the event, measured between the current time and midnight, January 1, 1970 UTC.

list

argumentdescriptiondefault
serviceThe service name whose events are to displayed.
instanceThe service instance name whose events are to displayed.
endpointThe endpoint name whose logs are to displayed.
nameThe name of the event.
typeThe type of the event, could be Normal or Error.Normal

logs

list

argumentdescriptiondefault
service-idThe service id whose logs are to displayed.
instance-idThe service instance id whose logs are to displayed.
endpoint-idThe service endpoint id whose logs are to displayed.
trace-idThe trace id whose logs are to displayed.
tagsOnly tags defined in the core/default/searchableLogsTags are searchable. Check more details on the Configuration Vocabulary pageSee Configuration Vocabulary page

profile

create

argumentdescriptiondefault
service-id whose endpoints are to be profile.
service-name whose endpoints are to be profile.
endpointwhich endpoint should profile.
start-timeprofile task start time(millisecond).
durationprofile task continuous time(minute).
min-duration-thresholdprofiled endpoint must greater duration(millisecond).
dump-periodprofiled endpoint dump period(millisecond).
max-sampling-countprofile task max sampling count.

list

argumentdescriptiondefault
service-id<service id> whose profile task are to be searched.
service-name<service name> whose profile task are to be searched.
endpoint<endpoint> whose profile task are to be searched

segment-list

argumentdescriptiondefault
task-id<task id> whose profiled segment are to be searched.

profiled-segment

argumentdescriptiondefault
segment-idprofiled segment id.

profiled-analyze

argumentdescriptiondefault
segment-idprofiled segment id.
time-rangesneed to analyze time ranges in the segment: start-end,start-end.

dependency

service

dependency service shows all the dependencies of given [service-id] in the time range of [start, end].

argumentdescriptiondefault
service-idThe service id whose dependencies are to displayed.
--startSee Common optionsSee Common options
--endSee Common optionsSee Common options

endpoint

dependency endpoint shows all the dependencies of given [endpoint-id] in the time range of [start, end].

argumentdescriptiondefault
endpoint-idThe service endpoint id whose dependencies are to displayed.
--startSee Common optionsSee Common options
--endSee Common optionsSee Common options

instance

dependency instance shows the instance topology of given [clientService-id] and [serverService-id] in the time range of [start, end].

argumentdescriptiondefault
clientService-idThe service id of the client.
serverService-idThe service id of the server.
--startSee Common optionsSee Common options
--endSee Common optionsSee Common options

Use Cases

Integrate skywalking-cli into your CD workflows to report events, this is an implementation of GitHub Actions, but we welcome you to contribute plugins of other CD platforms, like Jenkins, GitLab, etc.

The usage of integration for GitHub Actions is as follows.

# ...

jobs:
  deploy:
    strategy:
      matrix:
        instance:
          - asia-southeast
          - asia-northeast
    name: Deploy Product Service
    runs-on: ubuntu-latest
    steps:
      # other steps such as checkout ...

      - name: Wrap the deployment steps with skywalking-cli
        uses: apache/skywalking-cli@main # we always suggest using a revision instead of `main`
        with:
          oap-url: ${{ secrets.OAP_URL }}                       # Required. Set the OAP backend URL, such as example.com:11800
          auth-token: ${{ secrets.OAP_AUTH_TOKEN }}             # Optional. OAP auth token if you enable authentication in OAP
          service: product                                      # Required. Name of the service to be deployed
          instance: ${{ matrix.instance }}                      # Required. Name of the instance to be deployed
          endpoint: ""                                          # Optional. Endpoint of the service, if any
          message: "Upgrade from {fromVersion} to {toVersion}"  # Optional. The message of the event
          parameters: ""                                        # Optional. The parameters in the message, if any

      # your package / deployment steps... 

Contributing

For developers who want to contribute to this project, see Contribution Guide

License

Apache 2.0 License.