ees: implement api to reset exporter metrics

This commit is contained in:
ionutboangiu
2025-03-14 20:03:18 +02:00
committed by Dan Christian Bogos
parent 1c00a3aad1
commit fdc8a1be7e
3 changed files with 31 additions and 3 deletions

View File

@@ -37,3 +37,9 @@ func (eeSv1 *EeSv1) ProcessEvent(ctx *context.Context, args *engine.CGREventWith
reply *map[string]map[string]any) error {
return eeSv1.eeS.V1ProcessEvent(ctx, args, reply)
}
// V1ResetExporterMetrics resets the metrics for a specific exporter identified by ExporterID.
// Returns utils.ErrNotFound if the exporter is not found in the cache.
func (eeSv1 *EeSv1) ResetExporterMetrics(ctx *context.Context, params ees.V1ResetExporterMetricsParams, reply *string) error {
return eeSv1.eeS.V1ResetExporterMetrics(ctx, params, reply)
}

View File

@@ -410,3 +410,24 @@ func ExportWithAttempts(exp EventExporter, eEv any, key string) (err error) {
}
return
}
// V1ResetExporterMetricsParams contains required parameters for resetting exporter metrics.
type V1ResetExporterMetricsParams struct {
Tenant string
ID string // unique identifier of the request
ExporterID string
APIOpts map[string]any
}
// V1ResetExporterMetrics resets the metrics for a specific exporter identified by ExporterID.
// Returns utils.ErrNotFound if the exporter is not found in the cache.
func (eeS *EventExporterS) V1ResetExporterMetrics(ctx *context.Context, params V1ResetExporterMetricsParams, reply *string) error {
eeCfg := eeS.cfg.EEsCfg().ExporterCfg(params.ExporterID)
ee, ok := eeS.exporterCache[eeCfg.Type].Get(eeCfg.ID)
if !ok {
return utils.ErrNotFound
}
ee.(EventExporter).GetMetrics().Reset()
*reply = utils.OK
return nil
}

View File

@@ -1907,9 +1907,10 @@ const (
// EEs
const (
EeSv1 = "EeSv1"
EeSv1Ping = "EeSv1.Ping"
EeSv1ProcessEvent = "EeSv1.ProcessEvent"
EeSv1 = "EeSv1"
EeSv1Ping = "EeSv1.Ping"
EeSv1ProcessEvent = "EeSv1.ProcessEvent"
EeSv1ResetExporterMetrics = "EeSv1.ResetExporterMetrics"
)
// ERs