Skip to content

Commit

Permalink
Merge branch 'Seanstoppable-datadog'
Browse files Browse the repository at this point in the history
  • Loading branch information
senorprogrammer committed Aug 22, 2018
2 parents 9f5a33d + 4f3f7ce commit b6edff1
Show file tree
Hide file tree
Showing 103 changed files with 17,608 additions and 94 deletions.
17 changes: 17 additions & 0 deletions Gopkg.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions Gopkg.toml
Original file line number Diff line number Diff line change
Expand Up @@ -92,3 +92,8 @@
[prune]
go-tests = true
unused-packages = true


[[constraint]]
branch = "master"
name = "github.com/zorkian/go-datadog-api"
56 changes: 56 additions & 0 deletions _site/content/modules/datadog.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
---
title: "Datadog"
date: 2018-08-18T00:00:00Z
draft: false
weight: 60
---

Connects to the Datadog API and displays alerting modules.

## Source Code

```bash
wtf/datadog/
```

## Configuration

```yaml
datadog:
apiKey: "<yourapikey>"
applicationKey: "<yourapplicationkey>"
enabled: true
monitors:
tags:
- "team:ops"
position:
top: 4
left: 3
height: 1
width: 2
```
### Attributes
`apiKey` <br />
Value: Your <a href="https://docs.datadoghq.com/api/?lang=python#overview">Datadog API</a> key.

`applicationKey` <br />
Value: Your <a href="https://docs.datadoghq.com/api/?lang=python#overview">Datadog Application</a> key.

`monitors` <br />
Configuration for the monitors functionality.

`tags` <br />
Array of tags you want to query monitors by.

`enabled` <br />
Determines whether or not this module is executed and if its data displayed onscreen. <br />
Values: `true`, `false`.

`position` <br />
Defines where in the grid this module's widget will be displayed. <br />

`refreshInterval` <br />
How often, in seconds, this module will update its data. <br />
Values: A positive integer, `0..n`.
Binary file added _site/static/imgs/modules/datadog_error.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added _site/static/imgs/modules/datadog_ok.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
34 changes: 34 additions & 0 deletions datadog/client.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package datadog

import (
"os"

"github.com/senorprogrammer/wtf/wtf"
datadog "github.com/zorkian/go-datadog-api"
)

// Monitors returns a list of newrelic monitors
func Monitors() ([]datadog.Monitor, error) {
client := datadog.NewClient(apiKey(), applicationKey())

monitors, err := client.GetMonitorsByTags(wtf.ToStrs(wtf.Config.UList("wtf.mods.datadog.monitors.tags")))
if err != nil {
return nil, err
}

return monitors, nil
}

func apiKey() string {
return wtf.Config.UString(
"wtf.mods.datadog.apiKey",
os.Getenv("WTF_DATADOG_API_KEY"),
)
}

func applicationKey() string {
return wtf.Config.UString(
"wtf.mods.datadog.applicationKey",
os.Getenv("WTF_DATADOG_APPLICATION_KEY"),
)
}
73 changes: 73 additions & 0 deletions datadog/widget.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
package datadog

import (
"fmt"

"github.com/senorprogrammer/wtf/wtf"
datadog "github.com/zorkian/go-datadog-api"
)

type Widget struct {
wtf.TextWidget
}

func NewWidget() *Widget {
widget := Widget{
TextWidget: wtf.NewTextWidget("Datadog", "datadog", false),
}

return &widget
}

/* -------------------- Exported Functions -------------------- */

func (widget *Widget) Refresh() {
monitors, monitorErr := Monitors()

widget.UpdateRefreshedAt()
widget.View.SetTitle(widget.ContextualTitle(fmt.Sprintf("%s", widget.Name)))
widget.View.Clear()

var content string
if monitorErr != nil {
widget.View.SetWrap(true)
content = monitorErr.Error()
} else {
widget.View.SetWrap(false)
content = widget.contentFrom(monitors)
}

widget.View.SetText(content)
}

/* -------------------- Unexported Functions -------------------- */

