backup 4.0.6 → 4.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +2 -0
- data/lib/backup.rb +1 -0
- data/lib/backup/notifier/datadog.rb +116 -0
- data/lib/backup/version.rb +1 -1
- data/templates/cli/notifiers/datadog +57 -0
- metadata +18 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e7bc86c4dc89353c401df759462b0ba4348b707f
|
4
|
+
data.tar.gz: 3e08c40c56ec68a4dd60f7fa4f06f57d20f54965
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3f2f379cfd4b36b326487b9688c15d9eafc2c99f3676482b7773a9c79bbbd123396bc44b4f2535bd4cf8a483b8ff07d20cbd7b16359485f12d805dbb435b1217
|
7
|
+
data.tar.gz: 97c930d5f9dc687948e85b3cd622b47763af7d4cb86eff7edecd4f59e52ed9a2c481f6659f261a8c755ffae83cb927cd35a8ee236b8bf91ce61f18e86b47b23e
|
data/README.md
CHANGED
@@ -10,6 +10,8 @@ was built with modularity, extensibility and simplicity in mind.
|
|
10
10
|
|
11
11
|
[Installation][] · [Release Notes][] · [Documentation][]
|
12
12
|
|
13
|
+
Please use the Backup features [issue tracker](https://github.com/meskyanichi/backup-features/issues) to suggest new features.
|
14
|
+
Only use the Backup gem [issue tracker](https://github.com/meskyanichi/backup/issues) for bugs and other issues.
|
13
15
|
|
14
16
|
**Copyright (c) 2009-2014 [Michael van Rooijen][] ( [@meskyanichi][] )**
|
15
17
|
Released under the **MIT** [License](LICENSE.md).
|
data/lib/backup.rb
CHANGED
@@ -114,6 +114,7 @@ module Backup
|
|
114
114
|
autoload :Nagios, File.join(NOTIFIER_PATH, 'nagios')
|
115
115
|
autoload :FlowDock, File.join(NOTIFIER_PATH, 'flowdock')
|
116
116
|
autoload :Zabbix, File.join(NOTIFIER_PATH, 'zabbix')
|
117
|
+
autoload :DataDog, File.join(NOTIFIER_PATH, 'datadog')
|
117
118
|
end
|
118
119
|
|
119
120
|
##
|
@@ -0,0 +1,116 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'dogapi'
|
3
|
+
|
4
|
+
module Backup
|
5
|
+
module Notifier
|
6
|
+
class DataDog < Base
|
7
|
+
|
8
|
+
##
|
9
|
+
# The DataDog API key
|
10
|
+
attr_accessor :api_key
|
11
|
+
|
12
|
+
##
|
13
|
+
# The title of the event
|
14
|
+
attr_accessor :title
|
15
|
+
|
16
|
+
##
|
17
|
+
# The text information for the event
|
18
|
+
attr_accessor :text
|
19
|
+
|
20
|
+
##
|
21
|
+
# The timestamp for the event
|
22
|
+
attr_accessor :date_happened
|
23
|
+
|
24
|
+
##
|
25
|
+
# The priority of the event (low/normal)
|
26
|
+
attr_accessor :priority
|
27
|
+
|
28
|
+
##
|
29
|
+
# The host that generated the event
|
30
|
+
attr_accessor :host
|
31
|
+
|
32
|
+
##
|
33
|
+
# The tags for this host (should be an array)
|
34
|
+
attr_accessor :tags
|
35
|
+
|
36
|
+
##
|
37
|
+
# The alert_type of the event (error/warning/info/success)
|
38
|
+
attr_accessor :alert_type
|
39
|
+
|
40
|
+
##
|
41
|
+
# The aggregation_key for the event
|
42
|
+
attr_accessor :aggregation_key
|
43
|
+
|
44
|
+
##
|
45
|
+
# The source_type for the event (nagios, hudson, jenkins, user, my apps, feed, chef, puppet, git, bitbucket, fabric, capistrano)
|
46
|
+
attr_accessor :source_type_name
|
47
|
+
|
48
|
+
def initialize(model, &block)
|
49
|
+
super
|
50
|
+
instance_eval(&block) if block_given?
|
51
|
+
|
52
|
+
@title ||= default_title
|
53
|
+
@text ||= default_text
|
54
|
+
end
|
55
|
+
|
56
|
+
private
|
57
|
+
|
58
|
+
##
|
59
|
+
# Notify the user of the backup operation results.
|
60
|
+
#
|
61
|
+
# `status` indicates one of the following:
|
62
|
+
#
|
63
|
+
# `:success`
|
64
|
+
# : The backup completed successfully.
|
65
|
+
# : Notification will be sent if `on_success` is `true`.
|
66
|
+
#
|
67
|
+
# `:warning`
|
68
|
+
# : The backup completed successfully, but warnings were logged.
|
69
|
+
# : Notification will be sent if `on_warning` or `on_success` is `true`.
|
70
|
+
#
|
71
|
+
# `:failure`
|
72
|
+
# : The backup operation failed.
|
73
|
+
# : Notification will be sent if `on_warning` or `on_success` is `true`.
|
74
|
+
#
|
75
|
+
def notify!(status)
|
76
|
+
hash = {alert_type: default_alert_type(status)}
|
77
|
+
hash.store(:msg_title, @title)
|
78
|
+
hash.store(:date_happened, @date_happened) if @date_happened
|
79
|
+
hash.store(:priority, @priority) if @priority
|
80
|
+
hash.store(:host, @host) if @host
|
81
|
+
hash.store(:tags, @tags) if @tags
|
82
|
+
hash.store(:aggregation_key, @aggregation_key) if @aggregation_key
|
83
|
+
hash.store(:source_type_name, @source_type_name) if @source_type_name
|
84
|
+
hash.store(:alert_type, @alert_type) if @alert_type
|
85
|
+
send_event(hash)
|
86
|
+
end
|
87
|
+
|
88
|
+
# Dogapi::Client will raise an error if unsuccessful.
|
89
|
+
def send_event(hash)
|
90
|
+
client = Dogapi::Client.new(@api_key)
|
91
|
+
event = Dogapi::Event.new(@text, hash)
|
92
|
+
client.emit_event(event)
|
93
|
+
end
|
94
|
+
|
95
|
+
# set alert type
|
96
|
+
def default_alert_type(status)
|
97
|
+
case status
|
98
|
+
when :success then 'success'
|
99
|
+
when :warning then 'warning'
|
100
|
+
when :failure then 'error'
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
# set default title
|
105
|
+
def default_title
|
106
|
+
"Backup #{ model.label }"
|
107
|
+
end
|
108
|
+
|
109
|
+
# set default text
|
110
|
+
def default_text
|
111
|
+
"Backup Notification for #{ model.label }"
|
112
|
+
end
|
113
|
+
|
114
|
+
end
|
115
|
+
end
|
116
|
+
end
|
data/lib/backup/version.rb
CHANGED
@@ -0,0 +1,57 @@
|
|
1
|
+
##
|
2
|
+
# DataDog [Notifier]
|
3
|
+
#
|
4
|
+
notify_by DataDog do |datadog|
|
5
|
+
datadog.on_success = true
|
6
|
+
datadog.on_warning = true
|
7
|
+
datadog.on_failure = true
|
8
|
+
|
9
|
+
datadog.api_key = 'my_api_key'
|
10
|
+
|
11
|
+
##
|
12
|
+
# Optional
|
13
|
+
#
|
14
|
+
# Override Default Title
|
15
|
+
# Default is: "Backup #{:label}"
|
16
|
+
# datadog.title = "Backup #{:status}"
|
17
|
+
#
|
18
|
+
# Override Default Text
|
19
|
+
# Default is "Backup Notification for #{:label}"
|
20
|
+
# datadog.text = "Backup #{:status} - #{:message}"
|
21
|
+
#
|
22
|
+
# Provide a hostname to associate this backup to
|
23
|
+
# Default is nil
|
24
|
+
# datadog.host = 'db.example.com'
|
25
|
+
#
|
26
|
+
# Add Tags to the Event
|
27
|
+
# Default is nil
|
28
|
+
# valid option is an Array
|
29
|
+
# datadog.tags = ['backup', 'env:production']
|
30
|
+
#
|
31
|
+
# Override the Alert Type
|
32
|
+
# Default is based on the :status of the backup:
|
33
|
+
# :success => 'success'
|
34
|
+
# :warning => 'warning'
|
35
|
+
# :failure => 'error'
|
36
|
+
# valid options are: 'info', 'success', 'warning', 'error'
|
37
|
+
# datadog.alert_type = 'info'
|
38
|
+
#
|
39
|
+
# Add a Source Type
|
40
|
+
# Default is nil
|
41
|
+
# see api docs for valid source_type_names
|
42
|
+
# datadog.source_type_name = 'my apps'
|
43
|
+
#
|
44
|
+
# Override the Priority Level
|
45
|
+
# Default is 'normal'
|
46
|
+
# valid options are: 'normal' or 'low'
|
47
|
+
# datadog.priority = 'low'
|
48
|
+
#
|
49
|
+
# Override the Event Time (must be a unix Timestamp)
|
50
|
+
# Default is Time.now.to_i
|
51
|
+
# datadog.date_happened = Time.now.to_i
|
52
|
+
#
|
53
|
+
# Add an Aggregation Key
|
54
|
+
# Default is nil
|
55
|
+
# max length allowed is 100 characters
|
56
|
+
# datadog.aggregation_key = 'my_aggregation'
|
57
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: backup
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.0.
|
4
|
+
version: 4.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael van Rooijen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-10-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|
@@ -80,6 +80,20 @@ dependencies:
|
|
80
80
|
- - '='
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: 0.0.3
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: dogapi
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - '='
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 1.11.0
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - '='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 1.11.0
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
98
|
name: dropbox-sdk
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -606,6 +620,7 @@ files:
|
|
606
620
|
- lib/backup/model.rb
|
607
621
|
- lib/backup/notifier/base.rb
|
608
622
|
- lib/backup/notifier/campfire.rb
|
623
|
+
- lib/backup/notifier/datadog.rb
|
609
624
|
- lib/backup/notifier/flowdock.rb
|
610
625
|
- lib/backup/notifier/hipchat.rb
|
611
626
|
- lib/backup/notifier/http_post.rb
|
@@ -661,6 +676,7 @@ files:
|
|
661
676
|
- templates/cli/model
|
662
677
|
- templates/cli/notifier/zabbix
|
663
678
|
- templates/cli/notifiers/campfire
|
679
|
+
- templates/cli/notifiers/datadog
|
664
680
|
- templates/cli/notifiers/flowdock
|
665
681
|
- templates/cli/notifiers/hipchat
|
666
682
|
- templates/cli/notifiers/http_post
|