perfmonger 0.12.1 → 0.13.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9610baac2556f61a8deb2cab5c7d4c10dac9c7da69c0c07a2f7d2b5f2414199e
4
- data.tar.gz: 1e94e2c14421eabddd25f60abb8ef6e749aa57a557c4d661830b52fc5f91d7ca
3
+ metadata.gz: 1a2bc69e72d02745481dafb5bec13073d4289a3f38cdf8eb253416e649e56ff5
4
+ data.tar.gz: fd5db8b9b288b62060df2ab5881ec8c777c320479d53420ddef3e4420ade9c9a
5
5
  SHA512:
6
- metadata.gz: 7a5f69061b79e2dcafe707bdb24b5a7be0443df2130bd928f33a7aba7a56623a946979ac22e0a82ce367f6d8d17d66facaf7286c6fe1c09016f8cedfc43dc5f6
7
- data.tar.gz: 9754fb8acc4b1a521c2daf2a67017d95ec018b414f7f808989589efa498f3f66003f93d1d8d6aa7455a008259486f7ea71dae8c8d2934c52ed0b55e9dd0b0a1f
6
+ metadata.gz: c7184d7eeb69b60188a740031143eede5188b56dbf84cd6a4bdd28302439faba79f390f8baf27f1e33275d04355c1e99c42eb09b1eb663a243c0046e1cc5a29e
7
+ data.tar.gz: cda569ba86554c985e46249d77d1fdc606fbe126150591dcec55ccbe82eabd13b6081ed428c6b7301004c1955fdf00273549a82696f6ed07cd3c2bb55387dd45
data/NEWS CHANGED
@@ -1,4 +1,10 @@
1
- ## 20XX-XX-XX: PerfMonger 0.13.0
1
+ ## 2021-XX-XX: PerfMonger 0.14.0
2
+
3
+ ## 2021-07-26: PerfMonger 0.13.1
4
+ * New features
5
+ * [play] subcommand:
6
+ * Added --disk-only option to filter results of not interesting disks
7
+ * Note: v0.13.0 is yanked from rubygems.org
2
8
 
3
9
  ## 2021-07-08: PerfMonger 0.12.1
4
10
  * Bug fixes
@@ -9,16 +9,19 @@ import (
9
9
  "fmt"
10
10
  "io"
11
11
  "os"
12
+ "regexp"
12
13
 
13
14
  projson "github.com/hayamiz/go-projson"
15
+ core "github.com/hayamiz/perfmonger/core"
14
16
  ss "github.com/hayamiz/perfmonger/core/subsystem"
15
- core "github.com/hayamiz/perfmonger/core"
16
17
  )
17
18
 
18
19
  type PlayerOption struct {
19
- logfile string
20
- color bool
21
- pretty bool
20
+ logfile string
21
+ color bool
22
+ pretty bool
23
+ disk_only string
24
+ disk_only_regex *regexp.Regexp
22
25
  }
23
26
 
24
27
  var option PlayerOption
@@ -50,10 +53,11 @@ func showInterruptStat(printer *projson.JsonPrinter, prev_rec *ss.StatRecord, cu
50
53
  return nil
51
54
  }
52
55
 