func (widget *Widget) contentFrom(monitors []datadog.Monitor) string {
var str string

triggeredMonitors := []datadog.Monitor{}

for _, monitor := range monitors {
state := *monitor.OverallState
switch state {
case "Alert":
triggeredMonitors = append(triggeredMonitors, monitor)
}
}
if len(triggeredMonitors) > 0 {
str = str + fmt.Sprintf(
" %s\n",
"[red]Triggered Monitors[white]",
)
for _, triggeredMonitor := range triggeredMonitors {
str = str + fmt.Sprintf("[red] %s\n", *triggeredMonitor.Name)
}
} else {
str = str + fmt.Sprintf(
" %s\n",
"[green]No Triggered Monitors[white]",
)
}

return str
}
9 changes: 8 additions & 1 deletion docs/404.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<meta name="generator" content="Hugo 0.46" />
<meta name="generator" content="Hugo 0.47.1" />
<title>404 Page not found :: WTF - the terminal dashboard</title>
<link rel="shortcut icon" href="/images/favicon.png" type="image/x-icon" />
<link href="/css/font-awesome.min.css" rel="stylesheet">
Expand Down Expand Up @@ -169,6 +169,13 @@
</div>
</li>
</ul>
</li>
<li data-nav-id="/modules/datadog/" class="dd-item">
<div>
<a href="/modules/datadog/">
Datadog
</a><i class="fa fa-circle-thin read-icon"></i>
</div>
</li>
<li data-nav-id="/modules/gerrit/" class="dd-item">
<div>
Expand Down
9 changes: 8 additions & 1 deletion docs/categories/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<meta name="generator" content="Hugo 0.46" />
<meta name="generator" content="Hugo 0.47.1" />
<title>Categories :: WTF - the terminal dashboard</title>
<link rel="shortcut icon" href="/images/favicon.png" type="image/x-icon" />
<link href="/css/font-awesome.min.css" rel="stylesheet">
Expand Down Expand Up @@ -169,6 +169,13 @@
</div>
</li>
</ul>
</li>
<li data-nav-id="/modules/datadog/" class="dd-item">
<div>
<a href="/modules/datadog/">
Datadog
</a><i class="fa fa-circle-thin read-icon"></i>
</div>
</li>
<li data-nav-id="/modules/gerrit/" class="dd-item">
<div>
Expand Down
2 changes: 1 addition & 1 deletion docs/categories/page/1/index.html
Original file line number Diff line number Diff line change
@@ -1 +1 @@
<!DOCTYPE html><html><head><title>https://wtfutil.com/categories/</title><link rel="canonical" href="https://wtfutil.com/categories/"/><meta name="robots" content="noindex"><meta http-equiv="content-type" content="text/html; charset=utf-8" /><meta http-equiv="refresh" content="0; url=https://wtfutil.com/categories/" /></head></html>
<!DOCTYPE html><html><head><title>https://wtfutil.com/categories/</title><link rel="canonical" href="https://wtfutil.com/categories/"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=https://wtfutil.com/categories/" /></head></html>
9 changes: 8 additions & 1 deletion docs/configuration/attributes/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<meta name="generator" content="Hugo 0.46" />
<meta name="generator" content="Hugo 0.47.1" />
<title>Attributes :: WTF - the terminal dashboard</title>
<link rel="shortcut icon" href="/images/favicon.png" type="image/x-icon" />
<link href="/css/font-awesome.min.css" rel="stylesheet">
Expand Down Expand Up @@ -170,6 +170,13 @@
</div>
</li>
</ul>
</li>
<li data-nav-id="/modules/datadog/" class="dd-item">
<div>
<a href="/modules/datadog/">
Datadog
</a><i class="fa fa-circle-thin read-icon"></i>
</div>
</li>
<li data-nav-id="/modules/gerrit/" class="dd-item">
<div>
Expand Down
9 changes: 8 additions & 1 deletion docs/configuration/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<meta name="generator" content="Hugo 0.46" />
<meta name="generator" content="Hugo 0.47.1" />
<title>Configuration :: WTF - the terminal dashboard</title>
<link rel="shortcut icon" href="/images/favicon.png" type="image/x-icon" />
<link href="/css/font-awesome.min.css" rel="stylesheet">
Expand Down Expand Up @@ -170,6 +170,13 @@
</div>
</li>
</ul>
</li>
<li data-nav-id="/modules/datadog/" class="dd-item">
<div>
<a href="/modules/datadog/">
Datadog
</a><i class="fa fa-circle-thin read-icon"></i>
</div>
</li>
<li data-nav-id="/modules/gerrit/" class="dd-item">
<div>
Expand Down
9 changes: 8 additions & 1 deletion docs/configuration/iterm2/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<meta name="generator" content="Hugo 0.46" />
<meta name="generator" content="Hugo 0.47.1" />
<title>iTerm2 :: WTF - the terminal dashboard</title>
<link rel="shortcut icon" href="/images/favicon.png" type="image/x-icon" />
<link href="/css/font-awesome.min.css" rel="stylesheet">
Expand Down Expand Up @@ -170,6 +170,13 @@
</div>
</li>
</ul>
</li>
<li data-nav-id="/modules/datadog/" class="dd-item">
<div>
<a href="/modules/datadog/">
Datadog
</a><i class="fa fa-circle-thin read-icon"></i>
</div>
</li>
<li data-nav-id="/modules/gerrit/" class="dd-item">
<div>
Expand Down
9 changes: 8 additions & 1 deletion docs/getting_started/glossary/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<meta name="generator" content="Hugo 0.46" />
<meta name="generator" content="Hugo 0.47.1" />
<title>Glossary :: WTF - the terminal dashboard</title>
<link rel="shortcut icon" href="/images/favicon.png" type="image/x-icon" />
<link href="/css/font-awesome.min.css" rel="stylesheet">
Expand Down Expand Up @@ -170,6 +170,13 @@
</div>
</li>
</ul>
</li>
<li data-nav-id="/modules/datadog/" class="dd-item">
<div>
<a href="/modules/datadog/">
Datadog
</a><i class="fa fa-circle-thin read-icon"></i>
</div>
</li>
<li data-nav-id="/modules/gerrit/" class="dd-item">
<div>
Expand Down
9 changes: 8 additions & 1 deletion docs/getting_started/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<meta name="generator" content="Hugo 0.46" />
<meta name="generator" content="Hugo 0.47.1" />
<title>Getting Started :: WTF - the terminal dashboard</title>
<link rel="shortcut icon" href="/images/favicon.png" type="image/x-icon" />
<link href="/css/font-awesome.min.css" rel="stylesheet">
Expand Down Expand Up @@ -170,6 +170,13 @@
</div>
</li>
</ul>
</li>
<li data-nav-id="/modules/datadog/" class="dd-item">
<div>
<a href="/modules/datadog/">
Datadog
</a><i class="fa fa-circle-thin read-icon"></i>
</div>
</li>
<li data-nav-id="/modules/gerrit/" class="dd-item">
<div>
Expand Down
Loading

0 comments on commit b6edff1

Please sign in to comment.