Code Monkey home page Code Monkey logo

opsgenie-lamp's People

Contributors

atodmal avatar cglrkn avatar crodjer avatar djmgit avatar erenkzly avatar faziletozer avatar mbaris avatar metehanozturk avatar mustafanacar avatar prakhar-mudaiya avatar smcavoy-travelbird avatar tubaozturk avatar tubaozturk92 avatar vamshikanduri avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

opsgenie-lamp's Issues

after go install, get the following error.

command/schedule_cmd.go:4:2: cannot find package "context" in any of:
/home/test/go/src/context (from $GOROOT)
/home/test/src/context (from $GOPATH)
../../urfave/cli/docs.go:11:2: cannot find package "github.com/cpuguy83/go-md2man/v2/md2man" in any of:
/home/test/go/src/github.com/cpuguy83/go-md2man/v2/md2man (from $GOROOT)
/home/test/src/github.com/cpuguy83/go-md2man/v2/md2man (from $GOPATH)
../../../golang.org/x/sys/unix/affinity_linux.go:10:2: cannot find package "math/bits" in any of:
/home/test/go/src/math/bits (from $GOROOT)
/home/test/src/math/bits (from $GOPATH)

Can't attach files to alerts (413 - not a multipart request)

Not sure if I am structuring this attachment correctly, the documentation is a little unclear here. This is what happens:

$ lamp attachFile --config /usr/local/etc/lamp.conf --alertId $alert_id --filePath ./test2 --fileName test
2021/03/12 22:36:32 INFO: Logging to file is disabled, To enable Logging to file Please specify logPath in configuration
INFO[2021-03-12T22:36:32.64567004Z] Client is configured with ApiUrl: api.opsgenie.com, LogLevel: trace, RetryMaxCount: 4
DEBU[2021-03-12T22:36:32.645771754Z] Starting to process Request &{BaseRequest:{} IdentifierType:0 IdentifierValue:8e77890b-cdcd-4163-afc8-03ee3b39d6e0 FileName:test FilePath:./test2 User: IndexFile:}: to send: /v2/alerts/8e77890b-cdcd-4163-afc8-03ee3b39d6e0/attachments
ERRO[2021-03-12T22:36:32.799184329Z] Error occurred with Status code: 413, Message: Current request is not a multipart request, Took: 0.000000, RequestId: e966bd4e-864f-45fc-824e-b22cf17d2c78
2021/03/12 22:36:32 ERROR : Error occurred with Status code: 413, Message: Current request is not a multipart request, Took: 0.000000, RequestId: e966bd4e-864f-45fc-824e-b22cf17d2c78

The contents of test2 above:

$ cat test2
one
two
three

Someone else reported a similar issue in #20 but it was closed without being addressed.

incidents support ?

recently opsgenie got incident support not so expensive plan. Should this tool get support for managing them ?

Versioning Disparity

When you download version 2.6.0 from docs link, the executable for Linux is still versioned 2.5.1 even thought the file is listed 2.6.0, not sure if that is the right versioning / code-base. Also, the Mac version is 2.2.2? It is very tough to know what I am looking at or which version is even relevant because none of these match releases in github?

Mac

Downloads/opsgenie-lamp$ ./opsgenie-lamp help
NAME:
   lamp - Command line interface for OpsGenie

USAGE:
   opsgenie-lamp [global options] command [command options] [arguments...]

VERSION:
   2.2.2

Linux

bash-4.4# ./opsgenie-lamp help
NAME:
   lamp - Command line interface for OpsGenie

USAGE:
   opsgenie-lamp [global options] command [command options] [arguments...]

VERSION:
   2.5.1

Add support for incidents

The tool setup on incidents is pretty limited at this point. It would be appreciated if you could add support to the lamp stack for pulling and updating incidents.

attachFile fails with 413 status

Attempting to attach a file fails repeatedly for me, even with a file that is just 3 characters:

lamp attachFile --id 'pending_ansible_changes_test' --identifier alias --filePath '/Users/jeff/dev/ansible/toolboxglb.txt.zip' --apiKey 'REDACTED' --fileName ./t

