diff --git a/console/data/docs/99-changelog.md b/console/data/docs/99-changelog.md index 55bf3d27..a64c752c 100644 --- a/console/data/docs/99-changelog.md +++ b/console/data/docs/99-changelog.md @@ -14,6 +14,7 @@ identified with a specific icon: ## Unreleased - 🩹 *console*: fix subnet aggregation when IPv4 or IPv6 is set to its default value +- 🩹 *console*: fix `SrcNetPrefix`, `DstNetPrefix`, `PacketSize`, and `PacketSizeBucket` dimensions ## 1.8.0 - 2023-02-25 diff --git a/console/graph.go b/console/graph.go index 7216055e..9402033b 100644 --- a/console/graph.go +++ b/console/graph.go @@ -55,7 +55,7 @@ func (input graphCommonHandlerInput) sourceSelect() string { } } if len(truncated) == 0 { - return "SELECT * FROM {{ .Table }}" + return "SELECT * FROM {{ .Table }} SETTINGS asterisk_include_alias_columns = 1" } - return fmt.Sprintf("SELECT * REPLACE (%s) FROM {{ .Table }}", strings.Join(truncated, ", ")) + return fmt.Sprintf("SELECT * REPLACE (%s) FROM {{ .Table }} SETTINGS asterisk_include_alias_columns = 1", strings.Join(truncated, ", ")) } diff --git a/console/graph_test.go b/console/graph_test.go index c83be1e6..89531370 100644 --- a/console/graph_test.go +++ b/console/graph_test.go @@ -23,7 +23,7 @@ func TestSourceSelect(t *testing.T) { Input: graphCommonHandlerInput{ Dimensions: []query.Column{}, }, - Expected: "SELECT * FROM {{ .Table }}", + Expected: "SELECT * FROM {{ .Table }} SETTINGS asterisk_include_alias_columns = 1", }, { Description: "no truncatable dimensions", Input: graphCommonHandlerInput{ @@ -31,13 +31,13 @@ func TestSourceSelect(t *testing.T) { TruncateAddrV4: 16, TruncateAddrV6: 40, }, - Expected: "SELECT * FROM {{ .Table }}", + Expected: "SELECT * FROM {{ .Table }} SETTINGS asterisk_include_alias_columns = 1", }, { Description: "no truncatation", Input: graphCommonHandlerInput{ Dimensions: []query.Column{query.NewColumn("SrcAddr")}, }, - Expected: "SELECT * FROM {{ .Table }}", + Expected: "SELECT * FROM {{ .Table }} SETTINGS asterisk_include_alias_columns = 1", }, { Description: "IPv4/IPv6 same prefix length", Input: graphCommonHandlerInput{ @@ -45,7 +45,7 @@ func TestSourceSelect(t *testing.T) { TruncateAddrV4: 16, TruncateAddrV6: 112, }, - Expected: "SELECT * REPLACE (tupleElement(IPv6CIDRToRange(SrcAddr, 112), 1) AS SrcAddr) FROM {{ .Table }}", + Expected: "SELECT * REPLACE (tupleElement(IPv6CIDRToRange(SrcAddr, 112), 1) AS SrcAddr) FROM {{ .Table }} SETTINGS asterisk_include_alias_columns = 1", }, { Description: "IPv4/IPv6 different prefix length", Input: graphCommonHandlerInput{ @@ -53,7 +53,7 @@ func TestSourceSelect(t *testing.T) { TruncateAddrV4: 24, TruncateAddrV6: 40, }, - Expected: "SELECT * REPLACE (tupleElement(IPv6CIDRToRange(SrcAddr, if(tupleElement(IPv6CIDRToRange(SrcAddr, 96), 1) = toIPv6('::ffff:0.0.0.0'), 120, 40)), 1) AS SrcAddr) FROM {{ .Table }}", + Expected: "SELECT * REPLACE (tupleElement(IPv6CIDRToRange(SrcAddr, if(tupleElement(IPv6CIDRToRange(SrcAddr, 96), 1) = toIPv6('::ffff:0.0.0.0'), 120, 40)), 1) AS SrcAddr) FROM {{ .Table }} SETTINGS asterisk_include_alias_columns = 1", }, } for _, tc := range cases { diff --git a/console/line_test.go b/console/line_test.go index bf396edc..38679316 100644 --- a/console/line_test.go +++ b/console/line_test.go @@ -167,7 +167,7 @@ func TestGraphQuerySQL(t *testing.T) { Expected: ` {{ with context @@{"start":"2022-04-10T15:45:10Z","end":"2022-04-11T15:45:10Z","points":100,"units":"l3bps"}@@ }} WITH - source AS (SELECT * FROM {{ .Table }}) + source AS (SELECT * FROM {{ .Table }} SETTINGS asterisk_include_alias_columns = 1) SELECT 1 AS axis, * FROM ( SELECT {{ call .ToStartOfInterval "TimeReceived" }} AS time, @@ -197,7 +197,7 @@ ORDER BY time WITH FILL Expected: ` {{ with context @@{"start":"2022-04-10T15:45:10Z","end":"2022-04-11T15:45:10Z","points":100,"units":"l2bps"}@@ }} WITH - source AS (SELECT * FROM {{ .Table }}) + source AS (SELECT * FROM {{ .Table }} SETTINGS asterisk_include_alias_columns = 1) SELECT 1 AS axis, * FROM ( SELECT {{ call .ToStartOfInterval "TimeReceived" }} AS time, @@ -228,7 +228,7 @@ ORDER BY time WITH FILL Expected: ` {{ with context @@{"start":"2022-04-10T15:45:10Z","end":"2022-04-11T15:45:10Z","points":100,"units":"pps"}@@ }} WITH - source AS (SELECT * FROM {{ .Table }}) + source AS (SELECT * FROM {{ .Table }} SETTINGS asterisk_include_alias_columns = 1) SELECT 1 AS axis, * FROM ( SELECT {{ call .ToStartOfInterval "TimeReceived" }} AS time, @@ -260,7 +260,7 @@ ORDER BY time WITH FILL Expected: ` {{ with context @@{"start":"2022-04-10T15:45:10Z","end":"2022-04-11T15:45:10Z","main-table-required":true,"points":100,"units":"l3bps"}@@ }} WITH - source AS (SELECT * REPLACE (tupleElement(IPv6CIDRToRange(SrcAddr, if(tupleElement(IPv6CIDRToRange(SrcAddr, 96), 1) = toIPv6('::ffff:0.0.0.0'), 120, 48)), 1) AS SrcAddr) FROM {{ .Table }}), + source AS (SELECT * REPLACE (tupleElement(IPv6CIDRToRange(SrcAddr, if(tupleElement(IPv6CIDRToRange(SrcAddr, 96), 1) = toIPv6('::ffff:0.0.0.0'), 120, 48)), 1) AS SrcAddr) FROM {{ .Table }} SETTINGS asterisk_include_alias_columns = 1), rows AS (SELECT SrcAddr FROM source WHERE {{ .Timefilter }} AND (SrcAddr BETWEEN toIPv6('::ffff:1.0.0.0') AND toIPv6('::ffff:1.255.255.255')) GROUP BY SrcAddr ORDER BY SUM(Bytes) DESC LIMIT 0) SELECT 1 AS axis, * FROM ( SELECT @@ -291,7 +291,7 @@ ORDER BY time WITH FILL Expected: ` {{ with context @@{"start":"2022-04-10T15:45:10Z","end":"2022-04-11T15:45:10Z","points":100,"units":"l3bps"}@@ }} WITH - source AS (SELECT * FROM {{ .Table }}) + source AS (SELECT * FROM {{ .Table }} SETTINGS asterisk_include_alias_columns = 1) SELECT 1 AS axis, * FROM ( SELECT {{ call .ToStartOfInterval "TimeReceived" }} AS time, @@ -321,7 +321,7 @@ ORDER BY time WITH FILL Expected: ` {{ with context @@{"start":"2022-04-10T15:45:10Z","end":"2022-04-11T15:45:10Z","points":100,"units":"l3bps"}@@ }} WITH - source AS (SELECT * FROM {{ .Table }}) + source AS (SELECT * FROM {{ .Table }} SETTINGS asterisk_include_alias_columns = 1) SELECT 1 AS axis, * FROM ( SELECT {{ call .ToStartOfInterval "TimeReceived" }} AS time, @@ -352,7 +352,7 @@ ORDER BY time WITH FILL Expected: ` {{ with context @@{"start":"2022-04-10T15:45:10Z","end":"2022-04-11T15:45:10Z","points":100,"units":"l3bps"}@@ }} WITH - source AS (SELECT * FROM {{ .Table }}) + source AS (SELECT * FROM {{ .Table }} SETTINGS asterisk_include_alias_columns = 1) SELECT 1 AS axis, * FROM ( SELECT {{ call .ToStartOfInterval "TimeReceived" }} AS time, @@ -399,7 +399,7 @@ ORDER BY time WITH FILL Expected: ` {{ with context @@{"start":"2022-04-10T15:45:10Z","end":"2022-04-11T15:45:10Z","points":100,"units":"inl2%"}@@ }} WITH - source AS (SELECT * FROM {{ .Table }}) + source AS (SELECT * FROM {{ .Table }} SETTINGS asterisk_include_alias_columns = 1) SELECT 1 AS axis, * FROM ( SELECT {{ call .ToStartOfInterval "TimeReceived" }} AS time, @@ -449,7 +449,7 @@ ORDER BY time WITH FILL Expected: ` {{ with context @@{"start":"2022-04-10T15:45:10Z","end":"2022-04-11T15:45:10Z","points":100,"units":"l3bps"}@@ }} WITH - source AS (SELECT * FROM {{ .Table }}), + source AS (SELECT * FROM {{ .Table }} SETTINGS asterisk_include_alias_columns = 1), rows AS (SELECT ExporterName, InIfProvider FROM source WHERE {{ .Timefilter }} GROUP BY ExporterName, InIfProvider ORDER BY SUM(Bytes) DESC LIMIT 20) SELECT 1 AS axis, * FROM ( SELECT @@ -485,7 +485,7 @@ ORDER BY time WITH FILL Expected: ` {{ with context @@{"start":"2022-04-10T15:45:10Z","end":"2022-04-11T15:45:10Z","points":100,"units":"l3bps"}@@ }} WITH - source AS (SELECT * FROM {{ .Table }}), + source AS (SELECT * FROM {{ .Table }} SETTINGS asterisk_include_alias_columns = 1), rows AS (SELECT ExporterName, InIfProvider FROM source WHERE {{ .Timefilter }} GROUP BY ExporterName, InIfProvider ORDER BY SUM(Bytes) DESC LIMIT 20) SELECT 1 AS axis, * FROM ( SELECT @@ -537,7 +537,7 @@ ORDER BY time WITH FILL Expected: ` {{ with context @@{"start":"2022-04-10T15:45:10Z","end":"2022-04-11T15:45:10Z","points":100,"units":"l3bps"}@@ }} WITH - source AS (SELECT * FROM {{ .Table }}), + source AS (SELECT * FROM {{ .Table }} SETTINGS asterisk_include_alias_columns = 1), rows AS (SELECT ExporterName, InIfProvider FROM source WHERE {{ .Timefilter }} GROUP BY ExporterName, InIfProvider ORDER BY SUM(Bytes) DESC LIMIT 20) SELECT 1 AS axis, * FROM ( SELECT diff --git a/console/query_test.go b/console/query_test.go index d6dbe82e..723bf2df 100644 --- a/console/query_test.go +++ b/console/query_test.go @@ -25,6 +25,7 @@ func TestRequireMainTable(t *testing.T) { {[]query.Column{query.NewColumn("DstAddr")}, query.NewFilter(""), true}, {[]query.Column{query.NewColumn("SrcAS"), query.NewColumn("DstAddr")}, query.NewFilter(""), true}, {[]query.Column{query.NewColumn("DstAddr"), query.NewColumn("SrcAS")}, query.NewFilter(""), true}, + {[]query.Column{query.NewColumn("DstNetPrefix")}, query.NewFilter(""), true}, {[]query.Column{}, query.NewFilter("SrcAddr = 203.0.113.15"), true}, } sch := schema.NewMock(t) diff --git a/console/sankey_test.go b/console/sankey_test.go index d555896e..6dfb4db7 100644 --- a/console/sankey_test.go +++ b/console/sankey_test.go @@ -40,7 +40,7 @@ func TestSankeyQuerySQL(t *testing.T) { Expected: ` {{ with context @@{"start":"2022-04-10T15:45:10Z","end":"2022-04-11T15:45:10Z","points":20,"units":"l3bps"}@@ }} WITH - source AS (SELECT * FROM {{ .Table }}), + source AS (SELECT * FROM {{ .Table }} SETTINGS asterisk_include_alias_columns = 1), (SELECT MAX(TimeReceived) - MIN(TimeReceived) FROM source WHERE {{ .Timefilter }}) AS range, rows AS (SELECT SrcAS, ExporterName FROM source WHERE {{ .Timefilter }} GROUP BY SrcAS, ExporterName ORDER BY SUM(Bytes) DESC LIMIT 5) SELECT @@ -70,7 +70,7 @@ ORDER BY xps DESC Expected: ` {{ with context @@{"start":"2022-04-10T15:45:10Z","end":"2022-04-11T15:45:10Z","points":20,"units":"l2bps"}@@ }} WITH - source AS (SELECT * FROM {{ .Table }}), + source AS (SELECT * FROM {{ .Table }} SETTINGS asterisk_include_alias_columns = 1), (SELECT MAX(TimeReceived) - MIN(TimeReceived) FROM source WHERE {{ .Timefilter }}) AS range, rows AS (SELECT SrcAS, ExporterName FROM source WHERE {{ .Timefilter }} GROUP BY SrcAS, ExporterName ORDER BY SUM(Bytes) DESC LIMIT 5) SELECT @@ -101,7 +101,7 @@ ORDER BY xps DESC Expected: ` {{ with context @@{"start":"2022-04-10T15:45:10Z","end":"2022-04-11T15:45:10Z","points":20,"units":"pps"}@@ }} WITH - source AS (SELECT * FROM {{ .Table }}), + source AS (SELECT * FROM {{ .Table }} SETTINGS asterisk_include_alias_columns = 1), (SELECT MAX(TimeReceived) - MIN(TimeReceived) FROM source WHERE {{ .Timefilter }}) AS range, rows AS (SELECT SrcAS, ExporterName FROM source WHERE {{ .Timefilter }} GROUP BY SrcAS, ExporterName ORDER BY SUM(Bytes) DESC LIMIT 5) SELECT @@ -131,7 +131,7 @@ ORDER BY xps DESC Expected: ` {{ with context @@{"start":"2022-04-10T15:45:10Z","end":"2022-04-11T15:45:10Z","points":20,"units":"l3bps"}@@ }} WITH - source AS (SELECT * FROM {{ .Table }}), + source AS (SELECT * FROM {{ .Table }} SETTINGS asterisk_include_alias_columns = 1), (SELECT MAX(TimeReceived) - MIN(TimeReceived) FROM source WHERE {{ .Timefilter }} AND (DstCountry = 'FR')) AS range, rows AS (SELECT SrcAS, ExporterName FROM source WHERE {{ .Timefilter }} AND (DstCountry = 'FR') GROUP BY SrcAS, ExporterName ORDER BY SUM(Bytes) DESC LIMIT 10) SELECT