package rocks.inspectit.agent.java.tracing.core;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import rocks.inspectit.agent.java.core.ICoreService;
import rocks.inspectit.agent.java.core.IPlatformManager;
import rocks.inspectit.agent.java.sdk.opentracing.Reporter;
import rocks.inspectit.agent.java.sdk.opentracing.internal.impl.SpanImpl;
import rocks.inspectit.agent.java.tracing.core.transformer.SpanTransformer;
import rocks.inspectit.shared.all.spring.logger.Log;
import rocks.inspectit.shared.all.tracing.data.AbstractSpan;
/**
* Tracing reporter that sends spans to the {@link ICoreService}.
*
* @author Ivan Senic
*
*/
@Component
public class CoreServiceReporter implements Reporter {
/**
* Logger for this class.
*/
@Log
Logger log;
/**
* {@link ICoreService}.
*/
@Autowired
private ICoreService coreService;
/**
* {@link IPlatformManager}.
*/
@Autowired
private IPlatformManager platformManager;
/**
* {@inheritDoc}
*/
@Override
public void report(SpanImpl span) {
AbstractSpan transformed = SpanTransformer.transformSpan(span);
transformed.setPlatformIdent(platformManager.getPlatformId());
coreService.addMethodSensorData(0, 0, String.valueOf(transformed.getSpanIdent().getId()), transformed);
}
}