@@ -347,15 +347,15 @@ func (c *ClickHouseClient) GetTopFrames(ctx context.Context, params common.Flame
347347 tableNew := getTableName (table , tablePrefix )
348348 go func (sTable string , sStart string , sEnd string ) {
349349 defer wg .Done ()
350- query := fmt . Sprintf ( `
350+ query := `
351351 SELECT CallStackHash, any(CallStackName), any(CallStackParent), sum(NumSamples)
352- AS SumNumSamples FROM %s
353- WHERE ServiceId == '%d ' AND (Timestamp BETWEEN '%s ' AND '%s ') %s
352+ AS SumNumSamples FROM ?
353+ WHERE ServiceId == '? ' AND (Timestamp BETWEEN '? ' AND '? ') ?
354354 GROUP BY CallStackHash
355355 ORDER BY SumNumSamples DESC
356- LIMIT %d` , sTable , params . ServiceId , sStart , sEnd , conditions , params . StacksNum )
357- log .Printf ("SELECT query: %s " , query )
358- rows , err := c .client .Query (query )
356+ LIMIT ?`
357+ log .Printf ("SELECT query: ? " , query )
358+ rows , err := c .client .Query (query , sTable , params . ServiceId , sStart , sEnd , conditions , params . StacksNum )
359359 if err == nil {
360360 defer rows .Close ()
361361 frames := make (map [uint64 ]Frame )
@@ -401,13 +401,10 @@ func (c *ClickHouseClient) FetchInstanceTypeCount(ctx context.Context, params co
401401 _ , conditions := BuildConditions (params .ContainerName , params .HostName , params .InstanceType , params .K8SObject , filterQuery )
402402 selectQuery = `
403403 SELECT InstanceType, COUNT(DISTINCT HostName) as InstanceCount
404- FROM flamedb.samples_1min where ServiceId = '%d' AND (Timestamp BETWEEN '%s' AND '%s' )
405- %s GROUP BY InstanceType ORDER BY InstanceCount DESC`
406-
407- query := fmt .Sprintf (selectQuery , params .ServiceId , common .FormatTime (params .StartDateTime ),
404+ FROM flamedb.samples_1min where ServiceId = '?' AND (Timestamp BETWEEN '?' AND '?' )
405+ ? GROUP BY InstanceType ORDER BY InstanceCount DESC`
406+ rows , err := c .client .Query (selectQuery , params .ServiceId , common .FormatTime (params .StartDateTime ),
408407 common .FormatTime (params .EndDateTime ), conditions )
409-
410- rows , err := c .client .Query (query )
411408 if err == nil {
412409 defer rows .Close ()
413410 for rows .Next () {
@@ -433,12 +430,10 @@ func (c *ClickHouseClient) FetchFieldValueSample(ctx context.Context, field stri
433430 result := make ([]common.FilterData , 0 )
434431 _ , conditions := BuildConditions (params .ContainerName , params .HostName , params .InstanceType , params .K8SObject , filterQuery )
435432 selectQuery = `
436- SELECT %s , SUM(NumSamples) as samples from flamedb.samples_1min WHERE ServiceId == '%d ' AND
437- (Timestamp BETWEEN '%s ' AND '%s ') %s GROUP BY %s ORDER BY samples DESC;`
438- query := fmt . Sprintf ( selectQuery , field , params .ServiceId , common .FormatTime (params .StartDateTime ),
433+ SELECT ? , SUM(NumSamples) as samples from flamedb.samples_1min WHERE ServiceId == '? ' AND
434+ (Timestamp BETWEEN '? ' AND '? ') ? GROUP BY ? ORDER BY samples DESC;`
435+ rows , err := c . client . Query ( query , field , params .ServiceId , common .FormatTime (params .StartDateTime ),
439436 common .FormatTime (params .EndDateTime ), conditions , field )
440-
441- rows , err := c .client .Query (query )
442437 if err == nil {
443438 defer rows .Close ()
444439 for rows .Next () {
@@ -463,13 +458,13 @@ func (c *ClickHouseClient) FetchFieldValues(ctx context.Context, field string, p
463458 filterQuery string ) []common.FilterData {
464459 result := make ([]common.FilterData , 0 )
465460 _ , conditions := BuildConditions (params .ContainerName , params .HostName , params .InstanceType , params .K8SObject , filterQuery )
466- query := fmt .Sprintf (`
467- SELECT %s from flamedb.samples_1min WHERE ServiceId == '%d' AND
468- (Timestamp BETWEEN '%s' AND '%s') %s GROUP BY %s;
469- ` , field , params .ServiceId , common .FormatTime (params .StartDateTime ),
470- common .FormatTime (params .EndDateTime ), conditions , field )
461+ query := `
462+ SELECT ? from flamedb.samples_1min WHERE ServiceId == '?' AND
463+ (Timestamp BETWEEN '?' AND '?') ? GROUP BY ?;
464+ `
471465
472- rows , err := c .client .Query (query )
466+ rows , err := c .client .Query (query , field , params .ServiceId , common .FormatTime (params .StartDateTime ),
467+ common .FormatTime (params .EndDateTime ), conditions , field )
473468 if err == nil {
474469 defer rows .Close ()
475470 for rows .Next () {
@@ -494,15 +489,15 @@ func (c *ClickHouseClient) FetchSampleCount(ctx context.Context, params common.Q
494489 _ , conditions := BuildConditions (params .ContainerName , params .HostName , params .InstanceType , params .K8SObject , filterQuery )
495490 interval := getInterval (params .StartDateTime , params .EndDateTime , params .Interval )
496491 result := make ([]common.Sample , 0 )
497- query := fmt . Sprintf ( `
498- SELECT toStartOfInterval(Timestamp, INTERVAL '%s ') as Datetime, SUM(NumSamples)
492+ query := `
493+ SELECT toStartOfInterval(Timestamp, INTERVAL '? ') as Datetime, SUM(NumSamples)
499494 FROM flamedb.samples_1min
500- WHERE ServiceId == '%d ' AND (Timestamp BETWEEN '%s ' AND '%s ') %s
495+ WHERE ServiceId == '? ' AND (Timestamp BETWEEN '? ' AND '? ') ?
501496 GROUP BY Datetime
502497 ORDER BY Datetime DESC;
503- ` , interval , params .ServiceId , common .FormatTime (params .StartDateTime ),
498+ `
499+ rows , err := c .client .Query (query , interval , params .ServiceId , common .FormatTime (params .StartDateTime ),
504500 common .FormatTime (params .EndDateTime ), conditions )
505- rows , err := c .client .Query (query )
506501 if err == nil {
507502 defer rows .Close ()
508503 for rows .Next () {
@@ -530,29 +525,28 @@ func (c *ClickHouseClient) FetchSampleCountByFunction(ctx context.Context, param
530525 interval = "1 minute"
531526 }
532527 result := make ([]common.SamplesCountByFunction , 0 )
533- query := fmt . Sprintf ( `
528+ query := `
534529 WITH all_samples as(
535- SELECT toStartOfInterval(Timestamp, INTERVAL '%s ') AS Datetime, SUM(NumSamples) AS sum_cpu
530+ SELECT toStartOfInterval(Timestamp, INTERVAL '? ') AS Datetime, SUM(NumSamples) AS sum_cpu
536531 FROM flamedb.samples_1min
537- WHERE ServiceId == '%d ' AND (Timestamp BETWEEN '%s ' AND '%s ') %s
532+ WHERE ServiceId == '? ' AND (Timestamp BETWEEN '? ' AND '? ') ?
538533 GROUP BY Datetime
539534 ORDER BY Datetime DESC
540535 ), function_samples AS (
541- SELECT toStartOfInterval(Timestamp, INTERVAL '%s ') AS Datetime, SUM(NumSamples) AS sum_cpu
536+ SELECT toStartOfInterval(Timestamp, INTERVAL '? ') AS Datetime, SUM(NumSamples) AS sum_cpu
542537 FROM flamedb.samples
543- WHERE ServiceId == '%d ' AND (Timestamp BETWEEN '%s ' AND '%s ') AND (CallStackName = '%s ') %s
538+ WHERE ServiceId == '? ' AND (Timestamp BETWEEN '? ' AND '? ') AND (CallStackName = '? ') ?
544539 GROUP BY Datetime
545540 ORDER BY Datetime DESC
546541 )
547542
548543 SELECT (function_samples.sum_cpu/all_samples.sum_cpu) AS Samples , all_samples.Datetime AS Datetime
549544 FROM all_samples
550545 LEFT JOIN function_samples ON function_samples.Datetime = all_samples.Datetime;
551- ` , interval , params .ServiceId , common .FormatTime (params .StartDateTime ),
546+ `
547+ rows , err := c .client .Query (query , interval , params .ServiceId , common .FormatTime (params .StartDateTime ),
552548 common .FormatTime (params .EndDateTime ), conditions , interval , params .ServiceId , common .FormatTime (params .StartDateTime ),
553549 common .FormatTime (params .EndDateTime ), params .FunctionName , conditions )
554-
555- rows , err := c .client .Query (query )
556550 if err == nil {
557551 defer rows .Close ()
558552
@@ -601,14 +595,14 @@ func (c *ClickHouseClient) FetchTimes(ctx context.Context, params common.QueryPa
601595 default :
602596 interval = getInterval (params .StartDateTime , params .EndDateTime , "" )
603597 }
604- query := fmt . Sprintf ( `
605- SELECT toStartOfInterval(Timestamp, INTERVAL '%s ') as Datetime
606- from flamedb.samples_1min WHERE ServiceId == '%d ' AND
607- (Timestamp BETWEEN '%s ' AND '%s ') %s
598+ query := `
599+ SELECT toStartOfInterval(Timestamp, INTERVAL '? ') as Datetime
600+ from flamedb.samples_1min WHERE ServiceId == '? ' AND
601+ (Timestamp BETWEEN '? ' AND '? ') ?
608602 GROUP BY Datetime
609- ORDER BY Datetime DESC;` , interval , params .ServiceId ,
603+ ORDER BY Datetime DESC;`
604+ rows , err := c .client .Query (query , interval , params .ServiceId ,
610605 common .FormatTime (params .StartDateTime ), common .FormatTime (params .EndDateTime ), conditions )
611- rows , err := c .client .Query (query )
612606 if err == nil {
613607 defer rows .Close ()
614608 for rows .Next () {
@@ -631,13 +625,13 @@ func (c *ClickHouseClient) FetchTimeRange(ctx context.Context, params common.Que
631625 result := make ([]string , 0 )
632626 _ , conditions := BuildConditions (params .ContainerName , params .HostName , params .InstanceType , params .K8SObject , filterQuery )
633627
634- query := fmt . Sprintf ( `
628+ query := `
635629 SELECT min(Timestamp), max(Timestamp)
636630 from flamedb.samples_1min WHERE
637- ServiceId == '%d' AND
638- (Timestamp BETWEEN '%s' AND '%s') %s;` , params .ServiceId ,
631+ ServiceId == '?' AND
632+ (Timestamp BETWEEN '?' AND '?') ?;`
633+ rows , err := c .client .Query (query , params .ServiceId ,
639634 common .FormatTime (params .StartDateTime ), common .FormatTime (params .EndDateTime ), conditions )
640- rows , err := c .client .Query (query )
641635 if err == nil {
642636 defer rows .Close ()
643637 for rows .Next () {
@@ -667,18 +661,18 @@ func (c *ClickHouseClient) FetchMetricsSummary(ctx context.Context, params commo
667661 _ , conditions := BuildConditions (defaultEmptyList , params .HostName , params .InstanceType , defaultEmptyList , filterQuery )
668662
669663 percentile := float64 (params .Percentile ) / 100.0
670- query := fmt . Sprintf ( `
664+ query := `
671665 SELECT arrayAvg(flatten(groupArray(CPUArray))), MAX(MaxCPU),
672- AVG(MaxMemory), MAX(MaxMemory), quantile(%f )(MaxMemory), count() FROM
666+ AVG(MaxMemory), MAX(MaxMemory), quantile(? )(MaxMemory), count() FROM
673667 (SELECT
674668 MAX(MemoryAverageUsedPercent) AS MaxMemory,
675669 MAX(CPUAverageUsedPercent) as MaxCPU,
676670 groupArray(CPUAverageUsedPercent) as CPUArray
677- FROM %s
678- WHERE ServiceId = %d AND (Timestamp BETWEEN '%s' AND '%s') %s
679- GROUP BY HostName)` , percentile , config .ClickHouseMetricsTable , params .ServiceId ,
671+ FROM ?
672+ WHERE ServiceId = ? AND (Timestamp BETWEEN '?' AND '?') ?
673+ GROUP BY HostName)`
674+ rows , err := c .client .Query (query , percentile , config .ClickHouseMetricsTable , params .ServiceId ,
680675 common .FormatTime (params .StartDateTime ), common .FormatTime (params .EndDateTime ), conditions )
681- rows , err := c .client .Query (query )
682676 if err == nil {
683677 defer func (rows * sql.Rows ) {
684678 err := rows .Close ()
@@ -722,31 +716,31 @@ func (c *ClickHouseClient) FetchMetricsServicesListSummary(ctx context.Context,
722716 formattedServicesList := joinIntSlice (params .ServicesList , "," )
723717 percentile := float64 (params .Percentile ) / 100.0
724718
725- query := fmt . Sprintf ( `
719+ query := `
726720 WITH LatestServices AS (
727721 SELECT
728722 ServiceId as s_id, max(Timestamp) as last_seen
729- FROM %s
730- WHERE ServiceId in (%s ) AND (Timestamp BETWEEN '%s ' AND '%s ')
723+ FROM ?
724+ WHERE ServiceId in (? ) AND (Timestamp BETWEEN '? ' AND '? ')
731725 GROUP BY ServiceId
732726 ), GroupedMetrics AS (
733727 SELECT
734728 ServiceId,
735729 max(MemoryAverageUsedPercent) AS MaxMemory,
736730 max(CPUAverageUsedPercent) as MaxCPU,
737731 groupArray(CPUAverageUsedPercent) as CPUArray
738- FROM %s
732+ FROM ?
739733 GLOBAL JOIN LatestServices ON ServiceId = s_id
740- WHERE ServiceId in (%s ) AND (Timestamp BETWEEN last_seen - toIntervalHour(24) AND last_seen)
734+ WHERE ServiceId in (? ) AND (Timestamp BETWEEN last_seen - toIntervalHour(24) AND last_seen)
741735 GROUP BY HostName, ServiceId
742736 )
743737 SELECT arrayAvg(flatten(groupArray(CPUArray))), max(MaxCPU), ServiceId,
744- avg(MaxMemory), max(MaxMemory), quantile(%f )(MaxMemory), count()
738+ avg(MaxMemory), max(MaxMemory), quantile(? )(MaxMemory), count()
745739 FROM GroupedMetrics
746- GROUP BY ServiceId` , config .ClickHouseMetricsTable , formattedServicesList ,
740+ GROUP BY ServiceId`
741+ rows , err := c .client .Query (query , config .ClickHouseMetricsTable , formattedServicesList ,
747742 common .FormatTime (params .StartDateTime ), common .FormatTime (params .EndDateTime ),
748743 config .ClickHouseMetricsTable , formattedServicesList , percentile )
749- rows , err := c .client .Query (query )
750744
751745 var results []common.MetricsServicesListSummary
752746
@@ -806,21 +800,21 @@ func (c *ClickHouseClient) FetchMetricsGraph(ctx context.Context, params common.
806800 if params .GroupBy != "none" {
807801 groupBy = fmt .Sprintf (", %s" , params .GroupBy )
808802 }
809- query := fmt . Sprintf ( `
810- SELECT Datetime %s , arrayAvg(flatten(groupArray(CPUArray))), MAX(MaxCPU),
811- AVG(MaxMemory), MAX(MaxMemory), quantile(%f )(MaxMemory) FROM
812- (SELECT toStartOfInterval(Timestamp, INTERVAL '%s ') as
813- Datetime %s ,
803+ query := `
804+ SELECT Datetime ? , arrayAvg(flatten(groupArray(CPUArray))), MAX(MaxCPU),
805+ AVG(MaxMemory), MAX(MaxMemory), quantile(? )(MaxMemory) FROM
806+ (SELECT toStartOfInterval(Timestamp, INTERVAL '? ') as
807+ Datetime ? ,
814808 HostName,
815809 MAX(MemoryAverageUsedPercent) AS MaxMemory,
816810 MAX(CPUAverageUsedPercent) as MaxCPU,
817811 groupArray(CPUAverageUsedPercent) as CPUArray
818- FROM %s
819- WHERE ServiceId = %d AND (Datetime BETWEEN '%s' AND '%s') %s
820- GROUP BY Datetime %s, HostName) GROUP BY Datetime %s ORDER BY Datetime DESC;
821- ` , groupBy , percentile , interval , groupBy , config .ClickHouseMetricsTable , params .ServiceId ,
812+ FROM ?
813+ WHERE ServiceId = ? AND (Datetime BETWEEN '?' AND '?') ?
814+ GROUP BY Datetime ?, HostName) GROUP BY Datetime ? ORDER BY Datetime DESC;
815+ `
816+ rows , err := c .client .Query (query , groupBy , percentile , interval , groupBy , config .ClickHouseMetricsTable , params .ServiceId ,
822817 common .FormatTime (params .StartDateTime ), common .FormatTime (params .EndDateTime ), conditions , groupBy , groupBy )
823- rows , err := c .client .Query (query )
824818 if err == nil {
825819 defer func (rows * sql.Rows ) {
826820 err := rows .Close ()
@@ -869,7 +863,7 @@ func (c *ClickHouseClient) FetchMetricsCpuTrend(ctx context.Context, params comm
869863 finalResult := common.MetricsCpuTrend {}
870864 _ , conditions := BuildConditions (defaultEmptyList , params .HostName , params .InstanceType , defaultEmptyList , filterQuery )
871865
872- query := fmt . Sprintf ( `
866+ query := `
873867 WITH CURRENT_CONSUMPTION AS (
874868 SELECT
875869 arrayAvg(flatten(groupArray(CPUArray))) AS avg_cpu,
@@ -882,8 +876,8 @@ func (c *ClickHouseClient) FetchMetricsCpuTrend(ctx context.Context, params comm
882876 MAX(MemoryAverageUsedPercent) AS MaxMemory,
883877 MAX(CPUAverageUsedPercent) as MaxCPU,
884878 groupArray(CPUAverageUsedPercent) as CPUArray
885- FROM %s
886- WHERE ServiceId = %d AND (Timestamp BETWEEN '%s ' AND '%s ') %s
879+ FROM ?
880+ WHERE ServiceId = ? AND (Timestamp BETWEEN '? ' AND '? ') ?
887881 GROUP BY HostName)
888882 ),
889883 PREVIOUS_CONSUMPTION AS (
@@ -898,22 +892,22 @@ func (c *ClickHouseClient) FetchMetricsCpuTrend(ctx context.Context, params comm
898892 MAX(MemoryAverageUsedPercent) AS MaxMemory,
899893 MAX(CPUAverageUsedPercent) as MaxCPU,
900894 groupArray(CPUAverageUsedPercent) as CPUArray
901- FROM %s
902- WHERE ServiceId = %d AND (Timestamp BETWEEN '%s ' AND '%s ') %s
895+ FROM ?
896+ WHERE ServiceId = ? AND (Timestamp BETWEEN '? ' AND '? ') ?
903897 GROUP BY HostName)
904898 )
905899 SELECT avg_cpu, max_cpu, avg_memory, max_memory
906900 FROM (
907901 SELECT * FROM CURRENT_CONSUMPTION
908902 UNION ALL
909903 SELECT * FROM PREVIOUS_CONSUMPTION)
910- order by SortOrder` , config .ClickHouseMetricsTable , params .ServiceId ,
904+ order by SortOrder`
905+
906+ first := true
907+ rows , err := c .client .Query (query , config .ClickHouseMetricsTable , params .ServiceId ,
911908 common .FormatTime (params .StartDateTime ), common .FormatTime (params .EndDateTime ), conditions ,
912909 config .ClickHouseMetricsTable , params .ServiceId ,
913910 common .FormatTime (params .ComparedStartDateTime ), common .FormatTime (params .ComparedEndDateTime ), conditions )
914-
915- first := true
916- rows , err := c .client .Query (query )
917911 if err == nil {
918912 defer func (rows * sql.Rows ) {
919913 err := rows .Close ()
@@ -966,10 +960,10 @@ func (c *ClickHouseClient) FetchServices(ctx context.Context, params common.Serv
966960 expr = "(ServiceId,ContainerEnvName)"
967961 groupByExpr = "GROUP BY (ServiceId,ContainerEnvName)"
968962 }
969- query := fmt . Sprintf ( `
970- SELECT %s from flamedb.samples_1min WHERE (Timestamp BETWEEN '%s ' AND '%s ') %s ;
971- ` , expr , common . FormatTime ( params . StartDateTime ), common . FormatTime ( params . EndDateTime ), groupByExpr )
972- rows , err := c .client .Query (query )
963+ query := `
964+ SELECT ? from flamedb.samples_1min WHERE (Timestamp BETWEEN '? ' AND '? ') ? ;
965+ `
966+ rows , err := c .client .Query (query , expr , common . FormatTime ( params . StartDateTime ), common . FormatTime ( params . EndDateTime ), groupByExpr )
973967 result := make ([]SrvResp , 0 )
974968 if err == nil {
975969 defer rows .Close ()
@@ -999,12 +993,12 @@ func (c *ClickHouseClient) FetchSessionsCount(ctx context.Context, params common
999993 filterQuery string ) (int , error ) {
1000994 _ , conditions := BuildConditions (params .ContainerName , params .HostName , params .InstanceType , params .K8SObject , filterQuery )
1001995
1002- query := fmt .Sprintf (`
1003- SELECT uniq(HostName,Timestamp) FROM flamedb.samples_1min WHERE ServiceId = %d AND
1004- (Timestamp BETWEEN '%s' AND '%s') %s;
1005- ` , params .ServiceId , common .FormatTime (params .StartDateTime ),
996+ query := `
997+ SELECT uniq(HostName,Timestamp) FROM flamedb.samples_1min WHERE ServiceId = ? AND
998+ (Timestamp BETWEEN '?' AND '?') ?;
999+ `
1000+ rows , err := c .client .Query (query , params .ServiceId , common .FormatTime (params .StartDateTime ),
10061001 common .FormatTime (params .EndDateTime ), conditions )
1007- rows , err := c .client .Query (query )
10081002 if err == nil {
10091003 defer rows .Close ()
10101004 for rows .Next () {
@@ -1025,11 +1019,11 @@ func (c *ClickHouseClient) FetchSessionsCount(ctx context.Context, params common
10251019func (c * ClickHouseClient ) FetchLastHTML (ctx context.Context , params common.MetricsLastHTMLParams ,
10261020 filterQuery string ) (string , error ) {
10271021 _ , conditions := BuildConditions (params .ContainerName , params .HostName , params .InstanceType , params .K8SObject , filterQuery )
1028- query := fmt . Sprintf ( `
1029- SELECT argMax(HTMLPath,Timestamp) FROM flamedb.metrics WHERE ServiceId = %d AND
1030- (Timestamp BETWEEN '%s ' AND '%s ') %s ;
1031- ` , params . ServiceId , common . FormatTime ( params . StartDateTime ), common . FormatTime ( params . EndDateTime ), conditions )
1032- rows , err := c .client .Query (query )
1022+ query := `
1023+ SELECT argMax(HTMLPath,Timestamp) FROM flamedb.metrics WHERE ServiceId = ? AND
1024+ (Timestamp BETWEEN '? ' AND '? ') ? ;
1025+ `
1026+ rows , err := c .client .Query (query , params . ServiceId , common . FormatTime ( params . StartDateTime ), common . FormatTime ( params . EndDateTime ), conditions )
10331027 if err == nil {
10341028 defer rows .Close ()
10351029 for rows .Next () {
0 commit comments