{"id":55652,"date":"2026-11-03T14:04:11","date_gmt":"2026-11-03T22:04:11","guid":{"rendered":"https:\/\/www.griddb.net\/?p=55652"},"modified":"2026-11-03T14:04:11","modified_gmt":"2026-11-03T22:04:11","slug":"building-a-real-time-volcano-monitoring-dashboard-with-griddb-cloud-and-spring-boot","status":"publish","type":"post","link":"https:\/\/www.griddb.net\/en\/blog\/building-a-real-time-volcano-monitoring-dashboard-with-griddb-cloud-and-spring-boot\/","title":{"rendered":"Building a Real-Time Volcano Monitoring Dashboard with GridDB Cloud and Spring Boot"},"content":{"rendered":"<h2 id=\"introduction\"><strong>Introduction<\/strong><\/h2>\n<p>\nThe capacity to monitor geological events in real-time is a critical component of modern public safety and environmental management strategies. For events such as volcanic eruptions, where precursors like increased seismic activity can offer vital windows for action, the ability to ingest, process, and visualize data with minimal latency is paramount. An effective monitoring system is foundational for reliable early-warning protocols and efficient disaster response.\n<\/p>\n<p>\nThis technical guide details the development of a high-performance volcanic activity monitoring system. The solution leverages <a href=\"https:\/\/www.global.toshiba\/ww\/products-solutions\/ai-iot\/griddb\/product\/griddb-cloud.html\">GridDB Cloud<\/a>, a database optimized for time-series data, in conjunction with the <strong>Spring Boot<\/strong> framework for a robust backend architecture. The system ingests live data from USGS APIs, persists it to GridDB, and presents the information on a dynamic, map-centric web interface, providing a powerful and practical monitoring tool.\n<\/p>\n<h2 id=\"database-selection-the-case-for-griddb\">Database Selection: The Case for GridDB<\/h2>\n<p>\nThe choice of database is a primary architectural decision in any data-intensive application. For this monitoring system, which inherently deals with time-indexed event data, GridDB presents several key advantages.\n<\/p>\n<ul>\n<li><strong>Optimized for Time-Series Workloads:<\/strong> GridDB is purpose-built for IoT and time-series data. Its in-memory-oriented architecture storage model are designed for high-throughput ingestion and querying, ensuring the application can handle a continuous stream of data without performance bottlenecks.<\/li>\n<li><strong>A-Data-Model-for-Time-Series:<\/strong> The container-based data model is a natural fit. <code>VolcanoData<\/code> and <code>SeismicData<\/code> can be logically separated into their own containers, using the event timestamp as the row key. This schema facilitates efficient time-based querying and data lifecycle management.<\/li>\n<li><strong>Flexible API Access:<\/strong> While offering native Java clients for maximum performance, GridDB also provides a comprehensive REST API. This grants developers language-agnostic access and allows a standard Spring Boot application to integrate seamlessly using conventional tools like <code>RestTemplate<\/code>, avoiding the need for additional complex dependencies.<\/li>\n<\/ul>\n<h2 id=\"system-architecture-and-data-flow\">System Architecture and Data Flow<\/h2>\n<p>\nThe application employs a layered, unidirectional data flow architecture. This design promotes modularity, simplifies debugging, and enhances scalability.\n<\/p>\n<ol>\n<li><strong>Scheduled Ingestion:<\/strong> The data pipeline is initiated by <code>DataSchedulerService<\/code>, a Spring-scheduled bean that executes at a defined interval.<\/li>\n<li><strong>External Data Sourcing:<\/strong> This scheduler invokes <code>VolcanicDataService<\/code>, which acts as a client to the public USGS APIs, handling HTTP request execution and response reception.<\/li>\n<li><strong>Data Parsing and Transformation:<\/strong> The raw JSON responses are parsed using the Jackson <code>ObjectMapper<\/code> into a <code>JsonNode<\/code> tree. Specific fields are then extracted and mapped into strongly-typed Java domain models (<code>VolcanoData<\/code>, <code>SeismicData<\/code>). This practice ensures data integrity and insulates the application from changes in the external API&#8217;s structure.<\/li>\n<li><strong>Data Persistence:<\/strong> The curated Java objects are passed to <code>GridDBService<\/code>, which functions as an adapter to the GridDB REST API. It transforms the application data into the JSON structure required by GridDB&#8217;s bulk insertion endpoint and manages authentication.<\/li>\n<li><strong>Presentation Layer:<\/strong> User interaction begins with a request to the <code>DashboardController<\/code>. This controller retrieves the latest data from GridDB via the <code>GridDBService<\/code> and forwards it to the Thymeleaf view layer.<\/li>\n<li><strong>Dynamic Rendering:<\/strong> The Thymeleaf engine processes the <code>dashboard.html<\/code> template, rendering the data into HTML tables and embedding the geospatial data directly into client-side JavaScript variables. The browser then executes this script, using Leaflet.js to render the final interactive map visualization.<\/li>\n<\/ol>\n<h2 id=\"backend-implementation-the-data-pipeline\">Backend Implementation: The Data Pipeline<\/h2>\n<p>\nThe backend constitutes the core data processing engine of the application.\n<\/p>\n<h3 id=\"project-configuration-applicationproperties\">Project Configuration (<code>application.properties<\/code>)<\/h3>\n<p>\nThe <code>application.properties<\/code> file provides the foundational configuration for the application, most importantly defining the connection to GridDB.\n<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-properties\"># GridDB REST API Endpoint\r\ngriddb.rest.url=https:\/\/your-griddb-cloud-instance.griddb.com:443\/griddb\/v2\/your-cluster-name\/dbs\/your-database-name\r\n\r\n# GridDB Basic Authentication Credentials\r\ngriddb.api.key=YOUR_GRIDDB_BASIC_AUTH_KEY\r\n\r\n# Spring Boot Actuator and Server Port\r\nmanagement.endpoints.web.exposure.include=*\r\nserver.port=8081<\/code><\/pre>\n<\/div>\n<p>\nThe <code>griddb.api.key<\/code> property facilitates <strong>HTTP Basic Authentication<\/strong>. This value must be a Base64 encoded string of the GridDB <code>username:password<\/code>. For instance, <code>admin:admin<\/code> is encoded as <code>YWRtaW46YWRtaW4=<\/code>.\n<\/p>\n<h3 id=\"the-griddb-service-layer-griddbservice\">The GridDB Service Layer (<code>GridDBService<\/code>)<\/h3>\n<p>\nThis service is the most critical integration component, managing all communication with the GridDB REST API.\n<\/p>\n<p><strong>Authentication:<\/strong> API access requires that every request be authenticated. The <code>createHeaders<\/code> method isolates this responsibility, programmatically constructing the necessary <code>Authorization<\/code> header for each outgoing request.<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-java\">private HttpHeaders createHeaders() {\r\n    HttpHeaders headers = new HttpHeaders();\r\n    headers.set(&quot;Authorization&quot;, &quot;Basic &quot; + griddbApiKey);\r\n    headers.set(&quot;Content-Type&quot;, &quot;application\/json&quot;);\r\n    return headers;\r\n}<\/code><\/pre>\n<\/div>\n<p><strong>Data Transformation for Ingestion:<\/strong> To maximize efficiency, the GridDB REST API supports bulk row insertion via a JSON array of arrays. The <code>putVolcanoData<\/code> method performs this data transformation, converting a <code>List<VolcanoData><\/code> into the required payload format before serialization and transmission. This approach is significantly more performant than sending individual requests for each row.<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-java\">\/\/ Inside GridDBService.java\r\npublic void putVolcanoData(List&lt;VolcanoData&gt; volcanoData) {\r\n    List&lt;List&lt;Object&gt;&gt; payload = new ArrayList&lt;&gt;();\r\n    for (VolcanoData data : volcanoData) {\r\n        List&lt;Object&gt; row = new ArrayList&lt;&gt;();\r\n        row.add(ISO_INSTANT_FORMATTER.format(data.timestamp));\r\n        row.add(data.name);\r\n        \/\/ ... other fields are added in the correct order ...\r\n        payload.add(row);\r\n    }\r\n    \/\/ ... payload is serialized and sent to the \/rows endpoint ...\r\n}<\/code><\/pre>\n<\/div>\n<p>\nOf particular note is the use of a custom <code>DateTimeFormatter<\/code>. Consistent timestamp formatting is critical for time-series integrity. This formatter ensures that Java <code>Instant<\/code> objects are always serialized to a standardized ISO-8601 string that GridDB can parse into its native <code>TIMESTAMP<\/code> data type.\n<\/p>\n<h2 id=\"frontend-implementation-the-user-interface\">Frontend Implementation: The User Interface<\/h2>\n<p>\nThe utility of a powerful backend is contingent upon a clear and intuitive data presentation layer. The frontend is engineered to provide just that.\n<\/p>\n<h3 id=\"a-strategic-selection-of-technologies\">A Strategic Selection of Technologies<\/h3>\n<ul>\n<li><strong>Thymeleaf:<\/strong> Chosen for its &#8220;natural templating&#8221; feature, which allows templates to be rendered as valid, static HTML during development. This improves the development workflow and decouples the view&#8217;s design from its server-side processing.<\/li>\n<li><strong>Bootstrap:<\/strong> Provides a robust CSS framework for a responsive, mobile-first design, enabling the use of polished UI components like <code>card<\/code> and <code>navbar<\/code> with minimal custom styling.<\/li>\n<li><strong>Leaflet.js:<\/strong> A lightweight and powerful open-source library for creating the interactive map, which is central to visualizing the geospatial data.<\/li>\n<\/ul>\n<h3 id=\"functional-interactivity\">Functional Interactivity<\/h3>\n<p>\nThe map style switcher is a key interactive feature, allowing users to select a base layer that provides the most relevant context for their analysis, whether it be satellite imagery or a street map. This is implemented using a clean JavaScript pattern that manages a collection of tile layer providers.\n<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-javascript\">var tileLayers = {\r\n    street: L.tileLayer(&#x27;...OpenStreetMap URL...&#x27;, { ... }),\r\n    satellite: L.tileLayer(&#x27;...Esri Imagery URL...&#x27;, { ... }),\r\n    terrain: L.tileLayer(&#x27;...OpenTopoMap URL...&#x27;, { ... })\r\n};\r\n\r\nfunction setMapStyle(style) {\r\n    if (currentTileLayer) {\r\n        map.removeLayer(currentTileLayer);\r\n    }\r\n    currentTileLayer = tileLayers[style];\r\n    currentTileLayer.addTo(map);\r\n}\r\n\r\n\/\/ Set the initial map style on page load\r\nsetMapStyle(&#x27;street&#x27;);<\/code><\/pre>\n<\/div>\n<p>\nThis architecture, combining a well-engineered backend with a thoughtfully designed frontend, results in a highly functional and insightful application.\n<\/p>\n<h2 id=\"running-the-application-and-accessing-the-dashboard\">Running the Application and Accessing the Dashboard<\/h2>\n<p>\nTo run the Spring Boot application and access the volcanic activity dashboard, follow these steps:\n<\/p>\n<ol>\n<li><strong>Ensure Prerequisites are Met:<\/strong><\/li>\n<ul>\n<li><strong>Java Development Kit (JDK) 17 or higher:<\/strong> The application is built with Java.<\/li>\n<li><strong>Maven:<\/strong> Used for building the project and managing dependencies.<\/li>\n<li><strong>GridDB Cloud Instance:<\/strong> Ensure your GridDB Cloud instance is running and you have the necessary API key and endpoint URL configured in <code>src\/main\/resources\/application.properties<\/code>.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Build the Application:<\/strong><\/li>\n<\/ol>\n<p>\n   Navigate to the <code>my-griddb-app<\/code> directory in your terminal and build the project using Maven:\n<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$    cd my-griddb-app\r\n$    mvn clean install\r\n   <\/code><\/pre>\n<\/div>\n<p>\n   This command compiles the code, runs tests, and packages the application into a JAR file.\n<\/p>\n<ol>\n<li><strong>Run the Application:<\/strong><\/li>\n<\/ol>\n<p>\n   After a successful build, you can run the Spring Boot application from the <code>my-griddb-app<\/code> directory:\n<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$    java -jar target\/my-griddb-app-1.0-SNAPSHOT.jar\r\n   <\/code><\/pre>\n<\/div>\n<p>\n   Alternatively, you can run it directly using Maven Spring Boot plugin:\n<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$    mvn spring-boot:run\r\n   <\/code><\/pre>\n<\/div>\n<p>\n   The application will start, and you will see logs indicating that the embedded Tomcat server has started on the configured port (default is 8081, as set in <code>application.properties<\/code>).\n<\/p>\n<ol>\n<li><strong>Access the Dashboard:<\/strong><\/li>\n<\/ol>\n<p>\n   Open your web browser and navigate to the application&#8217;s dashboard URL. By default, this will be:\n<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-plaintext\">   http:\/\/localhost:8081\/dashboard\r\n   <\/code><\/pre>\n<\/div>\n<p>\n   You should see the interactive volcanic activity dashboard displaying the latest data fetched from GridDB.\n<\/p>\n<p><a href=\"\/wp-content\/uploads\/2026\/11\/Dashboard1-scaled.png\"><img fetchpriority=\"high\" decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/11\/Dashboard1-scaled.png\" alt=\"\" width=\"2560\" height=\"1324\" class=\"aligncenter size-full wp-image-55655\" srcset=\"\/wp-content\/uploads\/2026\/11\/Dashboard1-scaled.png 2560w, \/wp-content\/uploads\/2026\/11\/Dashboard1-300x155.png 300w, \/wp-content\/uploads\/2026\/11\/Dashboard1-1024x530.png 1024w, \/wp-content\/uploads\/2026\/11\/Dashboard1-768x397.png 768w, \/wp-content\/uploads\/2026\/11\/Dashboard1-1536x794.png 1536w, \/wp-content\/uploads\/2026\/11\/Dashboard1-2048x1059.png 2048w, \/wp-content\/uploads\/2026\/11\/Dashboard1-600x310.png 600w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" \/><\/a><br \/>\n   <em>Interactive map view of volcanic activity.<\/em><\/p>\n<p><a href=\"\/wp-content\/uploads\/2026\/11\/Dashboard2.png\"><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/11\/Dashboard2.png\" alt=\"\" width=\"1236\" height=\"1690\" class=\"aligncenter size-full wp-image-55654\" srcset=\"\/wp-content\/uploads\/2026\/11\/Dashboard2.png 1236w, \/wp-content\/uploads\/2026\/11\/Dashboard2-219x300.png 219w, \/wp-content\/uploads\/2026\/11\/Dashboard2-749x1024.png 749w, \/wp-content\/uploads\/2026\/11\/Dashboard2-768x1050.png 768w, \/wp-content\/uploads\/2026\/11\/Dashboard2-1123x1536.png 1123w, \/wp-content\/uploads\/2026\/11\/Dashboard2-600x820.png 600w\" sizes=\"(max-width: 1236px) 100vw, 1236px\" \/><\/a><br \/>\n   <em>Detailed table view of volcanic data.<\/em><\/p>\n<h2 id=\"conclusion\">Conclusion<\/h2>\n<p>\nThis project serves as a comprehensive technical blueprint for building high-performance, real-time monitoring systems. The combination of GridDB for data persistence and Spring Boot for backend logic proves to be a powerful stack for such applications. The final dashboard effectively ingests, stores, and visualizes critical geological data.\n<\/p>\n<p>\nThe modular design of the application provides a solid foundation for future enhancements, such as:\n<\/p>\n<ul>\n<li><strong>Automated Alerting:<\/strong> A service could be implemented to analyze incoming data for predefined critical patterns and trigger automated alerts.<\/li>\n<li><strong>Historical Data Analysis:<\/strong> The user interface could be extended to support querying and visualizing historical data, enabling trend analysis.<\/li>\n<li><strong>Expanded Data Integration:<\/strong> The system could be enhanced by integrating additional data sources, such as weather feeds or gas emission data, to create a more holistic monitoring solution.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Introduction The capacity to monitor geological events in real-time is a critical component of modern public safety and environmental management strategies. For events such as volcanic eruptions, where precursors like increased seismic activity can offer vital windows for action, the ability to ingest, process, and visualize data with minimal latency is paramount. An effective monitoring [&hellip;]<\/p>\n","protected":false},"author":779,"featured_media":55653,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[121],"tags":[],"class_list":["post-55652","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Building a Real-Time Volcano Monitoring Dashboard with GridDB Cloud and Spring Boot | GridDB: Open Source Time Series Database for IoT<\/title>\n<meta name=\"description\" content=\"Introduction The capacity to monitor geological events in real-time is a critical component of modern public safety and environmental management\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.griddb.net\/en\/blog\/building-a-real-time-volcano-monitoring-dashboard-with-griddb-cloud-and-spring-boot\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Building a Real-Time Volcano Monitoring Dashboard with GridDB Cloud and Spring Boot | GridDB: Open Source Time Series Database for IoT\" \/>\n<meta property=\"og:description\" content=\"Introduction The capacity to monitor geological events in real-time is a critical component of modern public safety and environmental management\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.griddb.net\/en\/blog\/building-a-real-time-volcano-monitoring-dashboard-with-griddb-cloud-and-spring-boot\/\" \/>\n<meta property=\"og:site_name\" content=\"GridDB: Open Source Time Series Database for IoT\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/griddbcommunity\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-11-03T22:04:11+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.griddb.net\/wp-content\/uploads\/2019\/04\/503.gif\" \/>\n\t<meta property=\"og:image:width\" content=\"450\" \/>\n\t<meta property=\"og:image:height\" content=\"400\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/gif\" \/>\n<meta name=\"author\" content=\"reviewer\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@GridDBCommunity\" \/>\n<meta name=\"twitter:site\" content=\"@GridDBCommunity\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"reviewer\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.griddb.net\\\/en\\\/blog\\\/building-a-real-time-volcano-monitoring-dashboard-with-griddb-cloud-and-spring-boot\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.griddb.net\\\/en\\\/blog\\\/building-a-real-time-volcano-monitoring-dashboard-with-griddb-cloud-and-spring-boot\\\/\"},\"author\":{\"name\":\"reviewer\",\"@id\":\"https:\\\/\\\/www.griddb.net\\\/#\\\/schema\\\/person\\\/9796b06dbb0e63dcaaf67892e45c3df2\"},\"headline\":\"Building a Real-Time Volcano Monitoring Dashboard with GridDB Cloud and Spring Boot\",\"datePublished\":\"2026-11-03T22:04:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.griddb.net\\\/en\\\/blog\\\/building-a-real-time-volcano-monitoring-dashboard-with-griddb-cloud-and-spring-boot\\\/\"},\"wordCount\":1213,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.griddb.net\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.griddb.net\\\/en\\\/blog\\\/building-a-real-time-volcano-monitoring-dashboard-with-griddb-cloud-and-spring-boot\\\/#primaryimage\"},\"thumbnailUrl\":\"\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/volcano-featured.svg\",\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.griddb.net\\\/en\\\/blog\\\/building-a-real-time-volcano-monitoring-dashboard-with-griddb-cloud-and-spring-boot\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.griddb.net\\\/en\\\/blog\\\/building-a-real-time-volcano-monitoring-dashboard-with-griddb-cloud-and-spring-boot\\\/\",\"url\":\"https:\\\/\\\/www.griddb.net\\\/en\\\/blog\\\/building-a-real-time-volcano-monitoring-dashboard-with-griddb-cloud-and-spring-boot\\\/\",\"name\":\"Building a Real-Time Volcano Monitoring Dashboard with GridDB Cloud and Spring Boot | GridDB: Open Source Time Series Database for IoT\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.griddb.net\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.griddb.net\\\/en\\\/blog\\\/building-a-real-time-volcano-monitoring-dashboard-with-griddb-cloud-and-spring-boot\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.griddb.net\\\/en\\\/blog\\\/building-a-real-time-volcano-monitoring-dashboard-with-griddb-cloud-and-spring-boot\\\/#primaryimage\"},\"thumbnailUrl\":\"\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/volcano-featured.svg\",\"datePublished\":\"2026-11-03T22:04:11+00:00\",\"description\":\"Introduction The capacity to monitor geological events in real-time is a critical component of modern public safety and environmental management\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.griddb.net\\\/en\\\/blog\\\/building-a-real-time-volcano-monitoring-dashboard-with-griddb-cloud-and-spring-boot\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.griddb.net\\\/en\\\/blog\\\/building-a-real-time-volcano-monitoring-dashboard-with-griddb-cloud-and-spring-boot\\\/#primaryimage\",\"url\":\"\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/volcano-featured.svg\",\"contentUrl\":\"\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/volcano-featured.svg\",\"width\":1200,\"height\":630},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.griddb.net\\\/#website\",\"url\":\"https:\\\/\\\/www.griddb.net\\\/\",\"name\":\"GridDB: Open Source Time Series Database for IoT\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.griddb.net\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.griddb.net\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.griddb.net\\\/#organization\",\"name\":\"Fixstars\",\"url\":\"https:\\\/\\\/www.griddb.net\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.griddb.net\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.griddb.net\\\/wp-content\\\/uploads\\\/2019\\\/04\\\/fixstars_logo_web_tagline.png\",\"contentUrl\":\"https:\\\/\\\/www.griddb.net\\\/wp-content\\\/uploads\\\/2019\\\/04\\\/fixstars_logo_web_tagline.png\",\"width\":200,\"height\":83,\"caption\":\"Fixstars\"},\"image\":{\"@id\":\"https:\\\/\\\/www.griddb.net\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/griddbcommunity\\\/\",\"https:\\\/\\\/x.com\\\/GridDBCommunity\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/griddb-by-toshiba\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.griddb.net\\\/#\\\/schema\\\/person\\\/9796b06dbb0e63dcaaf67892e45c3df2\",\"name\":\"reviewer\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/56c7498f718fe0de13a8d0595e73985d070bf1fb1bcd75b4f3d4de32b5c7ad46?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/56c7498f718fe0de13a8d0595e73985d070bf1fb1bcd75b4f3d4de32b5c7ad46?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/56c7498f718fe0de13a8d0595e73985d070bf1fb1bcd75b4f3d4de32b5c7ad46?s=96&d=mm&r=g\",\"caption\":\"reviewer\"},\"url\":\"https:\\\/\\\/www.griddb.net\\\/en\\\/author\\\/reviewer\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Building a Real-Time Volcano Monitoring Dashboard with GridDB Cloud and Spring Boot | GridDB: Open Source Time Series Database for IoT","description":"Introduction The capacity to monitor geological events in real-time is a critical component of modern public safety and environmental management","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.griddb.net\/en\/blog\/building-a-real-time-volcano-monitoring-dashboard-with-griddb-cloud-and-spring-boot\/","og_locale":"en_US","og_type":"article","og_title":"Building a Real-Time Volcano Monitoring Dashboard with GridDB Cloud and Spring Boot | GridDB: Open Source Time Series Database for IoT","og_description":"Introduction The capacity to monitor geological events in real-time is a critical component of modern public safety and environmental management","og_url":"https:\/\/www.griddb.net\/en\/blog\/building-a-real-time-volcano-monitoring-dashboard-with-griddb-cloud-and-spring-boot\/","og_site_name":"GridDB: Open Source Time Series Database for IoT","article_publisher":"https:\/\/www.facebook.com\/griddbcommunity\/","article_published_time":"2026-11-03T22:04:11+00:00","og_image":[{"width":450,"height":400,"url":"https:\/\/www.griddb.net\/wp-content\/uploads\/2019\/04\/503.gif","type":"image\/gif"}],"author":"reviewer","twitter_card":"summary_large_image","twitter_creator":"@GridDBCommunity","twitter_site":"@GridDBCommunity","twitter_misc":{"Written by":"reviewer","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.griddb.net\/en\/blog\/building-a-real-time-volcano-monitoring-dashboard-with-griddb-cloud-and-spring-boot\/#article","isPartOf":{"@id":"https:\/\/www.griddb.net\/en\/blog\/building-a-real-time-volcano-monitoring-dashboard-with-griddb-cloud-and-spring-boot\/"},"author":{"name":"reviewer","@id":"https:\/\/www.griddb.net\/#\/schema\/person\/9796b06dbb0e63dcaaf67892e45c3df2"},"headline":"Building a Real-Time Volcano Monitoring Dashboard with GridDB Cloud and Spring Boot","datePublished":"2026-11-03T22:04:11+00:00","mainEntityOfPage":{"@id":"https:\/\/www.griddb.net\/en\/blog\/building-a-real-time-volcano-monitoring-dashboard-with-griddb-cloud-and-spring-boot\/"},"wordCount":1213,"commentCount":0,"publisher":{"@id":"https:\/\/www.griddb.net\/#organization"},"image":{"@id":"https:\/\/www.griddb.net\/en\/blog\/building-a-real-time-volcano-monitoring-dashboard-with-griddb-cloud-and-spring-boot\/#primaryimage"},"thumbnailUrl":"\/wp-content\/uploads\/2026\/11\/volcano-featured.svg","articleSection":["Blog"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.griddb.net\/en\/blog\/building-a-real-time-volcano-monitoring-dashboard-with-griddb-cloud-and-spring-boot\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.griddb.net\/en\/blog\/building-a-real-time-volcano-monitoring-dashboard-with-griddb-cloud-and-spring-boot\/","url":"https:\/\/www.griddb.net\/en\/blog\/building-a-real-time-volcano-monitoring-dashboard-with-griddb-cloud-and-spring-boot\/","name":"Building a Real-Time Volcano Monitoring Dashboard with GridDB Cloud and Spring Boot | GridDB: Open Source Time Series Database for IoT","isPartOf":{"@id":"https:\/\/www.griddb.net\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.griddb.net\/en\/blog\/building-a-real-time-volcano-monitoring-dashboard-with-griddb-cloud-and-spring-boot\/#primaryimage"},"image":{"@id":"https:\/\/www.griddb.net\/en\/blog\/building-a-real-time-volcano-monitoring-dashboard-with-griddb-cloud-and-spring-boot\/#primaryimage"},"thumbnailUrl":"\/wp-content\/uploads\/2026\/11\/volcano-featured.svg","datePublished":"2026-11-03T22:04:11+00:00","description":"Introduction The capacity to monitor geological events in real-time is a critical component of modern public safety and environmental management","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.griddb.net\/en\/blog\/building-a-real-time-volcano-monitoring-dashboard-with-griddb-cloud-and-spring-boot\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.griddb.net\/en\/blog\/building-a-real-time-volcano-monitoring-dashboard-with-griddb-cloud-and-spring-boot\/#primaryimage","url":"\/wp-content\/uploads\/2026\/11\/volcano-featured.svg","contentUrl":"\/wp-content\/uploads\/2026\/11\/volcano-featured.svg","width":1200,"height":630},{"@type":"WebSite","@id":"https:\/\/www.griddb.net\/#website","url":"https:\/\/www.griddb.net\/","name":"GridDB: Open Source Time Series Database for IoT","description":"","publisher":{"@id":"https:\/\/www.griddb.net\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.griddb.net\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.griddb.net\/#organization","name":"Fixstars","url":"https:\/\/www.griddb.net\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.griddb.net\/#\/schema\/logo\/image\/","url":"https:\/\/www.griddb.net\/wp-content\/uploads\/2019\/04\/fixstars_logo_web_tagline.png","contentUrl":"https:\/\/www.griddb.net\/wp-content\/uploads\/2019\/04\/fixstars_logo_web_tagline.png","width":200,"height":83,"caption":"Fixstars"},"image":{"@id":"https:\/\/www.griddb.net\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/griddbcommunity\/","https:\/\/x.com\/GridDBCommunity","https:\/\/www.linkedin.com\/company\/griddb-by-toshiba"]},{"@type":"Person","@id":"https:\/\/www.griddb.net\/#\/schema\/person\/9796b06dbb0e63dcaaf67892e45c3df2","name":"reviewer","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/56c7498f718fe0de13a8d0595e73985d070bf1fb1bcd75b4f3d4de32b5c7ad46?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/56c7498f718fe0de13a8d0595e73985d070bf1fb1bcd75b4f3d4de32b5c7ad46?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/56c7498f718fe0de13a8d0595e73985d070bf1fb1bcd75b4f3d4de32b5c7ad46?s=96&d=mm&r=g","caption":"reviewer"},"url":"https:\/\/www.griddb.net\/en\/author\/reviewer\/"}]}},"_links":{"self":[{"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/posts\/55652","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/users\/779"}],"replies":[{"embeddable":true,"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/comments?post=55652"}],"version-history":[{"count":1,"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/posts\/55652\/revisions"}],"predecessor-version":[{"id":55656,"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/posts\/55652\/revisions\/55656"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/media\/55653"}],"wp:attachment":[{"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/media?parent=55652"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/categories?post=55652"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/tags?post=55652"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}