Time-series workloads have two natural homes: TimescaleDB (Postgres extension, SQL) and InfluxDB (purpose-built, Flux/InfluxQL). Both are good; they make different bets on query language, ecosystem fit, and cardinality handling.
TimescaleDB — SQL on time-series
Postgres extension. Hypertables auto-partition by time. Continuous aggregates for downsampled queries. Full SQL including joins to relational data. Right when the rest of your data is already in Postgres.
InfluxDB — purpose-built
Flux language (or InfluxQL). Columnar storage, very high write throughput. Native handling of tags as metadata. Right when time-series is the whole workload and you want best-in-class write performance.
Cardinality handling
InfluxDB historically struggled with high tag cardinality (millions of unique series). 3.0 (Apache Arrow-based) fixed much of this. TimescaleDB doesn't have this concept of distress; it's just rows.