SAS® Viya™ 3.3 is packed with new features to help those who administer the environment. Take a look at SAS Environment Manager and you will immediately notice additions such as the Log window that allows admins to view and filter log messages, an enhanced Machines view that provides detailed performance metrics and threshold testing to detect potential problems, and very nice auditing reports built from a re-vamped data mart. Sitting behind the scenes and making all of these impressive features possible is the SAS Viya Operations Infrastructure. And while the operations infrastructure supports many of the visual components used for administration, its capabilities are also provided in open, documented command line interfaces which finally provides administrators interested in more IT-related information the ability to customize the monitoring and logging information to suit their own needs.
The operations infrastructure is based on an event-driven architecture. The architecture includes producers of events as well as consumers of events. In this context, an event is rather loosely defined as a unit of information. This could be anything from a new CPU usage metric was collected, an ERROR message was detected in a log, the current memory usage exceeds a defined threshold, etc. Producers publish events to one or more of the SAS Message Broker's exchanges without knowing or caring who is listening for the events. The SAS Message Broker (RabbitMQ) has exchanges for different types of events so metric-related events go to the Metric exchange while alert-related events might go to the Notification exchange. Event consumers subscribe to an exchange and simply watch the events coming through. When a consumer detects an event of interest it can retrieve and process the event while ignoring other events. Event consumers do not interact directly with the event producers in any way so the two groups are totally separated.
This diagram of the operations infrastructure architecture should help visualize the notion of event producers and event consumers.
On the left are the operations infrastructure producers. sas-check measures a metric and compares it to a threshold value to issue a passed or failed event. sas-peek measures metric data and issues events with current measurements. sas-watch monitors an object such as a log and reports on changes. There are other producers such as scripts and self checks from the SAS Configuration Server (consul) but most of these producers are implemented as scripts and come configured to run automatically. However, IT admins can call any of these scripts directly if desired for their own use.
On the right we have the operations infrastructure consumer. sas-stream consumes events from the RabbitMQ exchanges and along with processes to aggregate and standardize the data, persists the information in a data mart for use by other Viya components like SAS Environment Manager.
Certain events, such as metrics regarding CPU and memory usage or checks for available space on the filesystem, are important to have on a per-machine basis. A sas-ops-agent is deployed to each machine in a SAS Viya environment and is configured to run a specific set of scheduled tasks to collect various measurements on each machine. Measurements are then published as events to one of the SAS Message Broker (RabittMQ) exchanges.
Everything I've described above is accessible through command line interfaces so IT admins are free to make use of any elements of the entire framework for their own purposes. One of the primary scripts that surfaces information from the entire framework is sas-ops which is found in/opt/sas/viya/home/bin. sas-ops functions automatically if you run it as the sas user. Running as a different user requires obtaining an authorization token.
Let's say an on call IT administrator has been called in to help troubleshoot issues and the SAS administrator is not available to help. sas-ops can be used to obtain basic information about the local machine or about all of the machines in the deployment.
[Only showing information from two machines below. Imagine how helpful information like this will be for Technical Support!]
Here's where it gets interesting. Want to see the events that are coursing through the Metrics, Alerts, or Logs exchange? Simply change 'metrics' to 'logs' or 'alerts' to view those exchanges.
Want to see the tasks that each sas-ops-agent performs and when? These tasks can be modified and tailored to specific customer needs. For example, the genAudit task which loads audit records to CAS can be scheduled to run more frequently or less frequently than its default of two hours, depending on the customer's needs.
And I'm just highlighting a tiny sliver of the operations infrastructure capabilities. The main point is that SAS has listened to IT administrators who have been clamoring for command line interfaces to help manage SAS deployments. The operations infrastructure of SAS Viya 3.3 proves that we are listening and IT admins will undoubtedly be pleased with the new capabilities.
Later posts from the admin team will delve into specific uses of the operations infrastructure. Meanwhile, visit the SAS Viya 3.3 Administration Guide to read more about the operations infrastructure and its extensive capabilities
Registration is open! SAS is returning to Vegas for an AI and analytics experience like no other! Whether you're an executive, manager, end user or SAS partner, SAS Innovate is designed for everyone on your team. Register for just $495 by 12/31/2023.
If you are interested in speaking, there is still time to submit a session idea. More details are posted on the website.
Data Literacy is for all, even absolute beginners. Jump on board with this free e-learning and boost your career prospects.