diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp
index b32e8be5..15f81b04 100644
--- a/src/android/camera_device.cpp
+++ b/src/android/camera_device.cpp
@@ -1391,6 +1391,14 @@ const camera_metadata_t *CameraDevice::getStaticMetadata()
 		return nullptr;
 	}
 
+	if (staticMetadata_->resized()) {
+		size_t entryCount, dataCount;
+		std::tie(entryCount, dataCount) = staticMetadata_->usage();
+		LOG(HAL, Info)
+			<< "Static metadata resized: " << entryCount
+			<< " entries and " << dataCount << " bytes used";
+	}
+
 	return staticMetadata_->get();
 }
 
@@ -2269,5 +2277,13 @@ CameraDevice::getResultMetadata(const Camera3RequestDescriptor &descriptor) cons
 		LOG(HAL, Error) << "Failed to construct result metadata";
 	}
 
+	if (resultMetadata->resized()) {
+		size_t entryCount, dataCount;
+		std::tie(entryCount, dataCount) = resultMetadata->usage();
+		LOG(HAL, Info)
+			<< "Result metadata resized: " << entryCount
+			<< " entries and " << dataCount << " bytes used";
+	}
+
 	return resultMetadata;
 }
diff --git a/src/android/camera_metadata.cpp b/src/android/camera_metadata.cpp
index bf8d2781..0588ea4e 100644
--- a/src/android/camera_metadata.cpp
+++ b/src/android/camera_metadata.cpp
@@ -14,17 +14,19 @@ using namespace libcamera;
 LOG_DEFINE_CATEGORY(CameraMetadata)
 
 CameraMetadata::CameraMetadata()
-	: metadata_(nullptr), valid_(false)
+	: metadata_(nullptr), valid_(false), resized_(false)
 {
 }
 
 CameraMetadata::CameraMetadata(size_t entryCapacity, size_t dataCapacity)
+	: resized_(false)
 {
 	metadata_ = allocate_camera_metadata(entryCapacity, dataCapacity);
 	valid_ = metadata_ != nullptr;
 }
 
 CameraMetadata::CameraMetadata(const camera_metadata_t *metadata)
+	: resized_(false)
 {
 	metadata_ = clone_camera_metadata(metadata);
 	valid_ = metadata_ != nullptr;
@@ -55,6 +57,14 @@ CameraMetadata &CameraMetadata::operator=(const CameraMetadata &other)
 	return *this;
 }
 
+std::tuple<size_t, size_t> CameraMetadata::usage() const
+{
+	size_t currentEntryCount = get_camera_metadata_entry_count(metadata_);
+	size_t currentDataCount = get_camera_metadata_data_count(metadata_);
+
+	return { currentEntryCount, currentDataCount };
+}
+
 bool CameraMetadata::getEntry(uint32_t tag, camera_metadata_ro_entry_t *entry) const
 {
 	if (find_camera_metadata_ro_entry(metadata_, tag, entry))
@@ -104,6 +114,8 @@ bool CameraMetadata::resize(size_t count, size_t size)
 
 		append_camera_metadata(metadata_, oldMetadata);
 		free_camera_metadata(oldMetadata);
+
+		resized_ = true;
 	}
 
 	return true;
diff --git a/src/android/camera_metadata.h b/src/android/camera_metadata.h
index 07afd4b2..b291fbf9 100644
--- a/src/android/camera_metadata.h
+++ b/src/android/camera_metadata.h
@@ -23,6 +23,9 @@ public:
 
 	CameraMetadata &operator=(const CameraMetadata &other);
 
+	std::tuple<size_t, size_t> usage() const;
+	bool resized() const { return resized_; }
+
 	bool isValid() const { return valid_; }
 	bool resize(size_t count, size_t size);
 	bool getEntry(uint32_t tag, camera_metadata_ro_entry_t *entry) const;
@@ -81,6 +84,7 @@ public:
 private:
 	camera_metadata_t *metadata_;
 	bool valid_;
+	bool resized_;
 };
 
 #endif /* __ANDROID_CAMERA_METADATA_H__ */
