100% this.
We are in the cycle of "unifying things", which is like going back to monoliths for DBs, collection, SDKs etc.
Tempting but maybe utopia?
BUT no one blocks ppl from trying and learning on their mistakes (: We will see in 5y cycle to move back to dedicated solutions.
There are DevOps and SRE engineers who think that a unified database for metrics and logs is a good idea. This isn't a good idea from an operations perspective because of the following reasons:
- Lower availability. If something wrong happens with the stored logs, there are high chances that this will affect metrics stored in the same database, and vice versa.
- Noisy neighbour. You cannot allocate dedicated resources (storage space and storage IO, CPU, RAM, network bandwidth) individually for metrics and logs if they are stored in the same database. These resources are shared, so the increase in logs' workload may negatively affect metrics' workload and vice versa.
- Operational complexity and efficiency. You cannot have individual backup and recovery strategies per metrics and logs stored in the same database. Logs and metrics may require different retention policies. These policies are hard to implement efficiently and clearly when logs and metrics are stored in the same database.
- Query usability and performance. Efficient querying metrics and logs are completely different things - they need different query languages optimised for typical queries over metrics and logs. They also need different optimizations at the database level for achieving high querying performance and low resource usage.
So think twice before choosing an all-in-one observability solution for metrics, logs, traces and profiles, which stores all this data into a single database, and advertises this as a feature. It usually works great at demo time and at low load in staging environments, but it may not be so great under load in production because of the issues mentioned above.