diff --git a/.github/workflows/lint-test.yml b/.github/workflows/lint-test.yml index 4292a42f19..8b4695dc83 100644 --- a/.github/workflows/lint-test.yml +++ b/.github/workflows/lint-test.yml @@ -21,7 +21,7 @@ jobs: uses: actions/checkout@v3 - name: Run golangci-lint - uses: golangci/golangci-lint-action@v3.6.0 + uses: golangci/golangci-lint-action@v4.0.0 with: version: latest args: --timeout 5m \ No newline at end of file diff --git a/go.mod b/go.mod index 6dbdbf7dae..7ffdcc20bd 100644 --- a/go.mod +++ b/go.mod @@ -349,5 +349,3 @@ require ( // https://go.dev/ref/mod#go-mod-file-retract retract v3.2.0 // retract due to broken js protocol issue - -replace github.com/go-echarts/go-echarts/v2 => github.com/tarunKoyalwar/go-echarts/v2 v2.1.1 diff --git a/go.sum b/go.sum index 4c781f73ce..07a7bc8d22 100644 --- a/go.sum +++ b/go.sum @@ -1013,8 +1013,6 @@ github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsT github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/syndtr/goleveldb v1.0.0 h1:fBdIW9lB4Iz0n9khmH8w27SJ3QEJ7+IgjPEwGSZiFdE= github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= -github.com/tarunKoyalwar/go-echarts/v2 v2.1.1 h1:5fsXGPmK+i18J8cDgxy7AJkiXWBARpVTb0Gbv+bAzPo= -github.com/tarunKoyalwar/go-echarts/v2 v2.1.1/go.mod h1:VEeyPT5Odx/UHeuxtIAHGu2+87MWGA5OBaZ120NFi/w= github.com/tidwall/assert v0.1.0 h1:aWcKyRBUAdLoVebxo95N7+YZVTFF/ASTr7BN4sLP6XI= github.com/tidwall/assert v0.1.0/go.mod h1:QLYtGyeqse53vuELQheYl9dngGCJQ+mTtlxcktb+Kj8= github.com/tidwall/btree v1.7.0 h1:L1fkJH/AuEh5zBnnBbmTwQ5Lt+bRJ5A8EWecslvo9iI= diff --git a/pkg/scan/charts/echarts.go b/pkg/scan/charts/echarts.go index bf70fee710..a2a9815888 100644 --- a/pkg/scan/charts/echarts.go +++ b/pkg/scan/charts/echarts.go @@ -38,16 +38,18 @@ func (s *ScanEventsCharts) allCharts(c echo.Context) *components.Page { page := components.NewPage() page.PageTitle = "Nuclei Charts" line1 := s.totalRequestsOverTime(c) - line1.SetSpacerHeight(SpacerHeight) + // line1.SetSpacerHeight(SpacerHeight) kline := s.topSlowTemplates(c) - kline.SetSpacerHeight(SpacerHeight) + // kline.SetSpacerHeight(SpacerHeight) line2 := s.requestsVSInterval(c) - line2.SetSpacerHeight(SpacerHeight) + // line2.SetSpacerHeight(SpacerHeight) line3 := s.concurrencyVsTime(c) - line3.SetSpacerHeight(SpacerHeight) + // line3.SetSpacerHeight(SpacerHeight) page.AddCharts(line1, kline, line2, line3) - page.Validate() page.SetLayout(components.PageCenterLayout) + page.Theme = "dark" + page.Validate() + return page } @@ -59,7 +61,12 @@ func (s *ScanEventsCharts) TotalRequestsOverTime(c echo.Context) error { // totalRequestsOverTime generates a line chart showing total requests count over time func (s *ScanEventsCharts) totalRequestsOverTime(c echo.Context) *charts.Line { line := charts.NewLine() - line.SetCaption("Chart Shows Total Requests Count Over Time (for each/all Protocols)") + line.SetGlobalOptions( + charts.WithTitleOpts(opts.Title{ + Title: "Nuclei: Total Requests vs Time", + Subtitle: "Chart Shows Total Requests Count Over Time (for each/all Protocols)", + }), + ) var startTime time.Time = time.Now() var endTime time.Time @@ -120,8 +127,12 @@ func (s *ScanEventsCharts) TopSlowTemplates(c echo.Context) error { // topSlowTemplates generates a Kline chart showing the top slow templates by time taken func (s *ScanEventsCharts) topSlowTemplates(c echo.Context) *charts.Kline { kline := charts.NewKLine() - kline.SetCaption(fmt.Sprintf("Chart Shows Top Slow Templates (by time taken) (Top %v)", TopK)) - + kline.SetGlobalOptions( + charts.WithTitleOpts(opts.Title{ + Title: "Nuclei: Top Slow Templates", + Subtitle: fmt.Sprintf("Chart Shows Top Slow Templates (by time taken) (Top %v)", TopK), + }), + ) ids := map[string][]int64{} var startTime time.Time = time.Now() for _, event := range s.data { @@ -200,7 +211,12 @@ func (s *ScanEventsCharts) RequestsVSInterval(c echo.Context) error { // requestsVSInterval generates a line chart showing requests per second over time func (s *ScanEventsCharts) requestsVSInterval(c echo.Context) *charts.Line { line := charts.NewLine() - line.SetCaption("Chart Shows RPS (Requests Per Second) Over Time") + line.SetGlobalOptions( + charts.WithTitleOpts(opts.Title{ + Title: "Nuclei: Requests Per Second vs Time", + Subtitle: "Chart Shows RPS (Requests Per Second) Over Time", + }), + ) sort.Slice(s.data, func(i, j int) bool { return s.data[i].Time.Before(s.data[j].Time) @@ -267,7 +283,12 @@ func (s *ScanEventsCharts) ConcurrencyVsTime(c echo.Context) error { // concurrencyVsTime generates a line chart showing concurrency (total workers) over time func (s *ScanEventsCharts) concurrencyVsTime(c echo.Context) *charts.Line { line := charts.NewLine() - line.SetCaption("Chart Shows Concurrency (Total Workers) Over Time") + line.SetGlobalOptions( + charts.WithTitleOpts(opts.Title{ + Title: "Nuclei: Concurrency vs Time", + Subtitle: "Chart Shows Concurrency (Total Workers) Over Time", + }), + ) dataset := sliceutil.Clone(s.data)