mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-24 08:38:45 +05:00
Merge branch 'master' of https://github.com/cgrates/cgrates
This commit is contained in:
@@ -18,6 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
package engine
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"time"
|
||||
|
||||
"github.com/cgrates/cgrates/utils"
|
||||
@@ -37,16 +38,6 @@ type SQStoredMetrics struct {
|
||||
SQMetrics map[string][]byte
|
||||
}
|
||||
|
||||
// StatsEvent is an event received by StatService
|
||||
type StatsEvent map[string]interface{}
|
||||
|
||||
func (se StatsEvent) ID() (id string) {
|
||||
if sID, has := se[utils.ID]; has {
|
||||
id = sID.(string)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// StatsQueue represents the configuration of a StatsInstance in StatS
|
||||
type StatsQueue struct {
|
||||
ID string // QueueID
|
||||
@@ -59,3 +50,29 @@ type StatsQueue struct {
|
||||
Thresholds []string // list of thresholds to be checked after changes
|
||||
Weight float64
|
||||
}
|
||||
|
||||
// StatsEvent is an event received by StatService
|
||||
type StatsEvent map[string]interface{}
|
||||
|
||||
func (se StatsEvent) ID() (id string) {
|
||||
if sID, has := se[utils.ID]; has {
|
||||
id = sID.(string)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// AnswerTime returns the AnswerTime of StatsEvent
|
||||
func (se StatsEvent) AnswerTime(timezone string) (at time.Time, err error) {
|
||||
atIf, has := se[utils.ANSWER_TIME]
|
||||
if !has {
|
||||
return at, utils.ErrNotFound
|
||||
}
|
||||
if at, canCast := atIf.(time.Time); canCast {
|
||||
return at, nil
|
||||
}
|
||||
atStr, canCast := atIf.(string)
|
||||
if !canCast {
|
||||
return at, errors.New("cannot cast to string")
|
||||
}
|
||||
return utils.ParseTimeDetectLayout(atStr, timezone)
|
||||
}
|
||||
|
||||
34
engine/thresholds.go
Normal file
34
engine/thresholds.go
Normal file
@@ -0,0 +1,34 @@
|
||||
/*
|
||||
Real-time Online/Offline Charging System (OCS) for Telecom & ISP environments
|
||||
Copyright (C) ITsysCOM GmbH
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
*/
|
||||
|
||||
package engine
|
||||
|
||||
type ThresholdCfg struct {
|
||||
ID string
|
||||
Filters []*RequestFilter // Filters for the request
|
||||
ActivationInterval *utils.ActivationInterval // Time when this limit becomes active and expires
|
||||
ThresholdType string
|
||||
ThresholdValue float64 // threshold value
|
||||
Recurrent bool
|
||||
MinSleep time.Duration
|
||||
MinItems int // number of items agregated for the threshold to match
|
||||
Blocker bool // blocker flag to stop processing on filters matched
|
||||
Stored bool
|
||||
Weight float64 // Weight to sort the thresholds
|
||||
ActionIDs []string
|
||||
}
|
||||
Reference in New Issue
Block a user