remove getServiceName from metric filter
[logging-analytics.git] / reference / logging-filter / logging-filter-base / src / main / java / org / onap / logging / filter / base / MetricLogClientFilter.java
index 8533456..6502aaa 100644 (file)
 
 package org.onap.logging.filter.base;
 
-import java.time.ZoneOffset;
-import java.time.ZonedDateTime;
-import java.time.format.DateTimeFormatter;
-import java.util.UUID;
 import javax.annotation.Priority;
 import javax.ws.rs.client.ClientRequestContext;
 import javax.ws.rs.client.ClientRequestFilter;
@@ -32,97 +28,48 @@ import javax.ws.rs.client.ClientResponseFilter;
 import javax.ws.rs.core.Context;
 import javax.ws.rs.core.MultivaluedMap;
 import javax.ws.rs.ext.Providers;
-import org.onap.logging.ref.slf4j.ONAPLogConstants;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.slf4j.MDC;
-import org.slf4j.Marker;
-import org.slf4j.MarkerFactory;
 
 @Priority(0)
-public class MetricLogClientFilter implements ClientRequestFilter, ClientResponseFilter {
+public class MetricLogClientFilter
+        extends AbstractMetricLogFilter<ClientRequestContext, ClientResponseContext, MultivaluedMap<String, Object>>
+        implements ClientRequestFilter, ClientResponseFilter {
 
     @Context
     private Providers providers;
-    private MDCSetup mdcSetup = new MDCSetup();
-    private static final String TRACE = "trace-#";
-    private static Logger logger = LoggerFactory.getLogger(MetricLogClientFilter.class);
-    private final String partnerName;
-    private static final Marker INVOKE_RETURN = MarkerFactory.getMarker("INVOKE-RETURN");
 
-    public MetricLogClientFilter() {
-        partnerName = getPartnerName();
+    @Override
+    public void filter(ClientRequestContext clientRequest) {
+        pre(clientRequest, clientRequest.getHeaders());
     }
 
     @Override
-    public void filter(ClientRequestContext clientRequest) {
-        try {
-            setupMDC(clientRequest);
-            setupHeaders(clientRequest);
-            logger.info(ONAPLogConstants.Markers.INVOKE, "Invoke");
-        } catch (Exception e) {
-            logger.warn("Error in JAX-RS client request filter", e);
-        }
+    public void filter(ClientRequestContext requestContext, ClientResponseContext responseContext) {
+        post(requestContext, responseContext);
     }
 
-    protected void setupHeaders(ClientRequestContext clientRequest) {
-        MultivaluedMap<String, Object> headers = clientRequest.getHeaders();
-        String requestId = extractRequestID(clientRequest);
-        headers.add(ONAPLogConstants.Headers.REQUEST_ID, requestId);
-        headers.add(Constants.HttpHeaders.HEADER_REQUEST_ID, requestId);
-        headers.add(Constants.HttpHeaders.TRANSACTION_ID, requestId);
-        headers.add(Constants.HttpHeaders.ECOMP_REQUEST_ID, requestId);
-        headers.add(ONAPLogConstants.Headers.INVOCATION_ID, MDC.get(ONAPLogConstants.MDCs.INVOCATION_ID));
-        headers.add(ONAPLogConstants.Headers.PARTNER_NAME, partnerName);
+    @Override
+    protected void addHeader(MultivaluedMap<String, Object> requestHeaders, String headerName, String headerValue) {
+        requestHeaders.add(headerName, headerValue);
     }
 
-    protected void setupMDC(ClientRequestContext clientRequest) {
-        MDC.put(ONAPLogConstants.MDCs.INVOKE_TIMESTAMP,
-                ZonedDateTime.now(ZoneOffset.UTC).format(DateTimeFormatter.ISO_INSTANT));
-        MDC.put(ONAPLogConstants.MDCs.TARGET_SERVICE_NAME, clientRequest.getUri().toString());
-        MDC.put(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE, ONAPLogConstants.ResponseStatus.INPROGRESS.toString());
-        mdcSetup.setInvocationIdFromMDC();
-        String targetEntity = MDC.get(ONAPLogConstants.MDCs.TARGET_ENTITY);
-        if (targetEntity != null) {
-            MDC.put(ONAPLogConstants.MDCs.TARGET_ENTITY, targetEntity);
-        } else {
-            MDC.put(ONAPLogConstants.MDCs.TARGET_ENTITY, Constants.DefaultValues.UNKNOWN_TARGET_ENTITY);
-        }
-        if (MDC.get(ONAPLogConstants.MDCs.SERVICE_NAME) == null) {
-            MDC.put(ONAPLogConstants.MDCs.SERVICE_NAME, clientRequest.getUri().getPath());
-        }
-        mdcSetup.setServerFQDN();
+    @Override
+    protected String getTargetServiceName(ClientRequestContext request) {
+        return request.getUri().toString();
     }
 
-    protected String extractRequestID(ClientRequestContext clientRequest) {
-        String requestId = MDC.get(ONAPLogConstants.MDCs.REQUEST_ID);
-        if (requestId == null || requestId.isEmpty() || requestId.equals(TRACE)) {
-            requestId = UUID.randomUUID().toString();
-            mdcSetup.setLogTimestamp();
-            mdcSetup.setElapsedTimeInvokeTimestamp();
-            logger.warn("Could not Find Request ID Generating New One: {}", clientRequest.getUri().getPath());
-            MDC.put(ONAPLogConstants.MDCs.REQUEST_ID, requestId);
-        }
-        return requestId;
+    @Override
+    protected int getHttpStatusCode(ClientResponseContext response) {
+        return response.getStatus();
     }
 
     @Override
-    public void filter(ClientRequestContext requestContext, ClientResponseContext responseContext) {
-        try {
-            mdcSetup.setLogTimestamp();
-            mdcSetup.setElapsedTimeInvokeTimestamp();
-            mdcSetup.setResponseStatusCode(responseContext.getStatus());
-            mdcSetup.setResponseDescription(responseContext.getStatus());
-            MDC.put(ONAPLogConstants.MDCs.RESPONSE_CODE, String.valueOf(responseContext.getStatus()));
-            logger.info(INVOKE_RETURN, "InvokeReturn");
-            mdcSetup.clearClientMDCs();
-        } catch (Exception e) {
-            logger.warn("Error in JAX-RS request,response client filter", e);
-        }
+    protected String getResponseCode(ClientResponseContext response) {
+        return String.valueOf(response.getStatus());
     }
 
-    protected String getPartnerName() {
-        PropertyUtil p = new PropertyUtil();
-        return p.getProperty(Constants.Property.PARTNER_NAME);
+    @Override
+    protected String getTargetEntity(ClientRequestContext request) {
+        return Constants.DefaultValues.UNKNOWN_TARGET_ENTITY;
     }
+
 }