Optimizing Cloud Costs

A Joint Technical Webinar with AWS

Nebula Introduction – Prosimo’s Generative AI Chat Assistant for AIOps

TL;DR: In this article, we will introduce “Nebula”, a Generative AI Chat which enables AIOps for MCN.

What is Nebula?

Nebula is a Generative AI Chat interface for Prosimo to enable AIOps for MCN. It allows users to ask questions about their data flowing through Prosimo. Since Prosimo enables state-of-the-art MCN, it captures data about traffic flows, costs, alerts, policies, and other metrics for all the networks onboarded to Prosimo fabric. Using Nebula, users can query this data to derive insights, troubleshoot an issue, or understand their resources across different CSPs.

The Components of Nebula

The different components of Nebula interface are as follows:

  1. User input query: This is where the users can ask Nebula questions.
  2. Suggested queries: Nebula generates suggestions based on previous sessions as the users type in the query. Note that only sessions from this team are used to develop suggestions.
  3. History: This pane shows the past queries during this session. Clicking on this will bring up the results for this past query.
  4. Feedback: Users can provide feedback for the results generated by Nebula. Note that Nebula is still learning and may need to correct answers. However, it trains based on user feedback across teams.
  5. Query explanation: This gives a verbal explanation of the executed query and the results generated.
  6. Chart: This presents the results as a chart. Note that the charts are AI-generated based on the data format and volume.
  7. Table: The results in tabular format. The table can be sorted and/or filtered by column, which updates the corresponding chart.
  8. Raw results: Nebula also has the raw result in JSON format available for download and further analysis.

What can you ask Nebula today?

Nebula can currently answer user queries for the following topics:

  • Traffic session data
  • Policy data
  • Alert data
  • Cost data
  • Topology and config data

Why Nebula?

There is a lot of hype around AI, especially around Gen AI. ChatGPT has been the fastest-adopted consumer app. However, beyond the hype, ChatCPT (and now others) has certainly proven that Gen AI models are ready for mainstream adoption.

Gen AI via Nebula would allow users to complete their AIOps tasks faster. Nebula’s purpose is to answer a user’s custom query in a single pane of glass. Here are some of the reasons why we build Nebula:

  • Natural language query: Ability for users to query in natural language. With queries such as “Show me the top target networks based on data transfer from AWS.us-east-2”, the users do not have to tinker with setting filters to get the same result.
  • Single pane of glass: Users can now query different data from the same page. For example, they can start with “How many TGW attachments are present in AWS us-east-1” to understand their topology. Then they can move to “Which target network in AWS us-east-1 has the largest data transfer cost?“related to cost. These are different types of questions that are typically served in different dashboards. This allows users to troubleshoot an issue or gain insights on a topic without jumping to different screens.
  • Custom analysis: We typically get user requests for a specific view of their data. This may include a custom graph or a custom report, for example, the number of subnets per CSP region. Firstly, adding a custom graph/view of the product for a single customer may only be helpful to some customers. The turnaround time for such a request, if decided to be implemented, is around two weeks, including testing. Nebula allows users to ask different questions to generate custom views and graphs for what the user is looking for right now. In the above case, users can ask, “Show me the number of subnets per CSP region across all CSP regions” to generate the following custom graph.
  • The long tail request to expose uncommon fields can be carried out with Nebula. For example, “Show me the tags and network ID for onboarded subnets in AWS.eu-west-2 “ would give the following raw information:
				
					…
  {
    "tags": "{\"Name\":\"Security_VPC-subnet-private1-eu-west-2a\"}",
    "subnet_id": "subnet-0bd3b1efe269d4b4b",
    "csp_vpc_id": "vpc-044150e7337121f92"
  },
  {
    "tags": "{\"Name\":\"Security_VPC-subnet-public2-eu-west-2b\"}",
    "subnet_id": "subnet-0f002df4447b3236d",
    "csp_vpc_id": "vpc-044150e7337121f92"
  }, …

				
			
  • Add context: Nebula helps users to add context to their queries. For example, say the user wanted to query about all the target networks in the EU. Nebula answers this with a simple query: “Which are the top 10 target networks based on data transfer within the EU?”. Note how the region selection is done by Nebula without the user figuring out all the regions that lie in the EU.

Moreover, the user can borrow contextual information from the previous query or the result. For example, after the previous query, the user can continue, “Which are the top sources based on data transfer outside the EU accessing the top target from the previous response?”

In this case, the top sources are picked up based on the target information from the previous query. Nebula allows users to keep their focus on the data/insights and does the heavy lifting of carrying the context with the user query.