From 500f6404c6a56a472092f5d112c75aaba59ef0b9 Mon Sep 17 00:00:00 2001 From: Artem Gavrilov Date: Fri, 11 Oct 2024 11:27:38 +0200 Subject: [PATCH] PMM-13154 PG17 support in QAN (#3159) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * PMM-13154 Intermediate progress * PMM-12154 Some progress * PMM-12154 Some progress * PMM-12154 Fix linter warn * PMM-12154 Cleanup * PMM-12154 Fix * PMM-12154 Update PG version in agent CI * PMM-12154 Update PG tests * PMM-12154 Update PG tests * PMM-12154 Fix PG17 tag * PMM-12154 Update PG tests * PMM-12154 Try fix * PMM-12154 Try fix * PMM-12154 Try fix * PMM-12154 Try fix * PMM-13154 Update PG tests * PMM-12154 Update PG tests * PMM-12154 Update PG tests * PMM-12154 Update PG tests * PMM-13154 Update PG version matrix in CI * PMM-13154 Use dev image of percona distribution for pg17 * PMM-13154 Update PG tests * PMM-13154 Update PG tests * PMM-12154 Cleanup * PMM-13154 Add local block read/write timers to QAN, update QAN API * PMM-13154 Fixed * PMM-13154 Update test data * PMM-13154 Fixes * PMM-13154 Fixes * PMM-13154 Fixes * Rewrite pg_stat_statments view reading * PMM-13154 Fix * PMM-13154 Fix * PMM-13154 Fix * PMM-13154 Fix * PMM-13154 Fix * PMM-13154 Fix * PMM-13154 Fix * PMM-13154 Add licence header * PMM-13154 Fix tests * PMM-13154 Update tests * PMM-13154 Fix style * PMM-13154 Fix CH migration * PMM-13154 Remove redundant fields backfill * Use PG in CI 17rc1 * PMM-13154 Format sources * PMM-13154 Update test --------- Co-authored-by: Jiří Čtvrtka <62988319+JiriCtvrtka@users.noreply.github.com> Co-authored-by: Nurlan Moldomurov --- .github/workflows/agent.yml | 20 +- .../postgres/pgstatmonitor/pgstatmonitor.go | 79 ++- .../pgstatmonitor/pgstatmonitor_models.go | 185 ++++--- .../pgstatmonitor/pgstatmonitor_test.go | 180 ++++--- .../postgres/pgstatstatements/models.go | 48 -- .../pgstatstatements/models_reform.go | 166 ------ .../pg_stat_statements_models.go | 222 ++++++++ .../pgstatstatements/pgstatstatements.go | 42 +- .../pgstatstatements/pgstatstatements_test.go | 168 +++--- .../postgresql_query_show_action_test.go | 4 +- api/agentpb/collector.pb.go | 273 ++++++---- api/agentpb/collector.pb.validate.go | 16 +- api/agentpb/collector.proto | 18 +- api/qanpb/collector.pb.go | 141 ++++- api/qanpb/collector.pb.validate.go | 16 + api/qanpb/collector.proto | 21 +- .../object_details/get_metrics_responses.go | 12 + .../client/profile/get_report_responses.go | 12 + api/qanpb/json/qanpb.json | 76 ++- api/qanpb/qan.pb.go | 179 ++++--- api/qanpb/qan.pb.validate.go | 8 + api/qanpb/qan.proto | 12 +- api/swagger/swagger-dev.json | 76 ++- descriptor.bin | Bin 811632 -> 815154 bytes managed/services/qan/client.go | 12 +- managed/services/qan/client_test.go | 130 ++--- .../sql/17_shared_blk_columns.down.sql | 11 + .../sql/17_shared_blk_columns.up.sql | 11 + qan-api2/models/base.go | 24 +- qan-api2/models/data_ingestion.go | 24 +- qan-api2/models/metrics.go | 17 +- qan-api2/services/analytics/base.go | 28 +- qan-api2/services/analytics/metrics_names.go | 130 ++--- .../GetMetrics_group_by_queryid.json | 244 +++++++++ .../GetMetrics_sparklines_90_points.json | 76 +++ qan-api2/test_data/GetMetrics_total.json | 499 ++++++++++++++++++ 36 files changed, 2270 insertions(+), 910 deletions(-) create mode 100644 agent/agents/postgres/pgstatstatements/pg_stat_statements_models.go create mode 100644 qan-api2/migrations/sql/17_shared_blk_columns.down.sql create mode 100644 qan-api2/migrations/sql/17_shared_blk_columns.up.sql diff --git a/.github/workflows/agent.yml b/.github/workflows/agent.yml index 3d51b98349..a1b6ec790f 100644 --- a/.github/workflows/agent.yml +++ b/.github/workflows/agent.yml @@ -26,15 +26,15 @@ jobs: strategy: matrix: images: - - { mysql: 'mysql:5.6', mongo: 'mongo:4.2', postgres: 'postgres:10', pmm_server: 'percona/pmm-server:2.0.0' } - - { mysql: 'mysql:5.7', mongo: 'mongo:4.4', postgres: 'postgres:11', pmm_server: 'percona/pmm-server:2.0.1' } - - { mysql: 'mysql:8.0', mongo: 'mongo:4.4', postgres: 'postgres:12', pmm_server: 'percona/pmm-server:2.1.0' } - - { mysql: 'mysql:8.0', mongo: 'mongo:4.4', postgres: 'postgres:13', pmm_server: 'percona/pmm-server:2.2.0' } + - { mysql: 'mysql:5.6', mongo: 'mongo:4.2', postgres: 'postgres:14', pmm_server: 'percona/pmm-server:2.0.0' } + - { mysql: 'mysql:5.7', mongo: 'mongo:4.4', postgres: 'postgres:15', pmm_server: 'percona/pmm-server:2.0.1' } + - { mysql: 'mysql:8.0', mongo: 'mongo:4.4', postgres: 'postgres:16', pmm_server: 'percona/pmm-server:2.1.0' } + - { mysql: 'mysql:8.0', mongo: 'mongo:4.4', postgres: 'postgres:17rc1', pmm_server: 'percona/pmm-server:2.2.0' } # Percona + latest PMM Server release - - { mysql: 'percona:5.6', mongo: 'percona/percona-server-mongodb:4.2', postgres: 'perconalab/percona-distribution-postgresql:11', pg_libs: 'pg_stat_statements,pg_stat_monitor', pmm_server: 'percona/pmm-server:2' } - - { mysql: 'percona:5.7', mongo: 'percona/percona-server-mongodb:4.4', postgres: 'perconalab/percona-distribution-postgresql:12.8-pg_stat', pg_libs: 'pg_stat_statements,pg_stat_monitor', pmm_server: 'percona/pmm-server:2' } - - { mysql: 'percona:8.0', mongo: 'percona/percona-server-mongodb:4.4', postgres: 'perconalab/percona-distribution-postgresql:13.5-pg_stat', pg_libs: 'pg_stat_statements,pg_stat_monitor', pmm_server: 'percona/pmm-server:2' } + - { mysql: 'percona:5.6', mongo: 'percona/percona-server-mongodb:4.2', postgres: 'perconalab/percona-distribution-postgresql:15', pg_libs: 'pg_stat_statements,pg_stat_monitor', pmm_server: 'percona/pmm-server:2' } + - { mysql: 'percona:5.7', mongo: 'percona/percona-server-mongodb:4.4', postgres: 'perconalab/percona-distribution-postgresql:16', pg_libs: 'pg_stat_statements,pg_stat_monitor', pmm_server: 'percona/pmm-server:2' } + - { mysql: 'percona:8.0', mongo: 'percona/percona-server-mongodb:4.4', postgres: 'perconalab/percona-distribution-postgresql:17-dev', pg_libs: 'pg_stat_statements,pg_stat_monitor', pmm_server: 'percona/pmm-server:2' } # MariaDB (only 3 latest GA versions) # + older supported MongoDB versions @@ -44,9 +44,9 @@ jobs: # - MYSQL_IMAGE=mariadb:10.0 # - MYSQL_IMAGE=mariadb:10.1 - - { mysql: 'mariadb:10.2', mongo: 'mongo:4.4', postgres: 'postgres:9.4', pmm_server: 'perconalab/pmm-server:dev-latest' } - - { mysql: 'mariadb:10.3', mongo: 'percona/percona-server-mongodb:4.4', postgres: 'postgres:9.5', pmm_server: 'perconalab/pmm-server:dev-latest' } - - { mysql: 'mariadb:10.4', postgres: 'postgres:9.6', pmm_server: 'perconalab/pmm-server:dev-latest' } + - { mysql: 'mariadb:10.2', mongo: 'mongo:4.4', postgres: 'postgres:12', pmm_server: 'perconalab/pmm-server:dev-latest' } + - { mysql: 'mariadb:10.3', mongo: 'percona/percona-server-mongodb:4.4', postgres: 'postgres:13', pmm_server: 'perconalab/pmm-server:dev-latest' } + - { mysql: 'mariadb:10.4', postgres: 'postgres:14', pmm_server: 'perconalab/pmm-server:dev-latest' } continue-on-error: true diff --git a/agent/agents/postgres/pgstatmonitor/pgstatmonitor.go b/agent/agents/postgres/pgstatmonitor/pgstatmonitor.go index 5b26b531d8..597b24d91a 100644 --- a/agent/agents/postgres/pgstatmonitor/pgstatmonitor.go +++ b/agent/agents/postgres/pgstatmonitor/pgstatmonitor.go @@ -85,6 +85,13 @@ const ( pgStatMonitorVersion20PG13 pgStatMonitorVersion20PG14 pgStatMonitorVersion20PG15 + pgStatMonitorVersion20PG16 + pgStatMonitorVersion21PG12 + pgStatMonitorVersion21PG13 + pgStatMonitorVersion21PG14 + pgStatMonitorVersion21PG15 + pgStatMonitorVersion21PG16 + pgStatMonitorVersion21PG17 ) const ( @@ -184,40 +191,54 @@ func getPGMonitorVersion(q *reform.Querier) (pgStatMonitorVersion, pgStatMonitor var version pgStatMonitorVersion switch { + case vPGSM.Core().GreaterThanOrEqual(v21): + switch { + case vPG >= 17: + version = pgStatMonitorVersion21PG17 + case vPG >= 16: + version = pgStatMonitorVersion21PG16 + case vPG >= 15: + version = pgStatMonitorVersion21PG15 + case vPG >= 14: + version = pgStatMonitorVersion21PG14 + case vPG >= 13: + version = pgStatMonitorVersion21PG13 + default: + version = pgStatMonitorVersion21PG12 + } case vPGSM.Core().GreaterThanOrEqual(v20): - if vPG >= 15 { + switch { + case vPG >= 16: + version = pgStatMonitorVersion20PG16 + case vPG >= 15: version = pgStatMonitorVersion20PG15 - break - } - if vPG >= 14 { + case vPG >= 14: version = pgStatMonitorVersion20PG14 - break - } - if vPG >= 13 { + case vPG >= 13: version = pgStatMonitorVersion20PG13 - break + default: + version = pgStatMonitorVersion20PG12 } - version = pgStatMonitorVersion20PG12 case vPGSM.Core().GreaterThanOrEqual(v11): - if vPG >= 14 { + switch { + case vPG >= 14: version = pgStatMonitorVersion11PG14 - break - } - if vPG >= 13 { + case vPG >= 13: version = pgStatMonitorVersion11PG13 - break + default: + version = pgStatMonitorVersion11PG12 } - version = pgStatMonitorVersion11PG12 + case vPGSM.Core().GreaterThanOrEqual(v10): - if vPG >= 14 { + switch { + case vPG >= 14: version = pgStatMonitorVersion10PG14 - break - } - if vPG >= 13 { + case vPG >= 13: version = pgStatMonitorVersion10PG13 - break + default: + version = pgStatMonitorVersion10PG12 } - version = pgStatMonitorVersion10PG12 + case vPGSM.GreaterThanOrEqual(v09): version = pgStatMonitorVersion09 case vPGSM.GreaterThanOrEqual(v08): @@ -563,10 +584,10 @@ func (m *PGStatMonitorQAN) makeBuckets(current, cache map[time.Time]map[string]* mb.Postgresql.HistogramItems = histogram } - if (currentPSM.PlanTotalTime - prevPSM.PlanTotalTime) != 0 { - mb.Postgresql.MPlanTimeSum = float32(currentPSM.PlanTotalTime-prevPSM.PlanTotalTime) / 1000 - mb.Postgresql.MPlanTimeMin = float32(currentPSM.PlanMinTime) / 1000 - mb.Postgresql.MPlanTimeMax = float32(currentPSM.PlanMaxTime) / 1000 + if (currentPSM.TotalPlanTime - prevPSM.TotalPlanTime) != 0 { + mb.Postgresql.MPlanTimeSum = float32(currentPSM.TotalPlanTime-prevPSM.TotalPlanTime) / 1000 + mb.Postgresql.MPlanTimeMin = float32(currentPSM.MinPlanTime) / 1000 + mb.Postgresql.MPlanTimeMax = float32(currentPSM.MaxPlanTime) / 1000 mb.Postgresql.MPlanTimeCnt = count } @@ -618,9 +639,11 @@ func (m *PGStatMonitorQAN) makeBuckets(current, cache map[time.Time]map[string]* {float32(currentPSM.WalBytes - prevPSM.WalBytes), &mb.Postgresql.MWalBytesSum, &mb.Postgresql.MWalBytesCnt}, // convert milliseconds to seconds - {float32(currentPSM.TotalTime-prevPSM.TotalTime) / 1000, &mb.Common.MQueryTimeSum, &mb.Common.MQueryTimeCnt}, - {float32(currentPSM.BlkReadTime-prevPSM.BlkReadTime) / 1000, &mb.Postgresql.MBlkReadTimeSum, &mb.Postgresql.MBlkReadTimeCnt}, - {float32(currentPSM.BlkWriteTime-prevPSM.BlkWriteTime) / 1000, &mb.Postgresql.MBlkWriteTimeSum, &mb.Postgresql.MBlkWriteTimeCnt}, + {float32(currentPSM.TotalExecTime-prevPSM.TotalExecTime) / 1000, &mb.Common.MQueryTimeSum, &mb.Common.MQueryTimeCnt}, + {float32(currentPSM.SharedBlkReadTime-prevPSM.SharedBlkReadTime) / 1000, &mb.Postgresql.MSharedBlkReadTimeSum, &mb.Postgresql.MSharedBlkReadTimeCnt}, + {float32(currentPSM.SharedBlkWriteTime-prevPSM.SharedBlkWriteTime) / 1000, &mb.Postgresql.MSharedBlkWriteTimeSum, &mb.Postgresql.MSharedBlkWriteTimeCnt}, + {float32(currentPSM.LocalBlkReadTime-prevPSM.LocalBlkReadTime) / 1000, &mb.Postgresql.MLocalBlkReadTimeSum, &mb.Postgresql.MLocalBlkReadTimeCnt}, + {float32(currentPSM.LocalBlkWriteTime-prevPSM.LocalBlkWriteTime) / 1000, &mb.Postgresql.MLocalBlkWriteTimeSum, &mb.Postgresql.MLocalBlkWriteTimeCnt}, // convert microseconds to seconds {float32(cpuSysTime) / 1000000, &mb.Postgresql.MCpuSysTimeSum, &mb.Postgresql.MCpuSysTimeCnt}, diff --git a/agent/agents/postgres/pgstatmonitor/pgstatmonitor_models.go b/agent/agents/postgres/pgstatmonitor/pgstatmonitor_models.go index 275b3e15f3..3b91ca41f9 100644 --- a/agent/agents/postgres/pgstatmonitor/pgstatmonitor_models.go +++ b/agent/agents/postgres/pgstatmonitor/pgstatmonitor_models.go @@ -27,6 +27,7 @@ import ( ) var ( + v21 = version.Must(version.NewVersion("2.1.0")) v20 = version.Must(version.NewVersion("2.0.0")) v11 = version.Must(version.NewVersion("1.1.0")) v10 = version.Must(version.NewVersion("1.0.0")) @@ -46,30 +47,32 @@ type pgStatMonitor struct { BucketStartTimeString string // rest - Bucket int64 - BucketStartTime time.Time - ClientIP string - QueryID string // we select only non-NULL rows - Query string // we select only non-NULL rows - Comments *string - Relations pq.StringArray - Calls int64 - SharedBlksHit int64 - SharedBlksRead int64 - SharedBlksDirtied int64 - SharedBlksWritten int64 - LocalBlksHit int64 - LocalBlksRead int64 - LocalBlksDirtied int64 - LocalBlksWritten int64 - TempBlksRead int64 - TempBlksWritten int64 - BlkReadTime float64 - BlkWriteTime float64 - RespCalls pq.StringArray - CPUUserTime float64 - CPUSysTime float64 - Rows int64 + Bucket int64 + BucketStartTime time.Time + ClientIP string + QueryID string // we select only non-NULL rows + Query string // we select only non-NULL rows + Comments *string + Relations pq.StringArray + Calls int64 + SharedBlksHit int64 + SharedBlksRead int64 + SharedBlksDirtied int64 + SharedBlksWritten int64 + LocalBlksHit int64 + LocalBlksRead int64 + LocalBlksDirtied int64 + LocalBlksWritten int64 + TempBlksRead int64 + TempBlksWritten int64 + SharedBlkReadTime float64 + SharedBlkWriteTime float64 + LocalBlkReadTime float64 + LocalBlkWriteTime float64 + RespCalls pq.StringArray + CPUUserTime float64 + CPUSysTime float64 + Rows int64 TopQueryID *string PlanID *string @@ -81,16 +84,16 @@ type pgStatMonitor struct { Elevel int32 Sqlcode *string Message *string - TotalTime float64 - MinTime float64 - MaxTime float64 - MeanTime float64 - StddevTime float64 + TotalExecTime float64 + MinExecTime float64 + MaxExecTime float64 + MeanExecTime float64 + StddevExecTime float64 PlansCalls int64 - PlanTotalTime float64 - PlanMinTime float64 - PlanMaxTime float64 - PlanMeanTime float64 + TotalPlanTime float64 + MinPlanTime float64 + MaxPlanTime float64 + MeanPlanTime float64 WalRecords int64 WalFpi int64 WalBytes int64 @@ -122,8 +125,6 @@ func newPgStatMonitorStructs(vPGSM pgStatMonitorVersion, vPG pgVersion) (*pgStat {info: parse.FieldInfo{Name: "LocalBlksWritten", Type: "int64", Column: "local_blks_written"}, pointer: &s.LocalBlksWritten}, {info: parse.FieldInfo{Name: "TempBlksRead", Type: "int64", Column: "temp_blks_read"}, pointer: &s.TempBlksRead}, {info: parse.FieldInfo{Name: "TempBlksWritten", Type: "int64", Column: "temp_blks_written"}, pointer: &s.TempBlksWritten}, - {info: parse.FieldInfo{Name: "BlkReadTime", Type: "float64", Column: "blk_read_time"}, pointer: &s.BlkReadTime}, - {info: parse.FieldInfo{Name: "BlkWriteTime", Type: "float64", Column: "blk_write_time"}, pointer: &s.BlkWriteTime}, {info: parse.FieldInfo{Name: "RespCalls", Type: "pq.StringArray", Column: "resp_calls"}, pointer: &s.RespCalls}, {info: parse.FieldInfo{Name: "CPUUserTime", Type: "float64", Column: "cpu_user_time"}, pointer: &s.CPUUserTime}, {info: parse.FieldInfo{Name: "CPUSysTime", Type: "float64", Column: "cpu_sys_time"}, pointer: &s.CPUSysTime}, @@ -150,10 +151,10 @@ func newPgStatMonitorStructs(vPGSM pgStatMonitorVersion, vPG pgVersion) (*pgStat } if vPGSM == pgStatMonitorVersion09 { fields = append(fields, - field{info: parse.FieldInfo{Name: "PlanTotalTime", Type: "float64", Column: "plan_total_time"}, pointer: &s.PlanTotalTime}, - field{info: parse.FieldInfo{Name: "PlanMinTime", Type: "float64", Column: "plan_min_time"}, pointer: &s.PlanMinTime}, - field{info: parse.FieldInfo{Name: "PlanMaxTime", Type: "float64", Column: "plan_max_time"}, pointer: &s.PlanMaxTime}, - field{info: parse.FieldInfo{Name: "PlanMeanTime", Type: "float64", Column: "plan_mean_time"}, pointer: &s.PlanMeanTime}, + field{info: parse.FieldInfo{Name: "TotalPlanTime", Type: "float64", Column: "plan_total_time"}, pointer: &s.TotalPlanTime}, + field{info: parse.FieldInfo{Name: "MinPlanTime", Type: "float64", Column: "plan_min_time"}, pointer: &s.MinPlanTime}, + field{info: parse.FieldInfo{Name: "MaxPlanTime", Type: "float64", Column: "plan_max_time"}, pointer: &s.MaxPlanTime}, + field{info: parse.FieldInfo{Name: "MeanPlanTime", Type: "float64", Column: "plan_mean_time"}, pointer: &s.MeanPlanTime}, field{info: parse.FieldInfo{Name: "PlansCalls", Type: "int64", Column: "plans_calls"}, pointer: &s.PlansCalls}) } if vPGSM >= pgStatMonitorVersion09 { @@ -176,25 +177,37 @@ func newPgStatMonitorStructs(vPGSM pgStatMonitorVersion, vPG pgVersion) (*pgStat fields = append(fields, field{info: parse.FieldInfo{Name: "QueryID", Type: "string", Column: "queryid"}, pointer: &s.QueryID}) } + if vPGSM >= pgStatMonitorVersion21PG17 { + fields = append(fields, + field{info: parse.FieldInfo{Name: "SharedBlkReadTime", Type: "float64", Column: "shared_blk_read_time"}, pointer: &s.SharedBlkReadTime}, + field{info: parse.FieldInfo{Name: "SharedBlkWriteTime", Type: "float64", Column: "shared_blk_write_time"}, pointer: &s.SharedBlkWriteTime}, + field{info: parse.FieldInfo{Name: "LocalBlkReadTime", Type: "float64", Column: "local_blk_read_time"}, pointer: &s.LocalBlkReadTime}, + field{info: parse.FieldInfo{Name: "LocalBlkWriteTime", Type: "float64", Column: "local_blk_write_time"}, pointer: &s.LocalBlkWriteTime}) + } else { + fields = append(fields, + field{info: parse.FieldInfo{Name: "SharedBlkReadTime", Type: "float64", Column: "blk_read_time"}, pointer: &s.SharedBlkReadTime}, + field{info: parse.FieldInfo{Name: "SharedBlkWriteTime", Type: "float64", Column: "blk_write_time"}, pointer: &s.SharedBlkWriteTime}) + } + if vPG <= 12 { fields = append(fields, - field{info: parse.FieldInfo{Name: "TotalTime", Type: "float64", Column: "total_time"}, pointer: &s.TotalTime}, - field{info: parse.FieldInfo{Name: "MinTime", Type: "float64", Column: "min_time"}, pointer: &s.MinTime}, - field{info: parse.FieldInfo{Name: "MaxTime", Type: "float64", Column: "max_time"}, pointer: &s.MaxTime}, - field{info: parse.FieldInfo{Name: "MeanTime", Type: "float64", Column: "mean_time"}, pointer: &s.MeanTime}, - field{info: parse.FieldInfo{Name: "StddevTime", Type: "float64", Column: "stddev_time"}, pointer: &s.StddevTime}) + field{info: parse.FieldInfo{Name: "TotalExecTime", Type: "float64", Column: "total_time"}, pointer: &s.TotalExecTime}, + field{info: parse.FieldInfo{Name: "MinExecTime", Type: "float64", Column: "min_time"}, pointer: &s.MinExecTime}, + field{info: parse.FieldInfo{Name: "MaxExecTime", Type: "float64", Column: "max_time"}, pointer: &s.MaxExecTime}, + field{info: parse.FieldInfo{Name: "MeanExecTime", Type: "float64", Column: "mean_time"}, pointer: &s.MeanExecTime}, + field{info: parse.FieldInfo{Name: "StddevExecTime", Type: "float64", Column: "stddev_time"}, pointer: &s.StddevExecTime}) } if vPG >= 13 { fields = append(fields, - field{info: parse.FieldInfo{Name: "TotalTime", Type: "float64", Column: "total_exec_time"}, pointer: &s.TotalTime}, - field{info: parse.FieldInfo{Name: "MinTime", Type: "float64", Column: "min_exec_time"}, pointer: &s.MinTime}, - field{info: parse.FieldInfo{Name: "MaxTime", Type: "float64", Column: "max_exec_time"}, pointer: &s.MaxTime}, - field{info: parse.FieldInfo{Name: "MeanTime", Type: "float64", Column: "mean_exec_time"}, pointer: &s.MeanTime}, - field{info: parse.FieldInfo{Name: "StddevTime", Type: "float64", Column: "stddev_exec_time"}, pointer: &s.StddevTime}, - field{info: parse.FieldInfo{Name: "PlanTotalTime", Type: "float64", Column: "total_plan_time"}, pointer: &s.PlanTotalTime}, - field{info: parse.FieldInfo{Name: "PlanMinTime", Type: "float64", Column: "min_plan_time"}, pointer: &s.PlanMinTime}, - field{info: parse.FieldInfo{Name: "PlanMaxTime", Type: "float64", Column: "max_plan_time"}, pointer: &s.PlanMaxTime}, - field{info: parse.FieldInfo{Name: "PlanMeanTime", Type: "float64", Column: "mean_plan_time"}, pointer: &s.PlanMeanTime}) + field{info: parse.FieldInfo{Name: "TotalExecTime", Type: "float64", Column: "total_exec_time"}, pointer: &s.TotalExecTime}, + field{info: parse.FieldInfo{Name: "MinExecTime", Type: "float64", Column: "min_exec_time"}, pointer: &s.MinExecTime}, + field{info: parse.FieldInfo{Name: "MaxExecTime", Type: "float64", Column: "max_exec_time"}, pointer: &s.MaxExecTime}, + field{info: parse.FieldInfo{Name: "MeanExecTime", Type: "float64", Column: "mean_exec_time"}, pointer: &s.MeanExecTime}, + field{info: parse.FieldInfo{Name: "StddevExecTime", Type: "float64", Column: "stddev_exec_time"}, pointer: &s.StddevExecTime}, + field{info: parse.FieldInfo{Name: "TotalPlanTime", Type: "float64", Column: "total_plan_time"}, pointer: &s.TotalPlanTime}, + field{info: parse.FieldInfo{Name: "MinPlanTime", Type: "float64", Column: "min_plan_time"}, pointer: &s.MinPlanTime}, + field{info: parse.FieldInfo{Name: "MaxPlanTime", Type: "float64", Column: "max_plan_time"}, pointer: &s.MaxPlanTime}, + field{info: parse.FieldInfo{Name: "MeanPlanTime", Type: "float64", Column: "mean_plan_time"}, pointer: &s.MeanPlanTime}) if vPGSM >= pgStatMonitorVersion09 { fields = append(fields, @@ -274,7 +287,7 @@ func (v *pgStatMonitorAllViewType) NewStruct() reform.Struct { //nolint:ireturn // String returns a string representation of this struct or record. func (s pgStatMonitor) String() string { - res := make([]string, 49) + res := make([]string, 51) res[0] = "Bucket: " + reform.Inspect(s.Bucket, true) res[1] = "BucketStartTime: " + reform.Inspect(s.BucketStartTime, true) res[2] = "UserID: " + reform.Inspect(s.UserID, true) @@ -283,7 +296,7 @@ func (s pgStatMonitor) String() string { res[5] = "Query: " + reform.Inspect(s.Query, true) res[6] = "Relations: " + reform.Inspect(s.Relations, true) res[7] = "Calls: " + reform.Inspect(s.Calls, true) - res[8] = "TotalTime: " + reform.Inspect(s.TotalTime, true) + res[8] = "TotalExecTime: " + reform.Inspect(s.TotalExecTime, true) res[9] = "SharedBlksHit: " + reform.Inspect(s.SharedBlksHit, true) res[10] = "SharedBlksRead: " + reform.Inspect(s.SharedBlksRead, true) res[11] = "SharedBlksDirtied: " + reform.Inspect(s.SharedBlksDirtied, true) @@ -294,36 +307,38 @@ func (s pgStatMonitor) String() string { res[16] = "LocalBlksWritten: " + reform.Inspect(s.LocalBlksWritten, true) res[17] = "TempBlksRead: " + reform.Inspect(s.TempBlksRead, true) res[18] = "TempBlksWritten: " + reform.Inspect(s.TempBlksWritten, true) - res[19] = "BlkReadTime: " + reform.Inspect(s.BlkReadTime, true) - res[20] = "BlkWriteTime: " + reform.Inspect(s.BlkWriteTime, true) - res[21] = "RespCalls: " + reform.Inspect(s.RespCalls, true) - res[22] = "CPUUserTime: " + reform.Inspect(s.CPUUserTime, true) - res[23] = "CPUSysTime: " + reform.Inspect(s.CPUSysTime, true) - res[24] = "DBID: " + reform.Inspect(s.DBID, true) - res[25] = "DatName: " + reform.Inspect(s.DatName, true) - res[26] = "Rows: " + reform.Inspect(s.Rows, true) - res[27] = "TopQueryID: " + reform.Inspect(s.TopQueryID, true) - res[28] = "PlanID: " + reform.Inspect(s.PlanID, true) - res[29] = "QueryPlan: " + reform.Inspect(s.QueryPlan, true) - res[30] = "TopQuery: " + reform.Inspect(s.TopQuery, true) - res[31] = "ApplicationName: " + reform.Inspect(s.ApplicationName, true) - res[32] = "CmdType: " + reform.Inspect(s.CmdType, true) - res[33] = "CmdTypeText: " + reform.Inspect(s.CmdTypeText, true) - res[34] = "Elevel: " + reform.Inspect(s.Elevel, true) - res[35] = "Sqlcode: " + reform.Inspect(s.Sqlcode, true) - res[36] = "Message: " + reform.Inspect(s.Message, true) - res[37] = "MinTime: " + reform.Inspect(s.MinTime, true) - res[38] = "MaxTime: " + reform.Inspect(s.MaxTime, true) - res[39] = "MeanTime: " + reform.Inspect(s.MeanTime, true) - res[40] = "StddevTime: " + reform.Inspect(s.StddevTime, true) - res[41] = "PlansCalls: " + reform.Inspect(s.PlansCalls, true) - res[42] = "PlanTotalTime: " + reform.Inspect(s.PlanTotalTime, true) - res[43] = "PlanMinTime: " + reform.Inspect(s.PlanMinTime, true) - res[44] = "PlanMaxTime: " + reform.Inspect(s.PlanMaxTime, true) - res[45] = "PlanMeanTime: " + reform.Inspect(s.PlanMeanTime, true) - res[46] = "WalRecords: " + reform.Inspect(s.WalRecords, true) - res[47] = "WalFpi: " + reform.Inspect(s.WalFpi, true) - res[48] = "WalBytes: " + reform.Inspect(s.WalBytes, true) + res[19] = "SharedBlkReadTime: " + reform.Inspect(s.SharedBlkReadTime, true) + res[20] = "SharedBlkWriteTime: " + reform.Inspect(s.SharedBlkWriteTime, true) + res[21] = "LocalBlkReadTime: " + reform.Inspect(s.LocalBlkReadTime, true) + res[22] = "LocalBlkWriteTime: " + reform.Inspect(s.LocalBlkWriteTime, true) + res[23] = "RespCalls: " + reform.Inspect(s.RespCalls, true) + res[24] = "CPUUserTime: " + reform.Inspect(s.CPUUserTime, true) + res[25] = "CPUSysTime: " + reform.Inspect(s.CPUSysTime, true) + res[26] = "DBID: " + reform.Inspect(s.DBID, true) + res[27] = "DatName: " + reform.Inspect(s.DatName, true) + res[28] = "Rows: " + reform.Inspect(s.Rows, true) + res[29] = "TopQueryID: " + reform.Inspect(s.TopQueryID, true) + res[30] = "PlanID: " + reform.Inspect(s.PlanID, true) + res[31] = "QueryPlan: " + reform.Inspect(s.QueryPlan, true) + res[32] = "TopQuery: " + reform.Inspect(s.TopQuery, true) + res[33] = "ApplicationName: " + reform.Inspect(s.ApplicationName, true) + res[34] = "CmdType: " + reform.Inspect(s.CmdType, true) + res[35] = "CmdTypeText: " + reform.Inspect(s.CmdTypeText, true) + res[36] = "Elevel: " + reform.Inspect(s.Elevel, true) + res[37] = "Sqlcode: " + reform.Inspect(s.Sqlcode, true) + res[38] = "Message: " + reform.Inspect(s.Message, true) + res[39] = "MinExecTime: " + reform.Inspect(s.MinExecTime, true) + res[40] = "MaxExecTime: " + reform.Inspect(s.MaxExecTime, true) + res[41] = "MeanExecTime: " + reform.Inspect(s.MeanExecTime, true) + res[42] = "StddevExecTime: " + reform.Inspect(s.StddevExecTime, true) + res[43] = "PlansCalls: " + reform.Inspect(s.PlansCalls, true) + res[44] = "TotalPlanTime: " + reform.Inspect(s.TotalPlanTime, true) + res[45] = "MinPlanTime: " + reform.Inspect(s.MinPlanTime, true) + res[46] = "MaxPlanTime: " + reform.Inspect(s.MaxPlanTime, true) + res[47] = "MeanPlanTime: " + reform.Inspect(s.MeanPlanTime, true) + res[48] = "WalRecords: " + reform.Inspect(s.WalRecords, true) + res[49] = "WalFpi: " + reform.Inspect(s.WalFpi, true) + res[50] = "WalBytes: " + reform.Inspect(s.WalBytes, true) return strings.Join(res, ", ") } diff --git a/agent/agents/postgres/pgstatmonitor/pgstatmonitor_test.go b/agent/agents/postgres/pgstatmonitor/pgstatmonitor_test.go index 2226e04e8b..335579b4f1 100644 --- a/agent/agents/postgres/pgstatmonitor/pgstatmonitor_test.go +++ b/agent/agents/postgres/pgstatmonitor/pgstatmonitor_test.go @@ -249,31 +249,33 @@ func TestPGStatMonitorSchema(t *testing.T) { MQueryTimeSum: actual.Common.MQueryTimeSum, }, Postgresql: &agentpb.MetricsBucket_PostgreSQL{ - MBlkReadTimeCnt: actual.Postgresql.MBlkReadTimeCnt, - MBlkReadTimeSum: actual.Postgresql.MBlkReadTimeSum, - MSharedBlksReadCnt: actual.Postgresql.MSharedBlksReadCnt, - MSharedBlksReadSum: actual.Postgresql.MSharedBlksReadSum, - MSharedBlksHitCnt: actual.Postgresql.MSharedBlksHitCnt, - MSharedBlksHitSum: actual.Postgresql.MSharedBlksHitSum, - MRowsCnt: 1, - MRowsSum: 239, - MCpuUserTimeCnt: actual.Postgresql.MCpuUserTimeCnt, - MCpuUserTimeSum: actual.Postgresql.MCpuUserTimeSum, - MCpuSysTimeCnt: actual.Postgresql.MCpuSysTimeCnt, - MCpuSysTimeSum: actual.Postgresql.MCpuSysTimeSum, - CmdType: selectCMDType, - HistogramItems: actual.Postgresql.HistogramItems, - MPlansCallsSum: actual.Postgresql.MPlansCallsSum, - MPlansCallsCnt: mPlansCallsCnt, - MPlanTimeCnt: mPlansTimeCnt, - MPlanTimeSum: actual.Postgresql.MPlanTimeSum, - MPlanTimeMin: actual.Postgresql.MPlanTimeMin, - MPlanTimeMax: actual.Postgresql.MPlanTimeMax, + MSharedBlkReadTimeCnt: actual.Postgresql.MSharedBlkReadTimeCnt, + MSharedBlkReadTimeSum: actual.Postgresql.MSharedBlkReadTimeSum, + MLocalBlkReadTimeCnt: actual.Postgresql.MLocalBlkReadTimeCnt, + MLocalBlkReadTimeSum: actual.Postgresql.MLocalBlkReadTimeSum, + MSharedBlksReadCnt: actual.Postgresql.MSharedBlksReadCnt, + MSharedBlksReadSum: actual.Postgresql.MSharedBlksReadSum, + MSharedBlksHitCnt: actual.Postgresql.MSharedBlksHitCnt, + MSharedBlksHitSum: actual.Postgresql.MSharedBlksHitSum, + MRowsCnt: 1, + MRowsSum: 239, + MCpuUserTimeCnt: actual.Postgresql.MCpuUserTimeCnt, + MCpuUserTimeSum: actual.Postgresql.MCpuUserTimeSum, + MCpuSysTimeCnt: actual.Postgresql.MCpuSysTimeCnt, + MCpuSysTimeSum: actual.Postgresql.MCpuSysTimeSum, + CmdType: selectCMDType, + HistogramItems: actual.Postgresql.HistogramItems, + MPlansCallsSum: actual.Postgresql.MPlansCallsSum, + MPlansCallsCnt: mPlansCallsCnt, + MPlanTimeCnt: mPlansTimeCnt, + MPlanTimeSum: actual.Postgresql.MPlanTimeSum, + MPlanTimeMin: actual.Postgresql.MPlanTimeMin, + MPlanTimeMax: actual.Postgresql.MPlanTimeMax, }, } expected.Common.Queryid = digests[expected.Common.Fingerprint] tests.AssertBucketsEqual(t, expected, actual) - assert.LessOrEqual(t, actual.Postgresql.MBlkReadTimeSum, actual.Common.MQueryTimeSum) + assert.LessOrEqual(t, actual.Postgresql.MSharedBlkReadTimeSum, actual.Common.MQueryTimeSum) assert.Regexp(t, `\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}`, actual.Common.ClientHost) _, err = db.Exec(selectAllCountries) @@ -307,29 +309,31 @@ func TestPGStatMonitorSchema(t *testing.T) { MQueryTimeSum: actual.Common.MQueryTimeSum, }, Postgresql: &agentpb.MetricsBucket_PostgreSQL{ - MSharedBlksHitCnt: 1, - MSharedBlksHitSum: 5, - MRowsCnt: 1, - MRowsSum: 239, - MBlkReadTimeCnt: actual.Postgresql.MBlkReadTimeCnt, - MBlkReadTimeSum: actual.Postgresql.MBlkReadTimeSum, - MCpuUserTimeCnt: actual.Postgresql.MCpuUserTimeCnt, - MCpuUserTimeSum: actual.Postgresql.MCpuUserTimeSum, - MCpuSysTimeCnt: actual.Postgresql.MCpuSysTimeCnt, - MCpuSysTimeSum: actual.Postgresql.MCpuSysTimeSum, - CmdType: selectCMDType, - HistogramItems: actual.Postgresql.HistogramItems, - MPlansCallsSum: actual.Postgresql.MPlansCallsSum, - MPlansCallsCnt: mPlansCallsCnt, - MPlanTimeCnt: mPlansTimeCnt, - MPlanTimeSum: actual.Postgresql.MPlanTimeSum, - MPlanTimeMin: actual.Postgresql.MPlanTimeMin, - MPlanTimeMax: actual.Postgresql.MPlanTimeMax, + MSharedBlksHitCnt: 1, + MSharedBlksHitSum: 5, + MRowsCnt: 1, + MRowsSum: 239, + MSharedBlkReadTimeCnt: actual.Postgresql.MSharedBlkReadTimeCnt, + MSharedBlkReadTimeSum: actual.Postgresql.MSharedBlkReadTimeSum, + MLocalBlkReadTimeCnt: actual.Postgresql.MLocalBlkReadTimeCnt, + MLocalBlkReadTimeSum: actual.Postgresql.MLocalBlkReadTimeSum, + MCpuUserTimeCnt: actual.Postgresql.MCpuUserTimeCnt, + MCpuUserTimeSum: actual.Postgresql.MCpuUserTimeSum, + MCpuSysTimeCnt: actual.Postgresql.MCpuSysTimeCnt, + MCpuSysTimeSum: actual.Postgresql.MCpuSysTimeSum, + CmdType: selectCMDType, + HistogramItems: actual.Postgresql.HistogramItems, + MPlansCallsSum: actual.Postgresql.MPlansCallsSum, + MPlansCallsCnt: mPlansCallsCnt, + MPlanTimeCnt: mPlansTimeCnt, + MPlanTimeSum: actual.Postgresql.MPlanTimeSum, + MPlanTimeMin: actual.Postgresql.MPlanTimeMin, + MPlanTimeMax: actual.Postgresql.MPlanTimeMax, }, } expected.Common.Queryid = digests[expected.Common.Fingerprint] tests.AssertBucketsEqual(t, expected, actual) - assert.LessOrEqual(t, actual.Postgresql.MBlkReadTimeSum, actual.Common.MQueryTimeSum) + assert.LessOrEqual(t, actual.Postgresql.MSharedBlkReadTimeSum, actual.Common.MQueryTimeSum) }) t.Run("AllCountriesTruncated", func(t *testing.T) { @@ -381,31 +385,33 @@ func TestPGStatMonitorSchema(t *testing.T) { MQueryTimeSum: actual.Common.MQueryTimeSum, }, Postgresql: &agentpb.MetricsBucket_PostgreSQL{ - MBlkReadTimeCnt: actual.Postgresql.MBlkReadTimeCnt, - MBlkReadTimeSum: actual.Postgresql.MBlkReadTimeSum, - MSharedBlksReadCnt: actual.Postgresql.MSharedBlksReadCnt, - MSharedBlksReadSum: actual.Postgresql.MSharedBlksReadSum, - MSharedBlksHitCnt: actual.Postgresql.MSharedBlksHitCnt, - MSharedBlksHitSum: actual.Postgresql.MSharedBlksHitSum, - MRowsCnt: 1, - MRowsSum: 30, - MCpuUserTimeCnt: actual.Postgresql.MCpuUserTimeCnt, - MCpuUserTimeSum: actual.Postgresql.MCpuUserTimeSum, - MCpuSysTimeCnt: actual.Postgresql.MCpuSysTimeCnt, - MCpuSysTimeSum: actual.Postgresql.MCpuSysTimeSum, - CmdType: selectCMDType, - HistogramItems: actual.Postgresql.HistogramItems, - MPlansCallsSum: actual.Postgresql.MPlansCallsSum, - MPlansCallsCnt: mPlansCallsCnt, - MPlanTimeCnt: mPlansTimeCnt, - MPlanTimeSum: actual.Postgresql.MPlanTimeSum, - MPlanTimeMin: actual.Postgresql.MPlanTimeMin, - MPlanTimeMax: actual.Postgresql.MPlanTimeMax, + MSharedBlkReadTimeCnt: actual.Postgresql.MSharedBlkReadTimeCnt, + MSharedBlkReadTimeSum: actual.Postgresql.MSharedBlkReadTimeSum, + MLocalBlkReadTimeCnt: actual.Postgresql.MLocalBlkReadTimeCnt, + MLocalBlkReadTimeSum: actual.Postgresql.MLocalBlkReadTimeSum, + MSharedBlksReadCnt: actual.Postgresql.MSharedBlksReadCnt, + MSharedBlksReadSum: actual.Postgresql.MSharedBlksReadSum, + MSharedBlksHitCnt: actual.Postgresql.MSharedBlksHitCnt, + MSharedBlksHitSum: actual.Postgresql.MSharedBlksHitSum, + MRowsCnt: 1, + MRowsSum: 30, + MCpuUserTimeCnt: actual.Postgresql.MCpuUserTimeCnt, + MCpuUserTimeSum: actual.Postgresql.MCpuUserTimeSum, + MCpuSysTimeCnt: actual.Postgresql.MCpuSysTimeCnt, + MCpuSysTimeSum: actual.Postgresql.MCpuSysTimeSum, + CmdType: selectCMDType, + HistogramItems: actual.Postgresql.HistogramItems, + MPlansCallsSum: actual.Postgresql.MPlansCallsSum, + MPlansCallsCnt: mPlansCallsCnt, + MPlanTimeCnt: mPlansTimeCnt, + MPlanTimeSum: actual.Postgresql.MPlanTimeSum, + MPlanTimeMin: actual.Postgresql.MPlanTimeMin, + MPlanTimeMax: actual.Postgresql.MPlanTimeMax, }, } expected.Common.Queryid = digests[expected.Common.Fingerprint] tests.AssertBucketsEqual(t, expected, actual) - assert.LessOrEqual(t, actual.Postgresql.MBlkReadTimeSum, actual.Common.MQueryTimeSum) + assert.LessOrEqual(t, actual.Postgresql.MSharedBlkReadTimeSum, actual.Common.MQueryTimeSum) assert.Regexp(t, `\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}`, actual.Common.ClientHost) _, err = db.Exec(q, args...) @@ -420,7 +426,7 @@ func TestPGStatMonitorSchema(t *testing.T) { actual = buckets[0] actual.Common.Username = strings.ReplaceAll(actual.Common.Username, `"`, "") assert.InDelta(t, 0, actual.Common.MQueryTimeSum, 0.09) - assert.InDelta(t, 0, actual.Postgresql.MBlkReadTimeCnt, 1) + assert.InDelta(t, 0, actual.Postgresql.MSharedBlkReadTimeCnt, 1) assert.InDelta(t, 5, actual.Postgresql.MSharedBlksHitSum, 2) expected = &agentpb.MetricsBucket{ Common: &agentpb.MetricsBucket_Common{ @@ -442,29 +448,31 @@ func TestPGStatMonitorSchema(t *testing.T) { MQueryTimeSum: actual.Common.MQueryTimeSum, }, Postgresql: &agentpb.MetricsBucket_PostgreSQL{ - MBlkReadTimeCnt: actual.Postgresql.MBlkReadTimeCnt, - MBlkReadTimeSum: actual.Postgresql.MBlkReadTimeSum, - MSharedBlksHitCnt: 1, - MSharedBlksHitSum: actual.Postgresql.MSharedBlksHitSum, - MRowsCnt: 1, - MRowsSum: 30, - MCpuUserTimeCnt: actual.Postgresql.MCpuUserTimeCnt, - MCpuUserTimeSum: actual.Postgresql.MCpuUserTimeSum, - MCpuSysTimeCnt: actual.Postgresql.MCpuSysTimeCnt, - MCpuSysTimeSum: actual.Postgresql.MCpuSysTimeSum, - CmdType: selectCMDType, - HistogramItems: actual.Postgresql.HistogramItems, - MPlansCallsSum: actual.Postgresql.MPlansCallsSum, - MPlansCallsCnt: mPlansCallsCnt, - MPlanTimeCnt: mPlansTimeCnt, - MPlanTimeSum: actual.Postgresql.MPlanTimeSum, - MPlanTimeMin: actual.Postgresql.MPlanTimeMin, - MPlanTimeMax: actual.Postgresql.MPlanTimeMax, + MSharedBlkReadTimeCnt: actual.Postgresql.MSharedBlkReadTimeCnt, + MSharedBlkReadTimeSum: actual.Postgresql.MSharedBlkReadTimeSum, + MLocalBlkReadTimeCnt: actual.Postgresql.MLocalBlkReadTimeCnt, + MLocalBlkReadTimeSum: actual.Postgresql.MLocalBlkReadTimeSum, + MSharedBlksHitCnt: 1, + MSharedBlksHitSum: actual.Postgresql.MSharedBlksHitSum, + MRowsCnt: 1, + MRowsSum: 30, + MCpuUserTimeCnt: actual.Postgresql.MCpuUserTimeCnt, + MCpuUserTimeSum: actual.Postgresql.MCpuUserTimeSum, + MCpuSysTimeCnt: actual.Postgresql.MCpuSysTimeCnt, + MCpuSysTimeSum: actual.Postgresql.MCpuSysTimeSum, + CmdType: selectCMDType, + HistogramItems: actual.Postgresql.HistogramItems, + MPlansCallsSum: actual.Postgresql.MPlansCallsSum, + MPlansCallsCnt: mPlansCallsCnt, + MPlanTimeCnt: mPlansTimeCnt, + MPlanTimeSum: actual.Postgresql.MPlanTimeSum, + MPlanTimeMin: actual.Postgresql.MPlanTimeMin, + MPlanTimeMax: actual.Postgresql.MPlanTimeMax, }, } expected.Common.Queryid = digests[expected.Common.Fingerprint] tests.AssertBucketsEqual(t, expected, actual) - assert.LessOrEqual(t, actual.Postgresql.MBlkReadTimeSum, actual.Common.MQueryTimeSum) + assert.LessOrEqual(t, actual.Postgresql.MSharedBlkReadTimeSum, actual.Common.MQueryTimeSum) }) t.Run("CheckMBlkReadTime", func(t *testing.T) { @@ -518,7 +526,7 @@ func TestPGStatMonitorSchema(t *testing.T) { actual := buckets[0] actual.Common.Username = strings.ReplaceAll(actual.Common.Username, `"`, "") - assert.NotZero(t, actual.Postgresql.MBlkReadTimeSum) + assert.NotZero(t, actual.Postgresql.MSharedBlkReadTimeSum) expectedFingerprint := fmt.Sprintf("INSERT /* CheckMBlkReadTime controller='test' */ INTO %s (customer_id, first_name, last_name, active) VALUES ($1, $2, $3, $4)", tableName) expected := &agentpb.MetricsBucket{ Common: &agentpb.MetricsBucket_Common{ @@ -541,8 +549,10 @@ func TestPGStatMonitorSchema(t *testing.T) { Tables: []string{fmt.Sprintf("public.%s", tableName)}, }, Postgresql: &agentpb.MetricsBucket_PostgreSQL{ - MBlkReadTimeCnt: float32(n), - MBlkReadTimeSum: actual.Postgresql.MBlkReadTimeSum, + MSharedBlkReadTimeCnt: float32(n), + MSharedBlkReadTimeSum: actual.Postgresql.MSharedBlkReadTimeSum, + MLocalBlkReadTimeCnt: actual.Postgresql.MLocalBlkReadTimeCnt, + MLocalBlkReadTimeSum: actual.Postgresql.MLocalBlkReadTimeSum, MSharedBlksReadCnt: actual.Postgresql.MSharedBlksReadCnt, MSharedBlksReadSum: actual.Postgresql.MSharedBlksReadSum, MSharedBlksWrittenCnt: actual.Postgresql.MSharedBlksWrittenCnt, @@ -572,7 +582,7 @@ func TestPGStatMonitorSchema(t *testing.T) { }, } tests.AssertBucketsEqual(t, expected, actual) - assert.LessOrEqual(t, actual.Postgresql.MBlkReadTimeSum, actual.Common.MQueryTimeSum) + assert.LessOrEqual(t, actual.Postgresql.MSharedBlkReadTimeSum, actual.Common.MQueryTimeSum) assert.Regexp(t, `\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}`, actual.Common.ClientHost) }) } diff --git a/agent/agents/postgres/pgstatstatements/models.go b/agent/agents/postgres/pgstatstatements/models.go index 00746732fe..b68efad06c 100644 --- a/agent/agents/postgres/pgstatstatements/models.go +++ b/agent/agents/postgres/pgstatstatements/models.go @@ -14,8 +14,6 @@ package pgstatstatements -import "fmt" - //go:generate ../../../../bin/reform // pgStatDatabase represents a row in pg_stat_database view. @@ -33,49 +31,3 @@ type pgUser struct { UserID int64 `reform:"usesysid"` UserName *string `reform:"usename"` } - -// pgStatStatements represents a row in pg_stat_statements view. -// -//reform:pg_stat_statements -type pgStatStatements struct { - UserID int64 `reform:"userid"` - DBID int64 `reform:"dbid"` - QueryID int64 `reform:"queryid"` // we select only non-NULL rows - Query string `reform:"query"` // we select only non-NULL rows - Calls int64 `reform:"calls"` - TotalTime float64 `reform:"total_time"` - // MinTime *float64 `reform:"min_time"` - // MaxTime *float64 `reform:"max_time"` - // MeanTime *float64 `reform:"mean_time"` - // StddevTime *float64 `reform:"stddev_time"` - Rows int64 `reform:"rows"` - SharedBlksHit int64 `reform:"shared_blks_hit"` - SharedBlksRead int64 `reform:"shared_blks_read"` - SharedBlksDirtied int64 `reform:"shared_blks_dirtied"` - SharedBlksWritten int64 `reform:"shared_blks_written"` - LocalBlksHit int64 `reform:"local_blks_hit"` - LocalBlksRead int64 `reform:"local_blks_read"` - LocalBlksDirtied int64 `reform:"local_blks_dirtied"` - LocalBlksWritten int64 `reform:"local_blks_written"` - TempBlksRead int64 `reform:"temp_blks_read"` - TempBlksWritten int64 `reform:"temp_blks_written"` - BlkReadTime float64 `reform:"blk_read_time"` - BlkWriteTime float64 `reform:"blk_write_time"` -} - -// pgStatStatementsExtended contains pgStatStatements data and extends it with database, username and tables data. -// It's made for performance reason. -type pgStatStatementsExtended struct { - pgStatStatements - - Database string - Username string - Tables []string - IsQueryTruncated bool - Comments map[string]string -} - -func (e *pgStatStatementsExtended) String() string { - return fmt.Sprintf("%q %q %v: %d: %s (truncated = %t) %v", - e.Database, e.Username, e.Tables, e.QueryID, e.Query, e.IsQueryTruncated, e.Comments) -} diff --git a/agent/agents/postgres/pgstatstatements/models_reform.go b/agent/agents/postgres/pgstatstatements/models_reform.go index ea7cfe7836..473f13e8bb 100644 --- a/agent/agents/postgres/pgstatstatements/models_reform.go +++ b/agent/agents/postgres/pgstatstatements/models_reform.go @@ -172,173 +172,7 @@ var ( _ fmt.Stringer = (*pgUser)(nil) ) -type pgStatStatementsViewType struct { - s parse.StructInfo - z []interface{} -} - -// Schema returns a schema name in SQL database (""). -func (v *pgStatStatementsViewType) Schema() string { - return v.s.SQLSchema -} - -// Name returns a view or table name in SQL database ("pg_stat_statements"). -func (v *pgStatStatementsViewType) Name() string { - return v.s.SQLName -} - -// Columns returns a new slice of column names for that view or table in SQL database. -func (v *pgStatStatementsViewType) Columns() []string { - return []string{ - "userid", - "dbid", - "queryid", - "query", - "calls", - "total_time", - "rows", - "shared_blks_hit", - "shared_blks_read", - "shared_blks_dirtied", - "shared_blks_written", - "local_blks_hit", - "local_blks_read", - "local_blks_dirtied", - "local_blks_written", - "temp_blks_read", - "temp_blks_written", - "blk_read_time", - "blk_write_time", - } -} - -// NewStruct makes a new struct for that view or table. -func (v *pgStatStatementsViewType) NewStruct() reform.Struct { - return new(pgStatStatements) -} - -// pgStatStatementsView represents pg_stat_statements view or table in SQL database. -var pgStatStatementsView = &pgStatStatementsViewType{ - s: parse.StructInfo{ - Type: "pgStatStatements", - SQLName: "pg_stat_statements", - Fields: []parse.FieldInfo{ - {Name: "UserID", Type: "int64", Column: "userid"}, - {Name: "DBID", Type: "int64", Column: "dbid"}, - {Name: "QueryID", Type: "int64", Column: "queryid"}, - {Name: "Query", Type: "string", Column: "query"}, - {Name: "Calls", Type: "int64", Column: "calls"}, - {Name: "TotalTime", Type: "float64", Column: "total_time"}, - {Name: "Rows", Type: "int64", Column: "rows"}, - {Name: "SharedBlksHit", Type: "int64", Column: "shared_blks_hit"}, - {Name: "SharedBlksRead", Type: "int64", Column: "shared_blks_read"}, - {Name: "SharedBlksDirtied", Type: "int64", Column: "shared_blks_dirtied"}, - {Name: "SharedBlksWritten", Type: "int64", Column: "shared_blks_written"}, - {Name: "LocalBlksHit", Type: "int64", Column: "local_blks_hit"}, - {Name: "LocalBlksRead", Type: "int64", Column: "local_blks_read"}, - {Name: "LocalBlksDirtied", Type: "int64", Column: "local_blks_dirtied"}, - {Name: "LocalBlksWritten", Type: "int64", Column: "local_blks_written"}, - {Name: "TempBlksRead", Type: "int64", Column: "temp_blks_read"}, - {Name: "TempBlksWritten", Type: "int64", Column: "temp_blks_written"}, - {Name: "BlkReadTime", Type: "float64", Column: "blk_read_time"}, - {Name: "BlkWriteTime", Type: "float64", Column: "blk_write_time"}, - }, - PKFieldIndex: -1, - }, - z: new(pgStatStatements).Values(), -} - -// String returns a string representation of this struct or record. -func (s pgStatStatements) String() string { - res := make([]string, 19) - res[0] = "UserID: " + reform.Inspect(s.UserID, true) - res[1] = "DBID: " + reform.Inspect(s.DBID, true) - res[2] = "QueryID: " + reform.Inspect(s.QueryID, true) - res[3] = "Query: " + reform.Inspect(s.Query, true) - res[4] = "Calls: " + reform.Inspect(s.Calls, true) - res[5] = "TotalTime: " + reform.Inspect(s.TotalTime, true) - res[6] = "Rows: " + reform.Inspect(s.Rows, true) - res[7] = "SharedBlksHit: " + reform.Inspect(s.SharedBlksHit, true) - res[8] = "SharedBlksRead: " + reform.Inspect(s.SharedBlksRead, true) - res[9] = "SharedBlksDirtied: " + reform.Inspect(s.SharedBlksDirtied, true) - res[10] = "SharedBlksWritten: " + reform.Inspect(s.SharedBlksWritten, true) - res[11] = "LocalBlksHit: " + reform.Inspect(s.LocalBlksHit, true) - res[12] = "LocalBlksRead: " + reform.Inspect(s.LocalBlksRead, true) - res[13] = "LocalBlksDirtied: " + reform.Inspect(s.LocalBlksDirtied, true) - res[14] = "LocalBlksWritten: " + reform.Inspect(s.LocalBlksWritten, true) - res[15] = "TempBlksRead: " + reform.Inspect(s.TempBlksRead, true) - res[16] = "TempBlksWritten: " + reform.Inspect(s.TempBlksWritten, true) - res[17] = "BlkReadTime: " + reform.Inspect(s.BlkReadTime, true) - res[18] = "BlkWriteTime: " + reform.Inspect(s.BlkWriteTime, true) - return strings.Join(res, ", ") -} - -// Values returns a slice of struct or record field values. -// Returned interface{} values are never untyped nils. -func (s *pgStatStatements) Values() []interface{} { - return []interface{}{ - s.UserID, - s.DBID, - s.QueryID, - s.Query, - s.Calls, - s.TotalTime, - s.Rows, - s.SharedBlksHit, - s.SharedBlksRead, - s.SharedBlksDirtied, - s.SharedBlksWritten, - s.LocalBlksHit, - s.LocalBlksRead, - s.LocalBlksDirtied, - s.LocalBlksWritten, - s.TempBlksRead, - s.TempBlksWritten, - s.BlkReadTime, - s.BlkWriteTime, - } -} - -// Pointers returns a slice of pointers to struct or record fields. -// Returned interface{} values are never untyped nils. -func (s *pgStatStatements) Pointers() []interface{} { - return []interface{}{ - &s.UserID, - &s.DBID, - &s.QueryID, - &s.Query, - &s.Calls, - &s.TotalTime, - &s.Rows, - &s.SharedBlksHit, - &s.SharedBlksRead, - &s.SharedBlksDirtied, - &s.SharedBlksWritten, - &s.LocalBlksHit, - &s.LocalBlksRead, - &s.LocalBlksDirtied, - &s.LocalBlksWritten, - &s.TempBlksRead, - &s.TempBlksWritten, - &s.BlkReadTime, - &s.BlkWriteTime, - } -} - -// View returns View object for that struct. -func (s *pgStatStatements) View() reform.View { - return pgStatStatementsView -} - -// check interfaces -var ( - _ reform.View = pgStatStatementsView - _ reform.Struct = (*pgStatStatements)(nil) - _ fmt.Stringer = (*pgStatStatements)(nil) -) - func init() { parse.AssertUpToDate(&pgStatDatabaseView.s, new(pgStatDatabase)) parse.AssertUpToDate(&pgUserView.s, new(pgUser)) - parse.AssertUpToDate(&pgStatStatementsView.s, new(pgStatStatements)) } diff --git a/agent/agents/postgres/pgstatstatements/pg_stat_statements_models.go b/agent/agents/postgres/pgstatstatements/pg_stat_statements_models.go new file mode 100644 index 0000000000..6295b90092 --- /dev/null +++ b/agent/agents/postgres/pgstatstatements/pg_stat_statements_models.go @@ -0,0 +1,222 @@ +// Copyright (C) 2023 Percona LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package pgstatstatements + +import ( + "fmt" + "reflect" + "strings" + + "github.com/blang/semver" + "gopkg.in/reform.v1" + "gopkg.in/reform.v1/parse" +) + +// pgStatStatements represents a row in pg_stat_statements view. +type pgStatStatements struct { + UserID int64 + DBID int64 + QueryID int64 // we select only non-NULL rows + Query string // we select only non-NULL rows + Calls int64 + TotalExecTime float64 + // MinTime + // MaxTime + // MeanTime + // StddevTime + Rows int64 + SharedBlksHit int64 + SharedBlksRead int64 + SharedBlksDirtied int64 + SharedBlksWritten int64 + LocalBlksHit int64 + LocalBlksRead int64 + LocalBlksDirtied int64 + LocalBlksWritten int64 + TempBlksRead int64 + TempBlksWritten int64 + SharedBlkReadTime float64 + SharedBlkWriteTime float64 + LocalBlkReadTime float64 + LocalBlkWriteTime float64 + + // reform related fields + pointers []interface{} + view reform.View +} + +type field struct { + info parse.FieldInfo + pointer interface{} +} + +func newPgStatMonitorStructs(vPGSS semver.Version) (*pgStatStatements, reform.View) { //nolint:ireturn + s := &pgStatStatements{} + fields := []field{ + {info: parse.FieldInfo{Name: "UserID", Type: "int64", Column: "userid"}, pointer: &s.UserID}, + {info: parse.FieldInfo{Name: "DBID", Type: "int64", Column: "dbid"}, pointer: &s.DBID}, + {info: parse.FieldInfo{Name: "QueryID", Type: "int64", Column: "queryid"}, pointer: &s.QueryID}, + {info: parse.FieldInfo{Name: "Query", Type: "string", Column: "query"}, pointer: &s.Query}, + {info: parse.FieldInfo{Name: "Calls", Type: "int64", Column: "calls"}, pointer: &s.Calls}, + {info: parse.FieldInfo{Name: "Rows", Type: "int64", Column: "rows"}, pointer: &s.Rows}, + {info: parse.FieldInfo{Name: "SharedBlksHit", Type: "int64", Column: "shared_blks_hit"}, pointer: &s.SharedBlksHit}, + {info: parse.FieldInfo{Name: "SharedBlksRead", Type: "int64", Column: "shared_blks_read"}, pointer: &s.SharedBlksRead}, + {info: parse.FieldInfo{Name: "SharedBlksDirtied", Type: "int64", Column: "shared_blks_dirtied"}, pointer: &s.SharedBlksDirtied}, + {info: parse.FieldInfo{Name: "SharedBlksWritten", Type: "int64", Column: "shared_blks_written"}, pointer: &s.SharedBlksWritten}, + {info: parse.FieldInfo{Name: "LocalBlksHit", Type: "int64", Column: "local_blks_hit"}, pointer: &s.LocalBlksHit}, + {info: parse.FieldInfo{Name: "LocalBlksRead", Type: "int64", Column: "local_blks_read"}, pointer: &s.LocalBlksRead}, + {info: parse.FieldInfo{Name: "LocalBlksDirtied", Type: "int64", Column: "local_blks_dirtied"}, pointer: &s.LocalBlksDirtied}, + {info: parse.FieldInfo{Name: "LocalBlksWritten", Type: "int64", Column: "local_blks_written"}, pointer: &s.LocalBlksWritten}, + {info: parse.FieldInfo{Name: "TempBlksRead", Type: "int64", Column: "temp_blks_read"}, pointer: &s.TempBlksRead}, + {info: parse.FieldInfo{Name: "TempBlksWritten", Type: "int64", Column: "temp_blks_written"}, pointer: &s.TempBlksWritten}, + } + + if vPGSS.LT(pgStatVer1_8) { + fields = append(fields, + field{info: parse.FieldInfo{Name: "TotalExecTime", Type: "float64", Column: "total_time"}, pointer: &s.TotalExecTime}) + } else { + fields = append(fields, + field{info: parse.FieldInfo{Name: "TotalExecTime", Type: "float64", Column: "total_exec_time"}, pointer: &s.TotalExecTime}) + } + + if vPGSS.LT(pgStatVer1_11) { + fields = append(fields, + field{info: parse.FieldInfo{Name: "SharedBlkReadTime", Type: "float64", Column: "blk_read_time"}, pointer: &s.SharedBlkReadTime}, + field{info: parse.FieldInfo{Name: "SharedBlkWriteTime", Type: "float64", Column: "blk_write_time"}, pointer: &s.SharedBlkWriteTime}) + } else { + fields = append(fields, + field{info: parse.FieldInfo{Name: "SharedBlkReadTime", Type: "float64", Column: "shared_blk_read_time"}, pointer: &s.SharedBlkReadTime}, + field{info: parse.FieldInfo{Name: "SharedBlkWriteTime", Type: "float64", Column: "shared_blk_write_time"}, pointer: &s.SharedBlkWriteTime}, + field{info: parse.FieldInfo{Name: "LocalBlkReadTime", Type: "float64", Column: "local_blk_read_time"}, pointer: &s.LocalBlkReadTime}, + field{info: parse.FieldInfo{Name: "LocalBlkWriteTime", Type: "float64", Column: "local_blk_write_time"}, pointer: &s.LocalBlkWriteTime}) + } + + s.pointers = make([]interface{}, len(fields)) + pgStatStatementsDefaultView := &pgStatStatementsAllViewType{ + s: parse.StructInfo{ + Type: "pgStatStatements", + SQLName: "pg_stat_statements", + Fields: make([]parse.FieldInfo, len(fields)), + PKFieldIndex: -1, + }, + c: make([]string, len(fields)), + vPGSS: vPGSS, + } + for i, field := range fields { + pgStatStatementsDefaultView.s.Fields[i] = field.info + pgStatStatementsDefaultView.c[i] = field.info.Column + s.pointers[i] = field.pointer + } + s.view = pgStatStatementsDefaultView + pgStatStatementsDefaultView.z = s.Values() + + return s, pgStatStatementsDefaultView +} + +type pgStatStatementsAllViewType struct { + s parse.StructInfo + z []interface{} + c []string + vPGSS semver.Version +} + +// Schema returns a schema name in SQL database (""). +func (v *pgStatStatementsAllViewType) Schema() string { + return v.s.SQLSchema +} + +// Name returns a view or table name in SQL database ("pg_stat_monitor"). +func (v *pgStatStatementsAllViewType) Name() string { + return v.s.SQLName +} + +// Columns returns a new slice of column names for that view or table in SQL database. +func (v *pgStatStatementsAllViewType) Columns() []string { + return v.c +} + +// NewStruct makes a new struct for that view or table. +func (v *pgStatStatementsAllViewType) NewStruct() reform.Struct { //nolint:ireturn + str, _ := newPgStatMonitorStructs(v.vPGSS) + return str +} + +// Values returns a slice of struct or record field values. +// Returned interface{} values are never untyped nils. +func (s *pgStatStatements) Values() []interface{} { + values := make([]interface{}, len(s.pointers)) + for i, pointer := range s.pointers { + values[i] = reflect.ValueOf(pointer).Interface() + } + return values +} + +// Pointers returns a slice of pointers to struct or record fields. +// Returned interface{} values are never untyped nils. +func (s *pgStatStatements) Pointers() []interface{} { + return s.pointers +} + +// View returns View object for that struct. +func (s *pgStatStatements) View() reform.View { //nolint:ireturn + return s.view +} + +func (s *pgStatStatements) String() string { + res := make([]string, 19) + res[0] = "UserID: " + reform.Inspect(s.UserID, true) + res[1] = "DBID: " + reform.Inspect(s.DBID, true) + res[2] = "QueryID: " + reform.Inspect(s.QueryID, true) + res[3] = "Query: " + reform.Inspect(s.Query, true) + res[4] = "Calls: " + reform.Inspect(s.Calls, true) + res[5] = "TotalExecTime: " + reform.Inspect(s.TotalExecTime, true) + res[6] = "Rows: " + reform.Inspect(s.Rows, true) + res[7] = "SharedBlksHit: " + reform.Inspect(s.SharedBlksHit, true) + res[8] = "SharedBlksRead: " + reform.Inspect(s.SharedBlksRead, true) + res[9] = "SharedBlksDirtied: " + reform.Inspect(s.SharedBlksDirtied, true) + res[10] = "SharedBlksWritten: " + reform.Inspect(s.SharedBlksWritten, true) + res[11] = "LocalBlksHit: " + reform.Inspect(s.LocalBlksHit, true) + res[12] = "LocalBlksRead: " + reform.Inspect(s.LocalBlksRead, true) + res[13] = "LocalBlksDirtied: " + reform.Inspect(s.LocalBlksDirtied, true) + res[14] = "LocalBlksWritten: " + reform.Inspect(s.LocalBlksWritten, true) + res[15] = "TempBlksRead: " + reform.Inspect(s.TempBlksRead, true) + res[16] = "TempBlksWritten: " + reform.Inspect(s.TempBlksWritten, true) + res[17] = "SharedBlkReadTime: " + reform.Inspect(s.SharedBlkReadTime, true) + res[18] = "SharedBlkWriteTime: " + reform.Inspect(s.SharedBlkWriteTime, true) + return strings.Join(res, ", ") +} + +var ( + // Check interfaces. + _ reform.Struct = (*pgStatStatements)(nil) + _ fmt.Stringer = (*pgStatStatements)(nil) +) + +// pgStatStatementsExtended contains pgStatStatements data and extends it with database, username and tables data. +// It's made for performance reason. +type pgStatStatementsExtended struct { + pgStatStatements + + Database string + Username string + Tables []string + IsQueryTruncated bool + Comments map[string]string +} + +func (e *pgStatStatementsExtended) String() string { + return fmt.Sprintf("%q %q %v: %d: %s (truncated = %t) %v", + e.Database, e.Username, e.Tables, e.QueryID, e.Query, e.IsQueryTruncated, e.Comments) +} diff --git a/agent/agents/postgres/pgstatstatements/pgstatstatements.go b/agent/agents/postgres/pgstatstatements/pgstatstatements.go index 35b6df8845..61c302de60 100644 --- a/agent/agents/postgres/pgstatstatements/pgstatstatements.go +++ b/agent/agents/postgres/pgstatstatements/pgstatstatements.go @@ -48,7 +48,10 @@ const ( queryStatStatements = time.Minute ) -var pgStatVer18 = semver.MustParse("1.8.0") +var ( + pgStatVer1_8 = semver.MustParse("1.8.0") + pgStatVer1_11 = semver.MustParse("1.11.0") +) type statementsMap map[int64]*pgStatStatementsExtended @@ -127,20 +130,6 @@ func getPgStatVersion(q *reform.Querier) (semver.Version, error) { return semver.Parse(v) } -func rowsByVersion(q *reform.Querier, tail string) (*sql.Rows, error) { - pgStatVersion, err := getPgStatVersion(q) - if err != nil { - return nil, err - } - - columns := strings.Join(q.QualifiedColumns(pgStatStatementsView), ", ") - if pgStatVersion.GE(pgStatVer18) { - columns = strings.Replace(columns, `"total_time"`, `"total_exec_time"`, 1) - } - - return q.Query(fmt.Sprintf("SELECT /* %s */ %s FROM %s %s", queryTag, columns, q.QualifiedView(pgStatStatementsView), tail)) -} - // Run extracts stats data and sends it to the channel until ctx is canceled. func (m *PGStatStatementsQAN) Run(ctx context.Context) { defer func() { @@ -236,15 +225,22 @@ func (m *PGStatStatementsQAN) getStatStatementsExtended( databases := queryDatabases(q) usernames := queryUsernames(q) - rows, err := rowsByVersion(q, "WHERE queryid IS NOT NULL AND query IS NOT NULL") + pgStatVersion, err := getPgStatVersion(q) + if err != nil { + return nil, nil, err + } + + row, view := newPgStatMonitorStructs(pgStatVersion) + columns := strings.Join(q.QualifiedColumns(view), ", ") + + rows, err := q.Query(fmt.Sprintf("SELECT /* %s */ %s FROM %s %s", queryTag, columns, q.QualifiedView(view), "WHERE queryid IS NOT NULL AND query IS NOT NULL")) if err != nil { return nil, nil, errors.Wrap(err, "couldn't get rows from pg_stat_statements") } defer rows.Close() //nolint:errcheck for ctx.Err() == nil { - var row pgStatStatements - if err = q.NextRow(&row, rows); err != nil { + if err = q.NextRow(row, rows); err != nil { if errors.Is(err, reform.ErrNoRows) { err = nil } @@ -252,7 +248,7 @@ func (m *PGStatStatementsQAN) getStatStatementsExtended( } totalN++ c := &pgStatStatementsExtended{ - pgStatStatements: row, + pgStatStatements: *row, Database: databases[row.DBID], Username: usernames[row.UserID], } @@ -372,7 +368,7 @@ func (m *PGStatStatementsQAN) makeBuckets(current, prev statementsMap) []*agentp cnt *float32 // MetricsBucket.XXXCnt field to write count }{ // convert milliseconds to seconds - {float32(currentPSS.TotalTime-prevPSS.TotalTime) / 1000, &mb.Common.MQueryTimeSum, &mb.Common.MQueryTimeCnt}, + {float32(currentPSS.TotalExecTime-prevPSS.TotalExecTime) / 1000, &mb.Common.MQueryTimeSum, &mb.Common.MQueryTimeCnt}, {float32(currentPSS.Rows - prevPSS.Rows), &mb.Postgresql.MRowsSum, &mb.Postgresql.MRowsCnt}, {float32(currentPSS.SharedBlksHit - prevPSS.SharedBlksHit), &mb.Postgresql.MSharedBlksHitSum, &mb.Postgresql.MSharedBlksHitCnt}, @@ -389,8 +385,10 @@ func (m *PGStatStatementsQAN) makeBuckets(current, prev statementsMap) []*agentp {float32(currentPSS.TempBlksWritten - prevPSS.TempBlksWritten), &mb.Postgresql.MTempBlksWrittenSum, &mb.Postgresql.MTempBlksWrittenCnt}, // convert milliseconds to seconds - {float32(currentPSS.BlkReadTime-prevPSS.BlkReadTime) / 1000, &mb.Postgresql.MBlkReadTimeSum, &mb.Postgresql.MBlkReadTimeCnt}, - {float32(currentPSS.BlkWriteTime-prevPSS.BlkWriteTime) / 1000, &mb.Postgresql.MBlkWriteTimeSum, &mb.Postgresql.MBlkWriteTimeCnt}, + {float32(currentPSS.SharedBlkReadTime-prevPSS.SharedBlkReadTime) / 1000, &mb.Postgresql.MSharedBlkReadTimeSum, &mb.Postgresql.MSharedBlkReadTimeCnt}, + {float32(currentPSS.SharedBlkWriteTime-prevPSS.SharedBlkWriteTime) / 1000, &mb.Postgresql.MSharedBlkWriteTimeSum, &mb.Postgresql.MSharedBlkWriteTimeCnt}, + {float32(currentPSS.LocalBlkReadTime-prevPSS.LocalBlkReadTime) / 1000, &mb.Postgresql.MLocalBlkReadTimeSum, &mb.Postgresql.MLocalBlkReadTimeCnt}, + {float32(currentPSS.LocalBlkWriteTime-prevPSS.LocalBlkWriteTime) / 1000, &mb.Postgresql.MLocalBlkWriteTimeSum, &mb.Postgresql.MLocalBlkWriteTimeCnt}, } { if p.value != 0 { *p.sum = p.value diff --git a/agent/agents/postgres/pgstatstatements/pgstatstatements_test.go b/agent/agents/postgres/pgstatstatements/pgstatstatements_test.go index d66cec2d9d..d102b7a488 100644 --- a/agent/agents/postgres/pgstatstatements/pgstatstatements_test.go +++ b/agent/agents/postgres/pgstatstatements/pgstatstatements_test.go @@ -24,7 +24,6 @@ import ( "testing" "time" - "github.com/pkg/errors" "github.com/sirupsen/logrus" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -80,27 +79,13 @@ func TestPGStatStatementsQAN(t *testing.T) { structs, err := db.SelectAllFrom(pgStatDatabaseView, "") require.NoError(t, err) - rows, err := rowsByVersion(db.Querier, "") - require.NoError(t, err) - - defer func() { - e := rows.Close() - if err == nil { - err = e - } - }() + tests.LogTable(t, structs) - for { - str := pgStatStatementsView.NewStruct() - if err = db.Querier.NextRow(str, rows); err != nil { - break - } + pgStatVersion, err := getPgStatVersion(db.Querier) + require.NoError(t, err) - structs = append(structs, str) - } - if errors.Is(err, reform.ErrNoRows) { - err = nil - } + _, view := newPgStatMonitorStructs(pgStatVersion) + structs, err = db.SelectAllFrom(view, "") require.NoError(t, err) tests.LogTable(t, structs) @@ -125,44 +110,68 @@ func TestPGStatStatementsQAN(t *testing.T) { "$321, $322, $323, $324, $325, $326, $327, $328, $329, $330, $331, $332, $333, $334, $335, $336, $337, $338, $339, $340, " + "$341, $342, $343, $3 ..." + // Need to detect vendor because result for mSharedBlksReadSum are different for different images for postgres. + mSharedBlksHitSum := float32(33) + if strings.Contains(os.Getenv("POSTGRES_IMAGE"), "perconalab") { + mSharedBlksHitSum = 32 + } + truncatedMSharedBlksHitSum := mSharedBlksHitSum + engineVersion := tests.PostgreSQLVersion(t, sqlDB) var digests map[string]string // digest_text/fingerprint to digest/query_id switch engineVersion { case "9.4": + truncatedMSharedBlksHitSum = float32(1007) digests = map[string]string{ selectAllCities: "3239586867", selectAllCitiesLong: "2745128652", } case "9.5", "9.6": + truncatedMSharedBlksHitSum = float32(1007) digests = map[string]string{ selectAllCities: "3994135135", selectAllCitiesLong: "2677760328", } case "10": + truncatedMSharedBlksHitSum = float32(1007) digests = map[string]string{ selectAllCities: "2229807896", selectAllCitiesLong: "3454929487", } case "11": + truncatedMSharedBlksHitSum = float32(1007) digests = map[string]string{ selectAllCities: "-4056421706168012289", selectAllCitiesLong: "2233640464962569536", } case "12": + truncatedMSharedBlksHitSum = float32(1007) digests = map[string]string{ selectAllCities: "5627444073676588515", selectAllCitiesLong: "-1605123213815583414", } case "13": + truncatedMSharedBlksHitSum = float32(1007) digests = map[string]string{ selectAllCities: "-32455482996301954", selectAllCitiesLong: "-4813789842463369261", } - case "14": + case "14", "15": digests = map[string]string{ selectAllCities: "5991662752016701281", selectAllCitiesLong: "-3564720362103294944", } + case "16": + digests = map[string]string{ + selectAllCities: "9094455616937907056", + selectAllCitiesLong: "-8264367755446145090", + } + case "17": + truncatedMSharedBlksHitSum = float32(8) + digests = map[string]string{ + selectAllCities: "1563925687573067138", + selectAllCitiesLong: "-3196437048361615995", + } default: t.Log("Unhandled version, assuming dummy digests.") digests = map[string]string{ @@ -171,12 +180,6 @@ func TestPGStatStatementsQAN(t *testing.T) { } } - // Need to detect vendor because result for mSharedBlksReadSum are different for different images for postgres. - mSharedBlksHitSum := float32(33) - if strings.Contains(os.Getenv("POSTGRES_IMAGE"), "perconalab") { - mSharedBlksHitSum = 32 - } - t.Run("AllCities", func(t *testing.T) { m := setup(t, db) @@ -209,19 +212,21 @@ func TestPGStatStatementsQAN(t *testing.T) { MQueryTimeSum: actual.Common.MQueryTimeSum, }, Postgresql: &agentpb.MetricsBucket_PostgreSQL{ - MBlkReadTimeCnt: actual.Postgresql.MBlkReadTimeCnt, - MBlkReadTimeSum: actual.Postgresql.MBlkReadTimeSum, - MSharedBlksReadCnt: actual.Postgresql.MSharedBlksReadCnt, - MSharedBlksReadSum: actual.Postgresql.MSharedBlksReadSum, - MSharedBlksHitCnt: actual.Postgresql.MSharedBlksHitCnt, - MSharedBlksHitSum: actual.Postgresql.MSharedBlksHitSum, - MRowsCnt: 1, - MRowsSum: 4079, + MSharedBlkReadTimeCnt: actual.Postgresql.MSharedBlkReadTimeCnt, + MSharedBlkReadTimeSum: actual.Postgresql.MSharedBlkReadTimeSum, + MLocalBlkReadTimeCnt: actual.Postgresql.MLocalBlkReadTimeCnt, + MLocalBlkReadTimeSum: actual.Postgresql.MLocalBlkReadTimeSum, + MSharedBlksReadCnt: actual.Postgresql.MSharedBlksReadCnt, + MSharedBlksReadSum: actual.Postgresql.MSharedBlksReadSum, + MSharedBlksHitCnt: actual.Postgresql.MSharedBlksHitCnt, + MSharedBlksHitSum: actual.Postgresql.MSharedBlksHitSum, + MRowsCnt: 1, + MRowsSum: 4079, }, } expected.Common.Queryid = digests[expected.Common.Fingerprint] tests.AssertBucketsEqual(t, expected, actual) - assert.LessOrEqual(t, actual.Postgresql.MBlkReadTimeSum, actual.Common.MQueryTimeSum) + assert.LessOrEqual(t, actual.Postgresql.MSharedBlkReadTimeSum, actual.Common.MQueryTimeSum) _, err = db.Exec(selectAllCities) require.NoError(t, err) @@ -250,17 +255,19 @@ func TestPGStatStatementsQAN(t *testing.T) { MQueryTimeSum: actual.Common.MQueryTimeSum, }, Postgresql: &agentpb.MetricsBucket_PostgreSQL{ - MSharedBlksHitCnt: 1, - MSharedBlksHitSum: mSharedBlksHitSum, - MRowsCnt: 1, - MRowsSum: 4079, - MBlkReadTimeCnt: actual.Postgresql.MBlkReadTimeCnt, - MBlkReadTimeSum: actual.Postgresql.MBlkReadTimeSum, + MSharedBlksHitCnt: 1, + MSharedBlksHitSum: mSharedBlksHitSum, + MRowsCnt: 1, + MRowsSum: 4079, + MSharedBlkReadTimeCnt: actual.Postgresql.MSharedBlkReadTimeCnt, + MSharedBlkReadTimeSum: actual.Postgresql.MSharedBlkReadTimeSum, + MLocalBlkReadTimeCnt: actual.Postgresql.MLocalBlkReadTimeCnt, + MLocalBlkReadTimeSum: actual.Postgresql.MLocalBlkReadTimeSum, }, } expected.Common.Queryid = digests[expected.Common.Fingerprint] tests.AssertBucketsEqual(t, expected, actual) - assert.LessOrEqual(t, actual.Postgresql.MBlkReadTimeSum, actual.Common.MQueryTimeSum) + assert.LessOrEqual(t, actual.Postgresql.MSharedBlkReadTimeSum, actual.Common.MQueryTimeSum) }) t.Run("AllCitiesTruncated", func(t *testing.T) { @@ -284,7 +291,7 @@ func TestPGStatStatementsQAN(t *testing.T) { actual := buckets[0] assert.InDelta(t, 0, actual.Common.MQueryTimeSum, 0.09) - assert.InDelta(t, 1010, actual.Postgresql.MSharedBlksHitSum+actual.Postgresql.MSharedBlksReadSum, 3) + assert.InDelta(t, truncatedMSharedBlksHitSum, actual.Postgresql.MSharedBlksHitSum+actual.Postgresql.MSharedBlksReadSum, 3) assert.InDelta(t, 1.5, actual.Postgresql.MSharedBlksHitCnt+actual.Postgresql.MSharedBlksReadCnt, 0.5) expected := &agentpb.MetricsBucket{ Common: &agentpb.MetricsBucket_Common{ @@ -303,19 +310,21 @@ func TestPGStatStatementsQAN(t *testing.T) { MQueryTimeSum: actual.Common.MQueryTimeSum, }, Postgresql: &agentpb.MetricsBucket_PostgreSQL{ - MBlkReadTimeCnt: actual.Postgresql.MBlkReadTimeCnt, - MBlkReadTimeSum: actual.Postgresql.MBlkReadTimeSum, - MSharedBlksReadCnt: actual.Postgresql.MSharedBlksReadCnt, - MSharedBlksReadSum: actual.Postgresql.MSharedBlksReadSum, - MSharedBlksHitCnt: actual.Postgresql.MSharedBlksHitCnt, - MSharedBlksHitSum: actual.Postgresql.MSharedBlksHitSum, - MRowsCnt: 1, - MRowsSum: 499, + MSharedBlkReadTimeCnt: actual.Postgresql.MSharedBlkReadTimeCnt, + MSharedBlkReadTimeSum: actual.Postgresql.MSharedBlkReadTimeSum, + MLocalBlkReadTimeCnt: actual.Postgresql.MLocalBlkReadTimeCnt, + MLocalBlkReadTimeSum: actual.Postgresql.MLocalBlkReadTimeSum, + MSharedBlksReadCnt: actual.Postgresql.MSharedBlksReadCnt, + MSharedBlksReadSum: actual.Postgresql.MSharedBlksReadSum, + MSharedBlksHitCnt: actual.Postgresql.MSharedBlksHitCnt, + MSharedBlksHitSum: actual.Postgresql.MSharedBlksHitSum, + MRowsCnt: 1, + MRowsSum: 499, }, } expected.Common.Queryid = digests[expected.Common.Fingerprint] tests.AssertBucketsEqual(t, expected, actual) - assert.LessOrEqual(t, actual.Postgresql.MBlkReadTimeSum, actual.Common.MQueryTimeSum) + assert.LessOrEqual(t, actual.Postgresql.MSharedBlkReadTimeSum, actual.Common.MQueryTimeSum) _, err = db.Exec(q, args...) require.NoError(t, err) @@ -328,8 +337,8 @@ func TestPGStatStatementsQAN(t *testing.T) { actual = buckets[0] assert.InDelta(t, 0, actual.Common.MQueryTimeSum, 0.09) - assert.InDelta(t, 0, actual.Postgresql.MBlkReadTimeCnt, 1) - assert.InDelta(t, 1007, actual.Postgresql.MSharedBlksHitSum, 2) + assert.InDelta(t, 0, actual.Postgresql.MSharedBlkReadTimeCnt, 1) + assert.InDelta(t, truncatedMSharedBlksHitSum, actual.Postgresql.MSharedBlksHitSum, 2) expected = &agentpb.MetricsBucket{ Common: &agentpb.MetricsBucket_Common{ Fingerprint: selectAllCitiesLong, @@ -347,17 +356,19 @@ func TestPGStatStatementsQAN(t *testing.T) { MQueryTimeSum: actual.Common.MQueryTimeSum, }, Postgresql: &agentpb.MetricsBucket_PostgreSQL{ - MBlkReadTimeCnt: actual.Postgresql.MBlkReadTimeCnt, - MBlkReadTimeSum: actual.Postgresql.MBlkReadTimeSum, - MSharedBlksHitCnt: 1, - MSharedBlksHitSum: actual.Postgresql.MSharedBlksHitSum, - MRowsCnt: 1, - MRowsSum: 499, + MSharedBlkReadTimeCnt: actual.Postgresql.MSharedBlkReadTimeCnt, + MSharedBlkReadTimeSum: actual.Postgresql.MSharedBlkReadTimeSum, + MLocalBlkReadTimeCnt: actual.Postgresql.MLocalBlkReadTimeCnt, + MLocalBlkReadTimeSum: actual.Postgresql.MLocalBlkReadTimeSum, + MSharedBlksHitCnt: 1, + MSharedBlksHitSum: actual.Postgresql.MSharedBlksHitSum, + MRowsCnt: 1, + MRowsSum: 499, }, } expected.Common.Queryid = digests[expected.Common.Fingerprint] tests.AssertBucketsEqual(t, expected, actual) - assert.LessOrEqual(t, actual.Postgresql.MBlkReadTimeSum, actual.Common.MQueryTimeSum) + assert.LessOrEqual(t, actual.Postgresql.MSharedBlkReadTimeSum, actual.Common.MQueryTimeSum) }) t.Run("CheckMBlkReadTime", func(t *testing.T) { @@ -408,7 +419,8 @@ func TestPGStatStatementsQAN(t *testing.T) { fingerprint = fmt.Sprintf(`INSERT /* CheckMBlkReadTime controller='test' */ INTO %s (customer_id, first_name, last_name, active) VALUES ($1, $2, $3, $4)`, tableName) } actual := buckets[0] - assert.NotZero(t, actual.Postgresql.MBlkReadTimeSum) + assert.NotZero(t, actual.Postgresql.MSharedBlkReadTimeSum+actual.Postgresql.MSharedBlkWriteTimeSum) + assert.Equal(t, float32(n), actual.Postgresql.MSharedBlkReadTimeCnt+actual.Postgresql.MSharedBlkWriteTimeCnt) expected := &agentpb.MetricsBucket{ Common: &agentpb.MetricsBucket_Common{ Queryid: actual.Common.Queryid, @@ -426,21 +438,25 @@ func TestPGStatStatementsQAN(t *testing.T) { MQueryTimeSum: actual.Common.MQueryTimeSum, }, Postgresql: &agentpb.MetricsBucket_PostgreSQL{ - MBlkReadTimeCnt: float32(n), - MBlkReadTimeSum: actual.Postgresql.MBlkReadTimeSum, - MSharedBlksReadCnt: actual.Postgresql.MSharedBlksReadCnt, - MSharedBlksReadSum: actual.Postgresql.MSharedBlksReadSum, - MSharedBlksWrittenCnt: actual.Postgresql.MSharedBlksWrittenCnt, - MSharedBlksWrittenSum: actual.Postgresql.MSharedBlksWrittenSum, - MSharedBlksDirtiedCnt: actual.Postgresql.MSharedBlksDirtiedCnt, - MSharedBlksDirtiedSum: actual.Postgresql.MSharedBlksDirtiedSum, - MSharedBlksHitCnt: actual.Postgresql.MSharedBlksHitCnt, - MSharedBlksHitSum: actual.Postgresql.MSharedBlksHitSum, - MRowsCnt: float32(n), - MRowsSum: float32(n), + MSharedBlkReadTimeCnt: actual.Postgresql.MSharedBlkReadTimeCnt, + MSharedBlkReadTimeSum: actual.Postgresql.MSharedBlkReadTimeSum, + MSharedBlkWriteTimeCnt: actual.Postgresql.MSharedBlkWriteTimeCnt, + MSharedBlkWriteTimeSum: actual.Postgresql.MSharedBlkWriteTimeSum, + MLocalBlkReadTimeCnt: actual.Postgresql.MLocalBlkReadTimeCnt, + MLocalBlkReadTimeSum: actual.Postgresql.MLocalBlkReadTimeSum, + MSharedBlksReadCnt: actual.Postgresql.MSharedBlksReadCnt, + MSharedBlksReadSum: actual.Postgresql.MSharedBlksReadSum, + MSharedBlksWrittenCnt: float32(n), + MSharedBlksWrittenSum: actual.Postgresql.MSharedBlksWrittenSum, + MSharedBlksDirtiedCnt: actual.Postgresql.MSharedBlksDirtiedCnt, + MSharedBlksDirtiedSum: actual.Postgresql.MSharedBlksDirtiedSum, + MSharedBlksHitCnt: actual.Postgresql.MSharedBlksHitCnt, + MSharedBlksHitSum: actual.Postgresql.MSharedBlksHitSum, + MRowsCnt: float32(n), + MRowsSum: float32(n), }, } tests.AssertBucketsEqual(t, expected, actual) - assert.LessOrEqual(t, actual.Postgresql.MBlkReadTimeSum, actual.Common.MQueryTimeSum) + assert.LessOrEqual(t, actual.Postgresql.MSharedBlkReadTimeSum, actual.Common.MQueryTimeSum) }) } diff --git a/agent/runner/actions/postgresql_query_show_action_test.go b/agent/runner/actions/postgresql_query_show_action_test.go index 8b0fd5d5f8..b62fdf91f0 100644 --- a/agent/runner/actions/postgresql_query_show_action_test.go +++ b/agent/runner/actions/postgresql_query_show_action_test.go @@ -49,13 +49,13 @@ func TestPostgreSQLQueryShow(t *testing.T) { b, err := a.Run(ctx) require.NoError(t, err) assert.LessOrEqual(t, 22000, len(b)) - assert.LessOrEqual(t, len(b), 33668) + assert.LessOrEqual(t, len(b), 37989) data, err := agentpb.UnmarshalActionQueryResult(b) require.NoError(t, err) t.Log(spew.Sdump(data)) assert.LessOrEqual(t, 200, len(data)) - assert.LessOrEqual(t, len(data), 358) + assert.LessOrEqual(t, len(data), 399) var found int for _, m := range data { diff --git a/api/agentpb/collector.pb.go b/api/agentpb/collector.pb.go index e401b86cd0..ad9f9a31b6 100644 --- a/api/agentpb/collector.pb.go +++ b/api/agentpb/collector.pb.go @@ -1738,14 +1738,20 @@ type MetricsBucket_PostgreSQL struct { MTempBlksReadSum float32 `protobuf:"fixed32,20,opt,name=m_temp_blks_read_sum,json=mTempBlksReadSum,proto3" json:"m_temp_blks_read_sum,omitempty"` MTempBlksWrittenCnt float32 `protobuf:"fixed32,21,opt,name=m_temp_blks_written_cnt,json=mTempBlksWrittenCnt,proto3" json:"m_temp_blks_written_cnt,omitempty"` // Total number of temp blocks written by the statement. - MTempBlksWrittenSum float32 `protobuf:"fixed32,22,opt,name=m_temp_blks_written_sum,json=mTempBlksWrittenSum,proto3" json:"m_temp_blks_written_sum,omitempty"` - MBlkReadTimeCnt float32 `protobuf:"fixed32,23,opt,name=m_blk_read_time_cnt,json=mBlkReadTimeCnt,proto3" json:"m_blk_read_time_cnt,omitempty"` - // Total time the statement spent reading blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). - MBlkReadTimeSum float32 `protobuf:"fixed32,24,opt,name=m_blk_read_time_sum,json=mBlkReadTimeSum,proto3" json:"m_blk_read_time_sum,omitempty"` - MBlkWriteTimeCnt float32 `protobuf:"fixed32,25,opt,name=m_blk_write_time_cnt,json=mBlkWriteTimeCnt,proto3" json:"m_blk_write_time_cnt,omitempty"` - // Total time the statement spent writing blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). - MBlkWriteTimeSum float32 `protobuf:"fixed32,26,opt,name=m_blk_write_time_sum,json=mBlkWriteTimeSum,proto3" json:"m_blk_write_time_sum,omitempty"` - MCpuUserTimeCnt float32 `protobuf:"fixed32,27,opt,name=m_cpu_user_time_cnt,json=mCpuUserTimeCnt,proto3" json:"m_cpu_user_time_cnt,omitempty"` + MTempBlksWrittenSum float32 `protobuf:"fixed32,22,opt,name=m_temp_blks_written_sum,json=mTempBlksWrittenSum,proto3" json:"m_temp_blks_written_sum,omitempty"` + MSharedBlkReadTimeCnt float32 `protobuf:"fixed32,23,opt,name=m_shared_blk_read_time_cnt,json=mSharedBlkReadTimeCnt,proto3" json:"m_shared_blk_read_time_cnt,omitempty"` + // Total time the statement spent reading shared blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). + MSharedBlkReadTimeSum float32 `protobuf:"fixed32,24,opt,name=m_shared_blk_read_time_sum,json=mSharedBlkReadTimeSum,proto3" json:"m_shared_blk_read_time_sum,omitempty"` + MSharedBlkWriteTimeCnt float32 `protobuf:"fixed32,25,opt,name=m_shared_blk_write_time_cnt,json=mSharedBlkWriteTimeCnt,proto3" json:"m_shared_blk_write_time_cnt,omitempty"` + // Total time the statement spent writing shared blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). + MSharedBlkWriteTimeSum float32 `protobuf:"fixed32,26,opt,name=m_shared_blk_write_time_sum,json=mSharedBlkWriteTimeSum,proto3" json:"m_shared_blk_write_time_sum,omitempty"` + MLocalBlkReadTimeCnt float32 `protobuf:"fixed32,50,opt,name=m_local_blk_read_time_cnt,json=mLocalBlkReadTimeCnt,proto3" json:"m_local_blk_read_time_cnt,omitempty"` + // Total time the statement spent reading local blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). + MLocalBlkReadTimeSum float32 `protobuf:"fixed32,51,opt,name=m_local_blk_read_time_sum,json=mLocalBlkReadTimeSum,proto3" json:"m_local_blk_read_time_sum,omitempty"` + MLocalBlkWriteTimeCnt float32 `protobuf:"fixed32,52,opt,name=m_local_blk_write_time_cnt,json=mLocalBlkWriteTimeCnt,proto3" json:"m_local_blk_write_time_cnt,omitempty"` + // Total time the statement spent writing local blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). + MLocalBlkWriteTimeSum float32 `protobuf:"fixed32,53,opt,name=m_local_blk_write_time_sum,json=mLocalBlkWriteTimeSum,proto3" json:"m_local_blk_write_time_sum,omitempty"` + MCpuUserTimeCnt float32 `protobuf:"fixed32,27,opt,name=m_cpu_user_time_cnt,json=mCpuUserTimeCnt,proto3" json:"m_cpu_user_time_cnt,omitempty"` // Total time user spent in query. MCpuUserTimeSum float32 `protobuf:"fixed32,28,opt,name=m_cpu_user_time_sum,json=mCpuUserTimeSum,proto3" json:"m_cpu_user_time_sum,omitempty"` MCpuSysTimeCnt float32 `protobuf:"fixed32,29,opt,name=m_cpu_sys_time_cnt,json=mCpuSysTimeCnt,proto3" json:"m_cpu_sys_time_cnt,omitempty"` @@ -1970,30 +1976,58 @@ func (x *MetricsBucket_PostgreSQL) GetMTempBlksWrittenSum() float32 { return 0 } -func (x *MetricsBucket_PostgreSQL) GetMBlkReadTimeCnt() float32 { +func (x *MetricsBucket_PostgreSQL) GetMSharedBlkReadTimeCnt() float32 { if x != nil { - return x.MBlkReadTimeCnt + return x.MSharedBlkReadTimeCnt } return 0 } -func (x *MetricsBucket_PostgreSQL) GetMBlkReadTimeSum() float32 { +func (x *MetricsBucket_PostgreSQL) GetMSharedBlkReadTimeSum() float32 { if x != nil { - return x.MBlkReadTimeSum + return x.MSharedBlkReadTimeSum } return 0 } -func (x *MetricsBucket_PostgreSQL) GetMBlkWriteTimeCnt() float32 { +func (x *MetricsBucket_PostgreSQL) GetMSharedBlkWriteTimeCnt() float32 { if x != nil { - return x.MBlkWriteTimeCnt + return x.MSharedBlkWriteTimeCnt } return 0 } -func (x *MetricsBucket_PostgreSQL) GetMBlkWriteTimeSum() float32 { +func (x *MetricsBucket_PostgreSQL) GetMSharedBlkWriteTimeSum() float32 { if x != nil { - return x.MBlkWriteTimeSum + return x.MSharedBlkWriteTimeSum + } + return 0 +} + +func (x *MetricsBucket_PostgreSQL) GetMLocalBlkReadTimeCnt() float32 { + if x != nil { + return x.MLocalBlkReadTimeCnt + } + return 0 +} + +func (x *MetricsBucket_PostgreSQL) GetMLocalBlkReadTimeSum() float32 { + if x != nil { + return x.MLocalBlkReadTimeSum + } + return 0 +} + +func (x *MetricsBucket_PostgreSQL) GetMLocalBlkWriteTimeCnt() float32 { + if x != nil { + return x.MLocalBlkWriteTimeCnt + } + return 0 +} + +func (x *MetricsBucket_PostgreSQL) GetMLocalBlkWriteTimeSum() float32 { + if x != nil { + return x.MLocalBlkWriteTimeSum } return 0 } @@ -2165,7 +2199,7 @@ var file_agentpb_collector_proto_rawDesc = []byte{ 0x0a, 0x17, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x1a, 0x18, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x70, 0x62, 0x2f, 0x61, 0x67, - 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x9e, 0x4d, 0x0a, 0x0d, 0x4d, + 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xba, 0x4f, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x33, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x75, 0x63, 0x6b, @@ -2644,7 +2678,7 @@ var file_agentpb_collector_proto_rawDesc = []byte{ 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x4d, 0x61, 0x78, 0x12, 0x2b, 0x0a, 0x12, 0x6d, 0x5f, 0x64, 0x6f, 0x63, 0x73, 0x5f, 0x73, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x70, 0x39, 0x39, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x6d, 0x44, 0x6f, 0x63, 0x73, 0x53, 0x63, 0x61, 0x6e, - 0x6e, 0x65, 0x64, 0x50, 0x39, 0x39, 0x1a, 0xb2, 0x11, 0x0a, 0x0a, 0x50, 0x6f, 0x73, 0x74, 0x67, + 0x6e, 0x65, 0x64, 0x50, 0x39, 0x39, 0x1a, 0xce, 0x13, 0x0a, 0x0a, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x12, 0x1c, 0x0a, 0x0a, 0x6d, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x5f, 0x63, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x43, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x0a, 0x6d, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x5f, 0x73, 0x75, @@ -2715,99 +2749,116 @@ var file_agentpb_collector_proto_rawDesc = []byte{ 0x34, 0x0a, 0x17, 0x6d, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x5f, 0x73, 0x75, 0x6d, 0x18, 0x16, 0x20, 0x01, 0x28, 0x02, 0x52, 0x13, 0x6d, 0x54, 0x65, 0x6d, 0x70, 0x42, 0x6c, 0x6b, 0x73, 0x57, 0x72, 0x69, 0x74, 0x74, - 0x65, 0x6e, 0x53, 0x75, 0x6d, 0x12, 0x2c, 0x0a, 0x13, 0x6d, 0x5f, 0x62, 0x6c, 0x6b, 0x5f, 0x72, - 0x65, 0x61, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x6e, 0x74, 0x18, 0x17, 0x20, 0x01, - 0x28, 0x02, 0x52, 0x0f, 0x6d, 0x42, 0x6c, 0x6b, 0x52, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, - 0x43, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x13, 0x6d, 0x5f, 0x62, 0x6c, 0x6b, 0x5f, 0x72, 0x65, 0x61, - 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x6d, 0x18, 0x18, 0x20, 0x01, 0x28, 0x02, - 0x52, 0x0f, 0x6d, 0x42, 0x6c, 0x6b, 0x52, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x75, - 0x6d, 0x12, 0x2e, 0x0a, 0x14, 0x6d, 0x5f, 0x62, 0x6c, 0x6b, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x6e, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x02, 0x52, - 0x10, 0x6d, 0x42, 0x6c, 0x6b, 0x57, 0x72, 0x69, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6e, - 0x74, 0x12, 0x2e, 0x0a, 0x14, 0x6d, 0x5f, 0x62, 0x6c, 0x6b, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x6d, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x02, 0x52, - 0x10, 0x6d, 0x42, 0x6c, 0x6b, 0x57, 0x72, 0x69, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x75, - 0x6d, 0x12, 0x2c, 0x0a, 0x13, 0x6d, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x6e, 0x74, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, - 0x6d, 0x43, 0x70, 0x75, 0x55, 0x73, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6e, 0x74, 0x12, - 0x2c, 0x0a, 0x13, 0x6d, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x6d, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x6d, 0x43, - 0x70, 0x75, 0x55, 0x73, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x75, 0x6d, 0x12, 0x2a, 0x0a, - 0x12, 0x6d, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x73, 0x79, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, - 0x63, 0x6e, 0x74, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x6d, 0x43, 0x70, 0x75, 0x53, - 0x79, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x12, 0x6d, 0x5f, 0x63, - 0x70, 0x75, 0x5f, 0x73, 0x79, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x6d, 0x18, - 0x1e, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x6d, 0x43, 0x70, 0x75, 0x53, 0x79, 0x73, 0x54, 0x69, - 0x6d, 0x65, 0x53, 0x75, 0x6d, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x6d, 0x64, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6d, 0x64, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x29, 0x0a, 0x11, 0x6d, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x73, 0x5f, 0x63, 0x61, 0x6c, 0x6c, - 0x73, 0x5f, 0x73, 0x75, 0x6d, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x6d, 0x50, 0x6c, - 0x61, 0x6e, 0x73, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x53, 0x75, 0x6d, 0x12, 0x29, 0x0a, 0x11, 0x6d, - 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x73, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x5f, 0x63, 0x6e, 0x74, - 0x18, 0x20, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x6d, 0x50, 0x6c, 0x61, 0x6e, 0x73, 0x43, 0x61, - 0x6c, 0x6c, 0x73, 0x43, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x11, 0x6d, 0x5f, 0x77, 0x61, 0x6c, 0x5f, - 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x5f, 0x73, 0x75, 0x6d, 0x18, 0x21, 0x20, 0x01, 0x28, - 0x02, 0x52, 0x0e, 0x6d, 0x57, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x53, 0x75, - 0x6d, 0x12, 0x29, 0x0a, 0x11, 0x6d, 0x5f, 0x77, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x73, 0x5f, 0x63, 0x6e, 0x74, 0x18, 0x22, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x6d, 0x57, - 0x61, 0x6c, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x43, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0d, - 0x6d, 0x5f, 0x77, 0x61, 0x6c, 0x5f, 0x66, 0x70, 0x69, 0x5f, 0x73, 0x75, 0x6d, 0x18, 0x23, 0x20, - 0x01, 0x28, 0x02, 0x52, 0x0a, 0x6d, 0x57, 0x61, 0x6c, 0x46, 0x70, 0x69, 0x53, 0x75, 0x6d, 0x12, - 0x21, 0x0a, 0x0d, 0x6d, 0x5f, 0x77, 0x61, 0x6c, 0x5f, 0x66, 0x70, 0x69, 0x5f, 0x63, 0x6e, 0x74, - 0x18, 0x24, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x6d, 0x57, 0x61, 0x6c, 0x46, 0x70, 0x69, 0x43, - 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0f, 0x6d, 0x5f, 0x77, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x5f, 0x73, 0x75, 0x6d, 0x18, 0x25, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x6d, 0x57, 0x61, - 0x6c, 0x42, 0x79, 0x74, 0x65, 0x73, 0x53, 0x75, 0x6d, 0x12, 0x25, 0x0a, 0x0f, 0x6d, 0x5f, 0x77, - 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6e, 0x74, 0x18, 0x26, 0x20, 0x01, - 0x28, 0x02, 0x52, 0x0c, 0x6d, 0x57, 0x61, 0x6c, 0x42, 0x79, 0x74, 0x65, 0x73, 0x43, 0x6e, 0x74, - 0x12, 0x25, 0x0a, 0x0f, 0x6d, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, - 0x73, 0x75, 0x6d, 0x18, 0x27, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x6d, 0x50, 0x6c, 0x61, 0x6e, - 0x54, 0x69, 0x6d, 0x65, 0x53, 0x75, 0x6d, 0x12, 0x25, 0x0a, 0x0f, 0x6d, 0x5f, 0x70, 0x6c, 0x61, - 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x6e, 0x74, 0x18, 0x28, 0x20, 0x01, 0x28, 0x02, - 0x52, 0x0c, 0x6d, 0x50, 0x6c, 0x61, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6e, 0x74, 0x12, 0x25, - 0x0a, 0x0f, 0x6d, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d, 0x69, - 0x6e, 0x18, 0x29, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x6d, 0x50, 0x6c, 0x61, 0x6e, 0x54, 0x69, - 0x6d, 0x65, 0x4d, 0x69, 0x6e, 0x12, 0x25, 0x0a, 0x0f, 0x6d, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, - 0x6d, 0x50, 0x6c, 0x61, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x61, 0x78, 0x12, 0x1f, 0x0a, 0x0b, - 0x74, 0x6f, 0x70, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x69, 0x64, 0x18, 0x2c, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x74, 0x6f, 0x70, 0x51, 0x75, 0x65, 0x72, 0x79, 0x69, 0x64, 0x12, 0x1b, 0x0a, - 0x09, 0x74, 0x6f, 0x70, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x74, 0x6f, 0x70, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x29, 0x0a, 0x10, 0x61, 0x70, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x2d, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x69, 0x64, 0x18, - 0x2e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x69, 0x64, 0x12, 0x1d, 0x0a, - 0x0a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x18, 0x30, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x3d, 0x0a, 0x0f, - 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, - 0x31, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x48, 0x69, - 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x0e, 0x68, 0x69, 0x73, - 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x43, 0x0a, 0x0d, 0x48, - 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x14, 0x0a, 0x05, - 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x61, 0x6e, - 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, - 0x2a, 0x55, 0x0a, 0x0d, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x12, 0x1e, 0x0a, 0x16, 0x45, 0x58, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x5f, 0x46, 0x4f, 0x52, - 0x4d, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x1a, 0x02, 0x08, - 0x01, 0x12, 0x0f, 0x0a, 0x07, 0x45, 0x58, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x10, 0x01, 0x1a, 0x02, - 0x08, 0x01, 0x12, 0x13, 0x0a, 0x0b, 0x46, 0x49, 0x4e, 0x47, 0x45, 0x52, 0x50, 0x52, 0x49, 0x4e, - 0x54, 0x10, 0x02, 0x1a, 0x02, 0x08, 0x01, 0x2a, 0x5d, 0x0a, 0x0b, 0x45, 0x78, 0x61, 0x6d, 0x70, - 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x45, 0x58, 0x41, 0x4d, 0x50, 0x4c, - 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, - 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x41, 0x4e, 0x44, 0x4f, 0x4d, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, - 0x53, 0x4c, 0x4f, 0x57, 0x45, 0x53, 0x54, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x41, 0x53, - 0x54, 0x45, 0x53, 0x54, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x45, - 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x42, 0x73, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x67, - 0x65, 0x6e, 0x74, 0x42, 0x0e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x22, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x70, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x61, 0x2f, 0x70, 0x6d, 0x6d, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0xa2, 0x02, 0x03, 0x41, 0x58, 0x58, 0xaa, - 0x02, 0x05, 0x41, 0x67, 0x65, 0x6e, 0x74, 0xca, 0x02, 0x05, 0x41, 0x67, 0x65, 0x6e, 0x74, 0xe2, - 0x02, 0x11, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0xea, 0x02, 0x05, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x65, 0x6e, 0x53, 0x75, 0x6d, 0x12, 0x39, 0x0a, 0x1a, 0x6d, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, + 0x64, 0x5f, 0x62, 0x6c, 0x6b, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, + 0x63, 0x6e, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x02, 0x52, 0x15, 0x6d, 0x53, 0x68, 0x61, 0x72, + 0x65, 0x64, 0x42, 0x6c, 0x6b, 0x52, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6e, 0x74, + 0x12, 0x39, 0x0a, 0x1a, 0x6d, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6b, + 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x6d, 0x18, 0x18, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x15, 0x6d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x42, 0x6c, 0x6b, + 0x52, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x75, 0x6d, 0x12, 0x3b, 0x0a, 0x1b, 0x6d, + 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6b, 0x5f, 0x77, 0x72, 0x69, 0x74, + 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x6e, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x16, 0x6d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x42, 0x6c, 0x6b, 0x57, 0x72, 0x69, 0x74, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6e, 0x74, 0x12, 0x3b, 0x0a, 0x1b, 0x6d, 0x5f, 0x73, 0x68, + 0x61, 0x72, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6b, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x6d, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x16, 0x6d, + 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x42, 0x6c, 0x6b, 0x57, 0x72, 0x69, 0x74, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x53, 0x75, 0x6d, 0x12, 0x37, 0x0a, 0x19, 0x6d, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x5f, 0x62, 0x6c, 0x6b, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, + 0x6e, 0x74, 0x18, 0x32, 0x20, 0x01, 0x28, 0x02, 0x52, 0x14, 0x6d, 0x4c, 0x6f, 0x63, 0x61, 0x6c, + 0x42, 0x6c, 0x6b, 0x52, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6e, 0x74, 0x12, 0x37, + 0x0a, 0x19, 0x6d, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x6c, 0x6b, 0x5f, 0x72, 0x65, + 0x61, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x6d, 0x18, 0x33, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x14, 0x6d, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x42, 0x6c, 0x6b, 0x52, 0x65, 0x61, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x53, 0x75, 0x6d, 0x12, 0x39, 0x0a, 0x1a, 0x6d, 0x5f, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x5f, 0x62, 0x6c, 0x6b, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x5f, 0x63, 0x6e, 0x74, 0x18, 0x34, 0x20, 0x01, 0x28, 0x02, 0x52, 0x15, 0x6d, 0x4c, 0x6f, + 0x63, 0x61, 0x6c, 0x42, 0x6c, 0x6b, 0x57, 0x72, 0x69, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x43, + 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x1a, 0x6d, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x6c, + 0x6b, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x6d, + 0x18, 0x35, 0x20, 0x01, 0x28, 0x02, 0x52, 0x15, 0x6d, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x42, 0x6c, + 0x6b, 0x57, 0x72, 0x69, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x75, 0x6d, 0x12, 0x2c, 0x0a, + 0x13, 0x6d, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x5f, 0x63, 0x6e, 0x74, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x6d, 0x43, 0x70, 0x75, + 0x55, 0x73, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x13, 0x6d, + 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, + 0x75, 0x6d, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x6d, 0x43, 0x70, 0x75, 0x55, 0x73, + 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x75, 0x6d, 0x12, 0x2a, 0x0a, 0x12, 0x6d, 0x5f, 0x63, + 0x70, 0x75, 0x5f, 0x73, 0x79, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x6e, 0x74, 0x18, + 0x1d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x6d, 0x43, 0x70, 0x75, 0x53, 0x79, 0x73, 0x54, 0x69, + 0x6d, 0x65, 0x43, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x12, 0x6d, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x73, + 0x79, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x6d, 0x18, 0x1e, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x0e, 0x6d, 0x43, 0x70, 0x75, 0x53, 0x79, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x75, + 0x6d, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x6d, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x2b, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6d, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x11, + 0x6d, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x73, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x5f, 0x73, 0x75, + 0x6d, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x6d, 0x50, 0x6c, 0x61, 0x6e, 0x73, 0x43, + 0x61, 0x6c, 0x6c, 0x73, 0x53, 0x75, 0x6d, 0x12, 0x29, 0x0a, 0x11, 0x6d, 0x5f, 0x70, 0x6c, 0x61, + 0x6e, 0x73, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x5f, 0x63, 0x6e, 0x74, 0x18, 0x20, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x0e, 0x6d, 0x50, 0x6c, 0x61, 0x6e, 0x73, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x43, + 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x11, 0x6d, 0x5f, 0x77, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x73, 0x5f, 0x73, 0x75, 0x6d, 0x18, 0x21, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x6d, + 0x57, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x53, 0x75, 0x6d, 0x12, 0x29, 0x0a, + 0x11, 0x6d, 0x5f, 0x77, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x5f, 0x63, + 0x6e, 0x74, 0x18, 0x22, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x6d, 0x57, 0x61, 0x6c, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x73, 0x43, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0d, 0x6d, 0x5f, 0x77, 0x61, + 0x6c, 0x5f, 0x66, 0x70, 0x69, 0x5f, 0x73, 0x75, 0x6d, 0x18, 0x23, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x0a, 0x6d, 0x57, 0x61, 0x6c, 0x46, 0x70, 0x69, 0x53, 0x75, 0x6d, 0x12, 0x21, 0x0a, 0x0d, 0x6d, + 0x5f, 0x77, 0x61, 0x6c, 0x5f, 0x66, 0x70, 0x69, 0x5f, 0x63, 0x6e, 0x74, 0x18, 0x24, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x0a, 0x6d, 0x57, 0x61, 0x6c, 0x46, 0x70, 0x69, 0x43, 0x6e, 0x74, 0x12, 0x25, + 0x0a, 0x0f, 0x6d, 0x5f, 0x77, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x75, + 0x6d, 0x18, 0x25, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x6d, 0x57, 0x61, 0x6c, 0x42, 0x79, 0x74, + 0x65, 0x73, 0x53, 0x75, 0x6d, 0x12, 0x25, 0x0a, 0x0f, 0x6d, 0x5f, 0x77, 0x61, 0x6c, 0x5f, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6e, 0x74, 0x18, 0x26, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, + 0x6d, 0x57, 0x61, 0x6c, 0x42, 0x79, 0x74, 0x65, 0x73, 0x43, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0f, + 0x6d, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x6d, 0x18, + 0x27, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x6d, 0x50, 0x6c, 0x61, 0x6e, 0x54, 0x69, 0x6d, 0x65, + 0x53, 0x75, 0x6d, 0x12, 0x25, 0x0a, 0x0f, 0x6d, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x5f, 0x63, 0x6e, 0x74, 0x18, 0x28, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x6d, 0x50, + 0x6c, 0x61, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0f, 0x6d, 0x5f, + 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x29, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x0c, 0x6d, 0x50, 0x6c, 0x61, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x69, + 0x6e, 0x12, 0x25, 0x0a, 0x0f, 0x6d, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x6d, 0x50, 0x6c, 0x61, + 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x61, 0x78, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x70, 0x5f, + 0x71, 0x75, 0x65, 0x72, 0x79, 0x69, 0x64, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, + 0x6f, 0x70, 0x51, 0x75, 0x65, 0x72, 0x79, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x70, + 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x6f, + 0x70, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x29, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x69, 0x64, 0x18, 0x2e, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x71, 0x75, 0x65, + 0x72, 0x79, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x18, 0x30, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x71, + 0x75, 0x65, 0x72, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x3d, 0x0a, 0x0f, 0x68, 0x69, 0x73, 0x74, + 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x31, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, + 0x72, 0x61, 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x0e, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, + 0x61, 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x43, 0x0a, 0x0d, 0x48, 0x69, 0x73, 0x74, 0x6f, + 0x67, 0x72, 0x61, 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x09, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x2a, 0x55, 0x0a, 0x0d, + 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x1e, 0x0a, + 0x16, 0x45, 0x58, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, + 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x0f, 0x0a, + 0x07, 0x45, 0x58, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x10, 0x01, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x13, + 0x0a, 0x0b, 0x46, 0x49, 0x4e, 0x47, 0x45, 0x52, 0x50, 0x52, 0x49, 0x4e, 0x54, 0x10, 0x02, 0x1a, + 0x02, 0x08, 0x01, 0x2a, 0x5d, 0x0a, 0x0b, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x45, 0x58, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, + 0x52, 0x41, 0x4e, 0x44, 0x4f, 0x4d, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x4c, 0x4f, 0x57, + 0x45, 0x53, 0x54, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x41, 0x53, 0x54, 0x45, 0x53, 0x54, + 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, + 0x10, 0x04, 0x42, 0x73, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x42, + 0x0e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, + 0x01, 0x5a, 0x22, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x65, + 0x72, 0x63, 0x6f, 0x6e, 0x61, 0x2f, 0x70, 0x6d, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x67, + 0x65, 0x6e, 0x74, 0x70, 0x62, 0xa2, 0x02, 0x03, 0x41, 0x58, 0x58, 0xaa, 0x02, 0x05, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0xca, 0x02, 0x05, 0x41, 0x67, 0x65, 0x6e, 0x74, 0xe2, 0x02, 0x11, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, + 0x02, 0x05, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/agentpb/collector.pb.validate.go b/api/agentpb/collector.pb.validate.go index c7d33c5c44..b494b361d6 100644 --- a/api/agentpb/collector.pb.validate.go +++ b/api/agentpb/collector.pb.validate.go @@ -1043,13 +1043,21 @@ func (m *MetricsBucket_PostgreSQL) validate(all bool) error { // no validation rules for MTempBlksWrittenSum - // no validation rules for MBlkReadTimeCnt + // no validation rules for MSharedBlkReadTimeCnt - // no validation rules for MBlkReadTimeSum + // no validation rules for MSharedBlkReadTimeSum - // no validation rules for MBlkWriteTimeCnt + // no validation rules for MSharedBlkWriteTimeCnt - // no validation rules for MBlkWriteTimeSum + // no validation rules for MSharedBlkWriteTimeSum + + // no validation rules for MLocalBlkReadTimeCnt + + // no validation rules for MLocalBlkReadTimeSum + + // no validation rules for MLocalBlkWriteTimeCnt + + // no validation rules for MLocalBlkWriteTimeSum // no validation rules for MCpuUserTimeCnt diff --git a/api/agentpb/collector.proto b/api/agentpb/collector.proto index 49803abcbc..6de1717f26 100644 --- a/api/agentpb/collector.proto +++ b/api/agentpb/collector.proto @@ -307,12 +307,18 @@ message MetricsBucket { float m_temp_blks_written_cnt = 21; // Total number of temp blocks written by the statement. float m_temp_blks_written_sum = 22; - float m_blk_read_time_cnt = 23; - // Total time the statement spent reading blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). - float m_blk_read_time_sum = 24; - float m_blk_write_time_cnt = 25; - // Total time the statement spent writing blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). - float m_blk_write_time_sum = 26; + float m_shared_blk_read_time_cnt = 23; + // Total time the statement spent reading shared blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). + float m_shared_blk_read_time_sum = 24; + float m_shared_blk_write_time_cnt = 25; + // Total time the statement spent writing shared blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). + float m_shared_blk_write_time_sum = 26; + float m_local_blk_read_time_cnt = 50; + // Total time the statement spent reading local blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). + float m_local_blk_read_time_sum = 51; + float m_local_blk_write_time_cnt = 52; + // Total time the statement spent writing local blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). + float m_local_blk_write_time_sum = 53; float m_cpu_user_time_cnt = 27; // Total time user spent in query. float m_cpu_user_time_sum = 28; diff --git a/api/qanpb/collector.pb.go b/api/qanpb/collector.pb.go index e89b0abc4f..0d62c9fc0d 100644 --- a/api/qanpb/collector.pb.go +++ b/api/qanpb/collector.pb.go @@ -364,13 +364,31 @@ type MetricsBucket struct { MTempBlksWrittenCnt float32 `protobuf:"fixed32,218,opt,name=m_temp_blks_written_cnt,json=mTempBlksWrittenCnt,proto3" json:"m_temp_blks_written_cnt,omitempty"` // Total number of temp blocks written by the statement. MTempBlksWrittenSum float32 `protobuf:"fixed32,219,opt,name=m_temp_blks_written_sum,json=mTempBlksWrittenSum,proto3" json:"m_temp_blks_written_sum,omitempty"` - MBlkReadTimeCnt float32 `protobuf:"fixed32,220,opt,name=m_blk_read_time_cnt,json=mBlkReadTimeCnt,proto3" json:"m_blk_read_time_cnt,omitempty"` + // Deprecated: Marked as deprecated in qanpb/collector.proto. + MBlkReadTimeCnt float32 `protobuf:"fixed32,220,opt,name=m_blk_read_time_cnt,json=mBlkReadTimeCnt,proto3" json:"m_blk_read_time_cnt,omitempty"` // Total time the statement spent reading blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). - MBlkReadTimeSum float32 `protobuf:"fixed32,221,opt,name=m_blk_read_time_sum,json=mBlkReadTimeSum,proto3" json:"m_blk_read_time_sum,omitempty"` + // + // Deprecated: Marked as deprecated in qanpb/collector.proto. + MBlkReadTimeSum float32 `protobuf:"fixed32,221,opt,name=m_blk_read_time_sum,json=mBlkReadTimeSum,proto3" json:"m_blk_read_time_sum,omitempty"` + // Deprecated: Marked as deprecated in qanpb/collector.proto. MBlkWriteTimeCnt float32 `protobuf:"fixed32,222,opt,name=m_blk_write_time_cnt,json=mBlkWriteTimeCnt,proto3" json:"m_blk_write_time_cnt,omitempty"` // Total time the statement spent writing blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). - MBlkWriteTimeSum float32 `protobuf:"fixed32,223,opt,name=m_blk_write_time_sum,json=mBlkWriteTimeSum,proto3" json:"m_blk_write_time_sum,omitempty"` - MCpuUserTimeCnt float32 `protobuf:"fixed32,230,opt,name=m_cpu_user_time_cnt,json=mCpuUserTimeCnt,proto3" json:"m_cpu_user_time_cnt,omitempty"` + // + // Deprecated: Marked as deprecated in qanpb/collector.proto. + MBlkWriteTimeSum float32 `protobuf:"fixed32,223,opt,name=m_blk_write_time_sum,json=mBlkWriteTimeSum,proto3" json:"m_blk_write_time_sum,omitempty"` + MSharedBlkReadTimeCnt float32 `protobuf:"fixed32,255,opt,name=m_shared_blk_read_time_cnt,json=mSharedBlkReadTimeCnt,proto3" json:"m_shared_blk_read_time_cnt,omitempty"` + // Total time the statement spent reading shared blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). + MSharedBlkReadTimeSum float32 `protobuf:"fixed32,256,opt,name=m_shared_blk_read_time_sum,json=mSharedBlkReadTimeSum,proto3" json:"m_shared_blk_read_time_sum,omitempty"` + MSharedBlkWriteTimeCnt float32 `protobuf:"fixed32,257,opt,name=m_shared_blk_write_time_cnt,json=mSharedBlkWriteTimeCnt,proto3" json:"m_shared_blk_write_time_cnt,omitempty"` + // Total time the statement spent writing shared blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). + MSharedBlkWriteTimeSum float32 `protobuf:"fixed32,258,opt,name=m_shared_blk_write_time_sum,json=mSharedBlkWriteTimeSum,proto3" json:"m_shared_blk_write_time_sum,omitempty"` + MLocalBlkReadTimeCnt float32 `protobuf:"fixed32,259,opt,name=m_local_blk_read_time_cnt,json=mLocalBlkReadTimeCnt,proto3" json:"m_local_blk_read_time_cnt,omitempty"` + // Total time the statement spent reading local blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). + MLocalBlkReadTimeSum float32 `protobuf:"fixed32,260,opt,name=m_local_blk_read_time_sum,json=mLocalBlkReadTimeSum,proto3" json:"m_local_blk_read_time_sum,omitempty"` + MLocalBlkWriteTimeCnt float32 `protobuf:"fixed32,261,opt,name=m_local_blk_write_time_cnt,json=mLocalBlkWriteTimeCnt,proto3" json:"m_local_blk_write_time_cnt,omitempty"` + // Total time the statement spent writing local blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). + MLocalBlkWriteTimeSum float32 `protobuf:"fixed32,262,opt,name=m_local_blk_write_time_sum,json=mLocalBlkWriteTimeSum,proto3" json:"m_local_blk_write_time_sum,omitempty"` + MCpuUserTimeCnt float32 `protobuf:"fixed32,230,opt,name=m_cpu_user_time_cnt,json=mCpuUserTimeCnt,proto3" json:"m_cpu_user_time_cnt,omitempty"` // Total time user spent in query. MCpuUserTimeSum float32 `protobuf:"fixed32,231,opt,name=m_cpu_user_time_sum,json=mCpuUserTimeSum,proto3" json:"m_cpu_user_time_sum,omitempty"` MCpuSysTimeCnt float32 `protobuf:"fixed32,232,opt,name=m_cpu_sys_time_cnt,json=mCpuSysTimeCnt,proto3" json:"m_cpu_sys_time_cnt,omitempty"` @@ -1800,6 +1818,7 @@ func (x *MetricsBucket) GetMTempBlksWrittenSum() float32 { return 0 } +// Deprecated: Marked as deprecated in qanpb/collector.proto. func (x *MetricsBucket) GetMBlkReadTimeCnt() float32 { if x != nil { return x.MBlkReadTimeCnt @@ -1807,6 +1826,7 @@ func (x *MetricsBucket) GetMBlkReadTimeCnt() float32 { return 0 } +// Deprecated: Marked as deprecated in qanpb/collector.proto. func (x *MetricsBucket) GetMBlkReadTimeSum() float32 { if x != nil { return x.MBlkReadTimeSum @@ -1814,6 +1834,7 @@ func (x *MetricsBucket) GetMBlkReadTimeSum() float32 { return 0 } +// Deprecated: Marked as deprecated in qanpb/collector.proto. func (x *MetricsBucket) GetMBlkWriteTimeCnt() float32 { if x != nil { return x.MBlkWriteTimeCnt @@ -1821,6 +1842,7 @@ func (x *MetricsBucket) GetMBlkWriteTimeCnt() float32 { return 0 } +// Deprecated: Marked as deprecated in qanpb/collector.proto. func (x *MetricsBucket) GetMBlkWriteTimeSum() float32 { if x != nil { return x.MBlkWriteTimeSum @@ -1828,6 +1850,62 @@ func (x *MetricsBucket) GetMBlkWriteTimeSum() float32 { return 0 } +func (x *MetricsBucket) GetMSharedBlkReadTimeCnt() float32 { + if x != nil { + return x.MSharedBlkReadTimeCnt + } + return 0 +} + +func (x *MetricsBucket) GetMSharedBlkReadTimeSum() float32 { + if x != nil { + return x.MSharedBlkReadTimeSum + } + return 0 +} + +func (x *MetricsBucket) GetMSharedBlkWriteTimeCnt() float32 { + if x != nil { + return x.MSharedBlkWriteTimeCnt + } + return 0 +} + +func (x *MetricsBucket) GetMSharedBlkWriteTimeSum() float32 { + if x != nil { + return x.MSharedBlkWriteTimeSum + } + return 0 +} + +func (x *MetricsBucket) GetMLocalBlkReadTimeCnt() float32 { + if x != nil { + return x.MLocalBlkReadTimeCnt + } + return 0 +} + +func (x *MetricsBucket) GetMLocalBlkReadTimeSum() float32 { + if x != nil { + return x.MLocalBlkReadTimeSum + } + return 0 +} + +func (x *MetricsBucket) GetMLocalBlkWriteTimeCnt() float32 { + if x != nil { + return x.MLocalBlkWriteTimeCnt + } + return 0 +} + +func (x *MetricsBucket) GetMLocalBlkWriteTimeSum() float32 { + if x != nil { + return x.MLocalBlkWriteTimeSum + } + return 0 +} + func (x *MetricsBucket) GetMCpuUserTimeCnt() float32 { if x != nil { return x.MCpuUserTimeCnt @@ -2038,7 +2116,7 @@ var file_qanpb_collector_proto_rawDesc = []byte{ 0x6b, 0x65, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x71, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x0d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x75, - 0x63, 0x6b, 0x65, 0x74, 0x22, 0x95, 0x50, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x63, 0x6b, 0x65, 0x74, 0x22, 0x85, 0x54, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x71, 0x75, 0x65, 0x72, 0x79, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x71, 0x75, 0x65, 0x72, 0x79, 0x69, 0x64, 0x12, 0x30, 0x0a, 0x13, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x5f, 0x66, 0x69, 0x6e, 0x67, @@ -2599,18 +2677,49 @@ var file_qanpb_collector_proto_rawDesc = []byte{ 0x74, 0x74, 0x65, 0x6e, 0x43, 0x6e, 0x74, 0x12, 0x35, 0x0a, 0x17, 0x6d, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x5f, 0x73, 0x75, 0x6d, 0x18, 0xdb, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x13, 0x6d, 0x54, 0x65, 0x6d, 0x70, - 0x42, 0x6c, 0x6b, 0x73, 0x57, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x53, 0x75, 0x6d, 0x12, 0x2d, + 0x42, 0x6c, 0x6b, 0x73, 0x57, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x53, 0x75, 0x6d, 0x12, 0x31, 0x0a, 0x13, 0x6d, 0x5f, 0x62, 0x6c, 0x6b, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x5f, 0x63, 0x6e, 0x74, 0x18, 0xdc, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x6d, 0x42, - 0x6c, 0x6b, 0x52, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6e, 0x74, 0x12, 0x2d, 0x0a, - 0x13, 0x6d, 0x5f, 0x62, 0x6c, 0x6b, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x5f, 0x73, 0x75, 0x6d, 0x18, 0xdd, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x6d, 0x42, 0x6c, - 0x6b, 0x52, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x75, 0x6d, 0x12, 0x2f, 0x0a, 0x14, - 0x6d, 0x5f, 0x62, 0x6c, 0x6b, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x5f, 0x63, 0x6e, 0x74, 0x18, 0xde, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6d, 0x42, 0x6c, - 0x6b, 0x57, 0x72, 0x69, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6e, 0x74, 0x12, 0x2f, 0x0a, - 0x14, 0x6d, 0x5f, 0x62, 0x6c, 0x6b, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x5f, 0x73, 0x75, 0x6d, 0x18, 0xdf, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6d, 0x42, + 0x65, 0x5f, 0x63, 0x6e, 0x74, 0x18, 0xdc, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x02, 0x18, 0x01, + 0x52, 0x0f, 0x6d, 0x42, 0x6c, 0x6b, 0x52, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6e, + 0x74, 0x12, 0x31, 0x0a, 0x13, 0x6d, 0x5f, 0x62, 0x6c, 0x6b, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x6d, 0x18, 0xdd, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, + 0x02, 0x18, 0x01, 0x52, 0x0f, 0x6d, 0x42, 0x6c, 0x6b, 0x52, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x53, 0x75, 0x6d, 0x12, 0x33, 0x0a, 0x14, 0x6d, 0x5f, 0x62, 0x6c, 0x6b, 0x5f, 0x77, 0x72, + 0x69, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x6e, 0x74, 0x18, 0xde, 0x01, 0x20, + 0x01, 0x28, 0x02, 0x42, 0x02, 0x18, 0x01, 0x52, 0x10, 0x6d, 0x42, 0x6c, 0x6b, 0x57, 0x72, 0x69, + 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6e, 0x74, 0x12, 0x33, 0x0a, 0x14, 0x6d, 0x5f, 0x62, + 0x6c, 0x6b, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x75, + 0x6d, 0x18, 0xdf, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x02, 0x18, 0x01, 0x52, 0x10, 0x6d, 0x42, + 0x6c, 0x6b, 0x57, 0x72, 0x69, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x75, 0x6d, 0x12, 0x3a, + 0x0a, 0x1a, 0x6d, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6b, 0x5f, 0x72, + 0x65, 0x61, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x6e, 0x74, 0x18, 0xff, 0x01, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x15, 0x6d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x42, 0x6c, 0x6b, 0x52, + 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x1a, 0x6d, 0x5f, + 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6b, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x6d, 0x18, 0x80, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x15, 0x6d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x42, 0x6c, 0x6b, 0x52, 0x65, 0x61, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x53, 0x75, 0x6d, 0x12, 0x3c, 0x0a, 0x1b, 0x6d, 0x5f, 0x73, 0x68, 0x61, 0x72, + 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6b, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x5f, 0x63, 0x6e, 0x74, 0x18, 0x81, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x16, 0x6d, 0x53, + 0x68, 0x61, 0x72, 0x65, 0x64, 0x42, 0x6c, 0x6b, 0x57, 0x72, 0x69, 0x74, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x43, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x1b, 0x6d, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, + 0x5f, 0x62, 0x6c, 0x6b, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, + 0x73, 0x75, 0x6d, 0x18, 0x82, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x16, 0x6d, 0x53, 0x68, 0x61, + 0x72, 0x65, 0x64, 0x42, 0x6c, 0x6b, 0x57, 0x72, 0x69, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x53, + 0x75, 0x6d, 0x12, 0x38, 0x0a, 0x19, 0x6d, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x6c, + 0x6b, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x6e, 0x74, 0x18, + 0x83, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x14, 0x6d, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x42, 0x6c, + 0x6b, 0x52, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x19, + 0x6d, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x6c, 0x6b, 0x5f, 0x72, 0x65, 0x61, 0x64, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x6d, 0x18, 0x84, 0x02, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x14, 0x6d, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x42, 0x6c, 0x6b, 0x52, 0x65, 0x61, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x53, 0x75, 0x6d, 0x12, 0x3a, 0x0a, 0x1a, 0x6d, 0x5f, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x5f, 0x62, 0x6c, 0x6b, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x5f, 0x63, 0x6e, 0x74, 0x18, 0x85, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x15, 0x6d, 0x4c, 0x6f, + 0x63, 0x61, 0x6c, 0x42, 0x6c, 0x6b, 0x57, 0x72, 0x69, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x43, + 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x1a, 0x6d, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x6c, + 0x6b, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x6d, + 0x18, 0x86, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x15, 0x6d, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x42, 0x6c, 0x6b, 0x57, 0x72, 0x69, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x75, 0x6d, 0x12, 0x2d, 0x0a, 0x13, 0x6d, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x6e, 0x74, 0x18, 0xe6, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x6d, 0x43, diff --git a/api/qanpb/collector.pb.validate.go b/api/qanpb/collector.pb.validate.go index 4a86009d50..596d00a9bf 100644 --- a/api/qanpb/collector.pb.validate.go +++ b/api/qanpb/collector.pb.validate.go @@ -589,6 +589,22 @@ func (m *MetricsBucket) validate(all bool) error { // no validation rules for MBlkWriteTimeSum + // no validation rules for MSharedBlkReadTimeCnt + + // no validation rules for MSharedBlkReadTimeSum + + // no validation rules for MSharedBlkWriteTimeCnt + + // no validation rules for MSharedBlkWriteTimeSum + + // no validation rules for MLocalBlkReadTimeCnt + + // no validation rules for MLocalBlkReadTimeSum + + // no validation rules for MLocalBlkWriteTimeCnt + + // no validation rules for MLocalBlkWriteTimeSum + // no validation rules for MCpuUserTimeCnt // no validation rules for MCpuUserTimeSum diff --git a/api/qanpb/collector.proto b/api/qanpb/collector.proto index 3a02b9d478..9b32e07e90 100644 --- a/api/qanpb/collector.proto +++ b/api/qanpb/collector.proto @@ -333,18 +333,31 @@ message MetricsBucket { float m_temp_blks_written_cnt = 218; // Total number of temp blocks written by the statement. float m_temp_blks_written_sum = 219; - float m_blk_read_time_cnt = 220; + float m_blk_read_time_cnt = 220 [deprecated = true]; // Total time the statement spent reading blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). - float m_blk_read_time_sum = 221; - float m_blk_write_time_cnt = 222; + float m_blk_read_time_sum = 221 [deprecated = true]; + float m_blk_write_time_cnt = 222 [deprecated = true]; // Total time the statement spent writing blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). - float m_blk_write_time_sum = 223; + float m_blk_write_time_sum = 223 [deprecated = true]; + float m_shared_blk_read_time_cnt = 255; + // Total time the statement spent reading shared blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). + float m_shared_blk_read_time_sum = 256; + float m_shared_blk_write_time_cnt = 257; + // Total time the statement spent writing shared blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). + float m_shared_blk_write_time_sum = 258; + float m_local_blk_read_time_cnt = 259; + // Total time the statement spent reading local blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). + float m_local_blk_read_time_sum = 260; + float m_local_blk_write_time_cnt = 261; + // Total time the statement spent writing local blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). + float m_local_blk_write_time_sum = 262; float m_cpu_user_time_cnt = 230; // Total time user spent in query. float m_cpu_user_time_sum = 231; float m_cpu_sys_time_cnt = 232; // Total time system spent in query. float m_cpu_sys_time_sum = 233; + // Type of SQL command. string cmd_type = 246; // diff --git a/api/qanpb/json/client/object_details/get_metrics_responses.go b/api/qanpb/json/client/object_details/get_metrics_responses.go index 23bcd854fc..4b5d88287a 100644 --- a/api/qanpb/json/client/object_details/get_metrics_responses.go +++ b/api/qanpb/json/client/object_details/get_metrics_responses.go @@ -963,6 +963,18 @@ type GetMetricsOKBodySparklineItems0 struct { // Total time the statement spent writing blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). MBlkWriteTimeSumPerSec float32 `json:"m_blk_write_time_sum_per_sec,omitempty"` + // Total time the statement spent reading shared blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). + MSharedBlkReadTimeSumPerSec float32 `json:"m_shared_blk_read_time_sum_per_sec,omitempty"` + + // Total time the statement spent writing shared blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). + MSharedBlkWriteTimeSumPerSec float32 `json:"m_shared_blk_write_time_sum_per_sec,omitempty"` + + // Total time the statement spent reading shared blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). + MLocalBlkReadTimeSumPerSec float32 `json:"m_local_blk_read_time_sum_per_sec,omitempty"` + + // Total time the statement spent writing shared blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). + MLocalBlkWriteTimeSumPerSec float32 `json:"m_local_blk_write_time_sum_per_sec,omitempty"` + // Total time user spent in query. MCPUUserTimeSumPerSec float32 `json:"m_cpu_user_time_sum_per_sec,omitempty"` diff --git a/api/qanpb/json/client/profile/get_report_responses.go b/api/qanpb/json/client/profile/get_report_responses.go index d72cc8a69f..bd3baae1ed 100644 --- a/api/qanpb/json/client/profile/get_report_responses.go +++ b/api/qanpb/json/client/profile/get_report_responses.go @@ -1019,6 +1019,18 @@ type GetReportOKBodyRowsItems0SparklineItems0 struct { // Total time the statement spent writing blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). MBlkWriteTimeSumPerSec float32 `json:"m_blk_write_time_sum_per_sec,omitempty"` + // Total time the statement spent reading shared blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). + MSharedBlkReadTimeSumPerSec float32 `json:"m_shared_blk_read_time_sum_per_sec,omitempty"` + + // Total time the statement spent writing shared blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). + MSharedBlkWriteTimeSumPerSec float32 `json:"m_shared_blk_write_time_sum_per_sec,omitempty"` + + // Total time the statement spent reading shared blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). + MLocalBlkReadTimeSumPerSec float32 `json:"m_local_blk_read_time_sum_per_sec,omitempty"` + + // Total time the statement spent writing shared blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). + MLocalBlkWriteTimeSumPerSec float32 `json:"m_local_blk_write_time_sum_per_sec,omitempty"` + // Total time user spent in query. MCPUUserTimeSumPerSec float32 `json:"m_cpu_user_time_sum_per_sec,omitempty"` diff --git a/api/qanpb/json/qanpb.json b/api/qanpb/json/qanpb.json index 08adc4f289..61b0a7b75e 100644 --- a/api/qanpb/json/qanpb.json +++ b/api/qanpb/json/qanpb.json @@ -450,13 +450,13 @@ "description": "Total time system spent in query.", "type": "number", "format": "float", - "x-order": 56 + "x-order": 60 }, "m_cpu_user_time_sum_per_sec": { "description": "Total time user spent in query.", "type": "number", "format": "float", - "x-order": 55 + "x-order": 59 }, "m_docs_returned_sum_per_sec": { "description": "MongoDB metrics.\n\nThe number of returned documents.", @@ -530,6 +530,18 @@ "format": "float", "x-order": 17 }, + "m_local_blk_read_time_sum_per_sec": { + "description": "Total time the statement spent reading shared blocks, in milliseconds (if track_io_timing is enabled, otherwise zero).", + "type": "number", + "format": "float", + "x-order": 57 + }, + "m_local_blk_write_time_sum_per_sec": { + "description": "Total time the statement spent writing shared blocks, in milliseconds (if track_io_timing is enabled, otherwise zero).", + "type": "number", + "format": "float", + "x-order": 58 + }, "m_local_blks_dirtied_sum_per_sec": { "description": "Total number of local blocks dirtied by the statement.", "type": "number", @@ -582,14 +594,14 @@ "description": "Plan time in per seconds.", "type": "number", "format": "float", - "x-order": 61 + "x-order": 65 }, "m_plans_calls_sum_per_sec": { "description": "Total number of planned calls.", "type": "number", "format": "float", "title": "pg_stat_monitor 0.9 metrics", - "x-order": 57 + "x-order": 61 }, "m_qc_hit_sum_per_sec": { "description": "Boolean metrics:\n- *_sum_per_sec - how many times this matric was true.\n\nQuery Cache hits.", @@ -657,6 +669,18 @@ "format": "float", "x-order": 33 }, + "m_shared_blk_read_time_sum_per_sec": { + "description": "Total time the statement spent reading shared blocks, in milliseconds (if track_io_timing is enabled, otherwise zero).", + "type": "number", + "format": "float", + "x-order": 55 + }, + "m_shared_blk_write_time_sum_per_sec": { + "description": "Total time the statement spent writing shared blocks, in milliseconds (if track_io_timing is enabled, otherwise zero).", + "type": "number", + "format": "float", + "x-order": 56 + }, "m_shared_blks_dirtied_sum_per_sec": { "description": "Total number of shared blocks dirtied by the statement.", "type": "number", @@ -745,19 +769,19 @@ "description": "Total bytes of WAL (Write-ahead logging) records.", "type": "number", "format": "float", - "x-order": 60 + "x-order": 64 }, "m_wal_fpi_sum_per_sec": { "description": "Total number of FPI (full page images) in WAL (Write-ahead logging) records.", "type": "number", "format": "float", - "x-order": 59 + "x-order": 63 }, "m_wal_records_sum_per_sec": { "description": "Total number of WAL (Write-ahead logging) records.", "type": "number", "format": "float", - "x-order": 58 + "x-order": 62 }, "num_queries_per_sec": { "description": "number of queries in bucket.", @@ -1371,13 +1395,13 @@ "description": "Total time system spent in query.", "type": "number", "format": "float", - "x-order": 56 + "x-order": 60 }, "m_cpu_user_time_sum_per_sec": { "description": "Total time user spent in query.", "type": "number", "format": "float", - "x-order": 55 + "x-order": 59 }, "m_docs_returned_sum_per_sec": { "description": "MongoDB metrics.\n\nThe number of returned documents.", @@ -1451,6 +1475,18 @@ "format": "float", "x-order": 17 }, + "m_local_blk_read_time_sum_per_sec": { + "description": "Total time the statement spent reading shared blocks, in milliseconds (if track_io_timing is enabled, otherwise zero).", + "type": "number", + "format": "float", + "x-order": 57 + }, + "m_local_blk_write_time_sum_per_sec": { + "description": "Total time the statement spent writing shared blocks, in milliseconds (if track_io_timing is enabled, otherwise zero).", + "type": "number", + "format": "float", + "x-order": 58 + }, "m_local_blks_dirtied_sum_per_sec": { "description": "Total number of local blocks dirtied by the statement.", "type": "number", @@ -1503,14 +1539,14 @@ "description": "Plan time in per seconds.", "type": "number", "format": "float", - "x-order": 61 + "x-order": 65 }, "m_plans_calls_sum_per_sec": { "description": "Total number of planned calls.", "type": "number", "format": "float", "title": "pg_stat_monitor 0.9 metrics", - "x-order": 57 + "x-order": 61 }, "m_qc_hit_sum_per_sec": { "description": "Boolean metrics:\n- *_sum_per_sec - how many times this matric was true.\n\nQuery Cache hits.", @@ -1578,6 +1614,18 @@ "format": "float", "x-order": 33 }, + "m_shared_blk_read_time_sum_per_sec": { + "description": "Total time the statement spent reading shared blocks, in milliseconds (if track_io_timing is enabled, otherwise zero).", + "type": "number", + "format": "float", + "x-order": 55 + }, + "m_shared_blk_write_time_sum_per_sec": { + "description": "Total time the statement spent writing shared blocks, in milliseconds (if track_io_timing is enabled, otherwise zero).", + "type": "number", + "format": "float", + "x-order": 56 + }, "m_shared_blks_dirtied_sum_per_sec": { "description": "Total number of shared blocks dirtied by the statement.", "type": "number", @@ -1666,19 +1714,19 @@ "description": "Total bytes of WAL (Write-ahead logging) records.", "type": "number", "format": "float", - "x-order": 60 + "x-order": 64 }, "m_wal_fpi_sum_per_sec": { "description": "Total number of FPI (full page images) in WAL (Write-ahead logging) records.", "type": "number", "format": "float", - "x-order": 59 + "x-order": 63 }, "m_wal_records_sum_per_sec": { "description": "Total number of WAL (Write-ahead logging) records.", "type": "number", "format": "float", - "x-order": 58 + "x-order": 62 }, "num_queries_per_sec": { "description": "number of queries in bucket.", diff --git a/api/qanpb/qan.pb.go b/api/qanpb/qan.pb.go index 6779e3a894..6e9938e5d8 100644 --- a/api/qanpb/qan.pb.go +++ b/api/qanpb/qan.pb.go @@ -253,9 +253,21 @@ type Point struct { // Total number of temp blocks written by the statement. MTempBlksWrittenSumPerSec float32 `protobuf:"fixed32,50,opt,name=m_temp_blks_written_sum_per_sec,json=mTempBlksWrittenSumPerSec,proto3" json:"m_temp_blks_written_sum_per_sec,omitempty"` // Total time the statement spent reading blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). + // + // Deprecated: Marked as deprecated in qanpb/qan.proto. MBlkReadTimeSumPerSec float32 `protobuf:"fixed32,51,opt,name=m_blk_read_time_sum_per_sec,json=mBlkReadTimeSumPerSec,proto3" json:"m_blk_read_time_sum_per_sec,omitempty"` // Total time the statement spent writing blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). + // + // Deprecated: Marked as deprecated in qanpb/qan.proto. MBlkWriteTimeSumPerSec float32 `protobuf:"fixed32,52,opt,name=m_blk_write_time_sum_per_sec,json=mBlkWriteTimeSumPerSec,proto3" json:"m_blk_write_time_sum_per_sec,omitempty"` + // Total time the statement spent reading shared blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). + MSharedBlkReadTimeSumPerSec float32 `protobuf:"fixed32,63,opt,name=m_shared_blk_read_time_sum_per_sec,json=mSharedBlkReadTimeSumPerSec,proto3" json:"m_shared_blk_read_time_sum_per_sec,omitempty"` + // Total time the statement spent writing shared blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). + MSharedBlkWriteTimeSumPerSec float32 `protobuf:"fixed32,64,opt,name=m_shared_blk_write_time_sum_per_sec,json=mSharedBlkWriteTimeSumPerSec,proto3" json:"m_shared_blk_write_time_sum_per_sec,omitempty"` + // Total time the statement spent reading shared blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). + MLocalBlkReadTimeSumPerSec float32 `protobuf:"fixed32,65,opt,name=m_local_blk_read_time_sum_per_sec,json=mLocalBlkReadTimeSumPerSec,proto3" json:"m_local_blk_read_time_sum_per_sec,omitempty"` + // Total time the statement spent writing shared blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). + MLocalBlkWriteTimeSumPerSec float32 `protobuf:"fixed32,66,opt,name=m_local_blk_write_time_sum_per_sec,json=mLocalBlkWriteTimeSumPerSec,proto3" json:"m_local_blk_write_time_sum_per_sec,omitempty"` // Total time user spent in query. MCpuUserTimeSumPerSec float32 `protobuf:"fixed32,56,opt,name=m_cpu_user_time_sum_per_sec,json=mCpuUserTimeSumPerSec,proto3" json:"m_cpu_user_time_sum_per_sec,omitempty"` // Total time system spent in query. @@ -675,6 +687,7 @@ func (x *Point) GetMTempBlksWrittenSumPerSec() float32 { return 0 } +// Deprecated: Marked as deprecated in qanpb/qan.proto. func (x *Point) GetMBlkReadTimeSumPerSec() float32 { if x != nil { return x.MBlkReadTimeSumPerSec @@ -682,6 +695,7 @@ func (x *Point) GetMBlkReadTimeSumPerSec() float32 { return 0 } +// Deprecated: Marked as deprecated in qanpb/qan.proto. func (x *Point) GetMBlkWriteTimeSumPerSec() float32 { if x != nil { return x.MBlkWriteTimeSumPerSec @@ -689,6 +703,34 @@ func (x *Point) GetMBlkWriteTimeSumPerSec() float32 { return 0 } +func (x *Point) GetMSharedBlkReadTimeSumPerSec() float32 { + if x != nil { + return x.MSharedBlkReadTimeSumPerSec + } + return 0 +} + +func (x *Point) GetMSharedBlkWriteTimeSumPerSec() float32 { + if x != nil { + return x.MSharedBlkWriteTimeSumPerSec + } + return 0 +} + +func (x *Point) GetMLocalBlkReadTimeSumPerSec() float32 { + if x != nil { + return x.MLocalBlkReadTimeSumPerSec + } + return 0 +} + +func (x *Point) GetMLocalBlkWriteTimeSumPerSec() float32 { + if x != nil { + return x.MLocalBlkWriteTimeSumPerSec + } + return 0 +} + func (x *Point) GetMCpuUserTimeSumPerSec() float32 { if x != nil { return x.MCpuUserTimeSumPerSec @@ -796,8 +838,8 @@ var File_qanpb_qan_proto protoreflect.FileDescriptor var file_qanpb_qan_proto_rawDesc = []byte{ 0x0a, 0x0f, 0x71, 0x61, 0x6e, 0x70, 0x62, 0x2f, 0x71, 0x61, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x12, 0x0b, 0x71, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x22, 0xc6, - 0x1c, 0x0a, 0x05, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x6f, 0x69, 0x6e, + 0x6f, 0x12, 0x0b, 0x71, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x22, 0xf2, + 0x1e, 0x0a, 0x05, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, @@ -993,64 +1035,83 @@ var file_qanpb_qan_proto_rawDesc = []byte{ 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x5f, 0x73, 0x75, 0x6d, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x32, 0x20, 0x01, 0x28, 0x02, 0x52, 0x19, 0x6d, 0x54, 0x65, 0x6d, 0x70, 0x42, 0x6c, 0x6b, 0x73, 0x57, 0x72, 0x69, 0x74, 0x74, 0x65, - 0x6e, 0x53, 0x75, 0x6d, 0x50, 0x65, 0x72, 0x53, 0x65, 0x63, 0x12, 0x3a, 0x0a, 0x1b, 0x6d, 0x5f, + 0x6e, 0x53, 0x75, 0x6d, 0x50, 0x65, 0x72, 0x53, 0x65, 0x63, 0x12, 0x3e, 0x0a, 0x1b, 0x6d, 0x5f, 0x62, 0x6c, 0x6b, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x75, - 0x6d, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x33, 0x20, 0x01, 0x28, 0x02, 0x52, - 0x15, 0x6d, 0x42, 0x6c, 0x6b, 0x52, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x75, 0x6d, - 0x50, 0x65, 0x72, 0x53, 0x65, 0x63, 0x12, 0x3c, 0x0a, 0x1c, 0x6d, 0x5f, 0x62, 0x6c, 0x6b, 0x5f, - 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x6d, 0x5f, 0x70, - 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x34, 0x20, 0x01, 0x28, 0x02, 0x52, 0x16, 0x6d, 0x42, - 0x6c, 0x6b, 0x57, 0x72, 0x69, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x75, 0x6d, 0x50, 0x65, - 0x72, 0x53, 0x65, 0x63, 0x12, 0x3a, 0x0a, 0x1b, 0x6d, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x75, 0x73, - 0x65, 0x72, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x6d, 0x5f, 0x70, 0x65, 0x72, 0x5f, - 0x73, 0x65, 0x63, 0x18, 0x38, 0x20, 0x01, 0x28, 0x02, 0x52, 0x15, 0x6d, 0x43, 0x70, 0x75, 0x55, - 0x73, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x75, 0x6d, 0x50, 0x65, 0x72, 0x53, 0x65, 0x63, - 0x12, 0x38, 0x0a, 0x1a, 0x6d, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x73, 0x79, 0x73, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x6d, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x39, - 0x20, 0x01, 0x28, 0x02, 0x52, 0x14, 0x6d, 0x43, 0x70, 0x75, 0x53, 0x79, 0x73, 0x54, 0x69, 0x6d, - 0x65, 0x53, 0x75, 0x6d, 0x50, 0x65, 0x72, 0x53, 0x65, 0x63, 0x12, 0x37, 0x0a, 0x19, 0x6d, 0x5f, - 0x70, 0x6c, 0x61, 0x6e, 0x73, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x5f, 0x73, 0x75, 0x6d, 0x5f, - 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x14, 0x6d, - 0x50, 0x6c, 0x61, 0x6e, 0x73, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x53, 0x75, 0x6d, 0x50, 0x65, 0x72, - 0x53, 0x65, 0x63, 0x12, 0x37, 0x0a, 0x19, 0x6d, 0x5f, 0x77, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x73, 0x5f, 0x73, 0x75, 0x6d, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, - 0x18, 0x3b, 0x20, 0x01, 0x28, 0x02, 0x52, 0x14, 0x6d, 0x57, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x73, 0x53, 0x75, 0x6d, 0x50, 0x65, 0x72, 0x53, 0x65, 0x63, 0x12, 0x2f, 0x0a, 0x15, - 0x6d, 0x5f, 0x77, 0x61, 0x6c, 0x5f, 0x66, 0x70, 0x69, 0x5f, 0x73, 0x75, 0x6d, 0x5f, 0x70, 0x65, - 0x72, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6d, 0x57, 0x61, - 0x6c, 0x46, 0x70, 0x69, 0x53, 0x75, 0x6d, 0x50, 0x65, 0x72, 0x53, 0x65, 0x63, 0x12, 0x33, 0x0a, - 0x17, 0x6d, 0x5f, 0x77, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x75, 0x6d, - 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x12, - 0x6d, 0x57, 0x61, 0x6c, 0x42, 0x79, 0x74, 0x65, 0x73, 0x53, 0x75, 0x6d, 0x50, 0x65, 0x72, 0x53, - 0x65, 0x63, 0x12, 0x33, 0x0a, 0x17, 0x6d, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x5f, 0x73, 0x75, 0x6d, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x3e, 0x20, - 0x01, 0x28, 0x02, 0x52, 0x12, 0x6d, 0x50, 0x6c, 0x61, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x75, - 0x6d, 0x50, 0x65, 0x72, 0x53, 0x65, 0x63, 0x22, 0x37, 0x0a, 0x0d, 0x4d, 0x61, 0x70, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x2a, 0x55, 0x0a, 0x0d, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x12, 0x1e, 0x0a, 0x16, 0x45, 0x58, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x5f, 0x46, 0x4f, 0x52, - 0x4d, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x1a, 0x02, 0x08, - 0x01, 0x12, 0x0f, 0x0a, 0x07, 0x45, 0x58, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x10, 0x01, 0x1a, 0x02, - 0x08, 0x01, 0x12, 0x13, 0x0a, 0x0b, 0x46, 0x49, 0x4e, 0x47, 0x45, 0x52, 0x50, 0x52, 0x49, 0x4e, - 0x54, 0x10, 0x02, 0x1a, 0x02, 0x08, 0x01, 0x2a, 0x5d, 0x0a, 0x0b, 0x45, 0x78, 0x61, 0x6d, 0x70, - 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x45, 0x58, 0x41, 0x4d, 0x50, 0x4c, - 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, - 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x41, 0x4e, 0x44, 0x4f, 0x4d, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, - 0x53, 0x4c, 0x4f, 0x57, 0x45, 0x53, 0x54, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x41, 0x53, - 0x54, 0x45, 0x53, 0x54, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x45, - 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x42, 0x95, 0x01, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x2e, 0x71, - 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x08, 0x51, 0x61, 0x6e, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x70, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x61, 0x2f, 0x70, 0x6d, 0x6d, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x71, 0x61, 0x6e, 0x70, 0x62, 0x3b, 0x71, 0x61, 0x6e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x51, 0x58, 0x58, 0xaa, 0x02, 0x0b, 0x51, 0x61, 0x6e, 0x2e, - 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x0b, 0x51, 0x61, 0x6e, 0x5c, 0x56, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x17, 0x51, 0x61, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, - 0x02, 0x0c, 0x51, 0x61, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6d, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x33, 0x20, 0x01, 0x28, 0x02, 0x42, + 0x02, 0x18, 0x01, 0x52, 0x15, 0x6d, 0x42, 0x6c, 0x6b, 0x52, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x53, 0x75, 0x6d, 0x50, 0x65, 0x72, 0x53, 0x65, 0x63, 0x12, 0x40, 0x0a, 0x1c, 0x6d, 0x5f, + 0x62, 0x6c, 0x6b, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, + 0x75, 0x6d, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x34, 0x20, 0x01, 0x28, 0x02, + 0x42, 0x02, 0x18, 0x01, 0x52, 0x16, 0x6d, 0x42, 0x6c, 0x6b, 0x57, 0x72, 0x69, 0x74, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x53, 0x75, 0x6d, 0x50, 0x65, 0x72, 0x53, 0x65, 0x63, 0x12, 0x47, 0x0a, 0x22, + 0x6d, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6b, 0x5f, 0x72, 0x65, 0x61, + 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x6d, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, + 0x65, 0x63, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x02, 0x52, 0x1b, 0x6d, 0x53, 0x68, 0x61, 0x72, 0x65, + 0x64, 0x42, 0x6c, 0x6b, 0x52, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x75, 0x6d, 0x50, + 0x65, 0x72, 0x53, 0x65, 0x63, 0x12, 0x49, 0x0a, 0x23, 0x6d, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, + 0x64, 0x5f, 0x62, 0x6c, 0x6b, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x5f, 0x73, 0x75, 0x6d, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x40, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x1c, 0x6d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x42, 0x6c, 0x6b, 0x57, 0x72, + 0x69, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x75, 0x6d, 0x50, 0x65, 0x72, 0x53, 0x65, 0x63, + 0x12, 0x45, 0x0a, 0x21, 0x6d, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x6c, 0x6b, 0x5f, + 0x72, 0x65, 0x61, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x6d, 0x5f, 0x70, 0x65, + 0x72, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x41, 0x20, 0x01, 0x28, 0x02, 0x52, 0x1a, 0x6d, 0x4c, 0x6f, + 0x63, 0x61, 0x6c, 0x42, 0x6c, 0x6b, 0x52, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x75, + 0x6d, 0x50, 0x65, 0x72, 0x53, 0x65, 0x63, 0x12, 0x47, 0x0a, 0x22, 0x6d, 0x5f, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x5f, 0x62, 0x6c, 0x6b, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x5f, 0x73, 0x75, 0x6d, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x42, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x1b, 0x6d, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x42, 0x6c, 0x6b, 0x57, 0x72, + 0x69, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x75, 0x6d, 0x50, 0x65, 0x72, 0x53, 0x65, 0x63, + 0x12, 0x3a, 0x0a, 0x1b, 0x6d, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x6d, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x18, + 0x38, 0x20, 0x01, 0x28, 0x02, 0x52, 0x15, 0x6d, 0x43, 0x70, 0x75, 0x55, 0x73, 0x65, 0x72, 0x54, + 0x69, 0x6d, 0x65, 0x53, 0x75, 0x6d, 0x50, 0x65, 0x72, 0x53, 0x65, 0x63, 0x12, 0x38, 0x0a, 0x1a, + 0x6d, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x73, 0x79, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, + 0x75, 0x6d, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x39, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x14, 0x6d, 0x43, 0x70, 0x75, 0x53, 0x79, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x75, 0x6d, + 0x50, 0x65, 0x72, 0x53, 0x65, 0x63, 0x12, 0x37, 0x0a, 0x19, 0x6d, 0x5f, 0x70, 0x6c, 0x61, 0x6e, + 0x73, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x5f, 0x73, 0x75, 0x6d, 0x5f, 0x70, 0x65, 0x72, 0x5f, + 0x73, 0x65, 0x63, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x14, 0x6d, 0x50, 0x6c, 0x61, 0x6e, + 0x73, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x53, 0x75, 0x6d, 0x50, 0x65, 0x72, 0x53, 0x65, 0x63, 0x12, + 0x37, 0x0a, 0x19, 0x6d, 0x5f, 0x77, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, + 0x5f, 0x73, 0x75, 0x6d, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x3b, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x14, 0x6d, 0x57, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x53, + 0x75, 0x6d, 0x50, 0x65, 0x72, 0x53, 0x65, 0x63, 0x12, 0x2f, 0x0a, 0x15, 0x6d, 0x5f, 0x77, 0x61, + 0x6c, 0x5f, 0x66, 0x70, 0x69, 0x5f, 0x73, 0x75, 0x6d, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, + 0x63, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6d, 0x57, 0x61, 0x6c, 0x46, 0x70, 0x69, + 0x53, 0x75, 0x6d, 0x50, 0x65, 0x72, 0x53, 0x65, 0x63, 0x12, 0x33, 0x0a, 0x17, 0x6d, 0x5f, 0x77, + 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x75, 0x6d, 0x5f, 0x70, 0x65, 0x72, + 0x5f, 0x73, 0x65, 0x63, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x12, 0x6d, 0x57, 0x61, 0x6c, + 0x42, 0x79, 0x74, 0x65, 0x73, 0x53, 0x75, 0x6d, 0x50, 0x65, 0x72, 0x53, 0x65, 0x63, 0x12, 0x33, + 0x0a, 0x17, 0x6d, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x75, + 0x6d, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x12, 0x6d, 0x50, 0x6c, 0x61, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x75, 0x6d, 0x50, 0x65, 0x72, + 0x53, 0x65, 0x63, 0x22, 0x37, 0x0a, 0x0d, 0x4d, 0x61, 0x70, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2a, 0x55, 0x0a, 0x0d, + 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x1e, 0x0a, + 0x16, 0x45, 0x58, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, + 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x0f, 0x0a, + 0x07, 0x45, 0x58, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x10, 0x01, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x13, + 0x0a, 0x0b, 0x46, 0x49, 0x4e, 0x47, 0x45, 0x52, 0x50, 0x52, 0x49, 0x4e, 0x54, 0x10, 0x02, 0x1a, + 0x02, 0x08, 0x01, 0x2a, 0x5d, 0x0a, 0x0b, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x45, 0x58, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, + 0x52, 0x41, 0x4e, 0x44, 0x4f, 0x4d, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x4c, 0x4f, 0x57, + 0x45, 0x53, 0x54, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x41, 0x53, 0x54, 0x45, 0x53, 0x54, + 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, + 0x10, 0x04, 0x42, 0x95, 0x01, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x2e, 0x71, 0x61, 0x6e, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x08, 0x51, 0x61, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x50, 0x01, 0x5a, 0x2b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, + 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x61, 0x2f, 0x70, 0x6d, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x71, + 0x61, 0x6e, 0x70, 0x62, 0x3b, 0x71, 0x61, 0x6e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, + 0x02, 0x03, 0x51, 0x58, 0x58, 0xaa, 0x02, 0x0b, 0x51, 0x61, 0x6e, 0x2e, 0x56, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0xca, 0x02, 0x0b, 0x51, 0x61, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0xe2, 0x02, 0x17, 0x51, 0x61, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, + 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0c, 0x51, 0x61, + 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( diff --git a/api/qanpb/qan.pb.validate.go b/api/qanpb/qan.pb.validate.go index af061f436d..0955decf9d 100644 --- a/api/qanpb/qan.pb.validate.go +++ b/api/qanpb/qan.pb.validate.go @@ -166,6 +166,14 @@ func (m *Point) validate(all bool) error { // no validation rules for MBlkWriteTimeSumPerSec + // no validation rules for MSharedBlkReadTimeSumPerSec + + // no validation rules for MSharedBlkWriteTimeSumPerSec + + // no validation rules for MLocalBlkReadTimeSumPerSec + + // no validation rules for MLocalBlkWriteTimeSumPerSec + // no validation rules for MCpuUserTimeSumPerSec // no validation rules for MCpuSysTimeSumPerSec diff --git a/api/qanpb/qan.proto b/api/qanpb/qan.proto index 7bbb75dd03..8a3bd64dab 100644 --- a/api/qanpb/qan.proto +++ b/api/qanpb/qan.proto @@ -142,9 +142,17 @@ message Point { // Total number of temp blocks written by the statement. float m_temp_blks_written_sum_per_sec = 50; // Total time the statement spent reading blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). - float m_blk_read_time_sum_per_sec = 51; + float m_blk_read_time_sum_per_sec = 51 [deprecated = true]; // Total time the statement spent writing blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). - float m_blk_write_time_sum_per_sec = 52; + float m_blk_write_time_sum_per_sec = 52 [deprecated = true]; + // Total time the statement spent reading shared blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). + float m_shared_blk_read_time_sum_per_sec = 63; + // Total time the statement spent writing shared blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). + float m_shared_blk_write_time_sum_per_sec = 64; + // Total time the statement spent reading shared blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). + float m_local_blk_read_time_sum_per_sec = 65; + // Total time the statement spent writing shared blocks, in milliseconds (if track_io_timing is enabled, otherwise zero). + float m_local_blk_write_time_sum_per_sec = 66; // Total time user spent in query. float m_cpu_user_time_sum_per_sec = 56; // Total time system spent in query. diff --git a/api/swagger/swagger-dev.json b/api/swagger/swagger-dev.json index ff8fe38d6e..cb544a74eb 100644 --- a/api/swagger/swagger-dev.json +++ b/api/swagger/swagger-dev.json @@ -786,48 +786,72 @@ "format": "float", "x-order": 54 }, + "m_shared_blk_read_time_sum_per_sec": { + "description": "Total time the statement spent reading shared blocks, in milliseconds (if track_io_timing is enabled, otherwise zero).", + "type": "number", + "format": "float", + "x-order": 55 + }, + "m_shared_blk_write_time_sum_per_sec": { + "description": "Total time the statement spent writing shared blocks, in milliseconds (if track_io_timing is enabled, otherwise zero).", + "type": "number", + "format": "float", + "x-order": 56 + }, + "m_local_blk_read_time_sum_per_sec": { + "description": "Total time the statement spent reading shared blocks, in milliseconds (if track_io_timing is enabled, otherwise zero).", + "type": "number", + "format": "float", + "x-order": 57 + }, + "m_local_blk_write_time_sum_per_sec": { + "description": "Total time the statement spent writing shared blocks, in milliseconds (if track_io_timing is enabled, otherwise zero).", + "type": "number", + "format": "float", + "x-order": 58 + }, "m_cpu_user_time_sum_per_sec": { "description": "Total time user spent in query.", "type": "number", "format": "float", - "x-order": 55 + "x-order": 59 }, "m_cpu_sys_time_sum_per_sec": { "description": "Total time system spent in query.", "type": "number", "format": "float", - "x-order": 56 + "x-order": 60 }, "m_plans_calls_sum_per_sec": { "description": "Total number of planned calls.", "type": "number", "format": "float", "title": "pg_stat_monitor 0.9 metrics", - "x-order": 57 + "x-order": 61 }, "m_wal_records_sum_per_sec": { "description": "Total number of WAL (Write-ahead logging) records.", "type": "number", "format": "float", - "x-order": 58 + "x-order": 62 }, "m_wal_fpi_sum_per_sec": { "description": "Total number of FPI (full page images) in WAL (Write-ahead logging) records.", "type": "number", "format": "float", - "x-order": 59 + "x-order": 63 }, "m_wal_bytes_sum_per_sec": { "description": "Total bytes of WAL (Write-ahead logging) records.", "type": "number", "format": "float", - "x-order": 60 + "x-order": 64 }, "m_plan_time_sum_per_sec": { "description": "Plan time in per seconds.", "type": "number", "format": "float", - "x-order": 61 + "x-order": 65 } } }, @@ -1669,48 +1693,72 @@ "format": "float", "x-order": 54 }, + "m_shared_blk_read_time_sum_per_sec": { + "description": "Total time the statement spent reading shared blocks, in milliseconds (if track_io_timing is enabled, otherwise zero).", + "type": "number", + "format": "float", + "x-order": 55 + }, + "m_shared_blk_write_time_sum_per_sec": { + "description": "Total time the statement spent writing shared blocks, in milliseconds (if track_io_timing is enabled, otherwise zero).", + "type": "number", + "format": "float", + "x-order": 56 + }, + "m_local_blk_read_time_sum_per_sec": { + "description": "Total time the statement spent reading shared blocks, in milliseconds (if track_io_timing is enabled, otherwise zero).", + "type": "number", + "format": "float", + "x-order": 57 + }, + "m_local_blk_write_time_sum_per_sec": { + "description": "Total time the statement spent writing shared blocks, in milliseconds (if track_io_timing is enabled, otherwise zero).", + "type": "number", + "format": "float", + "x-order": 58 + }, "m_cpu_user_time_sum_per_sec": { "description": "Total time user spent in query.", "type": "number", "format": "float", - "x-order": 55 + "x-order": 59 }, "m_cpu_sys_time_sum_per_sec": { "description": "Total time system spent in query.", "type": "number", "format": "float", - "x-order": 56 + "x-order": 60 }, "m_plans_calls_sum_per_sec": { "description": "Total number of planned calls.", "type": "number", "format": "float", "title": "pg_stat_monitor 0.9 metrics", - "x-order": 57 + "x-order": 61 }, "m_wal_records_sum_per_sec": { "description": "Total number of WAL (Write-ahead logging) records.", "type": "number", "format": "float", - "x-order": 58 + "x-order": 62 }, "m_wal_fpi_sum_per_sec": { "description": "Total number of FPI (full page images) in WAL (Write-ahead logging) records.", "type": "number", "format": "float", - "x-order": 59 + "x-order": 63 }, "m_wal_bytes_sum_per_sec": { "description": "Total bytes of WAL (Write-ahead logging) records.", "type": "number", "format": "float", - "x-order": 60 + "x-order": 64 }, "m_plan_time_sum_per_sec": { "description": "Plan time in per seconds.", "type": "number", "format": "float", - "x-order": 61 + "x-order": 65 } } }, diff --git a/descriptor.bin b/descriptor.bin index 857e9d4320b2ef384099d19ca2eedd06fea50be7..20c48812ffcfbb40c5051d01f345f91e1d731f6c 100644 GIT binary patch delta 7120 zcmaKxd2kg)9>?k5Yv5&uD?>tFUJh~}j~qM_2!s$0_o&@f5wO;>)-?s1S`VTu#C89$ z_PNL*Tb65CmJ?V+Ek#$+QrxwktEDRoA}Ry|fj~k+FcAScBw)#U?S6kV)6$` zoMwcZ8kXI$aB1W1cGvSVJ(k+Ez$wjHeE0mug}2{$XH(-f_cU7x?HU#>zPn*5Vhzm* zHY~fZDHO^PB{csk=z{y2tm#IEO5vdQFTJz5(PeMDr#Y1Fu;aY6G33388>qxTLUZQu zC3GUpscVe%riR7$-nMY@Wu4~4lN>aq=~|Af;l{l24oY&;s;iLzIi)jEI^|`9t#-&% zKj$SwWwbbWaq{Od(S$;v{OuY70d2EU} z5zpYEvPm7sj|6rTJ zVcvalq{RG{eZv_Uv~N8vLwVYg21}eRqdZB-l5dfmV7Ht`wn9H!2<_gYl8DZhZppXN z(9KqId7_*nr+D~By~r!FK0IJqw%>$mDiQrVV2wu zhrJ|X7R^+B$%P2DT9gaX_C!%GMB7;ioRbFi@fApa{cgBSR~SplD;otzOb% zOYXC`oRhcME6!sWX}+r%E%#A4(;r5OCEH16+3%glFm$^Tv}@;f*LcQKOCBIO-oE82 za|(|j7%N4$P^G(7if$bsBi&C{3dsS=%=VK-EZG5x-yi}7DzqX3MMt6{0!0Tas=a

RV0UA_l%>-x;C2A%>b11PVWtQwr>`56EsL+ZsC^{1rWl(e` zD#|U{BUN!C~o zMeqwE%L@viC=OReCmI~7ia=vu(3oV8B}<+n8s|j`EQ(302=){i$*KtU6s4qkC`zY^ zGQD5`D2gLg5$I_enWl4cvfRZhzM}iPMPvquA2`GvR>T$K0?#cvpX z!|@B^mlW^0Xlxsr|HAK#(Z64K&yq!z__t!o(tDflwM_o+AEJvIn-@m&2D0NH{9ycY zgs8X2m}Y*~9100+Wz~kz-PYaExO73|ZPqONTGK3$+{9jDn&~(G+{n9RZ+pqMxM4}- z(uQS?w}oapJGYE0ch=Z2dgfmk`ATHZHOoJ5p+vm$}cwqNxx)DJmu^(KJi82&x>kThm}e17({ATZ;&m zdbVk>wTQ9`WvjL1I)9Lfd*yl2T8I!+qFRX7>G9P zHXYb{5zP1UPY1SMV5b{(usTa_u$v-gWpy2}4H~Nhwm}5*Jgg4b22ogST<2gjEcu+E zVte+Na!###HD`cFo$Boj@Xv{0uE);+|C}f&GUhmZy(Kp?uQpVX>U!X)Qg}V^jT)~9 zzLD`;9DJrFUlf#YKf2zWXOAi~hgHu6jw*%E1pcB3W_j6X0)J6puRGhpXIb(kL51!< zi1Fww;HXmgEZ{GR;CK(81^gv}Poq)?pKZxa_M2s9@ubh?5?ky1zxp$bx?$9v#{LNH`QHWH;Zt_qG8UWS!KL@!8R+*7ii^;@qbj9p?ndw zcg{02)0_o!bmD@^2L@65+p7n$?pRfJWWJdda>y}E`imQ*RrYTXja?ZSnJMV`wksPx11h3}`PEOjh|m0M*VE-g3`-sXkz;T~jE7YG=w#wH?rYqEh?8 zwdVMI_fuTZcHaH$r$XmQgCE`x(X0c_26^S+_@>1iW}jGVhP=;tM&RgRhnr~!6bFeS zcJ4Z4%6DG5f_8ALgH+_4XK<#E(5w^9u6#>+Ngi2eh88LOBgQ)!cawY!x{Js?MG^Ed z@9|I`?q&O!7oje~JHfpYA2Z%X1;zX>-1@{{oz_OFSeU4s8*KUZ0XaM-E8S&i#s!W5bh^Zmtzm(C@Xvqfb7X2Ik(wxC*B+SqbTTiV!ij4g$ZWiP@f>@Dleys3K`J;C1u z?xonv=m|s$IA7Fey;|CZYVEngEM>-I`fbYHV_1?vJa=ke>*1;B3 zD@zAkF7Vf!J6j!Wxj>-|?~XW#@K^lR=!Oq6jJB0<8z!&976bOqU>;$ z*NNMoGOJ^U*n(A{Z*?aQGmf&t4>SI)#t$?8 zt;V|%{!ZiFG3HUB_-^LE(|kAc-)X)F;qNuy!#K(c?_vCVjrTDAJ>yT4GYLl!UlE{; z@LwtCy2j?E@!F@&WDz^U9@MKR>v`xjw?46@j#{cR%zZyfQ%Qp6z8EWrg=L zzA}KXcK3eiWqf5IHRRz(5ndJW@9Cq?ETBU1N10z0NK*cz%&!Xg59g-{ug0Gvh$e(uhi0Jhj}`hM1}30P`9?PuMZ0A54}_WwA_d1O>zNZ2rqfaJ4~ NM*{H!&zkGr|3B3rM8*IB delta 4513 zcmZ{nYiv}<6~{ftgT20EFdo0w>(}nu*ck8&90KOmKtH7lNlBCzH4Pyx9};krP@fPP6HLSLPHIgvE4Pk=49(-P#pvR{#8|7n;{B`^5%r3rgOVh5B2iCtq#WwdU=W zs$gEB4Nhh7N9$kMu*M^6t=#5S&#zm%>NU=;+5p2) zk}^tW^~)kR{$jhlN_3e__<6N2p0-cUoh$woUvxqKIv~o;fon1{t;EW*(q&3&D&?nY z`5}d))+S-4*_i?@<0Q*NuNW~V!zMf`17>cGder=CREDEISpYK5OOd^Uve45;Lv6i2ajG9lz;ar?(yBNC9s4Qa5ah*%F zJjlAi236@g|62yje4+%zK_)6)qEySz&E)H{qN#Ke{v>H7+)D)~RF0nj{5j`vrV9H?9K~|BUfJq0Hh7+?E*76Wc5`r)+knkGO?siqhy@r#-RS=&@Hl40z4~sY5l#!TkIvu*6WL>qEz0f7PtHvxM;m=|P!JkQ9)iZ&g zA(fwKawhOIR9KXl!dY6LB^gQxX2Ajpe`Cyo#aU9hz5*6!sh}`nQKRKKdpX72Pgo5+ zknufg;Bk(Wzb|UwaV~jD)@pg4q`xR?VS$8iQ45Rnq_Puj)WYIC<>n{asM9eyMA9Fm z4jxGO9(C{-B9)i$sDsB41w#psdM$@Z)+Yq@(oSUhi8M}3_UEe}p2Ji$gB3CRb6pS9 zVXCRKGA$`nC`HQ=qFigTHHjne2m@XSdW15vyb$OJ=^PhD@dA-{ivlRZbT724fyrJ7 zGAnOfLj_i6$3#p)C#- zSxYRE=|ZPnrIbu_IU(_zgkKtd>G%ck%ZO)ASO+K3$g`$P zs51JpI6fxSqnV<~G)+Lal`{PH1lMws+wG9YaZ6} zO+nSpQ5mgM#YN@rG(U_dds9?S$EnI|YMz!`&8Y@eXU^8C{L-kang`WZF|Epa%vR0U za+{zk=fHYnwn}T9kLg3oTSD_OecMDJ;^OmxZxa=j)>0d9(sDcFe`!+>n=!_lfFtGM zO~AMNcoXpLj6Y-J3$$zzRBoQwtA1$X4GVxH<>3o}w}?QAJNg3PEdm#ZM{IndmOIV< zIciD6LSQ?6Y$33nB2eaH3xVwv(F&{D#ujP0%S0OSncp&7P0M5tkOLq zWv>vSXToOxgsL{JjcP$`k4Rpxt%98G;jCAL-lF66+A1=f4S_1GTSeAXf4#N|ck^IH z;`@QnvYU05Z=1kJj6Vhl;nXIyv$*q|_1h*wMfUpL@X{Qs=aPBtA@v@;^+ddEt_qgR z8t-yzmakN4Ip4k9)|j;`Rq+D_zS`FD)wZN@#dmMDb^qs9dro-Q+Ww!Y4w?DKx7=&( zeF~Z1-&UpZL(i$F1^t)exYzbC7EyD1hib^)DC~#(2Oh4QDEi=rc+_<6RP|Gw8TbOC zm8r`Cz3r#Che8iUHz9R^}^IVw@a0kIH#DPFL~qlQfb7hw}M@ir^ZDhJ zk1>we!;dk3*~gDDewp#5b`#wwUm+?D&2gKkY*&r3ZgxT1bLnQ6D-*Zd}WP#*Q0=wTeOhxaf(>f=3(kNS8o%40s>8)F^`kMCuE%;$TVAM^P> zl*fI(k8#8v-pBa3kM}V?&Ug#ilhBX)Eux~(?8;d-wq3cliqF)q&q7o#zgJ8s&RL-bd%Oh=E7K z<4-exk1}#x{xlDNkMav$eh}peqUmmVkWVDURw9Po1mCNj;Ro4nf^;Mi!)}5qsw@j9 bCoYxur%+1BQdX+utJ!^u|7oB4^TGcC(bD6N diff --git a/managed/services/qan/client.go b/managed/services/qan/client.go index b84f4b87e8..0ad26286fb 100644 --- a/managed/services/qan/client.go +++ b/managed/services/qan/client.go @@ -541,10 +541,14 @@ func fillPostgreSQL(mb *qanpb.MetricsBucket, bp *agentpb.MetricsBucket_PostgreSQ mb.MTempBlksWrittenCnt = bp.MTempBlksWrittenCnt mb.MTempBlksWrittenSum = bp.MTempBlksWrittenSum - mb.MBlkReadTimeCnt = bp.MBlkReadTimeCnt - mb.MBlkReadTimeSum = bp.MBlkReadTimeSum - mb.MBlkWriteTimeCnt = bp.MBlkWriteTimeCnt - mb.MBlkWriteTimeSum = bp.MBlkWriteTimeSum + mb.MSharedBlkReadTimeCnt = bp.MSharedBlkReadTimeCnt + mb.MSharedBlkReadTimeSum = bp.MSharedBlkReadTimeSum + mb.MSharedBlkWriteTimeCnt = bp.MSharedBlkWriteTimeCnt + mb.MSharedBlkWriteTimeSum = bp.MSharedBlkWriteTimeSum + mb.MLocalBlkReadTimeCnt = bp.MLocalBlkReadTimeCnt + mb.MLocalBlkReadTimeSum = bp.MLocalBlkReadTimeSum + mb.MLocalBlkWriteTimeCnt = bp.MLocalBlkWriteTimeCnt + mb.MLocalBlkWriteTimeSum = bp.MLocalBlkWriteTimeSum mb.MCpuSysTimeCnt = bp.MCpuSysTimeCnt mb.MCpuSysTimeSum = bp.MCpuSysTimeSum diff --git a/managed/services/qan/client_test.go b/managed/services/qan/client_test.go index 700840abd2..d12fbd2f69 100644 --- a/managed/services/qan/client_test.go +++ b/managed/services/qan/client_test.go @@ -301,36 +301,40 @@ func TestClient(t *testing.T) { MQueryTimeSum: 55, }, Postgresql: &agentpb.MetricsBucket_PostgreSQL{ - MRowsCnt: 1, - MRowsSum: 4079, - MSharedBlksHitCnt: 1, - MSharedBlksHitSum: 33, - MSharedBlksReadCnt: 1, - MSharedBlksReadSum: 2, - MSharedBlksDirtiedCnt: 3, - MSharedBlksDirtiedSum: 4, - MSharedBlksWrittenCnt: 5, - MSharedBlksWrittenSum: 6, - MLocalBlksHitCnt: 7, - MLocalBlksHitSum: 8, - MLocalBlksReadCnt: 9, - MLocalBlksReadSum: 10, - MLocalBlksDirtiedCnt: 11, - MLocalBlksDirtiedSum: 12, - MLocalBlksWrittenCnt: 13, - MLocalBlksWrittenSum: 14, - MTempBlksReadCnt: 15, - MTempBlksReadSum: 16, - MTempBlksWrittenCnt: 17, - MTempBlksWrittenSum: 18, - MBlkReadTimeCnt: 19, - MBlkReadTimeSum: 20, - MBlkWriteTimeCnt: 21, - MBlkWriteTimeSum: 22, - MCpuSysTimeCnt: 23, - MCpuSysTimeSum: 24, - MCpuUserTimeCnt: 25, - MCpuUserTimeSum: 26, + MRowsCnt: 1, + MRowsSum: 4079, + MSharedBlksHitCnt: 1, + MSharedBlksHitSum: 33, + MSharedBlksReadCnt: 1, + MSharedBlksReadSum: 2, + MSharedBlksDirtiedCnt: 3, + MSharedBlksDirtiedSum: 4, + MSharedBlksWrittenCnt: 5, + MSharedBlksWrittenSum: 6, + MLocalBlksHitCnt: 7, + MLocalBlksHitSum: 8, + MLocalBlksReadCnt: 9, + MLocalBlksReadSum: 10, + MLocalBlksDirtiedCnt: 11, + MLocalBlksDirtiedSum: 12, + MLocalBlksWrittenCnt: 13, + MLocalBlksWrittenSum: 14, + MTempBlksReadCnt: 15, + MTempBlksReadSum: 16, + MTempBlksWrittenCnt: 17, + MTempBlksWrittenSum: 18, + MSharedBlkReadTimeCnt: 19, + MSharedBlkReadTimeSum: 20, + MSharedBlkWriteTimeCnt: 21, + MSharedBlkWriteTimeSum: 22, + MLocalBlkReadTimeCnt: 23, + MLocalBlkReadTimeSum: 24, + MLocalBlkWriteTimeCnt: 25, + MLocalBlkWriteTimeSum: 26, + MCpuSysTimeCnt: 27, + MCpuSysTimeSum: 28, + MCpuUserTimeCnt: 29, + MCpuUserTimeSum: 30, }, }, } @@ -364,37 +368,41 @@ func TestClient(t *testing.T) { "_service_label": "bar", }, - MRowsSentCnt: 1, - MRowsSentSum: 4079, - MSharedBlksHitCnt: 1, - MSharedBlksHitSum: 33, - MSharedBlksReadCnt: 1, - MSharedBlksReadSum: 2, - MSharedBlksDirtiedCnt: 3, - MSharedBlksDirtiedSum: 4, - MSharedBlksWrittenCnt: 5, - MSharedBlksWrittenSum: 6, - MLocalBlksHitCnt: 7, - MLocalBlksHitSum: 8, - MLocalBlksReadCnt: 9, - MLocalBlksReadSum: 10, - MLocalBlksDirtiedCnt: 11, - MLocalBlksDirtiedSum: 12, - MLocalBlksWrittenCnt: 13, - MLocalBlksWrittenSum: 14, - MTempBlksReadCnt: 15, - MTempBlksReadSum: 16, - MTempBlksWrittenCnt: 17, - MTempBlksWrittenSum: 18, - MBlkReadTimeCnt: 19, - MBlkReadTimeSum: 20, - MBlkWriteTimeCnt: 21, - MBlkWriteTimeSum: 22, - MCpuSysTimeCnt: 23, - MCpuSysTimeSum: 24, - MCpuUserTimeCnt: 25, - MCpuUserTimeSum: 26, - HistogramItems: []string{}, + MRowsSentCnt: 1, + MRowsSentSum: 4079, + MSharedBlksHitCnt: 1, + MSharedBlksHitSum: 33, + MSharedBlksReadCnt: 1, + MSharedBlksReadSum: 2, + MSharedBlksDirtiedCnt: 3, + MSharedBlksDirtiedSum: 4, + MSharedBlksWrittenCnt: 5, + MSharedBlksWrittenSum: 6, + MLocalBlksHitCnt: 7, + MLocalBlksHitSum: 8, + MLocalBlksReadCnt: 9, + MLocalBlksReadSum: 10, + MLocalBlksDirtiedCnt: 11, + MLocalBlksDirtiedSum: 12, + MLocalBlksWrittenCnt: 13, + MLocalBlksWrittenSum: 14, + MTempBlksReadCnt: 15, + MTempBlksReadSum: 16, + MTempBlksWrittenCnt: 17, + MTempBlksWrittenSum: 18, + MSharedBlkReadTimeCnt: 19, + MSharedBlkReadTimeSum: 20, + MSharedBlkWriteTimeCnt: 21, + MSharedBlkWriteTimeSum: 22, + MLocalBlkReadTimeCnt: 23, + MLocalBlkReadTimeSum: 24, + MLocalBlkWriteTimeCnt: 25, + MLocalBlkWriteTimeSum: 26, + MCpuSysTimeCnt: 27, + MCpuSysTimeSum: 28, + MCpuUserTimeCnt: 29, + MCpuUserTimeSum: 30, + HistogramItems: []string{}, }, }} c.AssertCalled(t, "Collect", ctx, expectedRequest) diff --git a/qan-api2/migrations/sql/17_shared_blk_columns.down.sql b/qan-api2/migrations/sql/17_shared_blk_columns.down.sql new file mode 100644 index 0000000000..ed66b42396 --- /dev/null +++ b/qan-api2/migrations/sql/17_shared_blk_columns.down.sql @@ -0,0 +1,11 @@ +ALTER TABLE metrics + DROP COLUMN m_local_blk_read_time_cnt, + DROP COLUMN m_local_blk_read_time_sum, + DROP COLUMN m_local_blk_write_time_cnt, + DROP COLUMN m_local_blk_write_time_sum, + RENAME COLUMN m_shared_blk_read_time_cnt to m_blk_read_time_cnt, + RENAME COLUMN m_shared_blk_read_time_sum to m_blk_read_time_sum, + COMMENT COLUMN m_blk_read_time_sum 'Total time the statement spent reading blocks, in milliseconds (if track_io_timing is enabled, otherwise zero).', + RENAME COLUMN m_shared_blk_write_time_cnt to m_blk_write_time_cnt, + RENAME COLUMN m_shared_blk_write_time_sum to m_blk_write_time_sum, + COMMENT COLUMN m_blk_write_time_sum 'Total time the statement spent writing blocks, in milliseconds (if track_io_timing is enabled, otherwise zero).'; \ No newline at end of file diff --git a/qan-api2/migrations/sql/17_shared_blk_columns.up.sql b/qan-api2/migrations/sql/17_shared_blk_columns.up.sql new file mode 100644 index 0000000000..01a7707f0a --- /dev/null +++ b/qan-api2/migrations/sql/17_shared_blk_columns.up.sql @@ -0,0 +1,11 @@ +ALTER TABLE metrics + RENAME COLUMN m_blk_read_time_cnt to m_shared_blk_read_time_cnt, + RENAME COLUMN m_blk_read_time_sum to m_shared_blk_read_time_sum, + COMMENT COLUMN m_shared_blk_read_time_sum 'Total time the statement spent reading shared blocks, in milliseconds (if track_io_timing is enabled, otherwise zero).', + RENAME COLUMN m_blk_write_time_cnt to m_shared_blk_write_time_cnt, + RENAME COLUMN m_blk_write_time_sum to m_shared_blk_write_time_sum, + COMMENT COLUMN m_shared_blk_write_time_sum 'Total time the statement spent writing shared blocks, in milliseconds (if track_io_timing is enabled, otherwise zero).', + ADD COLUMN m_local_blk_read_time_cnt Float32, + ADD COLUMN m_local_blk_read_time_sum Float32 COMMENT 'Total time the statement spent reading local blocks, in milliseconds (if track_io_timing is enabled, otherwise zero).', + ADD COLUMN m_local_blk_write_time_cnt Float32, + ADD COLUMN m_local_blk_write_time_sum Float32 COMMENT 'Total time the statement spent writing local blocks, in milliseconds (if track_io_timing is enabled, otherwise zero).'; \ No newline at end of file diff --git a/qan-api2/models/base.go b/qan-api2/models/base.go index 45a3493b98..19fae7aa33 100644 --- a/qan-api2/models/base.go +++ b/qan-api2/models/base.go @@ -79,8 +79,10 @@ var sparklinePointAllFields = []string{ "m_local_blks_written_sum_per_sec", "m_temp_blks_read_sum_per_sec", "m_temp_blks_written_sum_per_sec", - "m_blk_read_time_sum_per_sec", - "m_blk_write_time_sum_per_sec", + "m_shared_blk_read_time_sum_per_sec", + "m_shared_blk_write_time_sum_per_sec", + "m_local_blk_read_time_sum_per_sec", + "m_local_blk_write_time_sum_per_sec", "m_cpu_user_time_sum_per_sec", "m_cpu_sys_time_sum_per_sec", "m_plans_calls_sum_per_sec", @@ -145,8 +147,10 @@ func getPointFieldsList(point *qanpb.Point, fields []string) []interface{} { "m_local_blks_written_sum_per_sec": &point.MLocalBlksWrittenSumPerSec, "m_temp_blks_read_sum_per_sec": &point.MTempBlksReadSumPerSec, "m_temp_blks_written_sum_per_sec": &point.MTempBlksWrittenSumPerSec, - "m_blk_read_time_sum_per_sec": &point.MBlkReadTimeSumPerSec, - "m_blk_write_time_sum_per_sec": &point.MBlkWriteTimeSumPerSec, + "m_shared_blk_read_time_sum_per_sec": &point.MSharedBlkReadTimeSumPerSec, + "m_shared_blk_write_time_sum_per_sec": &point.MSharedBlkWriteTimeSumPerSec, + "m_local_blk_read_time_sum_per_sec": &point.MLocalBlkReadTimeSumPerSec, + "m_local_blk_write_time_sum_per_sec": &point.MLocalBlkWriteTimeSumPerSec, "m_cpu_user_time_sum_per_sec": &point.MCpuUserTimeSumPerSec, "m_cpu_sys_time_sum_per_sec": &point.MCpuSysTimeSumPerSec, "m_plans_calls_sum_per_sec": &point.MPlansCallsSumPerSec, @@ -325,10 +329,14 @@ func isValidMetricColumn(name string) bool { "m_temp_blks_read_sum": {}, "m_temp_blks_written_cnt": {}, "m_temp_blks_written_sum": {}, - "m_blk_read_time_cnt": {}, - "m_blk_read_time_sum": {}, - "m_blk_write_time_cnt": {}, - "m_blk_write_time_sum": {}, + "m_shared_blk_read_time_cnt": {}, + "m_shared_blk_read_time_sum": {}, + "m_shared_blk_write_time_cnt": {}, + "m_shared_blk_write_time_sum": {}, + "m_local_blk_read_time_cnt": {}, + "m_local_blk_read_time_sum": {}, + "m_local_blk_write_time_cnt": {}, + "m_local_blk_write_time_sum": {}, "m_cpu_user_time_cnt": {}, "m_cpu_sys_time_cnt": {}, "m_cpu_user_time_sum": {}, diff --git a/qan-api2/models/data_ingestion.go b/qan-api2/models/data_ingestion.go index d530832078..a5552b3a56 100644 --- a/qan-api2/models/data_ingestion.go +++ b/qan-api2/models/data_ingestion.go @@ -237,10 +237,14 @@ const insertSQL = ` m_temp_blks_read_sum, m_temp_blks_written_cnt, m_temp_blks_written_sum, - m_blk_read_time_cnt, - m_blk_read_time_sum, - m_blk_write_time_cnt, - m_blk_write_time_sum, + m_shared_blk_read_time_cnt, + m_shared_blk_read_time_sum, + m_shared_blk_write_time_cnt, + m_shared_blk_write_time_sum, + m_local_blk_read_time_cnt, + m_local_blk_read_time_sum, + m_local_blk_write_time_cnt, + m_local_blk_write_time_sum, m_cpu_user_time_cnt, m_cpu_user_time_sum, m_cpu_sys_time_cnt, @@ -463,10 +467,14 @@ const insertSQL = ` :m_temp_blks_read_sum, :m_temp_blks_written_cnt, :m_temp_blks_written_sum, - :m_blk_read_time_cnt, - :m_blk_read_time_sum, - :m_blk_write_time_cnt, - :m_blk_write_time_sum, + :m_shared_blk_read_time_cnt, + :m_shared_blk_read_time_sum, + :m_shared_blk_write_time_cnt, + :m_shared_blk_write_time_sum, + :m_local_blk_read_time_cnt, + :m_local_blk_read_time_sum, + :m_local_blk_write_time_cnt, + :m_local_blk_write_time_sum, :m_cpu_user_time_cnt, :m_cpu_user_time_sum, :m_cpu_sys_time_cnt, diff --git a/qan-api2/models/metrics.go b/qan-api2/models/metrics.go index 6db8380acf..3932927bc2 100644 --- a/qan-api2/models/metrics.go +++ b/qan-api2/models/metrics.go @@ -290,8 +290,10 @@ SUM(m_local_blks_written_sum) AS m_local_blks_written_sum, SUM(m_temp_blks_read_sum) AS m_temp_blks_read_sum, SUM(m_temp_blks_written_sum) AS m_temp_blks_written_sum, -SUM(m_blk_read_time_sum) AS m_blk_read_time_sum, -SUM(m_blk_write_time_sum) AS m_blk_write_time_sum, +SUM(m_shared_blk_read_time_sum) AS m_shared_blk_read_time_sum, +SUM(m_shared_blk_write_time_sum) AS m_shared_blk_write_time_sum, +SUM(m_local_blk_read_time_sum) AS m_local_blk_read_time_sum, +SUM(m_local_blk_write_time_sum) AS m_local_blk_write_time_sum, SUM(m_cpu_user_time_sum) AS m_cpu_user_time_sum, SUM(m_cpu_sys_time_sum) AS m_cpu_sys_time_sum, @@ -389,8 +391,10 @@ if(SUM(m_local_blks_dirtied_cnt) == 0, NaN, SUM(m_local_blks_dirtied_sum) / time if(SUM(m_local_blks_written_cnt) == 0, NaN, SUM(m_local_blks_written_sum) / time_frame) AS m_local_blks_written_sum_per_sec, if(SUM(m_temp_blks_read_cnt) == 0, NaN, SUM(m_temp_blks_read_sum) / time_frame) AS m_temp_blks_read_sum_per_sec, if(SUM(m_temp_blks_written_cnt) == 0, NaN, SUM(m_temp_blks_written_sum) / time_frame) AS m_temp_blks_written_sum_per_sec, -if(SUM(m_blk_read_time_cnt) == 0, NaN, SUM(m_blk_read_time_sum) / time_frame) AS m_blk_read_time_sum_per_sec, -if(SUM(m_blk_write_time_cnt) == 0, NaN, SUM(m_blk_write_time_sum) / time_frame) AS m_blk_write_time_sum_per_sec, +if(SUM(m_shared_blk_read_time_cnt) == 0, NaN, SUM(m_shared_blk_read_time_sum) / time_frame) AS m_shared_blk_read_time_sum_per_sec, +if(SUM(m_shared_blk_write_time_cnt) == 0, NaN, SUM(m_shared_blk_write_time_sum) / time_frame) AS m_shared_blk_write_time_sum_per_sec, +if(SUM(m_local_blk_read_time_cnt) == 0, NaN, SUM(m_local_blk_read_time_sum) / time_frame) AS m_local_blk_read_time_sum_per_sec, +if(SUM(m_local_blk_write_time_cnt) == 0, NaN, SUM(m_local_blk_write_time_sum) / time_frame) AS m_local_blk_write_time_sum_per_sec, if(SUM(m_cpu_user_time_cnt) == 0, NaN, SUM(m_cpu_user_time_sum) / time_frame) AS m_cpu_user_time_sum_per_sec, if(SUM(m_cpu_sys_time_cnt) == 0, NaN, SUM(m_cpu_sys_time_sum) / time_frame) AS m_cpu_sys_time_sum_per_sec, if(SUM(m_plans_calls_cnt) == 0, NaN, SUM(m_plans_calls_sum) / time_frame) AS m_plans_calls_sum_per_sec, @@ -500,6 +504,11 @@ func (m *Metrics) SelectSparklines(ctx context.Context, periodStartFromSec, peri if err != nil { return nil, errors.Wrap(err, "DimensionReport scan error") } + + // Fill deprecated fields for compatibility + p.MBlkReadTimeSumPerSec = p.MSharedBlksReadSumPerSec + p.MBlkWriteTimeSumPerSec = p.MSharedBlkWriteTimeSumPerSec + resultsWithGaps[p.Point] = &p } diff --git a/qan-api2/services/analytics/base.go b/qan-api2/services/analytics/base.go index 5d91cf5014..184f8626d8 100644 --- a/qan-api2/services/analytics/base.go +++ b/qan-api2/services/analytics/base.go @@ -77,6 +77,10 @@ var sumColumnNames = map[string]struct{}{ "temp_blks_written": {}, "blk_read_time": {}, "blk_write_time": {}, + "shared_blk_read_time": {}, + "shared_blk_write_time": {}, + "local_blk_read_time": {}, + "local_blk_write_time": {}, "cpu_user_time": {}, "cpu_sys_time": {}, "plans_calls": {}, @@ -191,16 +195,20 @@ func isDimension(name string) bool { // isTimeMetric checks if a metric in the time metrics group. func isTimeMetric(name string) bool { timeColumnNames := map[string]struct{}{ - "query_time": {}, - "lock_time": {}, - "innodb_io_r_wait": {}, - "innodb_rec_lock_wait": {}, - "innodb_queue_wait": {}, - "blk_read_time": {}, - "blk_write_time": {}, - "cpu_user_time": {}, - "cpu_sys_time": {}, - "plan_time": {}, + "query_time": {}, + "lock_time": {}, + "innodb_io_r_wait": {}, + "innodb_rec_lock_wait": {}, + "innodb_queue_wait": {}, + "blk_read_time": {}, + "blk_write_time": {}, + "shared_blk_read_time": {}, + "shared_blk_write_time": {}, + "local_blk_read_time": {}, + "local_blk_write_time": {}, + "cpu_user_time": {}, + "cpu_sys_time": {}, + "plan_time": {}, } _, ok := timeColumnNames[name] diff --git a/qan-api2/services/analytics/metrics_names.go b/qan-api2/services/analytics/metrics_names.go index 4f913d80dd..e5090b64b5 100644 --- a/qan-api2/services/analytics/metrics_names.go +++ b/qan-api2/services/analytics/metrics_names.go @@ -23,69 +23,73 @@ import ( // metricsNames is a map of metrics names and keys. var metricsNames = map[string]string{ - "load": "Load", - "count": "Count", - "latency": "Latency", - "query_time": "Query Time", - "lock_time": "Lock Time", - "rows_sent": "Rows Sent", - "rows_examined": "Rows Examined", - "rows_affected": "Rows Affected", - "rows_read": "Rows Read", - "merge_passes": "Merge Passes", - "innodb_io_r_ops": "Innodb IO R Ops", - "innodb_io_r_bytes": "Innodb IO R Bytes", - "innodb_io_r_wait": "Innodb IO R Wait", - "innodb_rec_lock_wait": "Innodb Rec Lock Wait", - "innodb_queue_wait": "Innodb Queue Wait", - "innodb_pages_distinct": "Innodb Pages Distinct", - "query_length": "Query Length", - "bytes_sent": "Bytes Sent", - "tmp_tables": "Tmp Tables", - "tmp_disk_tables": "Tmp Disk Tables", - "tmp_table_sizes": "Tmp Table Sizes", - "qc_hit": "Query Cache Hit", - "full_scan": "Full Scan", - "full_join": "Full Join", - "tmp_table": "Tmp Table", - "tmp_table_on_disk": "Tmp Table on Disk", - "filesort": "Filesort", - "filesort_on_disk": "Filesort on Disk", - "select_full_range_join": "Select Full Range Join", - "select_range": "Select Range", - "select_range_check": "Select Range Check", - "sort_range": "Sort Range", - "sort_rows": "Sort Rows", - "sort_scan": "Sort Scan", - "no_index_used": "No Index Used", - "no_good_index_used": "No Good Index Used", - "docs_returned": "Docs Returned", - "response_length": "Response Length", - "docs_scanned": "Docs Scanned", - "m_shared_blks_hit": "Shared blocks cache hits", - "m_shared_blks_read": "Shared blocks read", - "m_shared_blks_dirtied": "Shared blocks dirtied", - "m_shared_blks_written": "Shared blocks written", - "m_local_blks_hit": "Local blocks cache hits", - "m_local_blks_read": "Local blocks read", - "m_local_blks_dirtied": "Local blocks dirtied", - "m_local_blks_written": "Local blocks written", - "m_temp_blks_read": "Temp blocks read", - "m_temp_blks_written": "Temp blocks written", - "m_blk_read_time": "Time the statement spent reading blocks", - "m_blk_write_time": "Time the statement spent writing blocks", - "m_cpu_user_time": "Total time user spent in query", - "m_cpu_sys_time": "Total time system spent in query", - "m_plans_calls": "Total number of planned calls", - "m_wal_records": "Total number of WAL (Write-ahead logging) records", - "m_wal_fpi": "Total number of FPI (full page images) in WAL (Write-ahead logging) records", - "m_wal_bytes": "Total bytes of WAL (Write-ahead logging) records", - "m_plan_time": "Total plan time spent in query", - "cmd_type": "Type of SQL command used in the query", - "top_queryid": "Top parent query ID", - "top_query": "Top query plain text", - "application_name": "Name provided by pg_stat_monitor", - "planid": "Plan ID for query", + "load": "Load", + "count": "Count", + "latency": "Latency", + "query_time": "Query Time", + "lock_time": "Lock Time", + "rows_sent": "Rows Sent", + "rows_examined": "Rows Examined", + "rows_affected": "Rows Affected", + "rows_read": "Rows Read", + "merge_passes": "Merge Passes", + "innodb_io_r_ops": "Innodb IO R Ops", + "innodb_io_r_bytes": "Innodb IO R Bytes", + "innodb_io_r_wait": "Innodb IO R Wait", + "innodb_rec_lock_wait": "Innodb Rec Lock Wait", + "innodb_queue_wait": "Innodb Queue Wait", + "innodb_pages_distinct": "Innodb Pages Distinct", + "query_length": "Query Length", + "bytes_sent": "Bytes Sent", + "tmp_tables": "Tmp Tables", + "tmp_disk_tables": "Tmp Disk Tables", + "tmp_table_sizes": "Tmp Table Sizes", + "qc_hit": "Query Cache Hit", + "full_scan": "Full Scan", + "full_join": "Full Join", + "tmp_table": "Tmp Table", + "tmp_table_on_disk": "Tmp Table on Disk", + "filesort": "Filesort", + "filesort_on_disk": "Filesort on Disk", + "select_full_range_join": "Select Full Range Join", + "select_range": "Select Range", + "select_range_check": "Select Range Check", + "sort_range": "Sort Range", + "sort_rows": "Sort Rows", + "sort_scan": "Sort Scan", + "no_index_used": "No Index Used", + "no_good_index_used": "No Good Index Used", + "docs_returned": "Docs Returned", + "response_length": "Response Length", + "docs_scanned": "Docs Scanned", + "m_shared_blks_hit": "Shared blocks cache hits", + "m_shared_blks_read": "Shared blocks read", + "m_shared_blks_dirtied": "Shared blocks dirtied", + "m_shared_blks_written": "Shared blocks written", + "m_local_blks_hit": "Local blocks cache hits", + "m_local_blks_read": "Local blocks read", + "m_local_blks_dirtied": "Local blocks dirtied", + "m_local_blks_written": "Local blocks written", + "m_temp_blks_read": "Temp blocks read", + "m_temp_blks_written": "Temp blocks written", + "m_blk_read_time": "Time the statement spent reading blocks [deprecated]", + "m_blk_write_time": "Time the statement spent writing blocks [deprecated]", + "m_shared_blk_read_time": "Time the statement spent reading shared blocks", + "m_shared_blk_write_time": "Time the statement spent writing shared blocks", + "m_local_blk_read_time": "Time the statement spent reading local_blocks", + "m_local_blk_write_time": "Time the statement spent writing local_blocks", + "m_cpu_user_time": "Total time user spent in query", + "m_cpu_sys_time": "Total time system spent in query", + "m_plans_calls": "Total number of planned calls", + "m_wal_records": "Total number of WAL (Write-ahead logging) records", + "m_wal_fpi": "Total number of FPI (full page images) in WAL (Write-ahead logging) records", + "m_wal_bytes": "Total bytes of WAL (Write-ahead logging) records", + "m_plan_time": "Total plan time spent in query", + "cmd_type": "Type of SQL command used in the query", + "top_queryid": "Top parent query ID", + "top_query": "Top query plain text", + "application_name": "Name provided by pg_stat_monitor", + "planid": "Plan ID for query", } // GetMetricsNames implements rpc to get list of available metrics. diff --git a/qan-api2/test_data/GetMetrics_group_by_queryid.json b/qan-api2/test_data/GetMetrics_group_by_queryid.json index c383b330df..3d7856ba32 100644 --- a/qan-api2/test_data/GetMetrics_group_by_queryid.json +++ b/qan-api2/test_data/GetMetrics_group_by_queryid.json @@ -5,6 +5,18 @@ }, "blk_write_time": { + }, + "shared_blk_read_time": { + + }, + "shared_blk_write_time": { + + }, + "local_blk_read_time": { + + }, + "local_blk_write_time": { + }, "bytes_sent": { "rate": 2.1030555, @@ -250,6 +262,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -304,6 +320,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -363,6 +383,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -417,6 +441,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -491,6 +519,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -545,6 +577,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -599,6 +635,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -663,6 +703,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -712,6 +756,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -776,6 +824,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -830,6 +882,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -884,6 +940,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -933,6 +993,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -992,6 +1056,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -1046,6 +1114,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -1095,6 +1167,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -1159,6 +1235,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -1208,6 +1288,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -1257,6 +1341,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -1311,6 +1399,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -1360,6 +1452,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -1409,6 +1505,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -1458,6 +1558,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -1522,6 +1626,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -1576,6 +1684,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -1630,6 +1742,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -1699,6 +1815,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -1763,6 +1883,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -1817,6 +1941,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -1866,6 +1994,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -1925,6 +2057,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -1999,6 +2135,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -2053,6 +2193,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -2112,6 +2256,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -2161,6 +2309,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -2215,6 +2367,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -2264,6 +2420,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -2313,6 +2473,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -2362,6 +2526,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -2411,6 +2579,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -2480,6 +2652,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -2534,6 +2710,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -2588,6 +2768,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -2637,6 +2821,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -2686,6 +2874,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -2735,6 +2927,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -2799,6 +2995,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -2853,6 +3053,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -2902,6 +3106,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -2956,6 +3164,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -3005,6 +3217,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -3054,6 +3270,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -3103,6 +3323,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -3157,6 +3381,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -3211,6 +3439,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -3226,6 +3458,18 @@ }, "blk_write_time": { + }, + "shared_blk_read_time": { + + }, + "shared_blk_write_time": { + + }, + "local_blk_read_time": { + + }, + "local_blk_write_time": { + }, "bytes_sent": { "rate": 593.79974, diff --git a/qan-api2/test_data/GetMetrics_sparklines_90_points.json b/qan-api2/test_data/GetMetrics_sparklines_90_points.json index 91cedf727d..c64546e030 100644 --- a/qan-api2/test_data/GetMetrics_sparklines_90_points.json +++ b/qan-api2/test_data/GetMetrics_sparklines_90_points.json @@ -5,6 +5,18 @@ }, "blk_write_time": { + }, + "shared_blk_read_time": { + + }, + "shared_blk_write_time": { + + }, + "local_blk_read_time": { + + }, + "local_blk_write_time": { + }, "bytes_sent": { "rate": 2.7203703, @@ -255,6 +267,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -309,6 +325,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -463,6 +483,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -547,6 +571,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -616,6 +644,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -670,6 +702,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -769,6 +805,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -823,6 +863,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -897,6 +941,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -961,6 +1009,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -1020,6 +1072,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -1114,6 +1170,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -1203,6 +1263,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -1228,6 +1292,18 @@ }, "blk_write_time": { + }, + "shared_blk_read_time": { + + }, + "shared_blk_write_time": { + + }, + "local_blk_read_time": { + + }, + "local_blk_write_time": { + }, "bytes_sent": { "rate": 604.05927, diff --git a/qan-api2/test_data/GetMetrics_total.json b/qan-api2/test_data/GetMetrics_total.json index d144f24dd5..9530cfd8dc 100644 --- a/qan-api2/test_data/GetMetrics_total.json +++ b/qan-api2/test_data/GetMetrics_total.json @@ -49,6 +49,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -103,6 +107,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -157,6 +165,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -211,6 +223,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -265,6 +281,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -319,6 +339,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -373,6 +397,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -427,6 +455,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -481,6 +513,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -535,6 +571,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -589,6 +629,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -643,6 +687,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -697,6 +745,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -751,6 +803,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -805,6 +861,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -859,6 +919,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -913,6 +977,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -967,6 +1035,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -1021,6 +1093,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -1075,6 +1151,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -1129,6 +1209,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -1183,6 +1267,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -1237,6 +1325,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -1291,6 +1383,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -1345,6 +1441,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -1399,6 +1499,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -1453,6 +1557,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -1507,6 +1615,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -1561,6 +1673,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -1615,6 +1731,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -1669,6 +1789,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -1723,6 +1847,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -1777,6 +1905,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -1831,6 +1963,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -1885,6 +2021,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -1939,6 +2079,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -1993,6 +2137,11 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -2047,6 +2196,11 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -2101,6 +2255,11 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -2155,6 +2314,11 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -2209,6 +2373,11 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -2263,6 +2432,11 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -2317,6 +2491,11 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -2371,6 +2550,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -2425,6 +2608,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -2479,6 +2666,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -2533,6 +2724,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -2587,6 +2782,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -2641,6 +2840,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -2695,6 +2898,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -2749,6 +2956,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -2803,6 +3014,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -2857,6 +3072,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -2911,6 +3130,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -2965,6 +3188,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -3019,6 +3246,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -3073,6 +3304,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -3127,6 +3362,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -3181,6 +3420,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -3235,6 +3478,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -3289,6 +3536,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -3343,6 +3594,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -3397,6 +3652,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -3451,6 +3710,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -3505,6 +3768,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -3559,6 +3826,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -3613,6 +3884,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -3667,6 +3942,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -3721,6 +4000,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -3775,6 +4058,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -3829,6 +4116,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -3883,6 +4174,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -3937,6 +4232,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -3991,6 +4290,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -4045,6 +4348,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -4099,6 +4406,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -4153,6 +4464,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -4207,6 +4522,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -4261,6 +4580,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -4315,6 +4638,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -4369,6 +4696,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -4423,6 +4754,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -4477,6 +4812,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -4531,6 +4870,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -4585,6 +4928,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -4639,6 +4986,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -4693,6 +5044,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -4747,6 +5102,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -4801,6 +5160,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -4855,6 +5218,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -4909,6 +5276,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -4963,6 +5334,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -5017,6 +5392,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -5071,6 +5450,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -5125,6 +5508,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -5179,6 +5566,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -5233,6 +5624,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -5287,6 +5682,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -5341,6 +5740,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -5395,6 +5798,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -5449,6 +5856,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -5503,6 +5914,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -5557,6 +5972,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -5611,6 +6030,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -5665,6 +6088,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -5719,6 +6146,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -5773,6 +6204,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -5827,6 +6262,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -5881,6 +6320,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -5935,6 +6378,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -5989,6 +6436,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -6043,6 +6494,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -6097,6 +6552,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -6151,6 +6610,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -6205,6 +6668,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -6259,6 +6726,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -6313,6 +6784,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -6367,6 +6842,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -6421,6 +6900,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -6475,6 +6958,10 @@ "mTempBlksWrittenSumPerSec": "NaN", "mBlkReadTimeSumPerSec": "NaN", "mBlkWriteTimeSumPerSec": "NaN", + "mSharedBlkReadTimeSumPerSec": "NaN", + "mSharedBlkWriteTimeSumPerSec": "NaN", + "mLocalBlkReadTimeSumPerSec": "NaN", + "mLocalBlkWriteTimeSumPerSec": "NaN", "mCpuUserTimeSumPerSec": "NaN", "mCpuSysTimeSumPerSec": "NaN", "mPlansCallsSumPerSec": "NaN", @@ -6490,6 +6977,18 @@ }, "blk_write_time": { + }, + "shared_blk_read_time": { + + }, + "shared_blk_write_time": { + + }, + "local_blk_read_time": { + + }, + "local_blk_write_time": { + }, "bytes_sent": { "rate": 593.79974,