Mongodb metric plugin for vayne_core monitor framework. Checkout real monitor example to see vayne_server.
Add package to your list of dependencies in mix.exs
:
def deps do
[
{:vayne_metric_mongodb, github: "mon-suit/vayne_metric_mongodb"}
]
end
#Setup params for plugin.
params = %{"hostname" => "127.0.0.1"}
#Init plugin.
{:ok, stat} = Vayne.Metric.Mongodb.init(params)
#In fact, log_func will be passed by framework to record error.
log_func = fn msg -> IO.puts msg end
#Run plugin and get returned metrics.
{:ok, metrics} = Vayne.Metric.Mongodb.run(stat, log_func)
#Do with metrics
IO.inspect metrics
#Clean plugin state.
:ok = Vayne.Metric.Mongodb.clean(stat)
Support params:
hostname
: Mongodb hostname.Required.port
: Mongodb port. Not required, default 27017.username
: username. Not required.password
: password. Not required.role
: check role, ex: "primary", "secondary", "arbiter". Not required.
- All
db.serverStatus()
items(could be parsed to number). - Custom items for replica state:
repl.role_check
: check rs role if setrole
in init. check pass -> 1, other -> 0repl.members_health
: allhealth
in replica members is1
.repl.myState
: the replica state of the current instance.
- Other:
connections_used_percent
: 100 * connections_current / (connections_current + connections_available)