SMPPEX Telemetry

Library for tracing SMPP session (SMPPEX.Session) events with telemetry.

SMPPEXTelemetry:

  • implements SMPPEX.TransportSession protocol;
  • wraps SMPPEX.Session module with callbacks sending :telemetery events.

Events are the following:

[:smppex, :session, :init]
[:smppex, :session, :in_pdu]
[:smppex, :session, :out_pdu]
[:smppex, :session, :socket_closed]
[:smppex, :session, :socket_error]
[:smppex, :session, :terminate]
[:smppex, :session, :code_change]

Each event contains session: session_pid metadata for identifying sessions.

Usage:

SMPPEX.ESME.start_link(
  host,
  port,
  {module, args},
  session_module: SMPPEXTelemetry.Session
)

or

SMPPEX.MC.start(
  {module, args},
  transport_opts: %{
    socket_opts: [
      port: port
    ]
  },
  session_module: SMPPEXTelemetry.Session
)

Installation

If available in Hex, the package can be installed by adding smppex_telemetry to your list of dependencies in mix.exs:

def deps do
  [
    {:smppex_telemetry, "~> 0.1.0"}
  ]
end

License

This software is licensed under MIT License.