VividCortex pulls data from a host by deploying a set of agents. Agents gather information and push it to the VividCortex API, which then analyzes and displays it. In most cases, the information the agents gather is made up of time series metrics. These metrics help us understand how clients’ systems evolve over time. We also capture timestamped samples of query executions and samples of events, to supplement these time series metrics.
Agents are native binaries for the platform. We currently support Linux, FreeBSD, and Windows running on x86_64 processors. Each agent has a specific purpose, and we build each agent set based on a customer’s configuration.
VividCortex’s discovery looks for specific processes that are listening for TCP connections. Each discovered instance then triggers a new host registration, and the agents make adjustments based on these registrations. VividCortex’s agent management involves downloading, updating, starting, and stopping agents, as mandated by the API. Version changes and updates can run automatically, or customers can choose to constrain updates to specific timeframes. In addition to the supervisor, every box runs a metrics aggregation agent and an OS-specific agent.
Additional agents will run depending on the database instances the system finds. Both a “metrics” agent and a “query” agent exist for each database type we support. For example, vc-pgsql-metrics and vc-pgsql-query for PostgreSQL. Metrics agents connect to the database and fetch information via standard statements or commands. Query agents are sniffers, and they are capable of decoding network traffic in order to read queries and responses.