Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions function_to_log.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import resource
import functools
import time


def log\_memory\_usage(func):
"""
Decorator to log memory usage before and after the execution of a function.

Args:
func (callable): The function to decorate.

Returns:
callable: The decorated function with memory usage logging.

"""

@functools.wraps(func)
def wrapper(*args, **kwargs):
start\_memory = resource.getrusage(resource.RUSAGE\_SELF).ru\_maxrss
start\_time = time.time()

try:
result = func(*args, **kwargs)
except Exception as e:
end\_memory = resource.getrusage(resource.RUSAGE\_SELF).ru\_maxrss
end\_time = time.time()
print(f"Error in {func.__name__}: {e}")
print(f"Memory usage before: {start_memory} KB")
print(f"Memory usage after: {end_memory} KB")
print(f"Time taken: {end_time - start_time:.4f} seconds")
raise
else:
end\_memory = resource.getrusage(resource.RUSAGE\_SELF).ru\_maxrss
end\_time = time.time()
print(f"Memory usage before: {start_memory} KB")
print(f"Memory usage after: {end_memory} KB")
print(f"Time taken: {end_time - start_time:.4f} seconds")
return result

return wrapper
41 changes: 41 additions & 0 deletions prometheus_utils.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import resource
import functools
import time


def log\_memory\_usage(function):
"""
Decorator to log memory usage before and after the execution of a function.

Args:
function (callable): The function to decorate.

Returns:
callable: The decorated function with memory usage logging.

"""

@functools.wraps(function)
def wrapper(*args, **kwargs):
start\_memory = resource.getrusage(resource.RUSAGE\_SELF).ru\_maxrss
start\_time = time.time()

try:
result = function(*args, **kwargs)
except Exception as e:
end\_memory = resource.getrusage(resource.RUSAGE\_SELF).ru\_maxrss
end\_time = time.time()
print(f"Error in function {function.__name__}: {e}")
print(f"Memory usage before: {start_memory} KB")
print(f"Memory usage after: {end_memory} KB")
print(f"Time taken: {end_time - start_time:.4f} seconds")
raise
else:
end\_memory = resource.getrusage(resource.RUSAGE\_SELF).ru\_maxrss
end\_time = time.time()
print(f"Memory usage before: {start_memory} KB")
print(f"Memory usage after: {end_memory} KB")
print(f"Time taken: {end_time - start_time:.4f} seconds")
return result

return wrapper