Skip to content
Snippets Groups Projects
Commit 3dc92f09 authored by Neelesh Thakur's avatar Neelesh Thakur
Browse files

add request dependency logging

parent 2d8e5e13
No related branches found
No related tags found
1 merge request!348add subscriber notification request request/dependency logging
package org.opengroup.osdu.notification.provider.interfaces;
import org.opengroup.osdu.core.common.http.HttpResponse;
public interface ISubscriberNotificationRequestLogger {
default void log(String notificationId, String endpoint, HttpResponse response) {
}
}
......@@ -24,6 +24,7 @@ import org.opengroup.osdu.core.common.model.http.DpsHeaders;
import org.opengroup.osdu.core.common.model.notification.*;
import org.opengroup.osdu.notification.auth.factory.AuthFactory;
import org.opengroup.osdu.notification.auth.interfaces.SecretAuth;
import org.opengroup.osdu.notification.provider.interfaces.ISubscriberNotificationRequestLogger;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -45,6 +46,8 @@ public class NotificationHandler {
private AuthFactory authFactory;
@Value("${app.waitingTime:30000}")
private int WAITING_TIME;
@Autowired
private ISubscriberNotificationRequestLogger subscriberNotificationRequestLogger;
public HttpResponse notifySubscriber(String notificationId, String pubsubMessage, Map<String, String> headerAttributes) throws Exception {
Subscription subscription = subscriptionHandler.getSubscriptionFromCache(notificationId);
......@@ -76,6 +79,7 @@ public class NotificationHandler {
HttpRequest request = HttpRequest.post().url(pushUrl).headers(requestHeader).body(pubsubMessage).connectionTimeout(WAITING_TIME).build();
this.LOGGER.debug("Sending out notification to endpoint: " + endpoint);
HttpResponse response = httpClient.send(request);
subscriberNotificationRequestLogger.log(notificationId, endpoint, response);
return response;
}
}
\ No newline at end of file
......@@ -32,6 +32,8 @@ import org.opengroup.osdu.core.common.model.notification.Subscription;
import org.opengroup.osdu.core.common.notification.SubscriptionException;
import org.opengroup.osdu.notification.auth.factory.AuthFactory;
import org.opengroup.osdu.notification.auth.interfaces.SecretAuth;
import org.opengroup.osdu.notification.provider.interfaces.ISubscriberNotificationRequestLogger;
import org.powermock.modules.junit4.PowerMockRunner;
import java.util.HashMap;
import java.util.Map;
......@@ -64,6 +66,8 @@ public class NotificationHandlerTest {
@Mock
private JaxRsDpsLog log;
@Mock
private ISubscriberNotificationRequestLogger subscriberNotificationRequestLogger;
@InjectMocks
private NotificationHandler sut;
......
package org.opengroup.osdu.notification.provider.azure.util;
import org.opengroup.osdu.azure.logging.DependencyLogger;
import org.opengroup.osdu.azure.logging.DependencyLoggingOptions;
import org.opengroup.osdu.core.common.http.HttpResponse;
import org.opengroup.osdu.notification.provider.interfaces.ISubscriberNotificationRequestLogger;
import org.springframework.stereotype.Component;
@Component
public class SubscriberNotificationRequestLogger implements ISubscriberNotificationRequestLogger {
private final String DEPENDENCY_TYPE = "Notification";
private final String DEPENDENCY_NAME = "NotifySubscriber";
private final DependencyLogger dependencyLogger;
public SubscriberNotificationRequestLogger(DependencyLogger dependencyLogger) {
this.dependencyLogger = dependencyLogger;
}
public void log(String notificationId, String endpoint, HttpResponse response) {
final DependencyLoggingOptions loggingOptions = DependencyLoggingOptions.builder()
.type(DEPENDENCY_TYPE)
.name(DEPENDENCY_NAME)
.data(notificationId)
.target(endpoint)
.timeTakenInMs(response.getLatency())
.resultCode(response.getResponseCode())
.success(response.isSuccessCode())
.build();
this.dependencyLogger.logDependency(loggingOptions);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment