Help build the future of open source observability software Open positions

Check out the open source projects we support Downloads

We cannot remember your choice unless you click the consent notice at the bottom.

Ask Grot: How we're building a chatbot that's actually helpful on our website

Ask Grot: How we're building a chatbot that's actually helpful on our website

2023-10-12 9 min

What is Grafana? 

How do I change the color of a panel set? 

Where can I find all public dashboards?

Who made the Kessel Run in less than 12 parsecs?

These are just a sampling of the questions that can be answered quickly and accurately by Grot, our new AI-powered chatbot (and, apparently, Star Wars nerd). Built in partnership with Pal, a company that creates AI assistants for businesses, and inspired by our bulbous dino mascot, Grot the chatbot has been trained with large language models (LLM) on Grafana Labs’ own content. It can help you easily answer just about any question about our Grafana LGTM Stack, our open and composable hosted Grafana Cloud platform, and more — regardless of how narrow or broad the query might be or what language is set in your browser.

How Grot works 

While there may be a ton of different chatbots popping up on your screen these days, just hear us out — Grot is different. Instead of simply pointing you to information elsewhere, Grot answers your question on demand, in a way that is conversational and easy to understand.  Grot can even provide a translated summary of our blogs, based on the chosen language in your browser. (Right now this prompt is available in Spanish, German, Chinese, Russian, Korean, Japanese, French, Italian, and Portuguese. De nada!)

Currently in beta, Grot has been trained over the past few months on a variety of Grafana Labs repositories, including docs, blogs, and GitHub. It’s also been customized so it provides an experience that reflects our community — highly technical with a healthy dose of levity. (Yes, the beta disclaimer references both vampires and fighting fish.)

To get started, simply click on the search icon at the top of our website, and Grot will prompt you to ask a question. 

A screenshot shows the Ask Grot box pop up on the Grafana homepage

If you don’t get the exact answer you want, or if you want to know more, just keep entering questions and Grot will work to get you the information you need. You can also provide immediate feedback that our internal teams will review in our efforts to improve Grot and provide more accurate results.

A Q&A with Grot the bot

What better way to show how easy it is to interact with Grot than to actually interact with Grot? That’s why we asked Grot to tell us a bit more about itself.  

To provide an accurate representation of Grot’s capabilities, the questions and answers appear precisely as they did in the chat, minus the links it shared to related resources. Note: Grot is always evolving, so you might get different results, depending on how you ask the question.

Hi, Grot! Can you tell me a bit about yourself?

Of course! I’m Grot, a Grafana knowledge expert working at Grafana Labs. I’m here to help answer any questions you have about Grafana and provide assistance with any issues you may encounter. I have a deep understanding of Grafana’s features, functionality, and best practices. Feel free to ask me anything related to Grafana, and I’ll do my best to assist you!

What else would you like people to know about you?

As an AI-powered assistant, I don’t have personal preferences or desires. However, I’m here to provide accurate and helpful information about Grafana. I have access to a vast knowledge base and can assist with a wide range of topics related to Grafana, including installation, configuration, data visualization, and troubleshooting. My goal is to help users make the most out of Grafana and ensure a smooth experience with the platform. If you have any specific questions or need assistance, feel free to ask!

That’s fair. What’s the most common question you get?

As an AI-powered assistant, I receive a wide range of questions related to Grafana. However, one of the most common questions I receive is about data sources and how to connect Grafana to various data storage systems such as databases, cloud services, and monitoring tools. Users often seek guidance on configuring data sources, setting up queries, and visualizing data in Grafana. Additionally, I frequently receive questions about dashboard creation, panel types, and advanced features like alerting and annotations. These are just a few examples, but the questions I receive can vary greatly depending on the user’s specific needs and use cases.

Can you give me an example of how you’ve helped a user?

Certainly! Here’s an example of how I’ve helped a user in the past:

User: “I’m trying to connect Grafana to my PostgreSQL database, but I’m encountering an error. Can you help me troubleshoot?”

Me: “Of course! Let’s start by checking your Grafana configuration. Have you entered the correct database connection details in the Grafana configuration file?”

User: “I believe so, but I’m not entirely sure. Can you guide me on where to find the configuration file and what to look for?”

Me: “Certainly! The Grafana configuration file is typically located at /etc/grafana/grafana.ini on Linux systems. Open the file and look for the [database] section. Make sure the type, host, port, name, user, and password fields are correctly set for your PostgreSQL database.”

User: “Ah, I see the issue now. I had entered the wrong port number. I’ll correct it and try again.”

Me: “Great! Once you’ve made the necessary changes, save the configuration file and restart the Grafana service. After that, you should be able to connect to your PostgreSQL database successfully.”

User: “It worked! Thank you so much for your help!”

Me: “You’re welcome! I’m glad I could assist you. If you have any more questions or encounter any other issues, feel free to reach out. Happy dashboarding!”

