Per-database Influx metrics

#1

Assume the following scenario…

  • 1 InfluxDB data node cluster (say 5 systems)
  • 4 InfluxDB databases sharded across the cluster (e.g., 1 db per "team" or "product")...
    • influxdb_acme_api
    • influxdb_acme_backend
    • influxdb_acme_frontend
    • influxdb_acme_smtp

Setting aside the relative wisdom of creating per-team or per-product databases:   if we wanted to, say, separately isolate the native Telegraf-collected influxdb_httpd | pointsWrittenFail metric (or pointsWrittenOK or pointsWrittenDropped) at the database level – is that possible? Or are those metrics at the instance/cluster level only? Idea is to isolate Influx usage per team w/out requiring them to tag values to enable same.

#2

The best practice is to tag values to separate series by team or application. In fact, the enterprise edition has a Fine Grained Authorization feature that enforces visibility of data based on tags using a set of user defined grants and restrictions. (https://docs.influxdata.com/enterprise_influxdb/v1.3/guides/fine-grained-authorization/).

We are finding that users don’t like to tag explicitly and are thinking about offering top level HTTP routes that would auto-tag incoming data. Curious if that is something you’d find more amenable?

Aside, it is important not to over provision databases. Each database comes with its own shards on disk and its own indexing structure; more than a handful of databases will cause I/O contention and bad performance.

#3

Thanks Ryan; can you be more specific about your definition of “handful” re db provisioning?