Technical talk for the Grafana challenge proposed for hackers at HackUPC 2025.
Calling all innovators and data enthusiasts! Want to make a real difference while flexing your tech skills? Join the Grafana Labs challenge to tackle the UN Sustainable Development Goals, with a special focus on our planet!
You have two exciting paths to choose from:
- Become a Data Storyteller: Dive into open data, master Grafana Cloud, and build stunning dashboards that reveal critical insights into global challenges like climate change, ocean pollution, or deforestation.
- Become a Grafana App Pioneer: Go beyond the dashboard! Learn to build your own Grafana apps – panel plugins, dashboard plugins, even scenes – to create unique visualizations, interactive tools, or integrations that drive action towards a sustainable future. Check out the possibilities here: https://grafana.com/developers/plugin-tools/plugin-examples/
We’ll provide you with the knowledge to get started – from ingesting data and understanding metrics to the basics of Grafana plugin development. Then, it’s your turn to innovate. Whether you’re passionate about clean energy, protecting biodiversity, or promoting sustainable consumption, this is your chance to use data and code for good.
Impress us with your insightful dashboards or your groundbreaking Grafana apps. Let’s engineer a more sustainable future, together!”
Challenge Abstract
Join Grafana Labs in driving impact for the UN Sustainable Development Goals (SDGs)! This challenge invites you to leverage Grafana’s power to raise awareness and provide insights into these critical global issues, with a particular interest on environmental sustainability.
You have the flexibility to approach this challenge in two exciting ways (or a combination of both!):
- Data Visualization Powerhouse: Ingest open data from one or more sources into Grafana. Transform this data to reveal meaningful trends and create compelling dashboards that effectively communicate the challenges and potential solutions for your chosen SDG(s). Explore various visualization types to craft impactful narratives (panels, canvas, etc).
- Grafana App Innovator: Go beyond traditional dashboards and develop a Grafana App plugin (panel, dashboard, scenes, the sky is the limit!) that provides unique insights or functionalities related to your chosen SDG(s). Get inspired by the Grafana plugin examples: https://grafana.com/developers/plugin-tools/plugin-examples/. Your app could offer interactive visualizations, custom data displays, or even integrate external tools and APIs.
We encourage you to focus on environmental SDGs (e.g., Climate Action, Life Below Water, Life on Land), though all SDGs are valid and welcome.
Here are some starting points for open data (feel free to explore others!), and mix them:
- UNSDG Data
- World Bank Open Data
- Our World in Data
- Open Sustainable Technology
- Your own data
- Etc.
During our 30-minute introductory talk, we’ll teach you the basics of ingesting data into Grafana, understanding metrics and logs, and even guiding you through the initial steps of creating your own Grafana plugin app. We can’t wait to see your innovative solutions!
Ready to harness the power of Grafana for your HackUPC project? The session briefly introduces the core concepts you need to get started. We’ll cover Grafana fundamentals and guide you through the initial steps of building compelling dashboards and your first Grafana app. Equip yourself with the tools to visualize your data and bring your innovative ideas to life!



It was a close call!
Winner Graf-Anna




