func()

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
}