In a previous blog on Autonomous Operations Policies, I detailed a bit about how Autonomous Database Dedicated Infrastructure deployments differ from Shared Infrastructure and illustrated how with Dedicated you can setup a policy to govern a development-test, pre-production, production software update lifecycle.
I had said this next blog would be discussing how to perform monitoring of Autonomous Database – Dedicated Exadata Infrastructure operations. The objective being a group of users can be asynchronously informed about Maintenance activities including: when a new update operation is being scheduled, reminded when scheduled updates are going to occur, when software updates are beginning and when updates have ended, along with a status so you know all is good. This is done by using a combination of Oracle Events and Notifications. This is of course extremely important for any business to optimize their own operations and streamline a response to any disruption in business.
As it turns out, between now and the time I wrote the first part of my Autonomous Database Dedicated Infrastructure blog series on operational controls, Todd Sharp, a colleague of mine has written an excellent blog post that gives a general overview of Oracle Events and Notifications. Todd’s blog includes how to configure a Notification Topic Subscription. So, rather than providing a step by step guide here again, I am going to refer you to Todd’s blog and focus in this blog on the details of what notifications and events are available specifically for Autonomous Dedicated deployments.
Oracle Cloud service Resources, which are API endpoints in Oracle Cloud, all generate Events about their activities. Those service Resource Events can be monitored using Oracle Notifications Service. Recall there are 3 key service Resources for Autonomous – Dedicated: autonomous-exadata-infrastructures (AEI), autonomous-container-databases (ACD), autonomous-databases (ADB).
Oracle Notifications uses a publish and subscribe communications model. The idea is to create a Topic of interest to which relevant service Resource Events are published and for which interested users create Subscriptions to be notified of each event by their chosen protocol e.g. http, email, pager duty.
For example, one might create a Topic like MaintenanceActivities and then any service resource generating events related to maintenance can be configured to publish their events to that Topic. Users who want to monitor maintenance activities across all resources that are involved in maintenance can create a Subscription to the MaintenanceActivities Topic.
Topics are service Resources that are part of Oracle Notifications, they are defined by you and can represent an aggregation of Events that make sense to how your organization is setup to monitor service operations. If you are a small company, you might even create a Topic like ServiceActivities and direct all Events to that single Topic and perhaps one person is Subscribed to that Topic and gets all notices about all service activities. In larger companies where responsibilities are segmented you might create a range of Topics like Compliance, Security, Administration, Billing and target specific subsets of service events to each, having different groups of people monitoring each Topic. A single Event can be sent to multiple Topics if it makes sense that more than one group is aware of a specific kind of activity.
The obvious question becomes, what service Resource events are available for Autonomous Database? The current set of events for Autonomous Database dedicated deployments include:
Autonomous Exadata Infrastructure – Create(begin/end), Maintenance(scheduled/remind/begin/end), Terminate(begin/end) … a total of 8 event types.
Autonomous Container Database – Compartment(change), Backup(begin/end), Create(begin/end), Restart(begin/end), Maintenance(scheduled, reminder, begin, end), Restore(begin/end), Terminate(begin/end), Update(begin/end), Update(begin/end) … a total of 19 event types.
Autonomous Database – Change Compartment(begin/end), Create(begin/end), Create Backup(begin/end), Generate Wallet, Restore(begin/end), Start(begin/end), Stop(begin/end), Terminate(begin/end) … a total of 14 event types.
Your first step to monitoring maintenance activities would be to create a Topic for the maintenance related events, let’s say we create a Topic SoftwareUpdateCompliance. Keeping in mind, service Resources are specific to a given Compartment, so your Topic is created as a specific Compartment Resource, in the same Compartment where the Events will be getting generated. In Todd’s blog, you learned how to use Oracle Notifications to create the notification Topic. The details page of such a Topic would look as follows:
Of course, now that you have a Topic you need to have at least 1 Subscription so that when events arrive, they will be directed to someone paying attention. You learned how to do that in Todd’s blog so will not repeat here, but ideally you will have created a Subscription that targets a protocol as shown below like pager duty, so your operations team can get asynchronous notifications.
You would now need to setup maintenance related events to be published to that Topic. Recall you learned in Todd’s blog that in the Events Service, you create Event Rules that aggregate related events, when a Rule fires it triggers an Action. An Action can be directed towards Oracle Functions, Streams or Notification. When an Action targets a Notification Topic, then all Subscriptions to the Topic get the notice that the Event has happened, with detail about the Event.
To monitor maintenance activities for Autonomous Databases, you create a Rule for all Maintenance related events, then assign all possible events that have been defined for Maintenance across the Autonomous Database service Resources. You learned how to create an Event Rule in Todd’s blog, below you will see that you need to create an aggregation of Event Types for the Database Service that includes the Event Types: Autonomous Exadata Infrastructure – Maintenance(scheduled/remind/begin/end) and Autonomous Container Database – Maintenance(scheduled, reminder, begin, end).
Make sure your Rule’s Action is setup for Notifications
Choose the Compartment where events would be generated which is where you’ve created your Topic of interest.
Select the Topic that was just created, in this case SoftwareUpdateCompliance.
After clicking on Create Rule, you will then be taken to a Details page where you can test it. Maintenance is not as easily triggered as it’s a scheduled activity, so its important to run a test and make sure you see the event show up in the Slack Channel associated with your Topic Subscription.
Because Maintenance cannot be directly triggered, below is an example where an operations-automation channel got an event of “eventType” : “com.oraclecloud.databaseservice.autonomous.database.backup.begin”. Today these events come in a raw JSON format, in the future will have the option to request a human readable format, but for now, getting it is JSON can be useful for further API automation.
Well, that’s all there is to it. It’s quite simple to setup Topics of interest for different categories of Events, direct all of the Events in that category to any Subscription created for the Topic. Using these Oracle Cloud features one can effectively monitor the health of the databases supporting all business applications.