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