October 2022 Summaries
3 posts from Steadybit
Filter
Month:
Year:
Post Summaries
Back to Blog
Building on a previous guide about setting up a query language lexer and parser using ANTLR, this post explores integrating this setup into a user-friendly interface through the Monaco editor. The Monaco editor, known for powering VS Code, offers advanced features like auto-completion, syntax highlighting, and error handling, making it suitable for enhancing user experience. The integration process involves registering a language, defining a theme with specific token colors, and setting up tokenization using classes such as TokensProvider and Token. Additionally, the editor can handle errors by setting markers and provides auto-completion through a customizable completion item provider. Although the setup requires some boilerplate code, it offers flexibility and support for creating an intuitive interface for users to write queries following a defined grammar.
Oct 24, 2022
1,228 words in the original blog post.
The blog post explores the implementation of a query language's lexer and parser, focusing on how ANTLR is utilized to create Java and JavaScript lexers and parsers for Steadybit's query language. The language aims to identify targets like hosts and Kubernetes workloads for executing actions and is inspired by SQL and Lucene query syntaxes. By leveraging ANTLR, the blog explains how existing open-source grammars are adapted to fit specific needs, simplifying the process and avoiding common pitfalls. The article discusses the integration of generated code using Maven build plugins and highlights the process of translating parse trees into object hierarchies compatible with existing codebases. The post concludes that the query language is now ready for integration with other product components, with future articles set to explore further aspects of its implementation.
Oct 14, 2022
1,323 words in the original blog post.
Continuous verification through resilience testing, as exemplified by Steadybit, is crucial for building confidence in complex systems by ensuring their reliability and evolution over time. This article discusses how Steadybit integrates chaotic and turbulent conditions into existing testing methodologies, such as unit, integration, end-to-end, and performance/load tests, through experiments that combine attacks, checks, probes, and arbitrary actions. A specific example is given where Steadybit was used to address deployment issues in a Kubernetes environment caused by an AWS ALB misconfiguration related to sticky sessions, demonstrating how observations from resilience testing can lead to the creation of fast, repeatable, and cost-effective verification checks that also serve as documentation. These checks include ensuring no pending rollouts, all pods being ready, no degraded synthetic checks, and successful API calls, which are achieved through Steadybit's experiment designer and its integration with other tools like Checkly and Prometheus. The article underscores the importance of continuous learning and verification to maintain a current understanding of system risks and enhance system confidence through automation.
Oct 10, 2022
743 words in the original blog post.