diff --git a/provider/notification-azure/src/main/java/org/opengroup/osdu/notification/provider/azure/messageBus/ProcessNotification.java b/provider/notification-azure/src/main/java/org/opengroup/osdu/notification/provider/azure/messageBus/ProcessNotification.java
index e33e641f59ce8c0caa222c77574f5376e124e388..07ce2501d9e7c5a54676c08005c2d0d3cc502bb8 100644
--- a/provider/notification-azure/src/main/java/org/opengroup/osdu/notification/provider/azure/messageBus/ProcessNotification.java
+++ b/provider/notification-azure/src/main/java/org/opengroup/osdu/notification/provider/azure/messageBus/ProcessNotification.java
@@ -14,7 +14,10 @@
 
 package org.opengroup.osdu.notification.provider.azure.messageBus;
 
+import com.microsoft.applicationinsights.TelemetryClient;
+import com.microsoft.applicationinsights.telemetry.RequestTelemetry;
 import com.microsoft.azure.servicebus.IMessage;
+import org.apache.commons.lang3.time.StopWatch;
 import org.opengroup.osdu.core.common.http.HttpResponse;
 import org.opengroup.osdu.core.common.model.http.DpsHeaders;
 import org.opengroup.osdu.notification.provider.azure.messageBus.thread.ThreadScopeContextHolder;
@@ -29,6 +32,8 @@ import org.slf4j.MDC;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
 import org.springframework.stereotype.Component;
+import java.util.concurrent.ConcurrentMap;
+import java.util.Date;
 
 @Component
 @ConditionalOnExpression("${azure.serviceBus.enabled:true} || ${azure.eventGridToServiceBus.enabled:true}")
@@ -45,12 +50,20 @@ public class ProcessNotification {
     private MDCContextMap mdcContextMap;
 
     public void performNotification(IMessage message, String subscriptionName) throws Exception {
+        TelemetryClient telemetryClient = new TelemetryClient();
+        StopWatch stopWatch = new StopWatch();
+        stopWatch.start();        
+
         try {
             NotificationContent notificationContent = requestBodyAdapter.extractNotificationContent(message, subscriptionName);
 
             String dataPartitionId = notificationContent.getExtractAttributes().get(DpsHeaders.DATA_PARTITION_ID);
             String correlationId = notificationContent.getExtractAttributes().get(DpsHeaders.CORRELATION_ID);
 
+            ConcurrentMap properties = telemetryClient.getContext().getProperties();
+            properties.put("correlation-id",correlationId);
+            properties.put("data-partition-id", dataPartitionId); 
+            
             MDC.setContextMap(mdcContextMap.getContextMap(correlationId, dataPartitionId));
             dpsHeaders.setThreadContext(dataPartitionId, correlationId);
 
@@ -58,15 +71,30 @@ public class ProcessNotification {
 
             HttpResponse response = notificationHandler.notifySubscriber(notificationContent.getNotificationId(),
                     notificationContent.getData(), notificationContent.getExtractAttributes());
+
+            RequestTelemetry requestTelemetry = new RequestTelemetry(
+                "SBQueueRequest",
+                new Date(),
+                stopWatch.getTime(),
+                "500",
+                false);
+            requestTelemetry.setId(message.getMessageId());                    
+                                           
             if (!response.isSuccessCode()) {
+                telemetryClient.trackRequest(requestTelemetry); 
                 throw new Exception(NOT_ACKNOWLEDGE);
+            }else{
+                requestTelemetry.setResponseCode("200");
+                requestTelemetry.setSuccess(true);
+                telemetryClient.trackRequest(requestTelemetry);
             }
         } catch (Exception e) {
-            LOGGER.error(String.format("An error occurred performing Notification for message with ID: ", message.getMessageId()), e);
+            LOGGER.error(String.format("An error occurred performing Notification for message with ID: ", message.getMessageId()), e);            
             throw e;
         } finally {
             ThreadScopeContextHolder.getContext().clear();
             MDC.clear();
+            stopWatch.stop();
         }
     }
 }