Published by Baron Schwartz on Jun 8, 2015 6:42:00 AM

Improved User Parsing From The MySQL Protocol

This isn’t really a feature we should brag about, because it’s a bug that took us a while to figure out, but we believe in sharing the bad as well as the good. There’s a lot to learn from TCP reassembly and protocol reverse engineering!

Read More
Published by John Potocny on Feb 26, 2015 3:20:00 AM

See Connection Latency with VividCortex

Recently, one of our customers reached out to us about a problem they were having trouble diagnosing - they noticed that every once in a while, it took their MySQL server a few seconds to initialize a client connection. They had figured out that the issue was a missing hosts entry for one of their clients, but VividCortex didn’t have any measurements to show this issue to them.

Read More
Published by Baron Schwartz on Feb 10, 2015 6:26:00 AM

How VividCortex Measures Queries

We often get questions about how we measure queries inside MySQL (and now PostgreSQL too). Many of these questions reveal assumptions about the metrics we provide and our methods for obtaining them. I thought it would be both interesting and helpful to clarify how we really do this. This article may get a bit dense, but by the end you will have a better sense of our database management platform’s unique approach.

Read More
Published by Mario Sukkar on Jan 8, 2015 3:26:00 AM

Monitor MySQL Database Users with VividCortex

VividCortex now supports per-user metrics in Top Queries, so you can monitor MySQL database user activity in detail. By changing the Rank menu from Queries to Users you can now see a breakdown of user activity in the familiar format, all with 1 second resolution. Here “user” means the database user account that the application uses to access the database.

Read More
Published by John Potocny on Nov 19, 2014 4:30:00 AM

Analyzing Prepared Statement Performance With VividCortex

Optimizing MySQL performance requires the ability to inspect production query traffic. If you’re not seeing your application’s production workload, you’re missing a vital part of the picture. In particular, there are lots of performance optimizations your systems might be doing that you’re not aware of. One of these is using prepared statements for queries.

Read More
Published by Preetam Jinka on Oct 16, 2014 3:03:00 AM

Smoke-Testing VividCortex's Agents With A Sanity Check Tool

One of our agents, vc-mysql-query, works by sniffing TCP traffic with libpcap and decoding the MySQL protocol. As you can imagine, it’s one of the most complicated portions of our codebase. It’s also difficult to test. We have a set of tests using tcpdump files of production MySQL traffic to deterministically test the sniffer code. We run the tcpdump files through the sniffer and check the generated output. The issue with this is that every time we add a new dump file, it’s a lot of manual work to know for sure what we should be seeing in the output. If the agent says that 100 SELECTs were run, how do we make sure it’s true?

Read More
Published by Preetam Jinka on Jul 25, 2014 1:19:00 AM

Prepared Statement Samples

One of our most useful features is Top Queries, which allows users to examine various metrics for families of similar queries. Once a query family is selected, we can drill down into its query samples. Individual samples are shown on a scatterplot. Selecting individual samples will display its captured SQL, latency, errors, and more.

Read More

Recent Posts

Posts by Topic

see all