@@ -1823,76 +1823,99 @@ def display_footer(console, insights_start_time, insights_end_time):
18231823 )
18241824 )
18251825
1826- def export_html (console , filename ):
1826+ def export_html (console , export_dir , filename ):
18271827 '''
18281828 '''
18291829
1830- if args .export_html :
1831- console .save_html (
1832- filename ,
1833- theme = set_export_theme (),
1834- clear = False
1835- )
1830+ if not args .export_html :
1831+ print ("DEBUG: export_html() - return" )
1832+ return
18361833
1834+ os .makedirs (export_dir , exist_ok = True )
1835+ filepath = os .path .join (export_dir , f"{ filename } .html" )
18371836
1838- def export_svg (console , filename ):
1839- if args .export_svg :
1840- console .save_svg (
1841- filename ,
1842- title = 'Drishti' ,
1843- theme = set_export_theme (),
1844- clear = False
1845- )
1837+ console .save_html (
1838+ filepath ,
1839+ theme = set_export_theme (),
1840+ clear = False
1841+ )
18461842
1843+ print ("DEBUG: END export_html()" )
18471844
1848- def export_csv (filename , jobid = None ):
1849- if args .export_csv :
1850- issues = [
1851- 'JOB' ,
1852- INSIGHTS_STDIO_HIGH_USAGE ,
1853- INSIGHTS_POSIX_WRITE_COUNT_INTENSIVE ,
1854- INSIGHTS_POSIX_READ_COUNT_INTENSIVE ,
1855- INSIGHTS_POSIX_WRITE_SIZE_INTENSIVE ,
1856- INSIGHTS_POSIX_READ_SIZE_INTENSIVE ,
1857- INSIGHTS_POSIX_HIGH_SMALL_READ_REQUESTS_USAGE ,
1858- INSIGHTS_POSIX_HIGH_SMALL_WRITE_REQUESTS_USAGE ,
1859- INSIGHTS_POSIX_HIGH_MISALIGNED_MEMORY_USAGE ,
1860- INSIGHTS_POSIX_HIGH_MISALIGNED_FILE_USAGE ,
1861- INSIGHTS_POSIX_REDUNDANT_READ_USAGE ,
1862- INSIGHTS_POSIX_REDUNDANT_WRITE_USAGE ,
1863- INSIGHTS_POSIX_HIGH_RANDOM_READ_USAGE ,
1864- INSIGHTS_POSIX_HIGH_SEQUENTIAL_READ_USAGE ,
1865- INSIGHTS_POSIX_HIGH_RANDOM_WRITE_USAGE ,
1866- INSIGHTS_POSIX_HIGH_SEQUENTIAL_WRITE_USAGE ,
1867- INSIGHTS_POSIX_HIGH_SMALL_READ_REQUESTS_SHARED_FILE_USAGE ,
1868- INSIGHTS_POSIX_HIGH_SMALL_WRITE_REQUESTS_SHARED_FILE_USAGE ,
1869- INSIGHTS_POSIX_HIGH_METADATA_TIME ,
1870- INSIGHTS_POSIX_SIZE_IMBALANCE ,
1871- INSIGHTS_POSIX_TIME_IMBALANCE ,
1872- INSIGHTS_POSIX_INDIVIDUAL_WRITE_SIZE_IMBALANCE ,
1873- INSIGHTS_POSIX_INDIVIDUAL_READ_SIZE_IMBALANCE ,
1874- INSIGHTS_MPI_IO_NO_USAGE ,
1875- INSIGHTS_MPI_IO_NO_COLLECTIVE_READ_USAGE ,
1876- INSIGHTS_MPI_IO_NO_COLLECTIVE_WRITE_USAGE ,
1877- INSIGHTS_MPI_IO_COLLECTIVE_READ_USAGE ,
1878- INSIGHTS_MPI_IO_COLLECTIVE_WRITE_USAGE ,
1879- INSIGHTS_MPI_IO_BLOCKING_READ_USAGE ,
1880- INSIGHTS_MPI_IO_BLOCKING_WRITE_USAGE ,
1881- INSIGHTS_MPI_IO_AGGREGATORS_INTRA ,
1882- INSIGHTS_MPI_IO_AGGREGATORS_INTER ,
1883- INSIGHTS_MPI_IO_AGGREGATORS_OK
1884- ]
1885- if codes :
1886- issues .extend (codes )
18871845
1888- detected_issues = dict .fromkeys (issues , False )
1889- detected_issues ['JOB' ] = jobid
1846+ def export_svg (console , export_dir , filename ):
1847+ if not args .export_svg :
1848+ return
1849+
1850+ os .makedirs (export_dir , exist_ok = True )
1851+ filepath = os .path .join (export_dir , f"{ filename } .svg" )
1852+
1853+ console .save_svg (
1854+ filepath ,
1855+ title = 'Drishti' ,
1856+ theme = set_export_theme (),
1857+ clear = False
1858+ )
18901859
1891- for report in csv_report :
1892- detected_issues [report ] = True
18931860
1894- with open (filename , 'w' ) as f :
1895- w = csv .writer (f )
1896- w .writerow (detected_issues .keys ())
1897- w .writerow (detected_issues .values ())
1861+ def export_csv (export_dir , filename , jobid = None ):
1862+ if not args .export_csv :
1863+ return
1864+
1865+ issues = [
1866+ 'JOB' ,
1867+ INSIGHTS_STDIO_HIGH_USAGE ,
1868+ INSIGHTS_POSIX_WRITE_COUNT_INTENSIVE ,
1869+ INSIGHTS_POSIX_READ_COUNT_INTENSIVE ,
1870+ INSIGHTS_POSIX_WRITE_SIZE_INTENSIVE ,
1871+ INSIGHTS_POSIX_READ_SIZE_INTENSIVE ,
1872+ INSIGHTS_POSIX_HIGH_SMALL_READ_REQUESTS_USAGE ,
1873+ INSIGHTS_POSIX_HIGH_SMALL_WRITE_REQUESTS_USAGE ,
1874+ INSIGHTS_POSIX_HIGH_MISALIGNED_MEMORY_USAGE ,
1875+ INSIGHTS_POSIX_HIGH_MISALIGNED_FILE_USAGE ,
1876+ INSIGHTS_POSIX_REDUNDANT_READ_USAGE ,
1877+ INSIGHTS_POSIX_REDUNDANT_WRITE_USAGE ,
1878+ INSIGHTS_POSIX_HIGH_RANDOM_READ_USAGE ,
1879+ INSIGHTS_POSIX_HIGH_SEQUENTIAL_READ_USAGE ,
1880+ INSIGHTS_POSIX_HIGH_RANDOM_WRITE_USAGE ,
1881+ INSIGHTS_POSIX_HIGH_SEQUENTIAL_WRITE_USAGE ,
1882+ INSIGHTS_POSIX_HIGH_SMALL_READ_REQUESTS_SHARED_FILE_USAGE ,
1883+ INSIGHTS_POSIX_HIGH_SMALL_WRITE_REQUESTS_SHARED_FILE_USAGE ,
1884+ INSIGHTS_POSIX_HIGH_METADATA_TIME ,
1885+ INSIGHTS_POSIX_SIZE_IMBALANCE ,
1886+ INSIGHTS_POSIX_TIME_IMBALANCE ,
1887+ INSIGHTS_POSIX_INDIVIDUAL_WRITE_SIZE_IMBALANCE ,
1888+ INSIGHTS_POSIX_INDIVIDUAL_READ_SIZE_IMBALANCE ,
1889+ INSIGHTS_MPI_IO_NO_USAGE ,
1890+ INSIGHTS_MPI_IO_NO_COLLECTIVE_READ_USAGE ,
1891+ INSIGHTS_MPI_IO_NO_COLLECTIVE_WRITE_USAGE ,
1892+ INSIGHTS_MPI_IO_COLLECTIVE_READ_USAGE ,
1893+ INSIGHTS_MPI_IO_COLLECTIVE_WRITE_USAGE ,
1894+ INSIGHTS_MPI_IO_BLOCKING_READ_USAGE ,
1895+ INSIGHTS_MPI_IO_BLOCKING_WRITE_USAGE ,
1896+ INSIGHTS_MPI_IO_AGGREGATORS_INTRA ,
1897+ INSIGHTS_MPI_IO_AGGREGATORS_INTER ,
1898+ INSIGHTS_MPI_IO_AGGREGATORS_OK
1899+ ]
1900+ if codes :
1901+ issues .extend (codes )
1902+
1903+ detected_issues = dict .fromkeys (issues , False )
1904+ detected_issues ['JOB' ] = jobid
1905+
1906+ for report in csv_report :
1907+ detected_issues [report ] = True
1908+
1909+ # ensure dir exists
1910+ os .makedirs (export_dir , exist_ok = True )
1911+ filepath = os .path .join (export_dir , f"{ filename } .csv" )
1912+
1913+ print (f"DEBUG: export_dir: { export_dir } " )
1914+ print (f"DEBUG: filename: { filename } " )
1915+ print (f"DEBUG: filepath: { filepath } " )
1916+
1917+ with open (filepath , 'w' ) as f :
1918+ w = csv .writer (f )
1919+ w .writerow (detected_issues .keys ())
1920+ w .writerow (detected_issues .values ())
18981921
0 commit comments