in internal/redismetrics/redismetrics.go [229:263]
func (r *RedisMetrics) CollectMetricsOnce(ctx context.Context) (*workloadmanager.WorkloadMetrics, error) {
replicationOn := r.replicationModeActive(ctx)
persistenceOn := r.persistenceEnabled(ctx)
serviceEnabled := r.serviceEnabled(ctx)
serviceRestart := r.serviceRestart(ctx)
log.CtxLogger(ctx).Debugw("Finished collecting metrics once. Next step is to send to WLM (DW).",
replicationKey, replicationOn,
persistenceKey, persistenceOn,
serviceEnabledKey, serviceEnabled,
serviceRestartKey, serviceRestart,
)
metrics := workloadmanager.WorkloadMetrics{
WorkloadType: workloadmanager.REDIS,
Metrics: map[string]string{
replicationKey: strconv.FormatBool(replicationOn),
persistenceKey: strconv.FormatBool(persistenceOn),
serviceEnabledKey: strconv.FormatBool(serviceEnabled),
serviceRestartKey: strconv.FormatBool(serviceRestart),
},
}
res, err := workloadmanager.SendDataInsight(ctx, workloadmanager.SendDataInsightParams{
WLMetrics: metrics,
CloudProps: r.Config.GetCloudProperties(),
WLMService: r.WLMClient,
})
if err != nil {
return nil, err
}
if res == nil {
log.CtxLogger(ctx).Warn("SendDataInsight did not return an error but the WriteInsight response is nil")
return &metrics, nil
}
log.CtxLogger(ctx).Debugw("WriteInsight response", "StatusCode", res.HTTPStatusCode)
return &metrics, nil
}