Skip to content

Commit

Permalink
[BACKPORT pg15-cherrypicks][#22843] YSQL: Change the CatalogCacheMiss…
Browse files Browse the repository at this point in the history
…es prometheus name to have a label

Summary:
```
- Conflicts:
  - src/postgres/yb-extensions/yb_pg_metrics/yb_pg_metrics.c
    pg15 commit 602cb2d had 6 additional catcache entries which are reflected as:
      CatCacheMisses_79,
      CatCacheMisses_80,
      CatCacheMisses_81,
      CatCacheMisses_82,
      CatCacheMisses_83,
      CatCacheMisses_84,
    master commit dc871f9 renamed CatCacheMisses_xx to CatCacheIdMisses_xx
```

Currently, we have a metric name for catalog cache miss such as:

```
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_24_pg_enum_typid_label_index_sum
```

To make it easier and more performant for YBA/YBM, this diff changes the name to

```
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses{table_name="pg_enum_typid_label_index_sum"}
```
Jira: DB-11741

Original commit: dc871f9 / D37136

Test Plan:
(1) ./yb_build.sh --cxx-test pgwrapper_pg_libpq-test --gtest_filter PgLibPqTest.CatalogCacheIdMissMetricsTest

(2) manual test
```
$ ./bin/yb-ctl create --rf 1

$ ./bin/ysqlsh
ysqlsh (11.2-YB-2.23.0.0-b0)
Type "help" for help.

yugabyte=# create table foo(id int);
CREATE TABLE
yugabyte=# insert into foo values (10);
INSERT 0 1
yugabyte=# \q
$ wget 'http://127.0.0.1:13000/prometheus-metrics?reset_histograms=false&show_help=false' -O - 2>/dev/null | grep CatalogCacheMisses | grep count
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",exported_instance="dev-server-myang:9000"} 12 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_aggregate_fnoid_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_am_name_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_am_oid_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_amop_opr_fam_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_amop_fam_strat_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_amproc_fam_proc_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_attribute_relid_attnam_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_attribute_relid_attnum_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_auth_members_member_role_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_auth_members_role_member_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_authid_rolname_index",exported_instance="dev-server-myang:9000"} 1 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_authid_oid_index",exported_instance="dev-server-myang:9000"} 1 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_cast_source_target_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_opclass_am_name_nsp_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_opclass_oid_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_collation_name_enc_nsp_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_collation_oid_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_conversion_default_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_conversion_name_nsp_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_constraint_oid_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_conversion_oid_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_database_oid_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_default_acl_role_nsp_obj_index",exported_instance="dev-server-myang:9000"} 2 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_enum_oid_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_enum_typid_label_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_event_trigger_evtname_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_event_trigger_oid_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_foreign_data_wrapper_name_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_foreign_data_wrapper_oid_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_foreign_server_name_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_foreign_server_oid_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_foreign_table_relid_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_index_indexrelid_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_language_name_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_language_oid_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_namespace_nspname_index",exported_instance="dev-server-myang:9000"} 1 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_namespace_oid_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_operator_oprname_l_r_n_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_operator_oid_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_opfamily_am_name_nsp_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_opfamily_oid_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_partitioned_table_partrelid_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_proc_proname_args_nsp_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_proc_oid_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_publication_pubname_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_publication_oid_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_publication_rel_oid_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_publication_rel_prrelid_prpubid_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_range_rngtypid_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_class_relname_nsp_index",exported_instance="dev-server-myang:9000"} 4 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_class_oid_index",exported_instance="dev-server-myang:9000"} 1 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_replication_origin_roiident_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_replication_origin_roname_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_rewrite_rel_rulename_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_sequence_seqrelid_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_statistic_ext_name_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_statistic_ext_oid_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_statistic_relid_att_inh_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_subscription_subname_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_subscription_oid_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_subscription_rel_srrelid_srsubid_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_tablespace_oid_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_transform_oid_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_transform_type_lang_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_ts_config_map_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_ts_config_cfgname_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_ts_config_oid_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_ts_dict_dictname_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_ts_dict_oid_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_ts_parser_prsname_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_ts_parser_oid_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_ts_template_tmplname_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_ts_template_oid_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_type_typname_nsp_index",exported_instance="dev-server-myang:9000"} 2 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_type_oid_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_user_mapping_oid_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_user_mapping_user_server_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_yb_tablegroup_oid_index",exported_instance="dev-server-myang:9000"} 0 1723511498635
handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_count{metric_id="yb.ysqlserver",metric_type="server",table_name="pg_constraint_conrelid_contypid_conname_index",exported_instance="dev-server-myang:9000"} 0 1723511498635

Reviewers: jason, tfoucher

Reviewed By: jason

Subscribers: yql

Tags: #jenkins-ready

Differential Revision: https://phorge.dev.yugabyte.com/D37321
  • Loading branch information
myang2021 committed Aug 14, 2024
1 parent 70d67ac commit a5eb7aa
Show file tree
Hide file tree
Showing 3 changed files with 118 additions and 100 deletions.
187 changes: 93 additions & 94 deletions src/postgres/yb-extensions/yb_pg_metrics/yb_pg_metrics.c
Original file line number Diff line number Diff line change
Expand Up @@ -62,93 +62,93 @@ typedef enum statementType
Transaction,
AggregatePushdown,
CatCacheMisses,
CatCacheMisses_Start,
CatCacheMisses_0 = CatCacheMisses_Start,
CatCacheMisses_1,
CatCacheMisses_2,
CatCacheMisses_3,
CatCacheMisses_4,
CatCacheMisses_5,
CatCacheMisses_6,
CatCacheMisses_7,
CatCacheMisses_8,
CatCacheMisses_9,
CatCacheMisses_10,
CatCacheMisses_11,
CatCacheMisses_12,
CatCacheMisses_13,
CatCacheMisses_14,
CatCacheMisses_15,
CatCacheMisses_16,
CatCacheMisses_17,
CatCacheMisses_18,
CatCacheMisses_19,
CatCacheMisses_20,
CatCacheMisses_21,
CatCacheMisses_22,
CatCacheMisses_23,
CatCacheMisses_24,
CatCacheMisses_25,
CatCacheMisses_26,
CatCacheMisses_27,
CatCacheMisses_28,
CatCacheMisses_29,
CatCacheMisses_30,
CatCacheMisses_31,
CatCacheMisses_32,
CatCacheMisses_33,
CatCacheMisses_34,
CatCacheMisses_35,
CatCacheMisses_36,
CatCacheMisses_37,
CatCacheMisses_38,
CatCacheMisses_39,
CatCacheMisses_40,
CatCacheMisses_41,
CatCacheMisses_42,
CatCacheMisses_43,
CatCacheMisses_44,
CatCacheMisses_45,
CatCacheMisses_46,
CatCacheMisses_47,
CatCacheMisses_48,
CatCacheMisses_49,
CatCacheMisses_50,
CatCacheMisses_51,
CatCacheMisses_52,
CatCacheMisses_53,
CatCacheMisses_54,
CatCacheMisses_55,
CatCacheMisses_56,
CatCacheMisses_57,
CatCacheMisses_58,
CatCacheMisses_59,
CatCacheMisses_60,
CatCacheMisses_61,
CatCacheMisses_62,
CatCacheMisses_63,
CatCacheMisses_64,
CatCacheMisses_65,
CatCacheMisses_66,
CatCacheMisses_67,
CatCacheMisses_68,
CatCacheMisses_69,
CatCacheMisses_70,
CatCacheMisses_71,
CatCacheMisses_72,
CatCacheMisses_73,
CatCacheMisses_74,
CatCacheMisses_75,
CatCacheMisses_76,
CatCacheMisses_77,
CatCacheMisses_78,
CatCacheMisses_79,
CatCacheMisses_80,
CatCacheMisses_81,
CatCacheMisses_82,
CatCacheMisses_83,
CatCacheMisses_84,
CatCacheMisses_End,
CatCacheIdMisses_Start,
CatCacheIdMisses_0 = CatCacheIdMisses_Start,
CatCacheIdMisses_1,
CatCacheIdMisses_2,
CatCacheIdMisses_3,
CatCacheIdMisses_4,
CatCacheIdMisses_5,
CatCacheIdMisses_6,
CatCacheIdMisses_7,
CatCacheIdMisses_8,
CatCacheIdMisses_9,
CatCacheIdMisses_10,
CatCacheIdMisses_11,
CatCacheIdMisses_12,
CatCacheIdMisses_13,
CatCacheIdMisses_14,
CatCacheIdMisses_15,
CatCacheIdMisses_16,
CatCacheIdMisses_17,
CatCacheIdMisses_18,
CatCacheIdMisses_19,
CatCacheIdMisses_20,
CatCacheIdMisses_21,
CatCacheIdMisses_22,
CatCacheIdMisses_23,
CatCacheIdMisses_24,
CatCacheIdMisses_25,
CatCacheIdMisses_26,
CatCacheIdMisses_27,
CatCacheIdMisses_28,
CatCacheIdMisses_29,
CatCacheIdMisses_30,
CatCacheIdMisses_31,
CatCacheIdMisses_32,
CatCacheIdMisses_33,
CatCacheIdMisses_34,
CatCacheIdMisses_35,
CatCacheIdMisses_36,
CatCacheIdMisses_37,
CatCacheIdMisses_38,
CatCacheIdMisses_39,
CatCacheIdMisses_40,
CatCacheIdMisses_41,
CatCacheIdMisses_42,
CatCacheIdMisses_43,
CatCacheIdMisses_44,
CatCacheIdMisses_45,
CatCacheIdMisses_46,
CatCacheIdMisses_47,
CatCacheIdMisses_48,
CatCacheIdMisses_49,
CatCacheIdMisses_50,
CatCacheIdMisses_51,
CatCacheIdMisses_52,
CatCacheIdMisses_53,
CatCacheIdMisses_54,
CatCacheIdMisses_55,
CatCacheIdMisses_56,
CatCacheIdMisses_57,
CatCacheIdMisses_58,
CatCacheIdMisses_59,
CatCacheIdMisses_60,
CatCacheIdMisses_61,
CatCacheIdMisses_62,
CatCacheIdMisses_63,
CatCacheIdMisses_64,
CatCacheIdMisses_65,
CatCacheIdMisses_66,
CatCacheIdMisses_67,
CatCacheIdMisses_68,
CatCacheIdMisses_69,
CatCacheIdMisses_70,
CatCacheIdMisses_71,
CatCacheIdMisses_72,
CatCacheIdMisses_73,
CatCacheIdMisses_74,
CatCacheIdMisses_75,
CatCacheIdMisses_76,
CatCacheIdMisses_77,
CatCacheIdMisses_78,
CatCacheIdMisses_79,
CatCacheIdMisses_80,
CatCacheIdMisses_81,
CatCacheIdMisses_82,
CatCacheIdMisses_83,
CatCacheIdMisses_84,
CatCacheIdMisses_End,
kMaxStatementType
} statementType;
int num_entries = kMaxStatementType;
Expand Down Expand Up @@ -286,13 +286,12 @@ set_metric_names(void)
strcpy(ybpgm_table[Transaction].name, YSQL_METRIC_PREFIX "Transactions");
strcpy(ybpgm_table[AggregatePushdown].name, YSQL_METRIC_PREFIX "AggregatePushdowns");
strcpy(ybpgm_table[CatCacheMisses].name, YSQL_METRIC_PREFIX "CatalogCacheMisses");
for (int i = CatCacheMisses_Start; i < CatCacheMisses_End; ++i)
for (int i = CatCacheIdMisses_Start; i < CatCacheIdMisses_End; ++i)
{
int cache_id = i - CatCacheMisses_Start;
int cache_id = i - CatCacheIdMisses_Start;
char index_name[NAMEDATALEN + 16];
strcpy(ybpgm_table[i].name, YSQL_METRIC_PREFIX "CatalogCacheMisses");
sprintf(index_name, "_%d_%s",
cache_id, YbGetCatalogCacheIndexName(cache_id));
sprintf(index_name, "_%s", YbGetCatalogCacheIndexName(cache_id));
Assert(strlen(ybpgm_table[i].name) + strlen(index_name) <
sizeof(ybpgm_table[i].name));
strcat(ybpgm_table[i].name, index_name);
Expand Down Expand Up @@ -634,7 +633,7 @@ _PG_init(void)

prev_ProcessUtility = ProcessUtility_hook;
ProcessUtility_hook = ybpgm_ProcessUtility;
static_assert(SysCacheSize == CatCacheMisses_End - CatCacheMisses_Start,
static_assert(SysCacheSize == CatCacheIdMisses_End - CatCacheIdMisses_Start,
"Wrong catalog cache number");
}

Expand Down Expand Up @@ -808,9 +807,9 @@ ybpgm_ExecutorEnd(QueryDesc *queryDesc)
*/
ybpgm_StoreCount(CatCacheMisses, 0, total_delta);
if (total_delta > 0)
for (int i = CatCacheMisses_Start; i < CatCacheMisses_End; ++i)
for (int i = CatCacheIdMisses_Start; i < CatCacheIdMisses_End; ++i)
{
int j = i - CatCacheMisses_Start;
int j = i - CatCacheIdMisses_Start;
ybpgm_StoreCount(i, 0, current_cache_id_misses[j] - last_cache_id_misses_val[j]);
last_cache_id_misses_val[j] = current_cache_id_misses[j];
}
Expand Down
24 changes: 22 additions & 2 deletions src/yb/yql/pggate/webserver/pgsql_webserver_wrapper.cc
Original file line number Diff line number Diff line change
Expand Up @@ -459,14 +459,34 @@ static void PgPrometheusMetricsHandler(
MetricPrometheusOptions opts;
PrometheusWriter writer(output, opts);

auto cache_miss_prefix_len = sizeof("CatalogCacheMisses");
for (int i = 0; i < ybpgm_num_entries; ++i) {
bool is_cache_id_miss = false;
std::string name = ybpgm_table[i].name;
WARN_NOT_OK(writer.WriteSingleEntry(prometheus_attr, name + "_count",
auto pos = name.find("CatalogCacheMisses");
if (pos != std::string::npos) {
// Example of name:
// handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_pg_authid_oid_index
// In this case, we split the name into metric_name and the index table name:
// metric_name: handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheIdMisses
// table_name: pg_authid_oid_index
pos += cache_miss_prefix_len - 1;
if (name[pos] == '_') {
is_cache_id_miss = true;
DCHECK(!prometheus_attr.contains("table_name"));
prometheus_attr["table_name"] = name.substr(pos + 1);
}
}
auto metric_name = is_cache_id_miss ? name.substr(0, pos) : name;
WARN_NOT_OK(writer.WriteSingleEntry(prometheus_attr, metric_name + "_count",
ybpgm_table[i].calls, AggregationFunction::kSum, kServerLevel),
"Couldn't write text metrics for Prometheus");
WARN_NOT_OK(writer.WriteSingleEntry(prometheus_attr, name + "_sum",
WARN_NOT_OK(writer.WriteSingleEntry(prometheus_attr, metric_name + "_sum",
ybpgm_table[i].total_time, AggregationFunction::kSum, kServerLevel),
"Couldn't write text metrics for Prometheus");
if (is_cache_id_miss) {
prometheus_attr.erase("table_name");
}
}

// Publish sql server connection related metrics
Expand Down
7 changes: 3 additions & 4 deletions src/yb/yql/pgwrapper/pg_libpq-test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -3982,10 +3982,9 @@ TEST_F(PgLibPqTest, CatalogCacheIdMissMetricsTest) {
ASSERT_GT(expected, 0);
LOG(INFO) << "Expected total cache misses: " << expected;
int total_cache_misses = 0;
for (int i = 0; ; ++i) {
auto cache_miss_metric_id =
Format("handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_$0_", i);
begin = page_content.find(cache_miss_metric_id);
while (true) {
auto cache_id_miss_metric = "handler_latency_yb_ysqlserver_SQLProcessor_CatalogCacheMisses_";
begin = page_content.find(cache_id_miss_metric, end);
if (begin == std::string::npos) {
break;
}
Expand Down

0 comments on commit a5eb7aa

Please sign in to comment.