# Essential NewRelic Metrics

| metric_name | labels | promql | example | code_ref |
| --- | --- | --- | --- | --- |
| `tidb_cloud.db_total_connection` | `instance_name, instance_id` | `sum(tidb_server_connections{cluster_id="<cluster_id>"})` | `tidb_cloud.db_total_connection{instance_name="essential-demo",instance_id="80001"} 42` | `QueryDBTotalConnection`, `RecordQueryDBTotalConnection`, `transformMetricsForServicePlan`, `newrelic_transformation` |
| `tidb_cloud.db_active_connections` | `instance_name, instance_id` | `sum(tidb_server_tokens{cluster_id="<cluster_id>"})` | `tidb_cloud.db_active_connections{instance_name="essential-demo",instance_id="80001"} 9` | `QueryDBActiveConnections`, `RecordQueryDBActiveConnections`, `transformMetricsForServicePlan`, `newrelic_transformation` |
| `tidb_cloud.db_disconnections` | `result, instance_name, instance_id` | `sum(rate(tidb_server_disconnection_total{cluster_id="<cluster_id>"}[2m])) by (result)` | `tidb_cloud.db_disconnections{result="ok",instance_name="essential-demo",instance_id="80001"} 0.2` | `QueryDBDisconnections`, `RecordQueryDBDisconnections`, `transformMetricsForServicePlan`, `newrelic_transformation` |
| `tidb_cloud.db_database_time` | `sql_type, instance_name, instance_id` | `sum(rate(tidb_server_handle_query_duration_seconds_sum{cluster_id="<cluster_id>", sql_type!="internal"}[2m])) by (sql_type)` | `tidb_cloud.db_database_time{sql_type="Select",instance_name="essential-demo",instance_id="80001"} 1.6` | `QueryDBDatabaseTime`, `RecordQueryDBDatabaseTime`, `transformMetricsForServicePlan`, `newrelic_transformation` |
| `tidb_cloud.db_query_per_second` | `type, instance_name, instance_id` | `sum(rate(tidb_executor_statement_total{cluster_id="<cluster_id>"}[2m])) by (type)` | `tidb_cloud.db_query_per_second{type="Select",instance_name="essential-demo",instance_id="80001"} 120` | `QueryDBQueryPerSecond`, `RecordQueryDBQueryPerSecond`, `transformMetricsForServicePlan`, `newrelic_transformation` |
| `tidb_cloud.db_failed_queries` | `type, instance_name, instance_id` | `sum(rate(tidb_server_execute_error_total{cluster_id="<cluster_id>"}[2m])) by (type)` | `tidb_cloud.db_failed_queries{type="planner",instance_name="essential-demo",instance_id="80001"} 0.05` | `QueryDBFailedQueries`, `RecordQueryDBFailedQueries`, `transformMetricsForServicePlan`, `newrelic_transformation` |
| `tidb_cloud.db_command_per_second` | `type, instance_name, instance_id` | `sum(rate(tidb_server_query_total{cluster_id="<cluster_id>"}[2m])) by (type)` | `tidb_cloud.db_command_per_second{type="Query",instance_name="essential-demo",instance_id="80001"} 140` | `QueryDBCommandPerSecond`, `RecordQueryDBCommandPerSecond`, `transformMetricsForServicePlan`, `newrelic_transformation` |
| `tidb_cloud.db_queries_using_plan_cache_ops` | `type, instance_name, instance_id` | `sum(rate(tidb_server_plan_cache_total{cluster_id="<cluster_id>"}[2m])) by (type)` | `tidb_cloud.db_queries_using_plan_cache_ops{type="prepared",instance_name="essential-demo",instance_id="80001"} 18` | `QueryDBQueriesUsingPlanCacheOps`, `RecordQueryDBQueriesUsingPlanCacheOps`, `transformMetricsForServicePlan`, `newrelic_transformation` |
| `tidb_cloud.db_average_query_duration` | `sql_type, instance_name, instance_id` | `sum(rate(tidb_server_handle_query_duration_seconds_sum{cluster_id="<cluster_id>", sql_type!="internal"}[2m])) by (sql_type) / sum(rate(tidb_server_handle_query_duration_seconds_count{cluster_id="<cluster_id>", sql_type!="internal"}[2m])) by (sql_type) > 0` | `tidb_cloud.db_average_query_duration{sql_type="Select",instance_name="essential-demo",instance_id="80001"} 0.013` | `QueryDBAverageQueryDuration`, `RecordQueryDBAverageQueryDuration`, `transformMetricsForServicePlan`, `newrelic_transformation` |
| `tidb_cloud.db_transaction_per_second` | `txn_mode, type, instance_name, instance_id` | `sum(rate(tidb_session_transaction_duration_seconds_count{cluster_id="<cluster_id>", scope=~"general"}[2m])) by (type, txn_mode)` | `tidb_cloud.db_transaction_per_second{txn_mode="optimistic",type="commit",instance_name="essential-demo",instance_id="80001"} 23` | `QueryDBTransactionPerSecond`, `RecordQueryDBTransactionPerSecond`, `transformMetricsForServicePlan`, `newrelic_transformation` |
| `tidb_cloud.resource_manager_resource_unit_read_request_unit` | `resource_group, instance_name, instance_id` | `rate(resource_manager_resource_unit_read_request_unit_sum{cluster_id=~".*<cluster_id>", type=~"|tp"}[2m])` | `tidb_cloud.resource_manager_resource_unit_read_request_unit{resource_group="default",instance_name="essential-demo",instance_id="80001"} 12.5` | `QueryRURead`, `RecordQueryResourceUnitReadRequestUnit`, `transformMetricsForServicePlan`, `newrelic_transformation` |
| `tidb_cloud.resource_manager_resource_unit_write_request_unit` | `resource_group, instance_name, instance_id` | `rate(resource_manager_resource_unit_write_request_unit_sum{cluster_id=~".*<cluster_id>", type=~"|tp"}[2m])` | `tidb_cloud.resource_manager_resource_unit_write_request_unit{resource_group="default",instance_name="essential-demo",instance_id="80001"} 6.5` | `QueryRUWrite`, `RecordQueryResourceUnitWriteRequestUnit`, `transformMetricsForServicePlan`, `newrelic_transformation` |
| `tidb_cloud.db_row_storage_used_bytes` | `instance_id, instance_name` | `quantile_over_time(0.5, sum(avg by(keyspace_id, region_id) (tikv_store_size_bytes{keyspace_id="<keyspace_id>", type="used"}))[5m]) or vector(0)` | `tidb_cloud.db_row_storage_used_bytes{instance_id="80001",instance_name="essential-demo"} 128849018880` | `QueryDBRowStorageUsedBytes`, `buildNextGenStorageUsagePromQL`, `RecordTidbCloudDbRowStorageUsedBytes`, `sharedSeriesMatcher/getNextGenKeyspaceID`, `transformMetricsForServicePlan`, `newrelic_transformation` |
| `tidb_cloud.db_columnar_storage_used_bytes` | `instance_id, instance_name` | `quantile_over_time(0.5, sum(avg by(keyspace_id, region_id) (tikv_store_size_bytes{keyspace_id="<keyspace_id>", type="tiflash_used"}))[5m]) or vector(0)` | `tidb_cloud.db_columnar_storage_used_bytes{instance_id="80001",instance_name="essential-demo"} 34359738368` | `QueryDBColumnarStorageUsedBytes`, `buildNextGenStorageUsagePromQL`, `RecordTidbCloudDbColumnarStorageUsedBytes`, `sharedSeriesMatcher/getNextGenKeyspaceID`, `transformMetricsForServicePlan`, `newrelic_transformation` |
