From 2004f0276919ed86d407ce8b26514b2ea4a34246 Mon Sep 17 00:00:00 2001 From: Andrii Vorobiov Date: Fri, 20 May 2022 09:43:49 +0300 Subject: [PATCH] ccl, metrics: Fill in chart catalog with missed metrics This change adds missing metrics to chart catalog. Release note: None --- pkg/ccl/serverccl/chart_catalog_test.go | 10 --- pkg/jobs/schedule_metrics.go | 27 ++++++ pkg/ts/catalog/catalog_generator.go | 8 ++ pkg/ts/catalog/chart_catalog.go | 114 ++++++++++++++++++++---- pkg/ts/catalog/metrics.go | 4 + 5 files changed, 136 insertions(+), 27 deletions(-) diff --git a/pkg/ccl/serverccl/chart_catalog_test.go b/pkg/ccl/serverccl/chart_catalog_test.go index 6fede857152f..a2d22f17758f 100644 --- a/pkg/ccl/serverccl/chart_catalog_test.go +++ b/pkg/ccl/serverccl/chart_catalog_test.go @@ -91,18 +91,8 @@ func TestChartCatalogMetrics(t *testing.T) { // deleteSeenMetrics removes all metrics in a section from the metricMetadata map. func deleteSeenMetrics(c *catalog.ChartSection, metadata map[string]metric.Metadata, t *testing.T) { - // if c.Title == "SQL" { - // t.Log(c) - // } for _, x := range c.Charts { - if x.Title == "Connections" || x.Title == "Byte I/O" { - t.Log(x) - } - for _, metric := range x.Metrics { - if metric.Name == "sql.new_conns" || metric.Name == "sql.bytesin" { - t.Logf("found %v\n", metric.Name) - } _, ok := metadata[metric.Name] if ok { delete(metadata, metric.Name) diff --git a/pkg/jobs/schedule_metrics.go b/pkg/jobs/schedule_metrics.go index a60e88f64e25..de4f32666807 100644 --- a/pkg/jobs/schedule_metrics.go +++ b/pkg/jobs/schedule_metrics.go @@ -42,6 +42,12 @@ type SchedulerMetrics struct { // Number of schedules that are malformed: that is, the schedules // we cannot parse, or even attempt to execute. NumMalformedSchedules *metric.Gauge + // Number of started schedules + NumTotalStartedSchedules *metric.Gauge + // Number of succeeded schedules + NumTotalSucceededSchedules *metric.Gauge + // Number of failed schedules + NumTotalFailedSchedules *metric.Gauge } // MakeSchedulerMetrics returns metrics for scheduled job daemon. @@ -81,6 +87,27 @@ func MakeSchedulerMetrics() SchedulerMetrics { Measurement: "Schedules", Unit: metric.Unit_COUNT, }), + + NumTotalStartedSchedules: metric.NewGauge(metric.Metadata{ + Name: "schedules.total.started", + Help: "Number of started schedules", + Measurement: "Schedules", + Unit: metric.Unit_COUNT, + }), + + NumTotalSucceededSchedules: metric.NewGauge(metric.Metadata{ + Name: "schedules.total.succeeded", + Help: "Number of succeeded schedules", + Measurement: "Schedules", + Unit: metric.Unit_COUNT, + }), + + NumTotalFailedSchedules: metric.NewGauge(metric.Metadata{ + Name: "schedules.total.failed", + Help: "Number of failed schedules", + Measurement: "Schedules", + Unit: metric.Unit_COUNT, + }), } } diff --git a/pkg/ts/catalog/catalog_generator.go b/pkg/ts/catalog/catalog_generator.go index 8185268b91a7..df550c9f5dc7 100644 --- a/pkg/ts/catalog/catalog_generator.go +++ b/pkg/ts/catalog/catalog_generator.go @@ -200,6 +200,13 @@ var chartCatalog = []ChartSection{ Description: `Your cluster executes various background jobs, as well as scheduled jobs`, Level: 0, }, + { + Title: Tenants, + LongTitle: Tenants, + CollectionTitle: "tenants-all", + Description: `TBD`, // TODO (koorosh): provide a meaningful description. + Level: 0, + }, } var catalogGenerated = false @@ -215,6 +222,7 @@ var catalogKey = map[string]int{ StorageLayer: 5, Timeseries: 6, Jobs: 7, + Tenants: 8, } // unitsKey converts between metric.Unit and catalog.AxisUnits which is diff --git a/pkg/ts/catalog/chart_catalog.go b/pkg/ts/catalog/chart_catalog.go index 46f23c973702..00abb369b971 100644 --- a/pkg/ts/catalog/chart_catalog.go +++ b/pkg/ts/catalog/chart_catalog.go @@ -1337,23 +1337,82 @@ var charts = []sectionDescription{ }, }, { - Title: "Assorted (Counters)", + Title: "Frontier Updates", + Metrics: []string{ + "changefeed.frontier_updates", + }, + }, + { + Title: "Ingested Events", + Metrics: []string{ + "streaming.events_ingested", + "streaming.resolved_events_ingested", + }, + }, + { + Title: "Flushes", + Metrics: []string{ + "streaming.flushes", + }, + }, + { + Title: "Ingested Bytes", + Metrics: []string{ + "streaming.ingested_bytes", + }, + }, + { + Title: "Flushed Bytes", + Metrics: []string{ + "changefeed.flushed_bytes", + }, + }, + { + Title: "Forwarded Resolved Messages", + Metrics: []string{ + "changefeed.forwarded_resolved_messages", + }, + }, + { + Title: "Messages Size", + Metrics: []string{ + "changefeed.message_size_hist", + }, + }, + { + Title: "Commits Latency", + Metrics: []string{ + "changefeed.commit_latency", + }, + }, + { + Title: "Time spent", + Metrics: []string{ + "changefeed.checkpoint_hist_nanos", + "changefeed.flush_hist_nanos", + "changefeed.sink_batch_hist_nanos", + }, + }, + { + Title: "Backfill", Metrics: []string{ "changefeed.backfill_count", "changefeed.backfill_pending_ranges", + }, + }, + { + Title: "Time Spent Waiting", + Metrics: []string{ "changefeed.buffer_pushback_nanos", + "changefeed.queue_time_nanos", + }, + }, + { + Title: "Throttled Time", + Metrics: []string{ "changefeed.bytes.messages_pushback_nanos", - "changefeed.checkpoint_hist_nanos", - "changefeed.commit_latency", - "changefeed.flush.messages_pushback_nanos", - "changefeed.flush_hist_nanos", - "changefeed.flushed_bytes", - "changefeed.forwarded_resolved_messages", - "changefeed.frontier_updates", - "changefeed.message_size_hist", "changefeed.messages.messages_pushback_nanos", - "changefeed.queue_time_nanos", - "changefeed.sink_batch_hist_nanos", + "changefeed.flush.messages_pushback_nanos", }, }, }, @@ -2787,6 +2846,12 @@ var charts = []sectionDescription{ "schedules.BACKUP.failed", }, }, + { + Title: "Last Completed Backups", + Metrics: []string{ + "schedules.BACKUP.last-completed-time", + }, + }, }, }, { @@ -3118,19 +3183,34 @@ var charts = []sectionDescription{ }, }, { - Organization: [][]string{{Tenants}}, + Organization: [][]string{{Tenants, "Consumption"}}, Charts: []chartDescription{ { - Title: "Assorted", + Title: "Total number of KV read/write requests (Gauge_Count_Requests)", Metrics: []string{ - "tenant.consumption.kv_request_units", - "tenant.consumption.pgwire_egress_bytes", - "tenant.consumption.read_bytes", + "tenant.consumption.write_requests", "tenant.consumption.read_requests", + }, + }, + { + Title: "Total RU consumption (Gauge_Count_Request_units)", + Metrics: []string{ "tenant.consumption.request_units", + "tenant.consumption.kv_request_units", + }, + }, + { + Title: "Total number of bytes written to KV (Gauge_Count_CPU_seconds)", + Metrics: []string{ "tenant.consumption.sql_pods_cpu_seconds", + }, + }, + { + Title: "Total number of bytes (Gauge_count_bytes)", + Metrics: []string{ "tenant.consumption.write_bytes", - "tenant.consumption.write_requests", + "tenant.consumption.pgwire_egress_bytes", + "tenant.consumption.read_bytes", }, }, }, diff --git a/pkg/ts/catalog/metrics.go b/pkg/ts/catalog/metrics.go index ee8a55990742..762d563fe61f 100644 --- a/pkg/ts/catalog/metrics.go +++ b/pkg/ts/catalog/metrics.go @@ -93,6 +93,10 @@ var histogramMetricsNames = map[string]struct{}{ "raft.process.applycommitted.latency": {}, "sql.stats.txn_stats_collection.duration": {}, "rebalancing.l0_sublevels_histogram": {}, + "changefeed.admit_latency": {}, + "changefeed.message_size_hist": {}, + "changefeed.commit_latency": {}, + "changefeed.sink_batch_hist_nanos": {}, } func allInternalTSMetricsNames() []string {