Inspiration
The growing urgency of climate change and the clear impacts outlined by the UN Sustainable Development Goals (SDGs), we were inspired to use technology to tell a data-driven story. We saw the power of Grafana not just for monitoring systems, but as a tool for raising awareness about critical global issues by creating dashboards. We wanted to explore the relationship between industrial development (SDG 9), responsible consumption (SDG 12), climate action (SDG 13), and their effects on our planet’s and human’s health.
What it does
Graf-Anna is a comprehensive Grafana dashboard that visualizes the impact of the Industrial Revolution and human activity on CO2 emissions, global climate trends, and human health. It aims to:
- Show Historical Trends: Displays the rise in global CO2 emissions, corresponding temperature increases, and the alarming increase in natural disasters since the industrial era began (~1850).
- Compare National Impacts: Visualizes CO2 emissions per capita and life expectancy trends for major countries (the US, China, Canada, Spain).
- Analyze Deforestation: Breaks down CO2 emissions specifically caused by deforestation, attributing them to different agricultural products (beef, oilseed, cereals, etc.) for key nations, illustrating the link between consumption patterns and environmental impact (connects SDG 12 and 13).
- Map Global Footprints: Uses Geomap panels to visualize current emission hotspots and land use patterns (industry vs. agriculture).
Graf-Anna serves as an educational tool to understand the historical context and current state of climate change drivers and impacts, using data to tell a compelling story. It uses both historical and live data to combine different SDGs.
How we built it
We utilized Grafana Dashboards as the core framework. We gathered data from various public sources (like https://ourworldindata.org/, OpenAQ API… ) covering:
- Historical global CO2 emissions and temperature anomalies.
- Natural disaster occurrences over time.
- CO2 emissions per capita and life expectancy by country.
- Detailed CO2 emissions from deforestation linked to specific agricultural commodities (likely sourced from environmental or agricultural statistics databases).
- Geospatial data for land use and emission mapping.
We used the Infinity plugin to ingest data from CSV files or APIs where necessary, and we employed a variety of Grafana panels:
- Time Series Charts: For historical trends (emissions, temperature, disasters, life expectancy, CO2/capita).
- Bar Charts: For comparing deforestation emissions by country and product.
- Geomap Panels: For visualizing land use and emission hotspots.
- Stat Panels: For displaying key metrics like current temperature anomaly and disaster counts.
- Text Panels: To provide explanations, context, and conclusions.
- Polystat/Image Panels: For displaying SDG logos.
We focused on structuring the dashboard logically, using rows and panel arrangements to guide the user through the story. We tried to apply the visualization best practices regarding layout and clarity that appeared in the slides.
Challenges we ran into
Our initial ambition was to develop a custom Grafana App Plugin using Scenes, potentially incorporating more advanced features like LLM integration for insights or dynamic image generation. However, we encountered technical difficulties and time constraints in implementing these features. This forced us to pivot our strategy. We realized that effectively sourcing, integrating, and visualizing the existing data to tell a clear story was a significant challenge in itself. So, finally, we opted to divert our efforts into finding consistent, comparable data across different domains (climate, health, agriculture, deforestation).
Accomplishments that we’re proud of
We are proud to have successfully pivoted from our initial complex plugin idea to deliver a comprehensive and informative Grafana dashboard within the time limit. We successfully integrated diverse datasets from multiple domains to create a cohesive narrative about the interconnectedness of industrial activity, consumption, climate change, and health.
What we learned
This project reinforced the power of data visualization as a storytelling tool. We learned that even without custom code, Grafana provides immense capability for building insightful dashboards. It was our first time with a technology of this kind, so we had to learn it from scratch.
We also deepened our understanding of the specific challenges and data points related to SDGs 9, 12, and 13.
What’s next for Graf-Anna
Future development for Graf-Anna could include implementing the custom plugin, incorporating more interactive elements and live-data, adding more SDGs…
Built With
- api
- grafana
Try it out
Runner up Peaceful Protest Tracker: Headlines vs Reality



Inspiration
In Serbia, following the tragic Novi Sad railway canopy collapse in November last year, where 16 lives were lost, widespread student-led protests erupted. The confusion caused by completely different stories emerging from various media outlets intrigued us. We felt inspired to use our skills in web dev, AI, and a passion for data visualization to try and bring some clarity.
What it does
Our solution is a dynamic dashboard presenting how the situation unfolded up to the present, thanks to near real-time data updating based on the latest news, from both regime-controlled and independent media outlets. On our Grafana dashboard, you can:
- See a semi-live map pinpointing reported protest locations across Serbia.
- Explore sentiment analysis: How are students or protesters being portrayed?
- Compare keyword usage: How often do protest related terms like “justice” appear in different media spheres in comparison to pure propaganda?
- Directly visualize the “Headlines vs Reality” contrast through comparative charts and stats
How we built it
We pieced together a pipeline designed to automatically gather, understand, and display this information:
- News Gathering: We started with Python and the BeautifulSoup library to scrape articles from both independent and pro-government Serbian news websites. We had to build in some flexibility to handle different website layouts.
- AI Brains: The raw article text then gets sent off to the Gemini 2.5 Flash API. We spent time crafting prompts to tell the AI exactly what we needed: Is this article about a protest? Where did it happen? Who was mentioned? And, crucially, what’s the sentiment towards the protesters/students? It sends back structured JSON data.
- The Control Room: A Spring Boot backend acts as the central coordinator. It uses Cron jobs to trigger the scraping process automatically every couple hours. It handles communication with the Gemini API through a Python script, tidies up the data, and makes it ready for Grafana via a simple REST API.
- Storing the Goods: All the structured info coming back from Gemini gets stored in MongoDB Atlas. We picked Mongo because it excels at handling the kind of slightly messy, ever-evolving JSON data you often get from web scraping and AI analysis.
- Making it Visual: Grafana is where the magic happens for the user. We hooked it up to our MongoDB Atlas. Then we went to town building dashboards using different Grafana panels – Geomaps for locations, Time Series for trends, Stats for key numbers, and Tables for an easy view of the protest schedule.
Challenges we ran into
Although each part was challenging on its own, designing the complex yet logical system architecture and connecting the pieces together posed the largest challenge, especially given the wide array of technologies used.
Accomplishments that we’re proud of
We’re proud of our decision to raise awareness of a very personal and important topic. Furthermore, we take pride in our persistence and determination to bring such a seemingly complex and “36h impossible” idea to life. Apparently, sleep deprivation and potato chips can take you so far.
What we learned
None of us had previously worked with Grafana, nor had any experience with web scraping, yet we not only managed to complete the imagined task, but to learn in the process as well. We’ll all likely use these technologies extensively in the future. There was also a lot of opportunity to learn the intricacies of our stack from each other, and also exchange knowledge with peers and mentors on site.
What’s next for Peaceful Protest Tracker: Headlines vs Reality
Who knows what the future holds. Assuming the websites we scraped from don’t change their format soon, our project is very self-maintainable, so we’ll probably keep it running and keep adding features as novel ideas arise.