INFO[2020-02-10T10:49:56.359621-05:00] Client is configured with ApiUrl: api.opsgenie.com, LogLevel: info, RetryMaxCount: 4
ERRO[2020-02-10T10:49:57.053807-05:00] Error occurred with Status code: 413, Message: The current request is not a multipart request, Took: 0.003000, RequestId: 05561fb5-c5bc-4da3-8e41-5b1525ab01ea
Error occurred with Status code: 413, Message: The current request is not a multipart request, Took: 0.003000, RequestId: 05561fb5-c5bc-4da3-8e41-5b1525ab01ea

This is with the latest OS X client from the docs and on Linux with the same.

countAlerts prints no count

If I use countAlerts to return the number of alerts, it does not print out the number of alerts as expected. Changing countAlerts to listAlerts lists the expected alerts.

2024/04/23 14:20:29 INFO: Logging to file is disabled, To enable Logging to file Please specify logPath in configuration
INFO[2024-04-23T14:20:29.2690752+02:00] Client is configured with ApiUrl: api.opsgenie.com, LogLevel: info, RetryMaxCount: 4
2024/04/23 14:20:29 DEBUG : Alert Client created.
2024/04/23 14:20:29 DEBUG : Count alerts request prepared from flags, sending request to Opsgenie..
2024/04/23 14:20:30 INFO :

Output is not machine-readble and written to stderr

I installed this tool for the first time and wanted to share some usability issues I had.

  1. Command output is written to stderr. Expected: output is written to stdout. The 12 Factor CLI Apps blog post provides guidance on utilizing std input/output streams in a predictable manner.
  2. Command output is a log message. Expected: commands that produce JSON/YAML data should be written directly to output stream rather than through a log formatter.

Addressing this behavior would significantly improve the utility of this tool, especially for scripting and automation.

Key format is not valid

Hi,

opsgenie-lamp --version
lamp version 3.2.0

https://docs.opsgenie.com/docs/lamp-command-line-interface-for-opsgenie#configuration

  1. If none of the methods given above works, Lamp uses the default {{USER_HOME}}/.config/lamp.conf file as configuration

Your sample configuration is here https://github.com/opsgenie/opsgenie-lamp/blob/master/conf/lamp.conf.

I simply put created token into that file {{USER_HOME}}/.config/lamp.conf and this is result:

opsgenie-lamp listServices
2022/05/18 19:44:20 INFO: Logging to file is disabled, To enable Logging to file Please specify logPath in configuration
INFO[2022-05-18T19:44:20.963764+02:00] Client is configured with ApiUrl: api.opsgenie.com, LogLevel: info, RetryMaxCount: 4
ERRO[2022-05-18T19:44:21.665032+02:00] Error occurred with Status code: 422, Message: Key format is not valid!, Took: 0.000000, RequestId: 
2022/05/18 19:44:21 ERROR : Error occurred with Status code: 422, Message: Key format is not valid!, Took: 0.000000, RequestId: ```

attachFile does not work due to content type

I tested using the attachFile command and receive an error:
Status code: 413, Message: Current request is not a multipart request.

I am primarily a JavaScript and .NET programmer but I have done a little bit of Go so I looked and I think this is an issue where the correct Content type is not being set in the code. But I only looked briefly so I could very well be wrong. Let me know if this works for other people.

improvement: Handle multiple configuration formats

Hi,

I am working with Lamp to create alerts from a workflow failure. I work with containers to do so and I really would like to be able to configure lamp from environment variables instead of a configuration file.

I do not know GO so I kind of relying on community to develop this feature, but I know there are some existing GO modules that provide this like spf13/viper..

Let me know if I can help our you need more informations.

Default configuration file locations to not follow Unix platform conventions

It's looking in ~/go/bin/conf/lamp.conf by default on MacOS, presumably Linux, too. This should probably be ~/.lamp.conf by default.

To get the home directory of a user, you can use os.UserHomeDir() or os/user.Current() from stdlib. I would probably lean towards the former.

That's the typical first place to look.

The current implementation looking at where the binary is being executed from, etc - this seems similar to some FHS behaviors as a fallback location if there is no user configuration file, but it should go up one directory, and the directory should be "etc" instead of "conf". There's a bunch of path manipulation there which should use functions like path.Join instead.

The main reason for this is that the first time you install a program like this, you need to set it up and so it's not great if it doesn't tell you where to set the API token, where the file should be created, and how to set up the file.

go get is broken

As of today, you can't use go-get to get the latest version of opsgenie-lamp:

go get github.com/opsgenie/opsgenie-lamp/...
# github.com/opsgenie/opsgenie-lamp/command
../../go/src/github.com/opsgenie/opsgenie-lamp/command/escalation_cmd.go:15:65: cannot use getConfigurations(c) (type *"github.com/opsgenie/opsgenie-lamp/vendor/github.com/opsgenie/opsgenie-go-sdk-v2/client".Config) as type *"github.com/opsgenie/opsgenie-go-sdk-v2/client".Config in argument to escalation.NewClient
../../go/src/github.com/opsgenie/opsgenie-lamp/command/escalation_cmd.go:45:17: cannot use &"github.com/opsgenie/opsgenie-lamp/vendor/github.com/opsgenie/opsgenie-go-sdk-v2/og".OwnerTeam literal (type *"github.com/opsgenie/opsgenie-lamp/vendor/github.com/opsgenie/opsgenie-go-sdk-v2/og".OwnerTeam) as type *"github.com/opsgenie/opsgenie-go-sdk-v2/og".OwnerTeam in assignment
../../go/src/github.com/opsgenie/opsgenie-lamp/command/escalation_cmd.go:83:4: cannot use escalationCondition[index] (type "github.com/opsgenie/opsgenie-lamp/vendor/github.com/opsgenie/opsgenie-go-sdk-v2/og".EscalationCondition) as type "github.com/opsgenie/opsgenie-go-sdk-v2/og".EscalationCondition in field value
../../go/src/github.com/opsgenie/opsgenie-lamp/command/escalation_cmd.go:84:4: cannot use notifyTypes[index] (type "github.com/opsgenie/opsgenie-lamp/vendor/github.com/opsgenie/opsgenie-go-sdk-v2/og".NotifyType) as type "github.com/opsgenie/opsgenie-go-sdk-v2/og".NotifyType in field value
../../go/src/github.com/opsgenie/opsgenie-lamp/command/escalation_cmd.go:85:4: cannot use "github.com/opsgenie/opsgenie-lamp/vendor/github.com/opsgenie/opsgenie-go-sdk-v2/og".Participant literal (type "github.com/opsgenie/opsgenie-lamp/vendor/github.com/opsgenie/opsgenie-go-sdk-v2/og".Participant) as type "github.com/opsgenie/opsgenie-go-sdk-v2/og".Participant in field value
../../go/src/github.com/opsgenie/opsgenie-lamp/command/escalation_cmd.go:168:17: cannot use &"github.com/opsgenie/opsgenie-lamp/vendor/github.com/opsgenie/opsgenie-go-sdk-v2/og".OwnerTeam literal (type *"github.com/opsgenie/opsgenie-lamp/vendor/github.com/opsgenie/opsgenie-go-sdk-v2/og".OwnerTeam) as type *"github.com/opsgenie/opsgenie-go-sdk-v2/og".OwnerTeam in assignment
../../go/src/github.com/opsgenie/opsgenie-lamp/command/team_cmd.go:15:53: cannot use getConfigurations(c) (type *"github.com/opsgenie/opsgenie-lamp/vendor/github.com/opsgenie/opsgenie-go-sdk-v2/client".Config) as type *"github.com/opsgenie/opsgenie-go-sdk-v2/client".Config in argument to team.NewClient

Maybe it's related to yesterdays PR: a76dfbc

Missing --alias at closeAlert since version 3.X

Hi,

With version 2.7.0 and older I created and closed alarms with alias.

This is not possible since version 3.X.
Since version 3.x the parameter alias is no longer available in closeAlert
Although it is documented like this:
https://docs.opsgenie.com/docs/lamp-command-line-interface-for-opsgenie#close-alert-command
Example:
opsgenie-lamp closeAlert --apiKey ab5454992-fabb2-4ba2-ad44f-1af65ds8b5c079 --alias appserver3Down

ERROR: "Error occured while executing command: flag provided but not defined: -alias"

Point two:
When I download the latest version (https://s3-us-west-2.amazonaws.com/opsgeniedownloads/repo/opsgenie-lamp-3.8.0.zip) and I display the version, it says: "lamp version 3.2.0".

Use of tags

Hello,

We are using the binary version 2.6 and discovered that there a version binaries version 3.2

We wanted to check to difference between both versions. However, only tag for version 3.1.1 and 3.1.2 are available preventing to get the changes.

Could you please put the corresponding tag or at least ensure tag are available for next version ?

Best Regards.

The ZIP versions do not work with an account on the EU instance

I cannot get lamp to work with an account on the EU instance, using the macOS ZIP package with the opsgenie.api.url = https://api.eu.opsgenie.com/ configuration variable set. Any request ends up with Client error occurred; Response Code: 401, Response Body: {"message":"Could not authenticate","took":0.0,"requestId":"…"} error message.

This works if the tool is built with GO with the source code, though.

Besides this discrepancy between the source and ZIP versions, the documentation should be updated to reveal that the configuration variable opsgenie.api.url = https://api.eu.opsgenie.com/ exists for and must be set by European customers.

Cannot use the name of a policy, only the ID.

Documentation says I can use either the name or the id of the policy:

--id value Id of the integration/policy that will be enabled. Either id or name must be provided

But when I use the name of the policy I get this error:

INFO[2019-08-07T12:24:58.5856735+02:00] Client is configured with ApiUrl: api.opsgenie.com, LogLevel: trace, RetryMaxCount: 4
DEBU[2019-08-07T12:24:58.5862319+02:00] Starting to process Request &{BaseRequest:{} Id:rolling_restart_jmbpapp11 TeamId:a2ac9607-3836-45bb-a88e-5a671498e19e Type:alert}: to send: /v2/policies/rolling_restart_jmbpapp11/enable
ERRO[2019-08-07T12:24:58.9699229+02:00] Error occurred with Status code: 404, Message: Policy not found with id [rolling_restart_jmbpapp11] and team id [a2ac9607-3836-45bb-a88e-5a671498e19e], Took: 0.003000, RequestId: 2c48a1b9-9f6c-4dee-bb34-1760029c3f25
Error occurred with Status code: 404, Message: Policy not found with id [rolling_restart_jmbpapp11] and team id [a2ac9607-3836-45bb-a88e-5a671498e19e], Took: 0.003000, RequestId: 2c48a1b9-9f6c-4dee-bb34-1760029c3f25

Same command with the id of the policy does complete successfully:

DEBU[2019-08-07T12:25:47.5706651+02:00] Starting to process Request &{BaseRequest:{} Id:17fede29-b0e9-4c21-a901-8818f891454b TeamId:a2ac9607-3836-45bb-a88e-5a671498e19e Type:alert}: to send: /v2/policies/17fede29-b0e9-4c21-a901-8818f891454b/enable
DEBU[2019-08-07T12:25:48.1805478+02:00] Request processed. The result: &{ResultMetadata:{RequestId:c9db0283-9391-4687-bdb9-e5477b9a5aaa ResponseTime:0.13 RateLimitState:OK RateLimitReason: RateLimitPeriod: RetryCount:0} Result:Enabled}
Policy enabled successfuly

Name of the policy is correct:
{"id":"17fede29-b0e9-4c21-a901-8818f891454b","name":"rolling_restart_jmbpapp11"

Also tried --name, different error:
Incorrect Usage: flag provided but not defined: -name

Does not `go get` install clean on newer `go`s

This project is still using dep, without checked-in module vendoring, and the command that the instructions list to install it does not work due to either upstream module changes, or perhaps the subtle differences betweenthe alternate approaches to resolving dependencies between dep and go modules.

$ go get github.com/opsgenie/opsgenie-lamp/...
go: finding github.com/opsgenie/opsgenie-lamp latest
go: downloading github.com/opsgenie/opsgenie-lamp v0.0.0-20190823114531-67ad89ea4143
go: extracting github.com/opsgenie/opsgenie-lamp v0.0.0-20190823114531-67ad89ea4143
go: finding github.com/ccding/go-config-reader latest
go: finding github.com/urfave/cli v1.22.1
go: finding github.com/opsgenie/opsgenie-go-sdk-v2 latest
go: downloading github.com/urfave/cli v1.22.1
go: downloading gopkg.in/yaml.v2 v2.2.1
go: extracting github.com/urfave/cli v1.22.1
go: extracting gopkg.in/yaml.v2 v2.2.1
go: downloading github.com/ccding/go-config-reader v0.0.0-20130817225950-8b6c2b50197f
go: extracting github.com/ccding/go-config-reader v0.0.0-20130817225950-8b6c2b50197f
go: downloading github.com/opsgenie/opsgenie-go-sdk-v2 v0.0.0-20190925114845-8388ea1fcf79
go: extracting github.com/opsgenie/opsgenie-go-sdk-v2 v0.0.0-20190925114845-8388ea1fcf79
go: downloading github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d
go: downloading github.com/sirupsen/logrus v0.0.0-20170620144510-3d4380f53a34
go: extracting github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d
go: finding github.com/hashicorp/go-retryablehttp v0.6.2
go: downloading github.com/russross/blackfriday/v2 v2.0.1
go: downloading github.com/hashicorp/go-retryablehttp v0.6.2
go: extracting github.com/russross/blackfriday/v2 v2.0.1
go: downloading github.com/shurcooL/sanitized_anchor_name v1.0.0
go: extracting github.com/shurcooL/sanitized_anchor_name v1.0.0
go: extracting github.com/hashicorp/go-retryablehttp v0.6.2
go: extracting github.com/sirupsen/logrus v0.0.0-20170620144510-3d4380f53a34
go: downloading golang.org/x/sys v0.0.0-20190412213103-97732733099d
go: extracting golang.org/x/sys v0.0.0-20190412213103-97732733099d
go: downloading github.com/hashicorp/go-cleanhttp v0.5.1
go: downloading github.com/hashicorp/go-hclog v0.9.2
go: extracting github.com/hashicorp/go-cleanhttp v0.5.1
go: extracting github.com/hashicorp/go-hclog v0.9.2
go: finding github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d
go: finding github.com/sirupsen/logrus v0.0.0-20170620144510-3d4380f53a34
go: finding github.com/hashicorp/go-cleanhttp v0.5.1
go: finding github.com/hashicorp/go-hclog v0.9.2
go: finding github.com/russross/blackfriday/v2 v2.0.1
go: finding github.com/shurcooL/sanitized_anchor_name v1.0.0
# github.com/opsgenie/opsgenie-go-sdk-v2/client
/Users/samv/go/pkg/mod/github.com/opsgenie/[email protected]/client/client.go:177:15: conf.Logger.SetLevel undefined (type *logrus.Logger has no field or method SetLevel)
/Users/samv/go/pkg/mod/github.com/opsgenie/[email protected]/client/client.go:179:14: conf.Logger.SetFormatter undefined (type *logrus.Logger has no field or method SetFormatter)
/Users/samv/go/pkg/mod/github.com/opsgenie/[email protected]/client/client.go:249:23: client.Config.Logger.GetLevel undefined (type *logrus.Logger has no field or method GetLevel)
/Users/samv/go/pkg/mod/github.com/opsgenie/[email protected]/client/config.go:90:14: undefined: logrus.TraceLevel

You can upgrade the project to modules by upgrading go and running go mod init. Commit your go.mod and mod.sum (IIRC) files and start adding dependencies with just go get within the repo.

Completely unable to use lamp on MacOS

go version: go1.13.4 darwin/amd64
macos version: 10.15.1

Attempts to use the compiled binary from opsgenie-integration/opsgenie-lamp/opsgenie-lamp.zip result in the following error:

Failed to execute process './opsgenie-lamp'. Reason:
exec: Bad CPU type in executable

Attempts to go get ... result in the following errors:

go get github.com/opsgenie/opsgenie-lamp/...
# github.com/opsgenie/opsgenie-lamp
../go/src/github.com/opsgenie/opsgenie-lamp/lamp.go:17:15: cannot use cli.BoolFlag literal (type cli.BoolFlag) as type cli.Flag in array or slice literal:
	cli.BoolFlag does not implement cli.Flag (Apply method has pointer receiver)
../go/src/github.com/opsgenie/opsgenie-lamp/lamp.go:21:17: cannot use cli.StringFlag literal (type cli.StringFlag) as type cli.Flag in array or slice literal:
	cli.StringFlag does not implement cli.Flag (Apply method has pointer receiver)
../go/src/github.com/opsgenie/opsgenie-lamp/lamp.go:25:17: cannot use cli.StringFlag literal (type cli.StringFlag) as type cli.Flag in array or slice literal:
	cli.StringFlag does not implement cli.Flag (Apply method has pointer receiver)
../go/src/github.com/opsgenie/opsgenie-lamp/lamp.go:29:17: cannot use cli.StringFlag literal (type cli.StringFlag) as type cli.Flag in array or slice literal:
	cli.StringFlag does not implement cli.Flag (Apply method has pointer receiver)
../go/src/github.com/opsgenie/opsgenie-lamp/lamp.go:37:18: cannot use cli.StringFlag literal (type cli.StringFlag) as type cli.Flag in array or slice literal:
	cli.StringFlag does not implement cli.Flag (Apply method has pointer receiver)
../go/src/github.com/opsgenie/opsgenie-lamp/lamp.go:41:18: cannot use cli.StringFlag literal (type cli.StringFlag) as type cli.Flag in array or slice literal:
	cli.StringFlag does not implement cli.Flag (Apply method has pointer receiver)
../go/src/github.com/opsgenie/opsgenie-lamp/lamp.go:45:18: cannot use cli.StringFlag literal (type cli.StringFlag) as type cli.Flag in array or slice literal:
	cli.StringFlag does not implement cli.Flag (Apply method has pointer receiver)
../go/src/github.com/opsgenie/opsgenie-lamp/lamp.go:49:18: cannot use cli.StringFlag literal (type cli.StringFlag) as type cli.Flag in array or slice literal:
	cli.StringFlag does not implement cli.Flag (Apply method has pointer receiver)
../go/src/github.com/opsgenie/opsgenie-lamp/lamp.go:53:18: cannot use cli.StringFlag literal (type cli.StringFlag) as type cli.Flag in array or slice literal:
	cli.StringFlag does not implement cli.Flag (Apply method has pointer receiver)
../go/src/github.com/opsgenie/opsgenie-lamp/lamp.go:57:18: cannot use cli.StringFlag literal (type cli.StringFlag) as type cli.Flag in array or slice literal:
	cli.StringFlag does not implement cli.Flag (Apply method has pointer receiver)
../go/src/github.com/opsgenie/opsgenie-lamp/lamp.go:57:18: too many errors

Cannot go get opsgenie-lamp due to bad github.com/codegangsta/cli import

github.com/codegangsta/cli recently was renamed github.com/urfave/cli and as such go get opsgenie-lamp reports an error parsing go.mod.

go: github.com/opsgenie/opsgenie-lamp imports
	github.com/codegangsta/cli: github.com/codegangsta/[email protected]: parsing go.mod: unexpected module path "github.com/urfave/cli"

Fix is to change lamp.go and other files that import the renamed repo.

Api URL from configuration file is ignored

Hello

I'm using the latest version that is named as 3.1.4, but opsgenie-lamp --version gives me 3.2.0.

I've created configuration file at ~/.config/lamp.conf with following content

apiKey=<MY API KEY>
opsgenie.api.url=https://api.eu.opsgenie.com

But, this URL is ignored, the logs of a tool are giving me:

INFO[2023-02-06T18:51:56.930487813+02:00] Client is configured with ApiUrl: api.opsgenie.com, LogLevel: info, RetryMaxCount: 4

Also, I've tried to pass completely incorrect URL - the result is the same, this setting is not picked up by the tool.

apiKey=<MY API KEY>
opsgenie.api.url=https://qwe.asd

Unable to install

When I run

go get github.com/opsgenie/opsgenie-lamp/...

I get this message:

go: go.mod file not found in current directory or any parent directory.
'go get' is no longer supported outside a module.
	To build and install a command, use 'go install' with a version,
	like 'go install example.com/cmd@latest'
	For more information, see https://golang.org/doc/go-get-install-deprecation
	or run 'go help get' or 'go help install'.

Support creating/deleting/listing/enabling/disabling heartbeats

It would be great to be able to create, delete, list, enable and disable heartbeats to make it easier to maintain a number of endpoints via CLI.

For context, we maintain ~250 heartbeats, one for each cluster we manage, and while we have automated creation/deletion via a Kubernetes operator, sometimes a need comes up to check them and enable/disable for maintenance.

There is currently a heartbeat command, but it can only send pings to already existing and enabled heartbeat endpoints. It would probably make sense to re-factor it and move functionality into a subcommand like heartbeat ping in order to be able to add others, e.g. heartbeat create, heartbeat delete, etc. Or, what your preference for the UI be?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.