SpacetimeDB icon indicating copy to clipboard operation
SpacetimeDB copied to clipboard

Metrics: Consider only storing `TableId` and recover table names in UX

Open Centril opened this issue 1 year ago • 0 comments

Basically, the idea is that we go back to only storing TableIds in metrics and have the UX later translate the ids to table names, so that the BitCraft team also retain the information.

Relevant resources:

  • https://grafana.com/blog/2021/08/04/how-to-use-promql-joins-for-more-effective-queries-of-prometheus-metrics-at-scale/
  • https://prometheus.io/docs/prometheus/latest/querying/operators/#one-to-one-vector-matches
  • https://www.robustperception.io/left-joins-in-promql/

Possibly what we want is, as an example:

#[name = spacetime_table_names]
#[labels(table_id: u32, table_name: str)]
pub rdb_table_names: IntGaugeVec,

#[name = spacetime_num_table_rows]
#[labels(db: Address, table_id: u32)]
pub rdb_num_table_rows: IntGaugeVec,

and then e.g., the PromQL: spacetime_num_table_rows and on(table_id) spacetimedb_table_names should yield (db, table_id, table_name).

Centril avatar Apr 17 '24 22:04 Centril