riemann-bacula 1.0.0 → 1.2.0
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/.github/workflows/ci.yml +1 -1
- data/CHANGELOG.md +26 -0
- data/README.md +4 -0
- data/Rakefile +2 -1
- data/lib/riemann/tools/bacula/version.rb +1 -1
- data/lib/riemann/tools/bacula.rb +26 -9
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d6352841033d7fa669793cba957a59cc4fa35369d2866914dbb782bb3b507f97
|
4
|
+
data.tar.gz: 66826e73f558d5f2c788d0a5b3b60a413b420f76e47957a517727f51ae7ec15c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3d1888b9a7920c0dab4b5c3c30ae8b06acf5ed8e54eaa70e6e848db3ff1dd1087282b42b2a0be1a857935e6497ff662e445383c2be07276a033d7a1ce84fb042
|
7
|
+
data.tar.gz: 74117f74b1181b5d619e27d04f888627ee1d212a9fc66aa78a657374847f8fad9a3b1c999976126db5fab600ef5698a9b699b4d562997a39bbc6940bd3850acb
|
data/.github/workflows/ci.yml
CHANGED
@@ -44,7 +44,7 @@ jobs:
|
|
44
44
|
run: bundle exec rake
|
45
45
|
- name: Run tests and upload coverage to Code Climate
|
46
46
|
if: ${{ matrix.ruby == '3.0' }}
|
47
|
-
uses: paambaati/codeclimate-action@v3.
|
47
|
+
uses: paambaati/codeclimate-action@v3.1.1
|
48
48
|
env:
|
49
49
|
CC_TEST_REPORTER_ID: ${{ secrets.CODECLIMATE_TOKEN }}
|
50
50
|
with:
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
# Changelog
|
2
|
+
|
3
|
+
## [v1.2.0](https://github.com/opus-codium/riemann-bacula/tree/v1.2.0) (2022-10-27)
|
4
|
+
|
5
|
+
[Full Changelog](https://github.com/opus-codium/riemann-bacula/compare/v1.1.0...v1.2.0)
|
6
|
+
|
7
|
+
**Implemented enhancements:**
|
8
|
+
|
9
|
+
- Embed more metadata in events [\#5](https://github.com/opus-codium/riemann-bacula/pull/5) ([smortex](https://github.com/smortex))
|
10
|
+
|
11
|
+
## [v1.1.0](https://github.com/opus-codium/riemann-bacula/tree/v1.1.0) (2022-10-20)
|
12
|
+
|
13
|
+
[Full Changelog](https://github.com/opus-codium/riemann-bacula/compare/v1.0.0...v1.1.0)
|
14
|
+
|
15
|
+
**Implemented enhancements:**
|
16
|
+
|
17
|
+
- Join wrapped lines [\#3](https://github.com/opus-codium/riemann-bacula/pull/3) ([smortex](https://github.com/smortex))
|
18
|
+
- Add support for parsing restore reports [\#1](https://github.com/opus-codium/riemann-bacula/pull/1) ([smortex](https://github.com/smortex))
|
19
|
+
|
20
|
+
**Fixed bugs:**
|
21
|
+
|
22
|
+
- Fix parsing of backups of TB of data [\#2](https://github.com/opus-codium/riemann-bacula/pull/2) ([smortex](https://github.com/smortex))
|
23
|
+
|
24
|
+
|
25
|
+
|
26
|
+
\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
|
data/README.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
# riemann-bacula
|
2
2
|
|
3
|
+
[](https://github.com/opus-codium/riemann-bacula/actions/workflows/ci.yml)
|
4
|
+
[](https://codeclimate.com/github/opus-codium/riemann-bacula/maintainability)
|
5
|
+
[](https://codeclimate.com/github/opus-codium/riemann-bacula/test_coverage)
|
6
|
+
|
3
7
|
Submits bacula information to riemann.
|
4
8
|
|
5
9
|
## Get started
|
data/Rakefile
CHANGED
@@ -15,5 +15,6 @@ GitHubChangelogGenerator::RakeTask.new :changelog do |config|
|
|
15
15
|
config.user = 'opus-codium'
|
16
16
|
config.project = 'riemann-bacula'
|
17
17
|
config.exclude_labels = ['skip-changelog']
|
18
|
-
config.future_release = Riemann::Tools::Bacula::VERSION
|
18
|
+
config.future_release = "v#{Riemann::Tools::Bacula::VERSION}"
|
19
|
+
config.since_tag = 'v1.0.0'
|
19
20
|
end
|
data/lib/riemann/tools/bacula.rb
CHANGED
@@ -23,16 +23,24 @@ module Riemann
|
|
23
23
|
|
24
24
|
def parse(text)
|
25
25
|
data = {}
|
26
|
+
line_continuation = nil
|
26
27
|
|
27
28
|
text.each_line do |line|
|
28
29
|
line.chomp!
|
29
30
|
|
30
|
-
|
31
|
+
if line =~ /\A ([^:]+):[[:blank:]]+(.*)/
|
32
|
+
key = Regexp.last_match(1)
|
33
|
+
raw_value = Regexp.last_match(2)
|
31
34
|
|
32
|
-
|
33
|
-
|
35
|
+
data[key] = raw_value
|
36
|
+
elsif line_continuation
|
37
|
+
key = line_continuation
|
38
|
+
data[key] += ".#{line}"
|
39
|
+
else
|
40
|
+
next
|
41
|
+
end
|
34
42
|
|
35
|
-
|
43
|
+
line_continuation = (key if line.length == 998)
|
36
44
|
end
|
37
45
|
|
38
46
|
return nil unless valid?(data)
|
@@ -53,16 +61,20 @@ module Riemann
|
|
53
61
|
'FD Bytes Written',
|
54
62
|
'SD Bytes Written',
|
55
63
|
'Last Volume Bytes',
|
64
|
+
'Bytes Restored',
|
56
65
|
],
|
57
66
|
parse_integer: [
|
58
67
|
'JobId',
|
59
68
|
'Priority',
|
60
69
|
'Non-fatal FD errors',
|
61
70
|
'FD Files Written',
|
71
|
+
'FD Errors',
|
62
72
|
'SD Files Written',
|
63
73
|
'SD Errors',
|
64
74
|
'Volume Session Id',
|
65
75
|
'Volume Session Time',
|
76
|
+
'Files Expected',
|
77
|
+
'Files Restored',
|
66
78
|
],
|
67
79
|
parse_duration: [
|
68
80
|
'Elapsed time',
|
@@ -108,7 +120,7 @@ module Riemann
|
|
108
120
|
end
|
109
121
|
|
110
122
|
def extract_client_info(data)
|
111
|
-
/\A"([^"]+)" ([^ ]+)/.match(data['Client'])
|
123
|
+
return unless /\A"([^"]+)" ([^ ]+)/.match(data['Client'])
|
112
124
|
|
113
125
|
data['Client'] = Regexp.last_match(1)
|
114
126
|
data['Client Version'] = Regexp.last_match(2)
|
@@ -119,14 +131,14 @@ module Riemann
|
|
119
131
|
end
|
120
132
|
|
121
133
|
def extract_source(item, data)
|
122
|
-
/\A"([^"]+)" \(From (Client|Job|Pool) resource\)\z/.match(data[item])
|
134
|
+
return unless /\A"([^"]+)" \(From (Client|Job|Pool) resource\)\z/.match(data[item])
|
123
135
|
|
124
136
|
data[item] = Regexp.last_match(1)
|
125
137
|
data["#{item} Source"] = Regexp.last_match(2)
|
126
138
|
end
|
127
139
|
|
128
140
|
def extract_time(item, data)
|
129
|
-
/\A"([^"]+)" (.*)\z/.match(data[item])
|
141
|
+
return unless /\A"([^"]+)" (.*)\z/.match(data[item])
|
130
142
|
|
131
143
|
data[item] = Regexp.last_match(1)
|
132
144
|
data["#{item} time"] = Regexp.last_match(2)
|
@@ -168,7 +180,8 @@ module Riemann
|
|
168
180
|
end
|
169
181
|
|
170
182
|
def parse_size(value)
|
171
|
-
/\A([\d,]+) \([\d.]+ [
|
183
|
+
raise ArgumentError, %(Cannot parse size "#{value}") unless /\A([\d,]+) \([\d.]+ [KMGT]?B\)\z/.match(value)
|
184
|
+
|
172
185
|
parse_integer(Regexp.last_match(1))
|
173
186
|
end
|
174
187
|
|
@@ -180,12 +193,14 @@ module Riemann
|
|
180
193
|
event = {}
|
181
194
|
event[:service] = "bacula backup #{data['Job Name']}"
|
182
195
|
event[:state] = case data['Termination']
|
183
|
-
when
|
196
|
+
when /\A(Backup|Restore) OK\z/ then 'ok'
|
184
197
|
when 'Backup OK -- with warnings' then 'warning'
|
185
198
|
else
|
186
199
|
'critical'
|
187
200
|
end
|
188
201
|
event[:description] = data['Termination']
|
202
|
+
event[:job_name] = data['Job Name']
|
203
|
+
event[:backup_level] = data['Backup Level']
|
189
204
|
report(event)
|
190
205
|
|
191
206
|
return unless options[:details]
|
@@ -205,6 +220,8 @@ module Riemann
|
|
205
220
|
event = {}
|
206
221
|
event[:service] = "bacula backup #{data['Job Name']} #{data['Backup Level'].downcase} #{metric.downcase}"
|
207
222
|
event[:metric] = data[metric]
|
223
|
+
event[:job_name] = data['Job Name']
|
224
|
+
event[:backup_level] = data['Backup Level']
|
208
225
|
report(event)
|
209
226
|
end
|
210
227
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: riemann-bacula
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Romain Tartière
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-10-
|
11
|
+
date: 2022-10-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: riemann-tools
|
@@ -136,6 +136,7 @@ files:
|
|
136
136
|
- ".rspec"
|
137
137
|
- ".rubocop.yml"
|
138
138
|
- ".simplecov"
|
139
|
+
- CHANGELOG.md
|
139
140
|
- Gemfile
|
140
141
|
- README.md
|
141
142
|
- Rakefile
|