Class: Edwig::Munin::StopVisitStatus
- Inherits:
-
Plugin
- Object
- Plugin
- Edwig::Munin::StopVisitStatus
show all
- Defined in:
- lib/edwig/munin/stop_visit_status.rb
Constant Summary
collapse
- DEPARTURE_STATUS =
%w{onTime early delayed cancelled noReport departed}
- ARRIVAL_STATUS =
%w{arrived onTime early delayed cancelled noReport missed notExpected}
- UNKNOWN_STATUS =
"unknown"
Instance Attribute Summary
Attributes inherited from Plugin
#referential, #server, #token
Instance Method Summary
collapse
Methods inherited from Plugin
create, #env, #run
Instance Method Details
#arrival_key(status) ⇒ Object
53
54
55
|
# File 'lib/edwig/munin/stop_visit_status.rb', line 53
def arrival_key(status)
"ArrivalStatus-#{status}"
end
|
#arrival_keys ⇒ Object
61
62
63
|
# File 'lib/edwig/munin/stop_visit_status.rb', line 61
def arrival_keys
ARRIVAL_STATUS.map { |status| arrival_key status }
end
|
#config ⇒ Object
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
# File 'lib/edwig/munin/stop_visit_status.rb', line 29
def config
config = {
host_name: server,
graph_title: "Arrivals and Departures by status",
graph_order: keys.join(' '),
graph_info: "Represent StopVisits count by Arrival and Departure statuses",
graph_args: "--base 1000 -l 0",
graph_vlabel: "count"
}
keys.each_with_index do |key, index|
label = key.gsub('-',' ')
config["#{key}.label"] = label
config["#{key}.draw"] = index == 0 ? 'AREA' : 'STACK'
config["#{key}.info"] = "The number of StopVisits in #{label}"
end
config
end
|
#departure_key(status) ⇒ Object
49
50
51
|
# File 'lib/edwig/munin/stop_visit_status.rb', line 49
def departure_key(status)
"DepartureStatus-#{status}"
end
|
#departure_keys ⇒ Object
57
58
59
|
# File 'lib/edwig/munin/stop_visit_status.rb', line 57
def departure_keys
DEPARTURE_STATUS.map { |status| departure_key status }
end
|
#keys ⇒ Object
65
66
67
|
# File 'lib/edwig/munin/stop_visit_status.rb', line 65
def keys
@keys ||= (departure_keys + arrival_keys + [departure_key(UNKNOWN_STATUS), arrival_key(UNKNOWN_STATUS)]).sort
end
|
#values ⇒ Object
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# File 'lib/edwig/munin/stop_visit_status.rb', line 8
def values
stopVisits = RestClient.get("http://#{server}/#{referential}/stop_visits" , {content_type: :json, :Authorization => "Token token=#{token}"})
stopVisitsTab = JSON.parse(stopVisits)
counts = {}
keys.each { |k| counts[k] = 0 }
stopVisitsTab.each do |stopVisit|
departureState = stopVisit["DepartureStatus"]
departureState = UNKNOWN_STATUS unless DEPARTURE_STATUS.include?(departureState)
arrivalState = stopVisit["ArrivalStatus"]
arrivalState = UNKNOWN_STATUS unless ARRIVAL_STATUS.include?(arrivalState)
counts[departure_key(departureState)] += 1
counts[arrival_key(arrivalState)] += 1
end
counts
end
|