{"id":20119585,"url":"https://github.com/box/wavectl","last_synced_at":"2025-05-06T14:32:30.401Z","repository":{"id":50207235,"uuid":"136543031","full_name":"box/wavectl","owner":"box","description":"Command Line Client For Wavefront","archived":false,"fork":false,"pushed_at":"2022-12-07T23:50:46.000Z","size":135,"stargazers_count":17,"open_issues_count":21,"forks_count":10,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-10-13T12:27:44.695Z","etag":null,"topics":["api","cli","wavefront"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/box.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-06-07T23:46:38.000Z","updated_at":"2023-09-08T17:41:28.000Z","dependencies_parsed_at":"2023-01-25T00:30:33.818Z","dependency_job_id":null,"html_url":"https://github.com/box/wavectl","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/box%2Fwavectl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/box%2Fwavectl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/box%2Fwavectl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/box%2Fwavectl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/box","download_url":"https://codeload.github.com/box/wavectl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224509404,"owners_count":17323079,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","cli","wavefront"],"created_at":"2024-11-13T19:16:12.114Z","updated_at":"2024-11-13T19:16:12.799Z","avatar_url":"https://github.com/box.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\u003c!-- This file is auto generated. Do not edit it. Any modifications will be --\u003e\n\u003c!-- overwritten next time documentation is generated. The source for this file --\u003e\n\u003c!-- resides in \u003crepo_root\u003e/doc/sphinx directory. Modify there and execute --\u003e\n\u003c!-- `make all` in that directory. --\u003e\n\n# wavectl\n\n[![CircleCI](https://circleci.com/gh/box/wavectl.svg?style=svg)](https://circleci.com/gh/box/wavectl) [![Project Status](http://opensource.box.com/badges/active.svg)](http://opensource.box.com/badges)\n\nA command line client for [Wavefront](https://www.wavefront.com) inspired by [kubectl](https://kubernetes.io/docs/reference/kubectl/overview/) and [git](https://git-scm.com/docs) command line tools.\n\n## Example Commands\n\nA short list of common usages. For more details [Use Cases](#example-use-cases) section.\n\n### Show one line summaries for Wavefront alerts\n\n``` \n  $ wavectl show alert\n  ID               NAME                                                                                     STATUS                              SEVERITY    \n  1530723441304    Kubernetes - Node Network Utilization - HIGH (Prod)                                      CHECKING                            WARN      \n  1530723441442    Kubernetes - Node Cpu Utilization - HIGH (Prod)                                          CHECKING                            WARN      \n  1530723441589    Kubernetes - Node Memory Swap Utilization - HIGH (Prod)                                  SNOOZED                             WARN      \n  ...\n```\n\n### Show json state of alerts\n\n``` \n  $ wavectl show -o json alert\n  {\n      \"additionalInformation\": \"This alert tracks the used network bandwidth percentage for all the compute-* (compute-master and compute-node) machines. If the cpu utilization exceeds 80%, this alert fires.\",\n      \"condition\": \"ts(proc.net.percent,server_type=\\\"compute-*\\\" and env=\\\"live\\\") \u003e 80\",\n      \"displayExpression\": \"ts(proc.net.percent,server_type=\\\"compute-*\\\" and env=\\\"live\\\")\",\n      \"id\": \"1530723441304\",\n      \"minutes\": 2,\n      \"name\": \"Kubernetes - Node Network Utilization - HIGH (Prod)\",\n      \"resolveAfterMinutes\": 2,\n      \"severity\": \"WARN\",\n      \"tags\": {\n          \"customerTags\": [\n              \"kubernetes\",\n              \"skynet\"\n          ]\n      },\n      \"target\": \"pd: 07fe9ebacf8c44e881ea2f6e44dbf2d2\"\n  }\n  {\n      \"additionalInformation\": \"This alert tracks the used cpu percentage for all the compute-* (compute-master and compute-node) machines. If the cpu utilization exceeds 80%, this alert fires.\",\n  ...\n```\n\n### Modify a dashboard's json and write it back to Wavefront\n\n``` \n  $\u003e vim ./metadata-dashboard.json    # Modify the json state of a dashboard\n  $\u003e wavectl push ./metadata-dashboard.json  dashboard  # Write the new version to Wavefront\n\n  Replaced dashboard(s):\n  ID              NAME            DESCRIPTION                                \n  metadata-php    Metadata PHP    Monitors for Metadata in the PHP webapp\n```\n\n## Example Use Cases\n\n  - [Command line operations on your alerts, dashboards](doc/CommandLine.md)\n\n  - [Advanced grep in your alerts and dashboards](doc/AdvancedGrep.md)\n\n  - [Launch Wavefront GUI via `wavectl`](doc/BrowserIntegration.md)\n\n  - [Repetitive editing of alerts, dashboards](doc/RepetitiveEditing.md)\n\n  - [Simple templating of alerts, dashboards with `wavectl`](doc/Templating.md)\n\n  - [Git integration](doc/GitIntegration.md)\n\n  - [Easy configuration of `wavectl`](doc/WavectlConfig.md)\n\n## [Command Reference](doc/CommandReference.md)\n\n## Installation\n\nTo install the latest release:\n\n``` \n   pip install wavectl\n```\n\nTo install from the master branch in github:\n\n``` \n   pip install git+https://github.com/box/wavectl.git\n```\n\nThe master branch may contain unreleased features or bug fixes. The master branch *should* always stay stable.\n\n## A note about Performance\n\n`wavectl`'s execution time depends on the number of alerts or dashboards you have in Wavefront. All [resource filtering](doc/CommandReference.md#resource-options) except the `--customerTag, -t` option is done on the client side. This enables the powerful regular expression matching on your results. But if your organization has thousands of alerts and dashboards, the data size may overwhelm the `wavectl` execution time.\n\nIf your organization has a lot of alerts and dashboards in Wavefront we strongly recommend to use `--customerTag` option in your commands. The filtering based on customerTag is done on the Wavefront server side. With `--customerTags` option, wavectl client will only receive data about alerts/dashboards if they are tagged with all of the specified tags. This reduces the data size processed by wavectl and results in faster execution.\n\n## Notes\n\nIf you could not find what you were looking for please consider [contributing](CONTRIBUTING.md). You could also take a look at [another](https://github.com/wavefrontHQ/ruby-client/blob/master/README-cli.md) CLI implementation for Wavefront. That one is written by Wavefront and mirrors their web api more closely. This `wavectl` CLI has evolved from our use cases.\n\n`wavectl` is designed to add automation, command line access to Wavefront data that is **human generated**. Initial examples are alerts and dashboards. We see those as more permanent, slow changing state in Wavefront. `wavectl` is not optimized to read, write time series data to Wavefront or any other data that is ingested by Wavefront at real time production workload scale.\n\n## Support\n\nNeed to contact us directly? Email oss@box.com and be sure to include the name of this project in the subject.\n\n## Copyright and License\n\nCopyright 2018 Box, Inc. All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at\n\n``` \n  http://www.apache.org/licenses/LICENSE-2.0\n```\n\nUnless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbox%2Fwavectl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbox%2Fwavectl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbox%2Fwavectl/lists"}