53
- func showDiskStat(printer *projson.JsonPrinter, prev_rec *ss.StatRecord, cur_rec *ss.StatRecord) error {
54
- dusage, err := ss.GetDiskUsage(
56
+ func showDiskStat(printer *projson.JsonPrinter, prev_rec *ss.StatRecord, cur_rec *ss.StatRecord, disk_only_regex *regexp.Regexp) error {
57
+ dusage, err := ss.GetDiskUsage1(
55
58
  prev_rec.Time, prev_rec.Disk,
56
- cur_rec.Time, cur_rec.Disk)
59
+ cur_rec.Time, cur_rec.Disk,
60
+ option.disk_only_regex)
57
61
  if err != nil {
58
62
  return err
59
63
  }
@@ -94,7 +98,9 @@ func showMemStat(printer *projson.JsonPrinter, cur_rec *ss.StatRecord) error {
94
98
  return nil
95
99
  }
96
100
 
97
- func showStat(printer *projson.JsonPrinter, prev_rec *ss.StatRecord, cur_rec *ss.StatRecord) error {
101
+ func showStat(printer *projson.JsonPrinter, prev_rec *ss.StatRecord, cur_rec *ss.StatRecord,
102
+ disk_only_regex *regexp.Regexp) error {
103
+
98
104
  printer.Reset()
99
105
  if option.pretty {
100
106
  printer.SetStyle(projson.SmartStyle)
@@ -102,6 +108,7 @@ func showStat(printer *projson.JsonPrinter, prev_rec *ss.StatRecord, cur_rec *ss
102
108
  if option.color {
103
109
  printer.SetColor(true)
104
110
  }
111
+
105
112
  printer.BeginObject()
106
113
  printer.PutKey("time")
107
114
  printer.PutFloatFmt(float64(cur_rec.Time.UnixNano())/1e9, "%.3f")
@@ -122,7 +129,7 @@ func showStat(printer *projson.JsonPrinter, prev_rec *ss.StatRecord, cur_rec *ss
122
129
  }
123
130
  }
124
131
  if cur_rec.Disk != nil {
125
- err := showDiskStat(printer, prev_rec, cur_rec)
132
+ err := showDiskStat(printer, prev_rec, cur_rec, disk_only_regex)
126
133
  if err != nil {
127
134
  return err
128
135
  }
@@ -148,9 +155,25 @@ func showStat(printer *projson.JsonPrinter, prev_rec *ss.StatRecord, cur_rec *ss
148
155
  func parseArgs() {
149
156
  flag.BoolVar(&option.color, "color", false, "Use colored JSON output")
150
157
  flag.BoolVar(&option.pretty, "pretty", false, "Use human readable JSON output")
158
+ flag.StringVar(&option.disk_only, "disk-only", "", "Select disk devices by regex")
151
159
 
152
160
  flag.Parse()
153
161
 
162
+ if len(flag.Args()) < 1 {
163
+ fmt.Fprintln(os.Stderr, "Insufficient argument")
164
+ os.Exit(1)
165
+ }
166
+
167
+ option.disk_only_regex = nil
168
+
169
+ if option.disk_only != "" {
170
+ var err error
171
+ option.disk_only_regex, err = regexp.Compile(option.disk_only)
172
+ if err != nil {
173
+ panic(err)
174
+ }
175
+ }
176
+
154
177
  option.logfile = flag.Arg(0)
155
178
  }
156
179
 
@@ -219,7 +242,7 @@ func main() {
219
242
  panic(err)
220
243
  }
221
244
 
222
- err = showStat(printer, prev_rec, cur_rec)
245
+ err = showStat(printer, prev_rec, cur_rec, option.disk_only_regex)
223
246
  if err != nil {
224
247
  printer.Reset()
225
248
  fmt.Fprintln(os.Stderr, "skip by err")
@@ -12,8 +12,8 @@ import (
12
12
  "sort"
13
13
 
14
14
  projson "github.com/hayamiz/go-projson"
15
- ss "github.com/hayamiz/perfmonger/core/subsystem"
16
15
  "github.com/hayamiz/perfmonger/core"
16
+ ss "github.com/hayamiz/perfmonger/core/subsystem"
17
17
  )
18
18
 
19
19
  type SummaryOption struct {
@@ -39,6 +39,7 @@ func parseArgs() {
39
39
  flag.Parse()
40
40
 
41
41
  if len(flag.Args()) < 1 {
42
+ fmt.Fprintln(os.Stderr, "Insufficient argument")
42
43
  os.Exit(1)
43
44
  }
44
45
 
Binary file
Binary file
@@ -26,6 +26,10 @@ EOS
26
26
  @pretty = true
27
27
  end
28
28
 
29
+ @disk_only_regex = nil
30
+ @parser.on('--disk-only REGEX', "Select disk devices that matches REGEX (Ex. 'sd[b-d]')") do |regex|
31
+ @disk_only_regex = regex
32
+ end
29
33
  end
30
34
 
31
35
  def parse_args(argv)
@@ -62,6 +66,12 @@ EOS
62
66
  if @pretty
63
67
  cmd << "-pretty"
64
68
  end
69
+
70
+ if @disk_only_regex
71
+ cmd << "-disk-only"
72
+ cmd << @disk_only_regex
73
+ end
74
+
65
75
  cmd << @logfile
66
76
 
67
77
  Process.exec(*cmd)
@@ -1,3 +1,3 @@
1
1
  module PerfMonger
2
- VERSION = "0.12.1"
2
+ VERSION = "0.13.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: perfmonger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.1
4
+ version: 0.13.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yuto HAYAMIZU
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-07-12 00:00:00.000000000 Z
11
+ date: 2021-07-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -216,26 +216,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
216
216
  - !ruby/object:Gem::Version
217
217
  version: '0'
218
218
  requirements: []
219
- rubyforge_project:
220
- rubygems_version: 2.7.6
219
+ rubygems_version: 3.1.6
221
220
  signing_key:
222
221
  specification_version: 4
223
222
  summary: yet anothor performance measurement/monitoring tool
224
- test_files:
225
- - spec/data/busy100.pgr
226
- - spec/data/busy100.pgr.gz
227
- - spec/data/busy100.pgr.played
228
- - spec/data/busy100.pgr.plot-formatted.cpu.dat
229
- - spec/data/busy100.pgr.plot-formatted.disk.dat
230
- - spec/data/busy100.pgr.summary
231
- - spec/data/busy100.pgr.summary.json
232
- - spec/fingerprint_spec.rb
233
- - spec/live_spec.rb
234
- - spec/perfmonger_spec.rb
235
- - spec/play_spec.rb
236
- - spec/plot_spec.rb
237
- - spec/record_spec.rb
238
- - spec/spec_helper.rb
239
- - spec/stat_spec.rb
240
- - spec/summary_spec.rb
241
- - spec/support/aruba.rb
223
+ test_files: []