Skip to content

Commit 08f7e41

Browse files
tharun0064sjyothi54rahulreddy15
authored
Feat : resolved review comments (#74)
* feat: resolved review commets * fix: lint issues --------- Co-authored-by: Jyothi Surampudi <[email protected]> Co-authored-by: jsurampudi <[email protected]> Co-authored-by: Rahul Reddy <[email protected]>
1 parent d4f64a7 commit 08f7e41

File tree

2 files changed

+35
-10
lines changed

2 files changed

+35
-10
lines changed

src/query-performance-monitoring/performance-metrics/blocking_sessions.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ func getBlockingMetrics(conn *performancedbconnection.PGSQLConnection, cp *commo
5151
rows, err := conn.Queryx(query)
5252
if err != nil {
5353
log.Error("Failed to execute query: %v", err)
54-
return nil, err
54+
return nil, commonutils.ErrUnExpectedError
5555
}
5656
defer rows.Close()
5757
for rows.Next() {
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
package performancemetrics
22

33
import (
4+
"database/sql/driver"
45
"fmt"
56
"regexp"
67
"testing"
78

9+
commonutils "github.com/newrelic/nri-postgresql/src/query-performance-monitoring/common-utils"
10+
"github.com/newrelic/nri-postgresql/src/query-performance-monitoring/datamodels"
11+
812
"github.com/newrelic/nri-postgresql/src/args"
913
"github.com/newrelic/nri-postgresql/src/connection"
1014
common_parameters "github.com/newrelic/nri-postgresql/src/query-performance-monitoring/common-parameters"
@@ -21,29 +25,50 @@ func TestGetBlockingMetrics(t *testing.T) {
2125
cp := common_parameters.SetCommonParameters(args, version, databaseName)
2226
expectedQuery := queries.BlockingQueriesForV12AndV13
2327
query := fmt.Sprintf(expectedQuery, databaseName, args.QueryMonitoringCountThreshold)
24-
mock.ExpectQuery(regexp.QuoteMeta(query)).WillReturnRows(sqlmock.NewRows([]string{
28+
rowData := []driver.Value{
29+
"newrelic_value", int64(123), "SELECT 1", "1233444", "2023-01-01 00:00:00", "testdb",
30+
int64(456), "SELECT 2", "4566", "2023-01-01 00:00:00",
31+
}
32+
expectedRows := [][]driver.Value{
33+
rowData, rowData,
34+
}
35+
mockRows := sqlmock.NewRows([]string{
2536
"newrelic", "blocked_pid", "blocked_query", "blocked_query_id", "blocked_query_start", "database_name",
2637
"blocking_pid", "blocking_query", "blocking_query_id", "blocking_query_start",
27-
}).AddRow(
28-
"newrelic_value", 123, "SELECT 1", 1233444, "2023-01-01 00:00:00", "testdb",
29-
456, "SELECT 2", 4566, "2023-01-01 00:00:00",
30-
).AddRow(
31-
"newrelic_value", 123, "SELECT 1", 1233444, "2023-01-01 00:00:00", "testdb",
32-
456, "SELECT 2", 4566, "2023-01-01 00:00:00",
33-
))
38+
}).AddRow(rowData...).AddRow(rowData...)
39+
mock.ExpectQuery(regexp.QuoteMeta(query)).WillReturnRows(mockRows)
3440
blockingQueriesMetricsList, err := getBlockingMetrics(conn, cp)
41+
compareMockRowsWithMetrics(t, expectedRows, blockingQueriesMetricsList)
3542
assert.NoError(t, err)
3643
assert.Len(t, blockingQueriesMetricsList, 2)
3744
assert.NoError(t, mock.ExpectationsWereMet())
3845
}
3946

47+
func compareMockRowsWithMetrics(t *testing.T, expectedRows [][]driver.Value, blockingQueriesMetricsList []interface{}) {
48+
assert.Equal(t, 2, len(blockingQueriesMetricsList))
49+
for index := range blockingQueriesMetricsList {
50+
anonymizeQuery := commonutils.AnonymizeQueryText(expectedRows[index][2].(string))
51+
blockingSession := blockingQueriesMetricsList[index].(datamodels.BlockingSessionMetrics)
52+
assert.Equal(t, expectedRows[index][0], *blockingSession.Newrelic)
53+
assert.Equal(t, expectedRows[index][1], *blockingSession.BlockedPid)
54+
assert.Equal(t, anonymizeQuery, *blockingSession.BlockedQuery)
55+
assert.Equal(t, expectedRows[index][3], *blockingSession.BlockedQueryID)
56+
assert.Equal(t, expectedRows[index][4], *blockingSession.BlockedQueryStart)
57+
assert.Equal(t, expectedRows[index][5], *blockingSession.BlockedDatabase)
58+
assert.Equal(t, expectedRows[index][6], *blockingSession.BlockingPid)
59+
assert.Equal(t, anonymizeQuery, *blockingSession.BlockingQuery)
60+
assert.Equal(t, expectedRows[index][8], *blockingSession.BlockingQueryID)
61+
assert.Equal(t, expectedRows[index][9], *blockingSession.BlockingQueryStart)
62+
}
63+
}
64+
4065
func TestGetBlockingMetricsErr(t *testing.T) {
4166
conn, mock := connection.CreateMockSQL(t)
4267
args := args.ArgumentList{QueryMonitoringCountThreshold: 10}
4368
databaseName := "testdb"
4469
version := uint64(13)
4570
cp := common_parameters.SetCommonParameters(args, version, databaseName)
4671
_, err := getBlockingMetrics(conn, cp)
47-
assert.NotNil(t, err)
72+
assert.EqualError(t, err, commonutils.ErrUnExpectedError.Error())
4873
assert.NoError(t, mock.ExpectationsWereMet())
4974
}

0 commit comments

Comments
 (0)