Metis

Metis

Software Development

Your ultimate database guardrails

About us

Reimagining how companies build their data infrastructure.

Website
http://www.metisdata.io
Industry
Software Development
Company size
11-50 employees
Headquarters
Tel-Aviv
Type
Privately Held
Founded
2021

Locations

Employees at Metis

Updates

  • View organization page for Metis, graphic

    487 followers

    ๐—Ÿ๐—ผ๐—ฎ๐—ฑ ๐˜๐—ฒ๐˜€๐˜๐˜€ ๐—ฎ๐—ฟ๐—ฒ ๐—ท๐˜‚๐˜€๐˜ ๐—ฎ ๐˜„๐—ฎ๐˜€๐˜๐—ฒ ๐—ผ๐—ณ ๐˜๐—ถ๐—บ๐—ฒ. Letโ€™s read on to understand why. Load tests should answer if the service and the database are fast enough to be deployed to production. They do this job well but have so many drawbacks that ultimately they should be avoided. ๐—™๐—ถ๐—ฟ๐˜€๐˜, ๐—น๐—ผ๐—ฎ๐—ฑ ๐˜๐—ฒ๐˜€๐˜๐˜€ ๐˜๐—ฎ๐—ธ๐—ฒ ๐˜๐—ผ๐—ผ ๐—บ๐˜‚๐—ฐ๐—ต ๐˜๐—ถ๐—บ๐—ฒ. We must run thousands of transactions for many hours to get meaningful results. We need to fill caches, drives, and networks, and keep it running for a long time. ๐—ฆ๐—ฒ๐—ฐ๐—ผ๐—ป๐—ฑ, ๐—น๐—ผ๐—ฎ๐—ฑ ๐˜๐—ฒ๐˜€๐˜๐˜€ ๐—ฎ๐—ฟ๐—ฒ ๐—ต๐—ฎ๐—ฟ๐—ฑ ๐˜๐—ผ ๐˜„๐—ฟ๐—ถ๐˜๐—ฒ. We canโ€™t simply shoot the service with random requests. We need to mimic the production data distribution and send the data that just makes sense. ๐—ง๐—ต๐—ถ๐—ฟ๐—ฑ, ๐—น๐—ผ๐—ฎ๐—ฑ ๐˜๐—ฒ๐˜€๐˜๐˜€ ๐—ฎ๐—ฟ๐—ฒ ๐—ฑ๐—ถ๐—ณ๐—ณ๐—ถ๐—ฐ๐˜‚๐—น๐˜ ๐˜๐—ผ ๐—บ๐—ฎ๐—ถ๐—ป๐˜๐—ฎ๐—ถ๐—ป. Data changes over time, services change their implementation, and we need to keep our testing data up to date. ๐—™๐—ผ๐˜‚๐—ฟ๐˜๐—ต, ๐˜„๐—ฒ ๐—ป๐—ฒ๐—ฒ๐—ฑ ๐˜๐—ผ ๐—ฑ๐—ฒ๐—ฎ๐—น ๐˜„๐—ถ๐˜๐—ต ๐—š๐——๐—ฃ๐—ฅ, ๐—–๐—–๐—ฃ๐—”, ๐—ฎ๐—ป๐—ฑ ๐˜€๐—ถ๐—บ๐—ถ๐—น๐—ฎ๐—ฟ. We canโ€™t simply take the production data and play it in the non-production environment. ๐—™๐—ถ๐—ณ๐˜๐—ต, ๐—ฟ๐—ฎ๐—ป๐—ฑ๐—ผ๐—บ๐—ป๐—ฒ๐˜€๐˜€. It is perfectly fine to get a different response for the same request due to randomness, variations in the timestamps, random identifiers, and other stuff. ๐—ฆ๐—ถ๐˜…๐˜๐—ต, ๐˜๐—ต๐—ฒ๐˜† ๐—ต๐—ฎ๐—ฝ๐—ฝ๐—ฒ๐—ป ๐—ณ๐—ฎ๐—ฟ ๐˜๐—ผ๐—ผ ๐—น๐—ฎ๐˜๐—ฒ. Even if we find issues with load tests, itโ€™s already after we wrote the code, reviewed it, merged it, and deployed it to some environments. ๐—œ๐—ป๐˜€๐˜๐—ฒ๐—ฎ๐—ฑ ๐—ผ๐—ณ ๐—ฟ๐˜‚๐—ป๐—ป๐—ถ๐—ป๐—ด ๐—น๐—ผ๐—ฎ๐—ฑ ๐˜๐—ฒ๐˜€๐˜๐˜€, ๐˜„๐—ฒ ๐˜€๐—ต๐—ผ๐˜‚๐—น๐—ฑ ๐—ฐ๐—ฎ๐˜๐—ฐ๐—ต ๐˜๐—ต๐—ฒ ๐—ถ๐˜€๐˜€๐˜‚๐—ฒ๐˜€ ๐—ฒ๐—ฎ๐—ฟ๐—น๐˜†. We can employ many observability techniques to see things behind the scenes and identify the issues in the developersโ€™ environments. We can use telemetry to capture the queries sent to the database. Once we have these queries, we can project them onto the production database and extract the execution plans. This way we can immediately tell if the queries are going to be fast enough when deployed to production. In the same way, we can verify schemas and configurations. We can check if the indexes are configured properly, and if the queries use indexes well. We can utilize observability to do much more. Since we know what is being changed and in what way, we can easily pinpoint issues in production and correlate them to the actual code changes. This way, we can submit automated pull requests that fix the issues. We can tune configurations, schemas, indexes, extensions, and much more.

    • No alternative text description for this image
  • View organization page for Metis, graphic

    487 followers

    Let's see 4 hot trends in database observability that modern companies are chasing now. We spent years improving our monitoring solutions. We can now capture metrics nearly automatically thanks to solutions like OpenTelemetry. We can visualize data points easily with open-source solutions. Finally, we can easily measure our applications' performance. And yet, there are still more things to incorporate to make observability even better. ๐—ง๐—ต๐—ฒ ๐—ณ๐—ถ๐—ฟ๐˜€๐˜ ๐˜๐—ต๐—ถ๐—ป๐—ด ๐—ถ๐˜€ ๐—ถ๐—ป๐˜๐—ฒ๐—ด๐—ฟ๐—ฎ๐˜๐—ถ๐—ผ๐—ป ๐˜„๐—ถ๐˜๐—ต ๐—ฑ๐—ฒ๐˜ƒ๐—ฒ๐—น๐—ผ๐—ฝ๐—ฒ๐—ฟ๐˜€โ€™ ๐—ฒ๐—ป๐˜ƒ๐—ถ๐—ฟ๐—ผ๐—ป๐—บ๐—ฒ๐—ป๐˜๐˜€ ๐˜๐—ผ ๐—ฐ๐—ฎ๐—ฝ๐˜๐˜‚๐—ฟ๐—ฒ ๐—ต๐—ผ๐˜„ ๐˜๐—ต๐—ฒ ๐˜€๐—ผ๐—ณ๐˜๐˜„๐—ฎ๐—ฟ๐—ฒ ๐—ฒ๐˜ƒ๐—ผ๐—น๐˜ƒ๐—ฒ๐˜€ ๐—ผ๐˜ƒ๐—ฒ๐—ฟ ๐˜๐—ถ๐—บ๐—ฒ. This gives us the following: - We can analyze the changes much earlier in the pipeline which shortens the feedback loop and lets developers iterate faster - We can see how individual changes affect the production database because we see every little detail - We can easily troubleshoot issues since we know exactly whatโ€™s happening across our pipelines ๐—ก๐—ฒ๐˜…๐˜, ๐—บ๐—ผ๐—ฑ๐—ฒ๐—ฟ๐—ป ๐—ผ๐—ฏ๐˜€๐—ฒ๐—ฟ๐˜ƒ๐—ฎ๐—ฏ๐—ถ๐—น๐—ถ๐˜๐˜† ๐˜€๐—ผ๐—น๐˜‚๐˜๐—ถ๐—ผ๐—ป๐˜€ ๐˜€๐—ต๐—ผ๐˜‚๐—น๐—ฑ ๐˜„๐—ฎ๐—ฟ๐—ป ๐˜‚๐˜€ ๐—ฎ๐—ฏ๐—ผ๐˜‚๐˜ ๐—ถ๐˜€๐˜€๐˜‚๐—ฒ๐˜€ ๐—ฏ๐—ฒ๐—ณ๐—ผ๐—ฟ๐—ฒ ๐˜๐—ต๐—ฒ๐˜† ๐—ฎ๐—ฐ๐˜๐˜‚๐—ฎ๐—น๐—น๐˜† ๐—ฎ๐—ฝ๐—ฝ๐—ฒ๐—ฎ๐—ฟ. This brings many benefits: - Developers feel confident that their changes are safe to be deployed and any issues are identified early - Managers can plan their roadmaps reliably as their teams avoid expensive rollbacks and lengthy troubleshooting - All DORA metrics are improved as teams move faster and face fewer errors - Velocity increases and MTTR goes down ๐—ง๐—ต๐—ถ๐—ฟ๐—ฑ, ๐—ด๐—ผ๐—ผ๐—ฑ ๐—ผ๐—ฏ๐˜€๐—ฒ๐—ฟ๐˜ƒ๐—ฎ๐—ฏ๐—ถ๐—น๐—ถ๐˜๐˜† ๐˜€๐˜†๐˜€๐˜๐—ฒ๐—บ๐˜€ ๐—ฎ๐˜ƒ๐—ผ๐—ถ๐—ฑ ๐˜€๐˜„๐—ฎ๐—บ๐—ฝ๐—ถ๐—ป๐—ด ๐˜‚๐˜€๐—ฒ๐—ฟ๐˜€ ๐˜„๐—ถ๐˜๐—ต ๐—ฑ๐—ฎ๐˜๐—ฎ ๐—ฝ๐—ผ๐—ถ๐—ป๐˜๐˜€. This unblocks the teams in the following ways: - They need lower working knowledge about the system to keep it in shape and maintain it over time - Junior developers can be as effective as senior developers in troubleshooting issues - Teams can work independently as they donโ€™t need help from other teams (like DBAs) to debug the problems - They donโ€™t need to spend time on troubleshooting and can apply the solutions immediately There is no need to slice and dice metrics anymore. World-class observability solutions are now giving guides that developers can follow mechanically to solve the issues. ๐—Ÿ๐—ฎ๐˜€๐˜ ๐—ฏ๐˜‚๐˜ ๐—ป๐—ผ๐˜ ๐—น๐—ฒ๐—ฎ๐˜€๐˜, ๐—ผ๐—ฏ๐˜€๐—ฒ๐—ฟ๐˜ƒ๐—ฎ๐—ฏ๐—ถ๐—น๐—ถ๐˜๐˜† ๐˜€๐—ผ๐—น๐˜‚๐˜๐—ถ๐—ผ๐—ป๐˜€ ๐—ฐ๐—ฎ๐—ป ๐—ป๐—ผ๐˜„ ๐˜ƒ๐—ฒ๐—ฟ๐—ถ๐—ณ๐˜† ๐—บ๐—ฎ๐—ป๐˜† ๐—ต๐˜†๐—ฝ๐—ผ๐˜๐—ต๐—ฒ๐˜€๐—ฒ๐˜€ ๐—ฎ๐—ป๐—ฑ ๐—ฝ๐—ฟ๐—ผ๐˜ƒ๐—ถ๐—ฑ๐—ฒ ๐—ฎ๐—ป๐˜€๐˜„๐—ฒ๐—ฟ๐˜€. This gives the following: - Observability tools can confirm what will work and what will not bring any improvements - Developers donโ€™t need to try things out. They just come and immediately see which things are effective - MTTR is greatly reduced as many solutions are tested at once - Developers are sure improvement suggestions will work in their production systems and are not only theoretically valid Say goodbye to old monitoring solutions that swamp your developers with raw data points.

    • No alternative text description for this image
  • View organization page for Metis, graphic

    487 followers

    ๐——๐—ฒ๐˜ƒ๐—ข๐—ฝ๐˜€ ๐—ฒ๐—ป๐—ด๐—ถ๐—ป๐—ฒ๐—ฒ๐—ฟ๐˜€ ๐˜„๐—ฎ๐—ป๐˜ ๐˜๐—ผ ๐—ฎ๐˜‚๐˜๐—ผ๐—บ๐—ฎ๐˜๐—ฒ ๐—ฒ๐˜ƒ๐—ฒ๐—ฟ๐˜†๐˜๐—ต๐—ถ๐—ป๐—ด. This gives them many benefits - they donโ€™t need to do any manual steps, they donโ€™t need to speak to other teams and can prioritize their important tasks better. ๐—›๐—ผ๐˜„๐—ฒ๐˜ƒ๐—ฒ๐—ฟ, ๐—บ๐—ฎ๐—ป๐˜† ๐—ผ๐—ฟ๐—ด๐—ฎ๐—ป๐—ถ๐˜‡๐—ฎ๐˜๐—ถ๐—ผ๐—ป๐˜€ ๐—บ๐—ฎ๐—ธ๐—ฒ ๐—ฎ๐˜‚๐˜๐—ผ๐—บ๐—ฎ๐˜๐—ถ๐—ป๐—ด ๐˜๐—ต๐—ถ๐—ป๐—ด๐˜€ ๐—ต๐—ฎ๐—ฟ๐—ฑ๐—ฒ๐—ฟ. They require synchronous communication between the teams, they limit access permissions, and they scatter ownership throughout various squads. In turn, DevOps engineers donโ€™t own their databases and struggle to move fast with automation since they need to maintain the databases manually. ๐—ช๐—ต๐—ฎ๐˜ ๐—ถ๐—ณ ๐˜๐—ต๐—ฒ๐˜† ๐—ฐ๐—ผ๐˜‚๐—น๐—ฑ ๐—ผ๐˜„๐—ป ๐˜๐—ต๐—ฒ๐—ถ๐—ฟ ๐—ฑ๐—ฎ๐˜๐—ฎ๐—ฏ๐—ฎ๐˜€๐—ฒ? ๐—ช๐—ต๐—ฎ๐˜ ๐—ถ๐—ณ ๐˜๐—ต๐—ฒ๐˜† ๐—ฑ๐—ถ๐—ฑ๐—ปโ€™๐˜ ๐—ป๐—ฒ๐—ฒ๐—ฑ ๐˜๐—ผ ๐˜€๐—ฝ๐—ฒ๐—ฎ๐—ธ ๐˜๐—ผ ๐—ผ๐˜๐—ต๐—ฒ๐—ฟ ๐˜๐—ฒ๐—ฎ๐—บ๐˜€? We need to bring tools that automate everything around databases. To make DevOps engineers true database owners, they need to be able to optimize all the queries that are executed in the database. They need tools that can show them whatโ€™s going on, analyze the source code, and indicate how to optimize it to make it faster. These tools need to bring confidence and reliability. There is nothing worse than finding bugs very late in the pipeline because it requires the DevOps engineers to start the implementation process from scratch. They need solutions that can analyze if their designs are correct, if the queries are fast enough, and if the schema changes wonโ€™t cause a data loss. The next part of the work is achieving the highest database reliability and understanding whether the database works correctly. DevOps engineers need to have live database-oriented metrics showing the status of the databases. However, just bringing the data is not enough. We canโ€™t expect the DevOps engineers to do the hard work of connecting the dots when these things can be easily automated. We need tools that can help by reasoning about all parts of the SLDLC to explain how to make things better. Tools that can let the DevOps engineers focus on the hard parts. ๐—ง๐—ต๐—ฒ ๐—ฏ๐—ถ๐—ด๐—ด๐—ฒ๐˜€๐˜ ๐˜๐—ถ๐—บ๐—ฒ-๐˜„๐—ฎ๐˜€๐˜๐—ฒ๐—ฟ๐˜€ ๐—ฎ๐—ฟ๐—ฒ ๐—บ๐—ฒ๐—ฒ๐˜๐—ถ๐—ป๐—ด๐˜€ ๐—ฎ๐—ป๐—ฑ ๐˜€๐˜†๐—ป๐—ฐ๐—ต๐—ฟ๐—ผ๐—ป๐—ผ๐˜‚๐˜€ ๐—ฐ๐—ผ๐—บ๐—บ๐˜‚๐—ป๐—ถ๐—ฐ๐—ฎ๐˜๐—ถ๐—ผ๐—ป. DevOps engineers automate their tasks and they canโ€™t do that when many parties are involved. They need to work independently and own all the parts of their databases. They need to have tools that can analyze database designs, query performance, and suggest improvements. These tools need to automate the reasoning and provide actionable insights instead of raw data. Metis handles all of that and lets the DevOps engineers own their databases and talk less with other teams. Use Metis and unleash the power of your DevOps teams.

    • No alternative text description for this image
  • View organization page for Metis, graphic

    487 followers

    Developers often want to own the stuff they work with. This gives them many benefits - they donโ€™t need to speak to other teams, they can prioritize their work, and they can optimize the things they work on by introducing better tools and processes. Itโ€™s hard for them to do their work when they arenโ€™t the owners. Unfortunately, this is common with databases. ๐——๐—ฒ๐˜ƒ๐—ฒ๐—น๐—ผ๐—ฝ๐—ฒ๐—ฟ๐˜€ ๐—ฑ๐—ผ๐—ปโ€™๐˜ ๐—ผ๐˜„๐—ป ๐˜๐—ต๐—ฒ๐—ถ๐—ฟ ๐—ฑ๐—ฎ๐˜๐—ฎ๐—ฏ๐—ฎ๐˜€๐—ฒ ๐—ฒ๐—ป๐—ด๐—ถ๐—ป๐—ฒ๐˜€ ๐—ฎ๐—ป๐—ฑ ๐˜€๐˜๐—ฟ๐˜‚๐—ด๐—ด๐—น๐—ฒ ๐˜„๐—ถ๐˜๐—ต ๐—บ๐—ผ๐˜ƒ๐—ถ๐—ป๐—ด ๐—ณ๐—ฎ๐˜€๐˜ ๐˜„๐—ถ๐˜๐—ต ๐—ฎ๐—น๐—น ๐˜๐—ต๐—ฒ ๐˜„๐—ผ๐—ฟ๐—ธ ๐—ผ๐—ป ๐˜๐—ต๐—ฒ๐—ถ๐—ฟ ๐—ฝ๐—น๐—ฎ๐˜๐—ฒ๐˜€. What if they could own their database? What if they didnโ€™t need to speak to other teams ๐—ง๐—ผ ๐—บ๐—ฎ๐—ธ๐—ฒ ๐—ฑ๐—ฒ๐˜ƒ๐—ฒ๐—น๐—ผ๐—ฝ๐—ฒ๐—ฟ๐˜€ ๐—ผ๐˜„๐—ป๐—ฒ๐—ฟ๐˜€, ๐˜๐—ต๐—ฒ๐˜† ๐—ป๐—ฒ๐—ฒ๐—ฑ ๐˜๐—ผ ๐˜‚๐—ป๐—ฑ๐—ฒ๐—ฟ๐˜€๐˜๐—ฎ๐—ป๐—ฑ ๐—ต๐—ผ๐˜„ ๐˜๐—ผ ๐—ผ๐—ฝ๐˜๐—ถ๐—บ๐—ถ๐˜‡๐—ฒ ๐˜๐—ต๐—ฒ ๐—พ๐˜‚๐—ฒ๐—ฟ๐—ถ๐—ฒ๐˜€ ๐˜๐—ต๐—ฒ๐˜† ๐—ฑ๐—ฒ๐—ฎ๐—น ๐˜„๐—ถ๐˜๐—ต. They need to have the tools that can let them change the code with confidence. They need solutions that can analyze if their designs are correct, if the queries are fast enough, and if the schema changes wonโ€™t cause a data loss. This requires integration with developersโ€™ environments, CI/CD pipelines, and all the environments developers work on. ๐——๐—ฒ๐˜ƒ๐—ฒ๐—น๐—ผ๐—ฝ๐—ฒ๐—ฟ๐˜€ ๐—ป๐—ฒ๐—ฒ๐—ฑ ๐˜๐—ผ ๐˜‚๐—ป๐—ฑ๐—ฒ๐—ฟ๐˜€๐˜๐—ฎ๐—ป๐—ฑ ๐—ถ๐—ณ ๐˜๐—ต๐—ฒ๐—ถ๐—ฟ ๐—ฑ๐—ฎ๐˜๐—ฎ๐—ฏ๐—ฎ๐˜€๐—ฒ๐˜€ ๐—ฎ๐—ฟ๐—ฒ ๐˜„๐—ผ๐—ฟ๐—ธ๐—ถ๐—ป๐—ด ๐—ฐ๐—ผ๐—ฟ๐—ฟ๐—ฒ๐—ฐ๐˜๐—น๐˜†. They need to have live database-oriented metrics showing the status of the databases. Just bringing the data is not enough. Tools need to reason automatically and provide answers instead of raw data. Those tools need to do all of that by connecting dots from all parts of the SLDLC to explain how to make things better, hypothesize about indexes, query rewrites, and configuration changes, and verify these ideas automatically. ๐—ง๐—ต๐—ฒ ๐—ฏ๐—ถ๐—ด๐—ด๐—ฒ๐˜€๐˜ ๐˜๐—ถ๐—บ๐—ฒ-๐˜„๐—ฎ๐˜€๐˜๐—ฒ๐—ฟ๐˜€ ๐—ฎ๐—ฟ๐—ฒ ๐—บ๐—ฒ๐—ฒ๐˜๐—ถ๐—ป๐—ด๐˜€ ๐—ฎ๐—ป๐—ฑ ๐˜€๐˜†๐—ป๐—ฐ๐—ต๐—ฟ๐—ผ๐—ป๐—ผ๐˜‚๐˜€ ๐—ฐ๐—ผ๐—บ๐—บ๐˜‚๐—ป๐—ถ๐—ฐ๐—ฎ๐˜๐—ถ๐—ผ๐—ป. Developers need to be able to work independently on all the parts of their databases. Developers can deal with the issues entirely on their own if they donโ€™t need to talk to other teams or ask for details or metrics. They can fix everything independently. Developers can own their databases. They can solve all the issues and deploy things fast. They need to have tools that can analyze database designs, query performance, and suggest improvements. These tools need to automate the reasoning and provide actionable insights instead of raw data. Metis handles all of that and lets the developers own their databases and talk less with other teams. Use Metis and unleash the power of your developers.

    • No alternative text description for this image
  • View organization page for Metis, graphic

    487 followers

    Reliability is often misunderstood and teams miss multiple things when making sure their databases work well. They focus on improving stability metrics without building the proper processes around them. Letโ€™s see 3 hot trends in database reliability that every team should incorporate into their organization. ๐—™๐—ถ๐—ฟ๐˜€๐˜ - ๐—ข๐—ฏ๐˜€๐—ฒ๐—ฟ๐˜ƒ๐—ฎ๐—ฏ๐—ถ๐—น๐—ถ๐˜๐˜† ๐—œ๐—ป๐˜€๐˜๐—ฒ๐—ฎ๐—ฑ ๐—ผ๐—ณ ๐— ๐—ผ๐—ป๐—ถ๐˜๐—ผ๐—ฟ๐—ถ๐—ป๐—ด We need to change the way how we monitor our ecosystems. To make sure our database is reliable, we need to prevent any bad changes from reaching production. We need to find the issues before they get through pipelines and fix them as early as possible. Monitoring is not enough to do that. We canโ€™t just capture metrics from various software layers and sources in the production, and call it a day. ๐—ช๐—ฒ ๐—ป๐—ฒ๐—ฒ๐—ฑ ๐˜๐—ผ ๐—บ๐—ผ๐˜ƒ๐—ฒ ๐—ณ๐—ฟ๐—ผ๐—บ ๐—บ๐—ฒ๐—ฟ๐—ฒ๐—น๐˜† ๐—บ๐—ผ๐—ป๐—ถ๐˜๐—ผ๐—ฟ๐—ถ๐—ป๐—ด ๐˜๐—ต๐—ฒ ๐—ฝ๐—ฟ๐—ผ๐—ฑ๐˜‚๐—ฐ๐˜๐—ถ๐—ผ๐—ป ๐˜๐—ผ ๐˜€๐—ฒ๐—ฒ๐—ถ๐—ป๐—ด ๐—ฒ๐˜ƒ๐—ฒ๐—ฟ๐˜†๐˜๐—ต๐—ถ๐—ป๐—ด ๐—ถ๐—ป ๐—ผ๐˜‚๐—ฟ ๐—ฒ๐—ฐ๐—ผ๐˜€๐˜†๐˜€๐˜๐—ฒ๐—บ. This way we can identify slow queries before they hit the database, invalid schema migrations that may take the database down, and wrong scripts that may lead to data loss. ๐—ฆ๐—ฒ๐—ฐ๐—ผ๐—ป๐—ฑ - ๐—จ๐—ป๐—ฑ๐—ฒ๐—ฟ๐˜€๐˜๐—ฎ๐—ป๐—ฑ๐—ถ๐—ป๐—ด ๐—œ๐—ป๐˜€๐˜๐—ฒ๐—ฎ๐—ฑ ๐—ผ๐—ณ ๐—ฆ๐—ฒ๐—ฒ๐—ถ๐—ป๐—ด Our current monitoring solutions are great at showing us where something happens. However, just seeing that the metrics increased is not enough when weโ€™re deploying many times a day and we deal with many heterogeneous applications. ๐—ช๐—ต๐—ฎ๐˜ ๐˜„๐—ฒ ๐—ป๐—ฒ๐—ฒ๐—ฑ ๐—ถ๐—ป๐˜€๐˜๐—ฒ๐—ฎ๐—ฑ ๐—ถ๐˜€ ๐˜‚๐—ป๐—ฑ๐—ฒ๐—ฟ๐˜€๐˜๐—ฎ๐—ป๐—ฑ๐—ถ๐—ป๐—ด. We need our monitoring solutions to explain what happens, why metrics change, what exactly contributes to the issues we observe, and how things are evolving. Instead of getting the alarms that metrics spiked, we should get a consistent history explaining what happened and where we are now. ๐—ง๐—ต๐—ถ๐—ฟ๐—ฑ - ๐—”๐˜‚๐˜๐—ผ๐—บ๐—ฎ๐˜๐—ฒ๐—ฑ ๐—ง๐—ฟ๐—ผ๐˜‚๐—ฏ๐—น๐—ฒ๐˜€๐—ต๐—ผ๐—ผ๐˜๐—ถ๐—ป๐—ด ๐—œ๐—ป๐˜€๐˜๐—ฒ๐—ฎ๐—ฑ ๐—ผ๐—ณ ๐— ๐—ฎ๐—ป๐˜‚๐—ฎ๐—น ๐—ช๐—ผ๐—ฟ๐—ธ Once we get comprehensive explanations of what changed and why the system doesnโ€™t behave as expected, we should expect the tooling to troubleshoot the issues automatically. The system can add hypothetical indexes and check the execution plans, verify the cost of different queries, and suggest improvements. We can submit pull requests to fix the code and configurations automatically. Monitoring the metrics is not enough. We need to move on to prevent the bad code changes from being deployed to production. We can get all of that automated and forget that our databases exist.

    • No alternative text description for this image
  • View organization page for Metis, graphic

    487 followers

    There are two important tasks that each developer faces when using databases - how to make queries faster and how to improve the schemas. There are many ways to tackle these problems and we need to find the balance between how much time we spend and how much we improve the performance. ๐— ๐—ฎ๐—ป๐˜† ๐˜๐—ต๐—ถ๐—ป๐—ด๐˜€ ๐—ฎ๐—ณ๐—ณ๐—ฒ๐—ฐ๐˜ ๐˜๐—ต๐—ฒ ๐—ฝ๐—ฒ๐—ฟ๐—ณ๐—ผ๐—ฟ๐—บ๐—ฎ๐—ป๐—ฐ๐—ฒ ๐—ผ๐—ณ ๐˜๐—ต๐—ฒ ๐—ฑ๐—ฎ๐˜๐—ฎ๐—ฏ๐—ฎ๐˜€๐—ฒ. We can use CTEs that may be slower than the less readable code with duplications. We may go with many joins that can exponentially increase the number of rows we extract from the database. We may use cursors that let us achieve nearly anything but are terrible for the performance. ๐—ง๐—ต๐—ฒ ๐—ป๐—ฒ๐˜…๐˜ ๐˜๐—ต๐—ถ๐—ป๐—ด ๐—ถ๐˜€ ๐˜„๐—ต๐—ฎ๐˜ ๐—ถ๐—ป๐—ฑ๐—ฒ๐˜…๐—ฒ๐˜€ ๐˜„๐—ฒ ๐—ต๐—ฎ๐˜ƒ๐—ฒ ๐—ถ๐—ป ๐—ผ๐˜‚๐—ฟ ๐—ฑ๐—ฎ๐˜๐—ฎ๐—ฏ๐—ฎ๐˜€๐—ฒ. We may go with popular B-tree-based indexes, but we may also have text-oriented indexes with trigrams or things supporting ML and vector databases. ๐—ง๐—ต๐—ฒ๐—ป ๐—ฐ๐—ผ๐—บ๐—ฒ ๐—ฎ๐—น๐—น ๐˜๐—ต๐—ฒ ๐˜๐—ต๐—ถ๐—ป๐—ด๐˜€ ๐˜๐—ต๐—ฎ๐˜ ๐—บ๐—ฎ๐—ธ๐—ฒ ๐˜๐—ต๐—ฒ ๐—ผ๐—ฝ๐˜๐—ถ๐—บ๐—ถ๐˜‡๐—ฎ๐˜๐—ถ๐—ผ๐—ป ๐—ฒ๐—ป๐—ด๐—ถ๐—ป๐—ฒ ๐—ฝ๐—ฟ๐—ผ๐—ฑ๐˜‚๐—ฐ๐—ฒ ๐—ณ๐—ฎ๐˜€๐˜๐—ฒ๐—ฟ ๐—ฝ๐—น๐—ฎ๐—ป๐˜€ No matter what we choose to do, we need to have tools that can help us along the way. Just like we have compilers and static code analysis protecting us from silly mistakes, we need to have tools that can analyze our queries, schemas, and configurations, and provide automated insights. ๐—ง๐—ต๐—ฒ๐—ฟ๐—ฒ ๐—ถ๐˜€ ๐—ท๐˜‚๐˜€๐˜ ๐—ผ๐—ป๐—ฒ ๐˜๐—ผ๐—ผ๐—น ๐—ผ๐˜‚๐˜ ๐˜๐—ต๐—ฒ๐—ฟ๐—ฒ ๐˜๐—ต๐—ฎ๐˜ ๐—ฑ๐—ผ๐—ฒ๐˜€ ๐—ฎ๐—น๐—น ๐—ผ๐—ณ ๐˜๐—ต๐—ฎ๐˜ - ๐— ๐—ฒ๐˜๐—ถ๐˜€. Metis covers all you need to make your queries faster and schemas better. You get actionable code improvements, schema analysis, index coverage, and AI-based suggestions on how to optimize your queries. Metis is the only tool that walks you through the optimization process and leads you along the way. Use it today and make your databases faster.

    • No alternative text description for this image

Similar pages