package rocks.inspectit.server.influx.builder; import org.influxdb.dto.Point.Builder; import org.springframework.stereotype.Component; import rocks.inspectit.server.influx.constants.Series; import rocks.inspectit.shared.all.communication.data.HttpInfo; import rocks.inspectit.shared.all.communication.data.HttpTimerData; import rocks.inspectit.shared.all.communication.data.HttpTimerDataHelper; /** * Point builder for the {@link HttpTimerData}. * * @author Ivan Senic * @author Alexander Wert * */ @Component public class HttpPointBuilder extends DefaultDataPointBuilder<HttpTimerData> { /** * {@inheritDoc} */ @Override public Class<HttpTimerData> getDataClass() { return HttpTimerData.class; } /** * {@inheritDoc} */ @Override protected String getSeriesName() { return Series.Http.NAME; } /** * {@inheritDoc} */ @Override protected void addTags(HttpTimerData data, Builder builder) { super.addTags(data, builder); HttpInfo httpInfo = data.getHttpInfo(); if (null != httpInfo.getUri()) { builder.tag(Series.Http.TAG_URI, httpInfo.getUri()); } if (httpInfo.hasInspectItTaggingHeader()) { builder.tag(Series.Http.TAG_INSPECTIT_TAGGING_HEADER, httpInfo.getInspectItTaggingHeaderValue()); } } /** * {@inheritDoc} */ @Override protected void addFields(HttpTimerData data, Builder builder) { builder.addField(Series.Http.FIELD_DURATION, data.getDuration()); if (HttpTimerDataHelper.hasResponseCode(data)) { builder.addField(Series.Http.FIELD_HTTP_RESPONSE_CODE, data.getHttpResponseStatus()); } } }