added logging
This commit is contained in:
26
collect.py
26
collect.py
@@ -7,6 +7,7 @@ import shutil
|
||||
import socket
|
||||
import platform
|
||||
import argparse
|
||||
import logging
|
||||
|
||||
from datetime import datetime
|
||||
|
||||
@@ -287,16 +288,23 @@ def collect_data(minutes):
|
||||
|
||||
print(f" {i}", end="", flush=True)
|
||||
|
||||
logging.info("running zpool iostat")
|
||||
zpoolIostat()
|
||||
logging.info("running ifstat")
|
||||
ifstat()
|
||||
|
||||
if is_debian():
|
||||
logging.info("running iostat_cpu")
|
||||
scaleIostat_cpu()
|
||||
logging.info("running iostat_disk")
|
||||
scaleIostat_disk()
|
||||
logging.info("running memstat")
|
||||
scaleMemstat()
|
||||
|
||||
if is_freebsd():
|
||||
logging.info("running cpustat")
|
||||
coreCPUstat()
|
||||
logging.info("running memstat")
|
||||
coreMemstat()
|
||||
|
||||
# gives same data each interval
|
||||
@@ -305,6 +313,7 @@ def collect_data(minutes):
|
||||
if i == minutes:
|
||||
print("")
|
||||
print("")
|
||||
logging.info("collection over")
|
||||
break
|
||||
|
||||
time.sleep(55)
|
||||
@@ -312,6 +321,7 @@ def collect_data(minutes):
|
||||
|
||||
def run_debug():
|
||||
print("Taking new debug.")
|
||||
logging.info("taking debug")
|
||||
command = ["midclt", "call", "system.debug_generate", "-job"]
|
||||
try:
|
||||
result = subprocess.run(command, capture_output=True, text=True, check=True)
|
||||
@@ -388,6 +398,12 @@ def welcome():
|
||||
def main():
|
||||
welcome()
|
||||
|
||||
logging.basicConfig(
|
||||
filename="perf.log",
|
||||
level=logging.DEBUG,
|
||||
format="%(asctime)s %(levelname)s %(message)s",
|
||||
)
|
||||
|
||||
# setup argparse
|
||||
parser = argparse.ArgumentParser(description="TrueNAS Performance Capture Script")
|
||||
parser.add_argument(
|
||||
@@ -416,6 +432,8 @@ def main():
|
||||
f"Set to wait {minutesToWait} minutes and then capture for {minutes} minutes."
|
||||
)
|
||||
|
||||
logging.info(f"SETUP: {minutesToWait}m delay, {minutes}m of capture.")
|
||||
|
||||
if minutesToWait:
|
||||
print(f"Delaying capture by {minutesToWait} minutes...")
|
||||
for i in range(minutesToWait):
|
||||
@@ -424,11 +442,12 @@ def main():
|
||||
print("")
|
||||
except KeyboardInterrupt:
|
||||
print("")
|
||||
print("Caught control-c, exiting...")
|
||||
logging.info("Caught control-c, exiting...")
|
||||
exit()
|
||||
|
||||
try:
|
||||
print("Starting Collection")
|
||||
logging.info("Starting Collection")
|
||||
# Collect data
|
||||
if is_freebsd():
|
||||
# timeout = f"{minutes}m"
|
||||
@@ -442,11 +461,14 @@ def main():
|
||||
"15s",
|
||||
]
|
||||
|
||||
logging.info("opening gstat.csv")
|
||||
gstatData = open("gstat.csv", "ab")
|
||||
logging.info("opening gstat.err")
|
||||
gstatError = open("gstat.err", "a")
|
||||
|
||||
# with as output_file:
|
||||
# # Create a Popen object with stdout redirected to the file
|
||||
logging.info("starting Popen")
|
||||
process = subprocess.Popen(
|
||||
gstat_command, stdout=gstatData, stderr=gstatError
|
||||
)
|
||||
@@ -455,6 +477,7 @@ def main():
|
||||
|
||||
# # kill gstat if freebsd
|
||||
if is_freebsd():
|
||||
logging.info("killing gstat")
|
||||
process.terminate()
|
||||
|
||||
gstatData.flush()
|
||||
@@ -467,6 +490,7 @@ def main():
|
||||
print("Caught Ctrl-C, cancelling collection...")
|
||||
# kill gstat if freebsd
|
||||
if is_freebsd():
|
||||
logging.info("killing gstat")
|
||||
process.terminate()
|
||||
|
||||
gstatData.flush()
|
||||
|
||||
Reference in New Issue
Block a user