Add metric registration/config to wobserver application.
This commit is contained in:
parent
f499fc7156
commit
d99676ebda
|
@ -4,15 +4,18 @@ defmodule Wobserver do
|
|||
"""
|
||||
|
||||
alias Wobserver.Page
|
||||
alias Wobserver.Util.Metrics
|
||||
|
||||
@doc ~S"""
|
||||
Registers external application to integrate with `:wobserver`.
|
||||
|
||||
The following can be registered:
|
||||
- `:page`, see: `Wobserver.Page.register/1`.
|
||||
- `:metric`, see: `Wobserver.Util.Metrics.register/1`.
|
||||
"""
|
||||
@spec register(:page, page :: Page.data) :: boolean
|
||||
def register(:page, page), do: Page.register(page)
|
||||
def register(:metric, metric), do: Metrics.register(metric)
|
||||
|
||||
@doc ~S"""
|
||||
Information about Wobserver.
|
||||
|
|
|
@ -6,7 +6,9 @@ defmodule Wobserver.Application do
|
|||
use Application
|
||||
|
||||
alias Plug.Adapters.Cowboy
|
||||
|
||||
alias Wobserver.Page
|
||||
alias Wobserver.Util.Metrics
|
||||
|
||||
@spec port :: integer
|
||||
def port do
|
||||
|
@ -20,6 +22,7 @@ defmodule Wobserver.Application do
|
|||
def start(_type, _args) do
|
||||
# Load pages and metrics from config
|
||||
Page.load_config
|
||||
Metrics.load_config
|
||||
|
||||
# Start cowboy
|
||||
import Supervisor.Spec, warn: false
|
||||
|
|
|
@ -2,6 +2,7 @@ defmodule WobserverTest do
|
|||
use ExUnit.Case
|
||||
|
||||
alias Wobserver.Page
|
||||
alias Wobserver.Util.Metrics
|
||||
|
||||
describe "about" do
|
||||
test "includes name" do
|
||||
|
@ -44,5 +45,19 @@ defmodule WobserverTest do
|
|||
|
||||
assert Page.call(:test) == 5
|
||||
end
|
||||
|
||||
test "registers a metric" do
|
||||
assert Wobserver.register :metric, [example: {fn -> [{5, []}] end, :gauge, "Description"}]
|
||||
|
||||
assert Keyword.has_key?(Metrics.overview, :example)
|
||||
end
|
||||
|
||||
test "registers a metric generator" do
|
||||
assert Wobserver.register :metric, [
|
||||
fn -> [generated: {fn -> [{5, []}] end, :gauge, "Description"}] end
|
||||
]
|
||||
|
||||
assert Keyword.has_key?(Metrics.overview, :generated)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue