[erlang-questions] diameter server - overload protection

anders.gs.svensson <>
Thu Jul 6 12:16:40 CEST 2017


Hi Aleksander.

Changing diameter_packet will create a fair deal of upgrade woe, but
you can use a message_cb option to diameter_{tcp,sctp} to set the time
in diameter_packet.transport_data.

(None of which is documented yet, but probably in 20.1.)

Anders



 writes:
> Message: 10
> Date: Thu, 6 Jul 2017 11:41:34 +0200
> From: Aleksander Nycz <>
> To: 
> Subject: [erlang-questions]  diameter server - overload protection
> Message-ID: <>
> Content-Type: text/plain; charset="utf-8"; Format="flowed"
> 
> Hello,
> 
> 
> We try to implement overload protection into diameter server that uses 
> erlang diameter-2.0 application.
> 
> Our overload policy use queuing time and queue lenght to determine if 
> server is overloaded or not.
> 
> 
> Currently it is quite hard to check when diameter packet was received by 
> diameter stack,
> 
> so I would like to add to diameter_packet record (defined in 
> diameter.hrl) receive_time field like this:
> 
> -record(diameter_packet,
>          {header,%% #diameter_header{} avps,%% deep list() of #diameter_avp{} msg,%% fully decoded message bin,%% binary received/sent over the wire errors = [],%% list() of Result-Code | {Result-Code, #diameter_avp{}} transport_data,
>           *receive_time = erlang:monotonic_time() **%% integer()* }).
> 
> 
> What do you think about it?
> 
> It will be possible to merge this into diameter app release with OTP 20.1?
> 
> 
> Best Regards
> 
> Aleksander Nycz
> 
> 
> -- 
> Aleksander Nycz
> Chief Designer
> Telco_021 BSS R&D
> Comarch SA
> Phone:  +48 17 785 5909
> Mobile: +48 691 464 275
> website: www.comarch.pl


More information about the erlang-questions mailing list