diff --git a/ballerina/Ballerina.toml b/ballerina/Ballerina.toml
index 3dd516e..ae5ec12 100644
--- a/ballerina/Ballerina.toml
+++ b/ballerina/Ballerina.toml
@@ -1,7 +1,7 @@
 [package]
 org = "ballerina"
 name = "observe"
-version = "1.3.0"
+version = "1.4.0"
 distribution = "2201.10.0"
 export = ["observe", "observe.mockextension" ]
 
@@ -9,7 +9,7 @@ export = ["observe", "observe.mockextension" ]
 graalvmCompatible = true
 
 [[platform.java21.dependency]]
-path = "../native/build/libs/observe-native-1.3.0.jar"
+path = "../native/build/libs/observe-native-1.4.0-SNAPSHOT.jar"
 groupId = "ballerina"
 artifactId = "observe"
 
diff --git a/ballerina/Dependencies.toml b/ballerina/Dependencies.toml
index cb80600..a432a49 100644
--- a/ballerina/Dependencies.toml
+++ b/ballerina/Dependencies.toml
@@ -18,7 +18,7 @@ modules = [
 [[package]]
 org = "ballerina"
 name = "observe"
-version = "1.3.0"
+version = "1.4.0"
 dependencies = [
 	{org = "ballerina", name = "jballerina.java"}
 ]
diff --git a/ballerina/commons.bal b/ballerina/commons.bal
index 8d31f18..be73c21 100644
--- a/ballerina/commons.bal
+++ b/ballerina/commons.bal
@@ -23,6 +23,7 @@ configurable boolean metricsEnabled = false;
 configurable string metricsReporter = "";
 configurable boolean tracingEnabled = false;
 configurable string tracingProvider = "";
+configurable boolean metricsLogsEnabled = false;
 
 function init() returns error? {
     boolean isMissingMetricsReporter = ((enabled || metricsEnabled) && (provider == "" && metricsReporter == ""));
diff --git a/gradle.properties b/gradle.properties
index b3602a2..65acb13 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -14,8 +14,8 @@
 
 org.gradle.caching=true
 group=io.ballerina.stdlib
-version=1.3.1-SNAPSHOT
-ballerinaLangVersion=2201.10.0-20241007-143200-6b69ca80
+version=1.4.0-SNAPSHOT
+ballerinaLangVersion=2201.11.0-20241112-214900-6b80ab87
 githubSpotbugsVersion=6.0.18
 githubJohnrengelmanShadowVersion=8.1.1
 underCouchDownloadVersion=5.4.0
diff --git a/native/src/main/java/io/ballerina/stdlib/observe/nativeimpl/GetAllMetrics.java b/native/src/main/java/io/ballerina/stdlib/observe/nativeimpl/GetAllMetrics.java
index 5cb09b0..0e775f6 100644
--- a/native/src/main/java/io/ballerina/stdlib/observe/nativeimpl/GetAllMetrics.java
+++ b/native/src/main/java/io/ballerina/stdlib/observe/nativeimpl/GetAllMetrics.java
@@ -19,9 +19,9 @@
 package io.ballerina.stdlib.observe.nativeimpl;
 
 import io.ballerina.runtime.api.Environment;
-import io.ballerina.runtime.api.PredefinedTypes;
 import io.ballerina.runtime.api.creators.TypeCreator;
 import io.ballerina.runtime.api.creators.ValueCreator;
+import io.ballerina.runtime.api.types.PredefinedTypes;
 import io.ballerina.runtime.api.utils.StringUtils;
 import io.ballerina.runtime.api.values.BArray;
 import io.ballerina.runtime.api.values.BMap;
diff --git a/native/src/main/java/io/ballerina/stdlib/observe/nativeimpl/GetSpanContext.java b/native/src/main/java/io/ballerina/stdlib/observe/nativeimpl/GetSpanContext.java
index 60410e2..86e9fd5 100644
--- a/native/src/main/java/io/ballerina/stdlib/observe/nativeimpl/GetSpanContext.java
+++ b/native/src/main/java/io/ballerina/stdlib/observe/nativeimpl/GetSpanContext.java
@@ -19,9 +19,9 @@
 package io.ballerina.stdlib.observe.nativeimpl;
 
 import io.ballerina.runtime.api.Environment;
-import io.ballerina.runtime.api.PredefinedTypes;
 import io.ballerina.runtime.api.creators.TypeCreator;
 import io.ballerina.runtime.api.creators.ValueCreator;
+import io.ballerina.runtime.api.types.PredefinedTypes;
 import io.ballerina.runtime.api.values.BMap;
 import io.ballerina.runtime.api.values.BString;
 import io.ballerina.runtime.observability.ObserveUtils;
diff --git a/native/src/main/java/io/ballerina/stdlib/observe/nativeimpl/LookupMetric.java b/native/src/main/java/io/ballerina/stdlib/observe/nativeimpl/LookupMetric.java
index 868fe84..b83d3f8 100644
--- a/native/src/main/java/io/ballerina/stdlib/observe/nativeimpl/LookupMetric.java
+++ b/native/src/main/java/io/ballerina/stdlib/observe/nativeimpl/LookupMetric.java
@@ -19,9 +19,9 @@
 package io.ballerina.stdlib.observe.nativeimpl;
 
 import io.ballerina.runtime.api.Environment;
-import io.ballerina.runtime.api.PredefinedTypes;
 import io.ballerina.runtime.api.creators.TypeCreator;
 import io.ballerina.runtime.api.creators.ValueCreator;
+import io.ballerina.runtime.api.types.PredefinedTypes;
 import io.ballerina.runtime.api.utils.StringUtils;
 import io.ballerina.runtime.api.values.BArray;
 import io.ballerina.runtime.api.values.BMap;
diff --git a/native/src/main/java/io/ballerina/stdlib/observe/nativeimpl/Utils.java b/native/src/main/java/io/ballerina/stdlib/observe/nativeimpl/Utils.java
index 4d08776..7f7f54c 100644
--- a/native/src/main/java/io/ballerina/stdlib/observe/nativeimpl/Utils.java
+++ b/native/src/main/java/io/ballerina/stdlib/observe/nativeimpl/Utils.java
@@ -21,9 +21,9 @@
 
 
 import io.ballerina.runtime.api.Environment;
-import io.ballerina.runtime.api.PredefinedTypes;
 import io.ballerina.runtime.api.creators.TypeCreator;
 import io.ballerina.runtime.api.creators.ValueCreator;
+import io.ballerina.runtime.api.types.PredefinedTypes;
 import io.ballerina.runtime.api.types.Type;
 import io.ballerina.runtime.api.utils.StringUtils;
 import io.ballerina.runtime.api.values.BArray;