defmodule Instruments.Sysmon.Receiver.Metrics do
@moduledoc """
This module emits system monitor events
"""
require Instruments
@behaviour Instruments.Sysmon.Receiver
@impl true
def handle_busy_dist_port(_, _) do
Instruments.increment("erlang.sysmon.busy_dist_port")
end
@impl true
def handle_busy_port(_, _) do
Instruments.increment("erlang.sysmon.busy_port")
end
@impl true
def handle_long_gc(_, _) do
Instruments.increment("erlang.sysmon.long_gc")
end
@impl true
def handle_long_message_queue(_, long) do
Instruments.increment("erlang.sysmon.long_message_queue", tags: ["long:#{long}"])
end
@impl true
def handle_long_schedule(_, _) do
Instruments.increment("erlang.sysmon.long_schedule")
end
@impl true
def handle_large_heap(_, _) do
Instruments.increment("erlang.sysmon.large_heap")
end
end