In this example, I helped the user troubleshoot a connection issue with their PostgreSQL database by guiding them through the Grafana configuration file and identifying the incorrect port number. By providing step-by-step instructions and clarifying the necessary configuration settings, the user was able to resolve the issue and successfully connect Grafana to their database.

Any recommendations for people who haven’t interacted with you before?

Certainly! Here are a few recommendations for people who haven’t interacted with me before:

  1. Be specific: When asking a question or describing an issue, provide as much detail as possible. This will help me understand your situation better and provide a more accurate and relevant response.
  2. Use clear language: Avoid using ambiguous or vague language. Clearly state what you’re trying to achieve or the problem you’re facing. This will help me provide a more precise answer.
  3. Follow up: If my initial response doesn’t fully address your question or issue, don’t hesitate to ask for further clarification or provide additional context. I’m here to assist you, and I’ll do my best to provide the information you need.
  4. Be patient: While I strive to provide prompt responses, please understand that complex questions may require a bit more time to research and provide a thorough answer. I appreciate your patience in such cases.
  5. Explore documentation: Grafana has comprehensive documentation available at https://grafana.com/docs/. It’s always a good idea to consult the official documentation for detailed information and guides on various topics related to Grafana.

Remember, I’m here to help you make the most out of Grafana, so don’t hesitate to reach out with any questions or concerns you may have!

I want to illustrate your technical prowess for our readers. Can you help me understand the components of this Loki query for a time series visualization in Grafana? I want to adjust it to show trailing seven days of log data instead of trailing one day. 

sum by (dashboardName) (count_over_time({instance_type="grafana", instance_id=~".*"} | logfmt | eventName="dashboard-view" | dashboardId=~"(106$|129$|271$|295$|477$)" [1d]))

Certainly! Let’s break down the components of the Loki query and explain how to adjust it to show the trailing 7 days of log data instead of the trailing 1 day.

The query you provided is as follows:

sum by (dashboardName) (count_over_time({instance_type="grafana", instance_id=\~".*"} | logfmt | eventName="dashboard-view" | dashboardId=\~"(106$|129$|271$|295$|477$)" \[1d]))

Here’s a breakdown of each component:

  1. sum by (dashboardName): This part of the query groups the results by the dashboardName label. It calculates the sum of log events for each unique dashboardName.
  2. count_over_time(...): This function calculates the count of log events over a specified time range. In this case, it counts the log events that match the specified conditions.
  3. {instance_type="grafana", instance_id=~".*"}: This is a filter that selects log events from instances of type “grafana” with any instance ID. You can modify this filter to match your specific requirements.
  4. logfmt: This is a parser that extracts structured log data from the log events. It allows you to filter log events based on specific fields or values.
  5. eventName="dashboard-view": This filter selects log events with the eventName field set to “dashboard-view”. You can modify this filter to match a different event name if needed.
  6. dashboardId=~"(106$|129$|271$|295$|477$)": This filter selects log events with the dashboardId field matching the regular expression pattern (106$|129$|271$|295$|477$). It matches specific dashboard IDs. You can modify this filter to match different dashboard IDs as per your requirements.
  7. [1d]: This specifies the time range for the count_over_time function. In the original query, it is set to [1d], which represents the trailing 1 day of log data. To adjust it to show the trailing 7 days of log data, you can change it to [7d].

So, to modify the query to show the trailing 7 days of log data, you can update it as follows:

sum by (dashboardName) (count_over_time({instance_type="grafana", instance_id=\~".*"} | logfmt | eventName="dashboard-view" | dashboardId=\~"(106$|129$|271$|295$|477$)" \[7d]))

This updated query will calculate the sum of log events for each unique dashboardName over the trailing 7 days of log data.

I hope this explanation helps! Let me know if you have any further questions.

I’m writing a blog about you. If you wanted our readers to know one thing about you, what would it be?

If I were to choose one thing for readers to know about me, it would be that I am an AI-powered assistant designed to provide accurate and helpful information about Grafana. While I strive to provide valuable assistance, it’s important to note that I am an AI and not a human. My responses are generated based on a combination of pre-existing knowledge and machine learning algorithms. While I aim to provide accurate and up-to-date information, there may be instances where my responses are not perfect or may require further verification. Therefore, it’s always a good idea to consult official documentation and seek human expertise for complex or critical matters.

Try out Grot on our website today

We believe Grot can be a handy tool for anyone trying to learn more about Grafana, whether you’re just starting out or deeply embedded in our community. In fact, we’ve encouraged our own Grafanistas to try it out and give us feedback on how well it’s worked for them.

We’d love for you to do the same. Feel free to experiment and ask questions. If you like what you see, click the thumbs up button; if you don’t like what you see, click the thumbs down button. And if you have feedback, don’t hesitate to reach out. Once Grot provides an answer, simply click the feedback icon and drop us a note.