Skip to main content

Network Architecture & Subsystems for Querying

Gyeeta can be queried either using its Web UI or using REST APIs. The Web UI internally uses the REST APIs exposed to query the data. Query Request Data and Responses are in JSON format.

Query Network Architecture

The Gyeeta architecture has two components which are responsible for the Query Resultsets : madhava Intermediate Servers and shyama Central Server. Both these components either respond to the query from their in-memory data structures or using the Postgres DB they are connected to.

On receiving a REST API query (either directly or from the Web UI), the Gyeeta Webserver will determine whether the query is intended for one or all madhava servers or for the shyama server. This is decided by the type of query. Thereafter, the Webserver will forward the query to the respective component.

If the query spans multiple madhava servers, the Webserver will send the queries in parallel and accumulate the resultsets returned and present a single resultset to the user.

Query History Period

By default, Gyeeta will store 3 days of historical data. This time period is configurable by specifying the postgres_storage_days option within each madhava and shyama configuration.

Query Subsystems

All Gyeeta queries are limited to a single Subsystem in a single REST API call. A subsystem can be thought of as a Database Table.

The following table lists the main query subsystems :

SubsystemDescriptive NameResponse ComponentUpdated everyAggregation SupportedNotes
extsvcstateExtended Service Statemadhava5 secYesProvides Service statistics such as State, QPS, Response Time, Service Info
svcstateService Statemadhava5 secYesSame as extsvcstate, but no Service Info fields (faster querying)
svcsummService Summarymadhava5 secYesProvides Host Level 5 sec Service summaries such as Total Services, QPS, etc.
svcinfoService Infomadhava5 minYesProvides Service Info such as Listener IP/Port, Command Line, Start Time
extprocstateExtended Process Statemadhava5 sec to 15 secYesProvides Process statistics such as State, CPU, Memory, Delays
procstateProcess Statemadhava5 sec to 15 secYesSame as extprocstate, but no Process Info fields (faster querying)
procinfoProcess Infomadhava5 minYesProvides Process Info such as Command Line, Tags, Start Time
clusterstateCluster Stateshyama5 secYesProvides Cluster statistics such as State, Count of Service Issues
extactiveconnExtended Service Inbound Networkmadhava15 secYesProvides Network Flows for Service Inbound Connections
activeconnService Inbound Networkmadhava15 secYesSame as extactiveconn, but no Service Info fields (faster querying)
extclientconnExtended Client Outbound Networkmadhava15 secYesProvides Network Flows for Process Outbound Connections
clientconnExtended Client Outbound Networkmadhava15 secYesSame as extclientconn, but no Process Info fields (faster querying)
hoststateHost Statemadhava5 secYesProvides Host Level statistics such as State, Count of Service Issues
cpumemHost CPU Memorymadhava4 secYesProvides Host CPU/Memory statistics such as CPU %, RSSCount of Service Issues
hostinfoHost InfomadhavaeventYesProvides Host Info such as Kernel, CPU Count, Boot Time
svcprocmapService to Process Mapmadhava5 minNoProvides Mapping between a Service and its Process IDs
svcmeshclustInterconnected Service Groupshyama5 minNoProvides the list of Interconnected Service Groups
svcipclustVirtual IP Service Groupshyama6 minNoProvides the list of Virtual IP Service Groups
alertsAlertsshyamaeventYesProvides Alerts and Summary Statistics
alertdefAlert DefinitionsshyamaeventNoProvides Alert Definitions
actionsAlert ActionsshyamaeventNoProvides Alert Action (Notification) Definitions
silencesAlert SilencesshyamaeventNoProvides Alert Silence Definitions
inhibitsAlert InhibitsshyamaeventNoProvides Alert Inhibit Definitions
shyamastatusShyama StatusshyamaeventNoProvides Shyama Server Status Info
madhavastatusMadhava StatusmadhavaeventNoProvides Madhava Servers Status Info

The extsvcstate and svcstate subsystems differ in that the extsvcstate adds a few svcinfo (Service Info) subsystem fields to svcstate. The extprocstate and procstate subsystems differ in that extprocstate adds a few procinfo (Process Info) subsystem fields to procstate.