diff options
Diffstat (limited to 'cmso-ticketmgt/src/main/java/org/onap/observations')
5 files changed, 343 insertions, 348 deletions
diff --git a/cmso-ticketmgt/src/main/java/org/onap/observations/Mdc.java b/cmso-ticketmgt/src/main/java/org/onap/observations/Mdc.java index cf49ccd..e2b8220 100644 --- a/cmso-ticketmgt/src/main/java/org/onap/observations/Mdc.java +++ b/cmso-ticketmgt/src/main/java/org/onap/observations/Mdc.java @@ -39,12 +39,11 @@ import static com.att.eelf.configuration.Configuration.MDC_RESPONSE_DESC; import static com.att.eelf.configuration.Configuration.MDC_STATUS_CODE; import static com.att.eelf.configuration.Configuration.MDC_TARGET_ENTITY; import static com.att.eelf.configuration.Configuration.MDC_TARGET_SERVICE_NAME; - +import com.att.eelf.utils.Stopwatch; import java.net.URI; import java.util.Date; import java.util.Map; import java.util.UUID; - import javax.servlet.http.HttpServletRequest; import javax.ws.rs.client.ClientRequestContext; import javax.ws.rs.client.ClientResponseContext; @@ -52,172 +51,157 @@ import javax.ws.rs.container.ContainerRequestContext; import javax.ws.rs.container.ContainerResponseContext; import javax.ws.rs.core.MultivaluedMap; import javax.ws.rs.core.Response.StatusType; - import org.onap.observations.MessageHeaders.HeadersEnum; import org.slf4j.MDC; -import com.att.eelf.utils.Stopwatch; - /** - * ECOMP EELF logging MDC fields not defined in the MDC Configuration (i.e. - * MDC_ALERT_SEVERITY) + * ECOMP EELF logging MDC fields not defined in the MDC Configuration (i.e. MDC_ALERT_SEVERITY) **/ public class Mdc { - public static final String SERVICE_NAME = "CSS-Scheduler"; - public enum Enum { - // BeginTimestamp, - // EndTimeStamp, - // RequestId, - // ServiceInstanceId, - VirtualServerName, - // ServiceName, - // PartnerName, - // StatusCOde, - // ResponseCode, - // ResponseDescription, - // InstanceUUID, - // AlertSeverity, - // ServerIPAddress, - // ElapsedTime, - // ServerFQDN, - // RemoteHost, - ClassName, Unused, - // ProcessKey, - CustomField1, CustomField2, CustomField3, CustomField4, - // TargetVirtualEntity, - // TargetEntity, - // TargetServiceName, - ErrorCode, ErrorDescription, Timer, - } - - public static String getCaller(int back) - { - StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace(); - return stackTraceElements[back].getClassName() + "." + stackTraceElements[back].getMethodName(); - } - - public static void setCaller(int back) - { - String caller = MDC.get(Enum.ClassName.name()); - if (caller == null) - MDC.put(Enum.ClassName.name(), getCaller(back)); - } - - public static void setObservation(ObservationInterface o) - { - MDC.put(Enum.CustomField4.name(), o.name()); - } - - public static void clearCaller() - { - MDC.remove(Enum.ClassName.name()); - } - - public static Map<String, String> save() - { - Map<String, String> save = MDC.getCopyOfContextMap(); - return save; - } - - public static void restore(Map<String, String> mdcSave) - { - MDC.clear(); - for (String name : mdcSave.keySet()) - MDC.put(name, mdcSave.get(name)); - } - - - - public static void setRequestIdIfNotSet(String requestId) { - if (MDC.get(MDC_KEY_REQUEST_ID) == null || MDC.get(MDC_KEY_REQUEST_ID).equals("")) - { - setRequestId(requestId); - } - } - - public static void setRequestId(String requestId) { - MDC.put(MDC_KEY_REQUEST_ID, requestId); - } - - public static void metricStart(ClientRequestContext requestContext) { - MDC.put(MDC_BEGIN_TIMESTAMP, Stopwatch.isoFormatter.format(new Date())); - MDC.put(MDC_END_TIMESTAMP, MDC.get(MDC_BEGIN_TIMESTAMP)); - setPartnerTargetFromUri(requestContext.getUri()); - } - - public static void metricEnd(ClientResponseContext response) - { - - Date now = new Date(); - //MDC.put(MDC_BEGIN_TIMESTAMP, Stopwatch.isoFormatter.format(now)); - MDC.put(MDC_END_TIMESTAMP, Stopwatch.isoFormatter.format(now)); - setResponseInfo(response.getStatusInfo()); - - } - public static void auditStart(ContainerRequestContext requestContext, HttpServletRequest servletRequest) - { - MDC.put(MDC_BEGIN_TIMESTAMP, Stopwatch.isoFormatter.format(new Date())); - MDC.put(MDC_END_TIMESTAMP, MDC.get(MDC_BEGIN_TIMESTAMP)); - MDC.put(MDC_REMOTE_HOST, servletRequest.getRemoteHost()); - MDC.put(Enum.ClassName.name(), getCaller(4)); - MultivaluedMap<String, String> headers = requestContext.getHeaders(); - String transactionId = (String) headers.getFirst(HeadersEnum.TransactionID.toString()); - if (transactionId != null) - { - setRequestId(transactionId); - } - else - { - setRequestId(UUID.randomUUID().toString()); - } - - } - - public static void auditEnd(ContainerRequestContext requestContext, ContainerResponseContext response) - { - Date now = new Date(); - //MDC.put(MDC_BEGIN_TIMESTAMP, Stopwatch.isoFormatter.format(now)); - MDC.put(MDC_END_TIMESTAMP, Stopwatch.isoFormatter.format(now)); - MDC.put(Enum.ClassName.name(), getCaller(4)); - - setResponseInfo(response.getStatusInfo()); - - } - - private static void setResponseInfo(StatusType statusInfo) - { - Integer status = statusInfo.getStatusCode(); - String completed = "ERROR"; - if (status >=200 && status < 300) - { - completed = "COMPLETE"; - } - MDC.put(MDC_RESPONSE_CODE, status.toString()); - MDC.put(MDC_RESPONSE_DESC, statusInfo.getReasonPhrase()); - MDC.put(MDC_STATUS_CODE, completed); - } - - public static void setEvent(String requestID) { - MDC.put(MDC_BEGIN_TIMESTAMP, Stopwatch.isoFormatter.format(new Date())); - MDC.put(MDC_END_TIMESTAMP, MDC.get(MDC_BEGIN_TIMESTAMP)); - setRequestId(requestID); - } - - private static void setPartnerTargetFromUri(URI uri) - { - try - { - MDC.put(MDC_PARTNER_NAME, uri.getHost()); - MDC.put(MDC_TARGET_ENTITY, uri.getScheme() + "://" + uri.getHost() + ":" + uri.getPort()); - MDC.put(MDC_TARGET_SERVICE_NAME, uri.getPath()); - } - catch (Exception e) - { - MDC.put(MDC_PARTNER_NAME, "UNKNOWN"); - MDC.put(MDC_TARGET_ENTITY, "UNKNOWN"); - MDC.put(MDC_TARGET_SERVICE_NAME, "UNKNOWN"); - } - } - - -}
\ No newline at end of file + public static final String SERVICE_NAME = "CSS-Scheduler"; + + public enum Enum { + // BeginTimestamp, + // EndTimeStamp, + // RequestId, + // ServiceInstanceId, + VirtualServerName, + // ServiceName, + // PartnerName, + // StatusCOde, + // ResponseCode, + // ResponseDescription, + // InstanceUUID, + // AlertSeverity, + // ServerIPAddress, + // ElapsedTime, + // ServerFQDN, + // RemoteHost, + ClassName, + Unused, + // ProcessKey, + CustomField1, + CustomField2, + CustomField3, + CustomField4, + // TargetVirtualEntity, + // TargetEntity, + // TargetServiceName, + ErrorCode, + ErrorDescription, + Timer, + } + + public static String getCaller(int back) { + StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace(); + return stackTraceElements[back].getClassName() + "." + stackTraceElements[back].getMethodName(); + } + + public static void setCaller(int back) { + String caller = MDC.get(Enum.ClassName.name()); + if (caller == null) + MDC.put(Enum.ClassName.name(), getCaller(back)); + } + + public static void setObservation(ObservationInterface o) { + MDC.put(Enum.CustomField4.name(), o.name()); + } + + public static void clearCaller() { + MDC.remove(Enum.ClassName.name()); + } + + public static Map<String, String> save() { + Map<String, String> save = MDC.getCopyOfContextMap(); + return save; + } + + public static void restore(Map<String, String> mdcSave) { + MDC.clear(); + for (String name : mdcSave.keySet()) + MDC.put(name, mdcSave.get(name)); + } + + + + public static void setRequestIdIfNotSet(String requestId) { + if (MDC.get(MDC_KEY_REQUEST_ID) == null || MDC.get(MDC_KEY_REQUEST_ID).equals("")) { + setRequestId(requestId); + } + } + + public static void setRequestId(String requestId) { + MDC.put(MDC_KEY_REQUEST_ID, requestId); + } + + public static void metricStart(ClientRequestContext requestContext) { + MDC.put(MDC_BEGIN_TIMESTAMP, Stopwatch.isoFormatter.format(new Date())); + MDC.put(MDC_END_TIMESTAMP, MDC.get(MDC_BEGIN_TIMESTAMP)); + setPartnerTargetFromUri(requestContext.getUri()); + } + + public static void metricEnd(ClientResponseContext response) { + + Date now = new Date(); + // MDC.put(MDC_BEGIN_TIMESTAMP, Stopwatch.isoFormatter.format(now)); + MDC.put(MDC_END_TIMESTAMP, Stopwatch.isoFormatter.format(now)); + setResponseInfo(response.getStatusInfo()); + + } + + public static void auditStart(ContainerRequestContext requestContext, HttpServletRequest servletRequest) { + MDC.put(MDC_BEGIN_TIMESTAMP, Stopwatch.isoFormatter.format(new Date())); + MDC.put(MDC_END_TIMESTAMP, MDC.get(MDC_BEGIN_TIMESTAMP)); + MDC.put(MDC_REMOTE_HOST, servletRequest.getRemoteHost()); + MDC.put(Enum.ClassName.name(), getCaller(4)); + MultivaluedMap<String, String> headers = requestContext.getHeaders(); + String transactionId = (String) headers.getFirst(HeadersEnum.TransactionID.toString()); + if (transactionId != null) { + setRequestId(transactionId); + } else { + setRequestId(UUID.randomUUID().toString()); + } + + } + + public static void auditEnd(ContainerRequestContext requestContext, ContainerResponseContext response) { + Date now = new Date(); + // MDC.put(MDC_BEGIN_TIMESTAMP, Stopwatch.isoFormatter.format(now)); + MDC.put(MDC_END_TIMESTAMP, Stopwatch.isoFormatter.format(now)); + MDC.put(Enum.ClassName.name(), getCaller(4)); + + setResponseInfo(response.getStatusInfo()); + + } + + private static void setResponseInfo(StatusType statusInfo) { + Integer status = statusInfo.getStatusCode(); + String completed = "ERROR"; + if (status >= 200 && status < 300) { + completed = "COMPLETE"; + } + MDC.put(MDC_RESPONSE_CODE, status.toString()); + MDC.put(MDC_RESPONSE_DESC, statusInfo.getReasonPhrase()); + MDC.put(MDC_STATUS_CODE, completed); + } + + public static void setEvent(String requestID) { + MDC.put(MDC_BEGIN_TIMESTAMP, Stopwatch.isoFormatter.format(new Date())); + MDC.put(MDC_END_TIMESTAMP, MDC.get(MDC_BEGIN_TIMESTAMP)); + setRequestId(requestID); + } + + private static void setPartnerTargetFromUri(URI uri) { + try { + MDC.put(MDC_PARTNER_NAME, uri.getHost()); + MDC.put(MDC_TARGET_ENTITY, uri.getScheme() + "://" + uri.getHost() + ":" + uri.getPort()); + MDC.put(MDC_TARGET_SERVICE_NAME, uri.getPath()); + } catch (Exception e) { + MDC.put(MDC_PARTNER_NAME, "UNKNOWN"); + MDC.put(MDC_TARGET_ENTITY, "UNKNOWN"); + MDC.put(MDC_TARGET_SERVICE_NAME, "UNKNOWN"); + } + } + + +} diff --git a/cmso-ticketmgt/src/main/java/org/onap/observations/MessageHeaders.java b/cmso-ticketmgt/src/main/java/org/onap/observations/MessageHeaders.java index d8f80a2..c936444 100644 --- a/cmso-ticketmgt/src/main/java/org/onap/observations/MessageHeaders.java +++ b/cmso-ticketmgt/src/main/java/org/onap/observations/MessageHeaders.java @@ -1,26 +1,26 @@ /* * Copyright © 2019 AT&T Intellectual Property. - * + * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * + * + * * Unless otherwise specified, all documentation contained herein is licensed * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); * you may not use this documentation except in compliance with the License. * You may obtain a copy of the License at - * + * * https://creativecommons.org/licenses/by/4.0/ - * + * * Unless required by applicable law or agreed to in writing, documentation * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -30,7 +30,6 @@ package org.onap.observations; -import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.Map; @@ -38,15 +37,17 @@ import java.util.Set; public class MessageHeaders { public enum HeadersEnum { - UNDEFINED("UNDEFINED"), TransactionID("X-TransactionId"), FromAppID("X-FromAppId"), MinorVersion( - "X-MinorVersion"), PatchVersion("X-PatchVersion"), LatestVersion("X-LatestVersion"),; + UNDEFINED("UNDEFINED"), + TransactionID("X-TransactionId"), + FromAppID("X-FromAppId"), + MinorVersion("X-MinorVersion"), + PatchVersion("X-PatchVersion"), + LatestVersion("X-LatestVersion"),; private final String text; - private final ArrayList<String> list; private HeadersEnum(String text) { this.text = text; - this.list = new ArrayList<>(); } @Override diff --git a/cmso-ticketmgt/src/main/java/org/onap/observations/Observation.java b/cmso-ticketmgt/src/main/java/org/onap/observations/Observation.java index 0e1b1da..83b8f8d 100644 --- a/cmso-ticketmgt/src/main/java/org/onap/observations/Observation.java +++ b/cmso-ticketmgt/src/main/java/org/onap/observations/Observation.java @@ -29,97 +29,87 @@ */ package org.onap.observations; -import org.apache.log4j.Level; - import com.att.eelf.configuration.EELFLogger; import com.att.eelf.configuration.EELFManager; +import org.apache.log4j.Level; + + +public class Observation { + private static EELFLogger log = EELFManager.getInstance().getLogger(Observation.class); + private static EELFLogger metrics = EELFManager.getInstance().getMetricsLogger(); + private static EELFLogger audit = EELFManager.getInstance().getAuditLogger(); + private static EELFLogger errors = EELFManager.getInstance().getErrorLogger(); + private static EELFLogger debug = EELFManager.getInstance().getDebugLogger(); + // ************************************************************************************************* + public static void report(ObservationInterface o, Exception e, String... arguments) { + Mdc.setCaller(4); + Mdc.setObservation(o); + if (o.getAudit()) { + audit.info(o, e, arguments); + } + if (o.getMetric()) { + metrics.info(o, e, arguments); + } + Level l = o.getLevel(); + switch (l.toInt()) { + case Level.WARN_INT: + errors.warn(o, arguments); + debug.debug(o, e, arguments); + break; + case Level.INFO_INT: + log.info(o, e, arguments); + debug.debug(o, e, arguments); + break; + case Level.ERROR_INT: + errors.error(o, arguments); + debug.debug(o, e, arguments); + break; + case Level.TRACE_INT: + debug.trace(o, e, arguments); + break; + case Level.DEBUG_INT: + debug.debug(o, e, arguments); + break; + default: + log.info(o, e, arguments); + } + Mdc.clearCaller(); + } -public class Observation -{ - private static EELFLogger log = EELFManager.getInstance().getLogger(Observation.class); - private static EELFLogger metrics = EELFManager.getInstance().getMetricsLogger(); - private static EELFLogger audit = EELFManager.getInstance().getAuditLogger(); - private static EELFLogger errors = EELFManager.getInstance().getErrorLogger(); - private static EELFLogger debug = EELFManager.getInstance().getDebugLogger(); - - //************************************************************************************************* - public static void report(ObservationInterface o, Exception e, String ...arguments) - { - Mdc.setCaller(4); - Mdc.setObservation(o); - if (o.getAudit()) - { - audit.info(o, e, arguments); - } - if (o.getMetric()) - { - metrics.info(o, e, arguments); - } - Level l = o.getLevel(); - switch (l.toInt()) - { - case Level.WARN_INT: - errors.warn(o, arguments); - debug.debug(o, e, arguments); - break; - case Level.INFO_INT: - log.info(o, e, arguments); - debug.debug(o, e, arguments); - break; - case Level.ERROR_INT: - errors.error(o, arguments); - debug.debug(o, e, arguments); - break; - case Level.TRACE_INT: - debug.trace(o, e, arguments); - break; - case Level.DEBUG_INT: - debug.debug(o, e, arguments); - break; - default: - log.info(o, e, arguments); - } - Mdc.clearCaller(); - } - - public static void report(ObservationInterface o, String ...arguments) - { - Mdc.setCaller(4); - Mdc.setObservation(o); - if (o.getAudit()) - { - audit.info(o, arguments); - } - if (o.getMetric()) - { - metrics.info(o, arguments); - } - Level l = o.getLevel(); - switch (l.toInt()) - { - case Level.WARN_INT: - errors.warn(o, arguments); - debug.debug(o, arguments); - break; - case Level.INFO_INT: - log.info(o, arguments); - debug.debug(o, arguments); - break; - case Level.ERROR_INT: - errors.error(o, arguments); - debug.debug(o, arguments); - break; - case Level.TRACE_INT: - debug.debug(o, arguments); - break; - case Level.DEBUG_INT: - debug.debug(o, arguments); - break; - default: - log.info(o, arguments); - } - Mdc.clearCaller(); - } + public static void report(ObservationInterface o, String... arguments) { + Mdc.setCaller(4); + Mdc.setObservation(o); + if (o.getAudit()) { + audit.info(o, arguments); + } + if (o.getMetric()) { + metrics.info(o, arguments); + } + Level l = o.getLevel(); + switch (l.toInt()) { + case Level.WARN_INT: + errors.warn(o, arguments); + debug.debug(o, arguments); + break; + case Level.INFO_INT: + log.info(o, arguments); + debug.debug(o, arguments); + break; + case Level.ERROR_INT: + errors.error(o, arguments); + debug.debug(o, arguments); + break; + case Level.TRACE_INT: + debug.debug(o, arguments); + break; + case Level.DEBUG_INT: + debug.debug(o, arguments); + break; + default: + log.info(o, arguments); + } + Mdc.clearCaller(); + } } diff --git a/cmso-ticketmgt/src/main/java/org/onap/observations/ObservationInterface.java b/cmso-ticketmgt/src/main/java/org/onap/observations/ObservationInterface.java index 16305bc..7a16a3f 100644 --- a/cmso-ticketmgt/src/main/java/org/onap/observations/ObservationInterface.java +++ b/cmso-ticketmgt/src/main/java/org/onap/observations/ObservationInterface.java @@ -29,20 +29,24 @@ */ package org.onap.observations; +import com.att.eelf.i18n.EELFResolvableErrorEnum; import javax.ws.rs.core.Response.Status; - import org.apache.log4j.Level; -import com.att.eelf.i18n.EELFResolvableErrorEnum; +public interface ObservationInterface extends EELFResolvableErrorEnum { + public Enum<?> getValue(); + + public Level getLevel(); + + public String getMessage(); + + public Status getStatus(); + + public String getDomain(); + + public String name(); + + public Boolean getAudit(); -public interface ObservationInterface extends EELFResolvableErrorEnum -{ - public Enum<?> getValue(); - public Level getLevel(); - public String getMessage(); - public Status getStatus(); - public String getDomain(); - public String name(); - public Boolean getAudit(); - public Boolean getMetric(); -}
\ No newline at end of file + public Boolean getMetric(); +} diff --git a/cmso-ticketmgt/src/main/java/org/onap/observations/ObservationObject.java b/cmso-ticketmgt/src/main/java/org/onap/observations/ObservationObject.java index 639db76..f41c134 100644 --- a/cmso-ticketmgt/src/main/java/org/onap/observations/ObservationObject.java +++ b/cmso-ticketmgt/src/main/java/org/onap/observations/ObservationObject.java @@ -29,81 +29,97 @@ */ package org.onap.observations; +import com.att.eelf.i18n.EELFResolvableErrorEnum; +import com.att.eelf.i18n.EELFResourceManager; import javax.ws.rs.core.Response.Status; - import org.apache.log4j.Level; -import com.att.eelf.i18n.EELFResolvableErrorEnum; -import com.att.eelf.i18n.EELFResourceManager; +public class ObservationObject implements ObservationInterface { + + // ************************************************************************************************* + // Interface class that matches the ObservationInteface pattern + // This will be used in case we decide to provide external overrides and we need to instantiate + // For now, we'll just use the Enum itself. + // + // + private Enum<?> value = null; + private Level level = null;; + private String message = null; + private Status status = null; + private String domain = null; + private Boolean metric = false; + private Boolean audit = false; + + public ObservationObject(ObservationInterface o) { + this.value = o.getValue(); + this.level = o.getLevel(); + this.message = o.getMessage(); + this.status = o.getStatus(); + this.domain = o.getDomain(); + this.metric = o.getMetric(); + this.audit = o.getAudit(); + + } + + public Enum<?> getValue() { + return value; + } + + @Override + public String getMessage() { + return message; + } + + @Override + public Status getStatus() { + return status; + } + + @Override + public String getDomain() { + return domain; + } + + @Override + public Level getLevel() { + return level; + } + + @Override + public String name() { + return value.name(); + } + + @Override + public Boolean getAudit() { + return audit; + } + + @Override + public Boolean getMetric() { + return metric; + } + + public String getMessage(String... arguments) { + return EELFResourceManager.format((EELFResolvableErrorEnum) value, arguments); + } + + public void setValue(Enum<?> value) { + this.value = value; + } + + public void setLevel(Level level) { + this.level = level; + } + + public void setMessage(String message) { + this.message = message; + } -public class ObservationObject implements ObservationInterface -{ - - //************************************************************************************************* - // Interface class that matches the ObservationInteface pattern - // This will be used in case we decide to provide external overrides and we need to instantiate - // For now, we'll just use the Enum itself. - // - // - private Enum<?> value = null; - private Level level = null;; - private String message = null; - private Status status = null; - private String domain = null; - private Boolean metric = false; - private Boolean audit = false; - public ObservationObject(ObservationInterface o) - { - this.value = o.getValue(); - this.level = o.getLevel(); - this.message = o.getMessage(); - this.status = o.getStatus(); - this.domain = o.getDomain(); - this.metric = o.getMetric(); - this.audit = o.getAudit(); - - } - public Enum<?> getValue() {return value;} - @Override - public String getMessage() {return message;} - @Override - public Status getStatus() {return status;} - @Override - public String getDomain() {return domain;} - - @Override - public Level getLevel() { - return level; - } - @Override - public String name() { - return value.name(); - } - @Override - public Boolean getAudit() { - return audit; - } - @Override - public Boolean getMetric() { - return metric; - } - - public String getMessage(String ...arguments) { - return EELFResourceManager.format((EELFResolvableErrorEnum)value, arguments); - } - public void setValue(Enum<?> value) { - this.value = value; - } - public void setLevel(Level level) { - this.level = level; - } - public void setMessage(String message) { - this.message = message; - } - public void setStatus(Status status) { - this.status = status; - } + public void setStatus(Status status) { + this.status = status; + } } |