75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
# File 'lib/wiq/commands/metrics.rb', line 75
def show(name)
unless VALID_RANGES.include?(options[:range])
raise Wiq::Error.new("Invalid --range #{options[:range].inspect}",
code: "invalid_range",
hint: "Valid: #{VALID_RANGES.join(", ")}")
end
params = {
"range" => options[:range],
"interval_group" => options[:interval]
}
if options[:range] == "custom"
unless options[:start_date] && options[:end_date]
raise Wiq::Error.new("--start-date and --end-date are required when --range=custom.",
code: "missing_custom_dates")
end
params["start_date"] = options[:start_date]
params["end_date"] = options[:end_date]
end
payload = client.get("/api/v1/metrics/#{name}", params)
metrics = payload["metrics"] || {}
data = {
"name" => name,
"currency" => CURRENCY_METRICS.include?(name),
"primary_series" => metrics["primary_series"],
"primary_total" => metrics["primary_total"]
}
unless options[:no_comparison]
data["comparison_series"] = metrics["comparison_series"]
data["comparison_total"] = metrics["comparison_total"]
end
render(data,
summary: "metric=#{name} range=#{options[:range]} interval=#{options[:interval]}",
meta: { "currency_unit" => CURRENCY_METRICS.include?(name) ? "cents" : "count" },
breadcrumbs: [
{ "cmd" => "wiq metrics list", "description" => "See all supported metrics" }
])
end
|