SlideShare a Scribd company logo
1 of 25
Download to read offline
Visualize and Analyze Apache
Geode Real-time and Historical
Metrics
Christian Tzolov
Software Engineer, Spring Cloud
ASF, Apache Committer, PMC member
Disclaimer
The following is intended to outline the general direction of Pivotal's offerings. It is
intended for information purposes only and may not be incorporated into any
contract. Any information regarding pre-release of Pivotal offerings, future updates
or other planned modifications is subject to ongoing evaluation by Pivotal and is
subject to change. This information is provided without warranty or any kind, express
or implied, and is not a commitment to deliver any material, code, or functionality,
and should not be relied upon in making purchasing decisions regarding Pivotal's
offerings. These purchasing decisions should only be based on features currently
available. The development, release, and timing of any features or functionality
described for Pivotal's offerings in this presentation remain at the sole discretion of
Pivotal. Pivotal has no obligation to update forward looking information in this
presentation.
Apache Geode / GemFire
“… in-memory, distributed database
with strong consistency built to
support low latency transactional
applications at extreme scale”
Geode Metrics
Geode Cluster
Run-Time Statistics
Historical Statistics
Visualization
(VSD)
Monitoring,
Visualization,
Alerts (JMX)
Geode Metrics Unified
Geode Cluster
Run-Time Statistics
Historical Statistics
Monitoring,
Visualization,
Alerts
Monitor What?
Cache Server
Region A
Region X
ValKe
y
v1k1
v2k2
…
Region - consistent, distributed Map (key-value) dataset
CacheServer – process managing Regions
Client
Locator
Client –read and modify Region content
Locator – track membership information
Cache Server 1
Region ARegion A’
Region B’
Region X’
Cache Server N
Region ARegion A’’’’
Region B’’’
Region X’’’
Cache Server 2
Region ARegion A’’
Region B’’
Region X’’
Federated MBean Architecture
Locator 1
Distributed System
Distributed Region
Member
GemFire:type=Distributed,
service=Region,name=<regionName>
GemFire:type=Distributed,service=System
GemFire:type=Member,
member=<name-or-dist-member-id>
Notifications
gemfire.distributedsystem.cache.member.departed
gemfire.distributedsystem.cache.member.joined
gemfire.distributedsystem.cache.region.created
gemfire.distributedsystem.cache.region.closed
https://gemfire.docs.pivotal.io/geode/managing/management/mbean_architecture.html
network
JMX Manager - Single-agent view of the Distributed System
JMX Manager
MBeanServer MBeanServer MBeanServer
Geode JMX Metrics
Geode Pulse
•  Cluster View
•  Member View
•  Region View
•  Alerts Widget
https://gemfire.docs.pivotal.io/geode/tools_modules/pulse/pulse-views.html
Beyond Pulse
•  Extensibility
•  Customized Views and Alerts
•  Compare metrics between Members or Regions
•  Integrate with 3rd party monitoring tools
TSDB and Grafana Architecture
JMX to TSDB
Loader
Grafana
TSDB
Geode Cluster
JMX Manager
Grafana
Open platform for Analytics and Monitoring
•  Data Sources
•  Panels
•  Dashboards
Time Series Database (TSDB)
•  Real-time process/store of time-series data
•  Data is larger than memory
•  Storage per data point efficiency
•  Sequential, ordered per series reads
•  Write mostly (95%)
•  Data is larger than memory
•  Storage efficiency - few bytes of storage per data point
•  OSS TSDB: InfluxDB, Open TSDB, Prometheus, …
https://en.wikipedia.org/wiki/Time_series_database
JMX to InfluxDB Mapping
+ name
+ timestamp
Measurement
+ name
+ value
Field
+ name
+ value
Tag
(Indexed)
(not-Indexed)
{region : Zips}
….
+ avgBucketSize
+ entrySize
+ memberCount
…
MemberMBean
+ avgBucketSize
+ entrySize
+ memberCount
…
DistributedSystemMBean
{region : Zips}
….
+ avgBucketSize
+ entrySize
+ memberCount
…
DistributedRegionMBean
GemFire:service=Region,name=/Zips,type=Distributed
Influx Data Model Geode MBean Model
JMX to Grafana
Geode Cluster
JMX to Grafana
Grafana
InfluxDBJMX Manager
java -jar ./jmx-to-grafana-0.0.2-SNAPSHOT.jar
--mbeanHostName=localhost
--mbeanPort=1099
--influxUrl=http://localhost:8086
--influxDatabaseName=GeodeJmx
--cronExpression="0 0/1 * * * ?"
docker run -d --name grafana -p 3000:3000 grafana/grafana
docker run -d --name influxdb -p 8086:8086 influxdb
JMX to Grafana Tookit
https://github.com/tzolov/geode-dashboard
Dashboard Library
Cluster View
Members View
Combined
Members View
Region View
Apache Geode Metrics
Geode Cluster
Run-Time Statistics
Historical Statistics
Monitoring,
Visualization,
Alerts
Geode Statistics Archive
•  Statistics Collected per Member
•  Local Archive Files
•  Build-in Statistics
•  Runtime (peer per node, clients, data entities,…)
•  Resources (memory, cpu, descriptors, system load,…)
•  Operations Throughput (Cache, Disk,…)
•  …
•  Application-Defined Statistics
http://gemfire.docs.pivotal.io/gemfire/tools_modules/vsd/vsd_useful_statistics.html
Viewing Archived Statistics
•  The Visual Statistics Display (VSD)
•  Guide to Useful Statistics:
http://gemfire.docs.pivotal.io/gemfire/
tools_modules/vsd/vsd_useful_statistics.html
Geode Cluster
Locator 1
CacheServer 1
CacheServer N
…
Statistics to Grafana Architecture
Grafana
InfluxDB
A
A
A
Statistics To
Grafana
Statistic to InfluxDB Mapping
+ name
+ timestamp
Measurement
+ name
+ value
Field
+ name
+ value
Tag
(Indexed)
(not-Indexed)
InfluxDataModel
GeodeStatisticArchive
+ name
+ type
+ sampleCount
Resource Instance
Statistics Archive
Instances
*
+ descriptor.name
+ timestampls:long[]
+ rawSnapshot:double[]
StatValue
values
*
Geode Cluster
Locator 1
CacheServer 1
CacheServer N
…
Statistics to Grafana Architecture
Grafana
InfluxDB
A
A
A
Statistics To
Grafana
java -jar ./statistics-to-grafana-0.0.2-SNAPSHOT.jar
--influxUrl=http://localhost:8086
--influxDatabaseName=GeodeArchive
--geodeMemberName=server1
--archiveFile=server1ArchiveFile.gfs
statistic-sampling-enabled=true
statistic-archive-file=myArchive.gfs
archive-file-size-limit=100
archive-disk-space-limit=1000
The Full Stack
Next?
25
•  Micrometer- http://micrometer.io/
•  Grafana Geode Source Plugin (Geode SQL adapter)
•  Add real-time metrics for AsyncListener, DistributedLock,
Gateway
•  Additional pre-build Dashboards

More Related Content

What's hot

Archmage, Pinterest’s Real-time Analytics Platform on Druid
Archmage, Pinterest’s Real-time Analytics Platform on DruidArchmage, Pinterest’s Real-time Analytics Platform on Druid
Archmage, Pinterest’s Real-time Analytics Platform on Druid
Imply
 

What's hot (19)

HP Discover: Real Time Insights from Big Data
HP Discover: Real Time Insights from Big DataHP Discover: Real Time Insights from Big Data
HP Discover: Real Time Insights from Big Data
 
Druid
DruidDruid
Druid
 
WSO2 Stream Processor: Graphical Editor, HTTP & Message Trace Analytics and m...
WSO2 Stream Processor: Graphical Editor, HTTP & Message Trace Analytics and m...WSO2 Stream Processor: Graphical Editor, HTTP & Message Trace Analytics and m...
WSO2 Stream Processor: Graphical Editor, HTTP & Message Trace Analytics and m...
 
Uber Geo spatial data platform at DataWorks Summit
Uber Geo spatial data platform at DataWorks SummitUber Geo spatial data platform at DataWorks Summit
Uber Geo spatial data platform at DataWorks Summit
 
Big Data on Cloud Native Platform
Big Data on Cloud Native PlatformBig Data on Cloud Native Platform
Big Data on Cloud Native Platform
 
Data Analytics and Processing at Snap - Druid Meetup LA - September 2018
Data Analytics and Processing at Snap - Druid Meetup LA - September 2018Data Analytics and Processing at Snap - Druid Meetup LA - September 2018
Data Analytics and Processing at Snap - Druid Meetup LA - September 2018
 
Virtualized Big Data Platform at VMware Corp IT @ VMWorld 2015
Virtualized Big Data Platform at VMware Corp IT @ VMWorld 2015Virtualized Big Data Platform at VMware Corp IT @ VMWorld 2015
Virtualized Big Data Platform at VMware Corp IT @ VMWorld 2015
 
Programmatic Bidding Data Streams & Druid
Programmatic Bidding Data Streams & DruidProgrammatic Bidding Data Streams & Druid
Programmatic Bidding Data Streams & Druid
 
Add Historical Analysis of Operational Data with Easy Configurations in Fivet...
Add Historical Analysis of Operational Data with Easy Configurations in Fivet...Add Historical Analysis of Operational Data with Easy Configurations in Fivet...
Add Historical Analysis of Operational Data with Easy Configurations in Fivet...
 
Monitoring and scaling postgres at datadog
Monitoring and scaling postgres at datadogMonitoring and scaling postgres at datadog
Monitoring and scaling postgres at datadog
 
Webinar: Unlock the Power of Streaming Data with Kinetica and Confluent
Webinar: Unlock the Power of Streaming Data with Kinetica and ConfluentWebinar: Unlock the Power of Streaming Data with Kinetica and Confluent
Webinar: Unlock the Power of Streaming Data with Kinetica and Confluent
 
James Corcoran, Head of Engineering EMEA, First Derivatives, "Simplifying Bi...
James Corcoran, Head of Engineering EMEA, First Derivatives,  "Simplifying Bi...James Corcoran, Head of Engineering EMEA, First Derivatives,  "Simplifying Bi...
James Corcoran, Head of Engineering EMEA, First Derivatives, "Simplifying Bi...
 
Archmage, Pinterest’s Real-time Analytics Platform on Druid
Archmage, Pinterest’s Real-time Analytics Platform on DruidArchmage, Pinterest’s Real-time Analytics Platform on Druid
Archmage, Pinterest’s Real-time Analytics Platform on Druid
 
Monitoring and Troubleshooting a Real Time Pipeline
Monitoring and Troubleshooting a Real Time PipelineMonitoring and Troubleshooting a Real Time Pipeline
Monitoring and Troubleshooting a Real Time Pipeline
 
Using Apache Pulsar to Provide Real-Time IoT Analytics on the Edge
Using Apache Pulsar to Provide Real-Time IoT Analytics on the EdgeUsing Apache Pulsar to Provide Real-Time IoT Analytics on the Edge
Using Apache Pulsar to Provide Real-Time IoT Analytics on the Edge
 
Benchmarking Apache Druid
Benchmarking Apache Druid Benchmarking Apache Druid
Benchmarking Apache Druid
 
"An introduction to Kx Technology - a Big Data solution", Kyra Coyne, Data Sc...
"An introduction to Kx Technology - a Big Data solution", Kyra Coyne, Data Sc..."An introduction to Kx Technology - a Big Data solution", Kyra Coyne, Data Sc...
"An introduction to Kx Technology - a Big Data solution", Kyra Coyne, Data Sc...
 
July 2014 HUG : Pushing the limits of Realtime Analytics using Druid
July 2014 HUG : Pushing the limits of Realtime Analytics using DruidJuly 2014 HUG : Pushing the limits of Realtime Analytics using Druid
July 2014 HUG : Pushing the limits of Realtime Analytics using Druid
 
How to teach your data scientist to leverage an analytics cluster with Presto...
How to teach your data scientist to leverage an analytics cluster with Presto...How to teach your data scientist to leverage an analytics cluster with Presto...
How to teach your data scientist to leverage an analytics cluster with Presto...
 

Similar to Visualize and Analyze Apache Geode Real-time and Historical Metrics

Introduction to Streaming Analytics
Introduction to Streaming AnalyticsIntroduction to Streaming Analytics
Introduction to Streaming Analytics
Guido Schmutz
 
What are you waiting for
What are you waiting forWhat are you waiting for
What are you waiting for
Jason Strate
 
Event Stream Processing SAP
Event Stream Processing SAPEvent Stream Processing SAP
Event Stream Processing SAP
Gaurav Ahluwalia
 
SmartCloud Monitoring and Capacity Planning
SmartCloud Monitoring and Capacity PlanningSmartCloud Monitoring and Capacity Planning
SmartCloud Monitoring and Capacity Planning
IBM Danmark
 

Similar to Visualize and Analyze Apache Geode Real-time and Historical Metrics (20)

Building Scalable IoT Apps (QCon S-F)
Building Scalable IoT Apps (QCon S-F)Building Scalable IoT Apps (QCon S-F)
Building Scalable IoT Apps (QCon S-F)
 
SplunkLive! Presentation - Data Onboarding with Splunk
SplunkLive! Presentation - Data Onboarding with SplunkSplunkLive! Presentation - Data Onboarding with Splunk
SplunkLive! Presentation - Data Onboarding with Splunk
 
Influx data basic
Influx data basicInflux data basic
Influx data basic
 
Building Analytic Apps for SaaS: “Analytics as a Service”
Building Analytic Apps for SaaS: “Analytics as a Service”Building Analytic Apps for SaaS: “Analytics as a Service”
Building Analytic Apps for SaaS: “Analytics as a Service”
 
Monitoring and Instrumentation Strategies: Tips and Best Practices - AppSphere16
Monitoring and Instrumentation Strategies: Tips and Best Practices - AppSphere16Monitoring and Instrumentation Strategies: Tips and Best Practices - AppSphere16
Monitoring and Instrumentation Strategies: Tips and Best Practices - AppSphere16
 
Realtime Analytics on AWS
Realtime Analytics on AWSRealtime Analytics on AWS
Realtime Analytics on AWS
 
SplunkLive! Frankfurt 2018 - Data Onboarding Overview
SplunkLive! Frankfurt 2018 - Data Onboarding OverviewSplunkLive! Frankfurt 2018 - Data Onboarding Overview
SplunkLive! Frankfurt 2018 - Data Onboarding Overview
 
Using Spark and Riak for IoT Apps—Patterns and Anti-Patterns: Spark Summit Ea...
Using Spark and Riak for IoT Apps—Patterns and Anti-Patterns: Spark Summit Ea...Using Spark and Riak for IoT Apps—Patterns and Anti-Patterns: Spark Summit Ea...
Using Spark and Riak for IoT Apps—Patterns and Anti-Patterns: Spark Summit Ea...
 
Using the Power of Big SQL 3.0 to Build a Big Data-Ready Hybrid Warehouse
Using the Power of Big SQL 3.0 to Build a Big Data-Ready Hybrid WarehouseUsing the Power of Big SQL 3.0 to Build a Big Data-Ready Hybrid Warehouse
Using the Power of Big SQL 3.0 to Build a Big Data-Ready Hybrid Warehouse
 
How to create custom dashboards in Elastic Search / Kibana with Performance V...
How to create custom dashboards in Elastic Search / Kibana with Performance V...How to create custom dashboards in Elastic Search / Kibana with Performance V...
How to create custom dashboards in Elastic Search / Kibana with Performance V...
 
SplunkLive! Munich 2018: Data Onboarding Overview
SplunkLive! Munich 2018: Data Onboarding OverviewSplunkLive! Munich 2018: Data Onboarding Overview
SplunkLive! Munich 2018: Data Onboarding Overview
 
Azure Data Explorer deep dive - review 04.2020
Azure Data Explorer deep dive - review 04.2020Azure Data Explorer deep dive - review 04.2020
Azure Data Explorer deep dive - review 04.2020
 
Introduction to Streaming Analytics
Introduction to Streaming AnalyticsIntroduction to Streaming Analytics
Introduction to Streaming Analytics
 
What are you waiting for
What are you waiting forWhat are you waiting for
What are you waiting for
 
I pushed in production :). Have a nice weekend
I pushed in production :). Have a nice weekendI pushed in production :). Have a nice weekend
I pushed in production :). Have a nice weekend
 
Event Stream Processing SAP
Event Stream Processing SAPEvent Stream Processing SAP
Event Stream Processing SAP
 
SmartCloud Monitoring and Capacity Planning
SmartCloud Monitoring and Capacity PlanningSmartCloud Monitoring and Capacity Planning
SmartCloud Monitoring and Capacity Planning
 
sudoers: Benchmarking Hadoop with ALOJA
sudoers: Benchmarking Hadoop with ALOJAsudoers: Benchmarking Hadoop with ALOJA
sudoers: Benchmarking Hadoop with ALOJA
 
Streaming real time data with Vibe Data Stream
Streaming real time data with Vibe Data StreamStreaming real time data with Vibe Data Stream
Streaming real time data with Vibe Data Stream
 
StreamCentral Technical Overview
StreamCentral Technical OverviewStreamCentral Technical Overview
StreamCentral Technical Overview
 

More from VMware Tanzu

More from VMware Tanzu (20)

What AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About ItWhat AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About It
 
Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023
 
Enhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at ScaleEnhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at Scale
 
Spring Update | July 2023
Spring Update | July 2023Spring Update | July 2023
Spring Update | July 2023
 
Platforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a ProductPlatforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a Product
 
Building Cloud Ready Apps
Building Cloud Ready AppsBuilding Cloud Ready Apps
Building Cloud Ready Apps
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And Beyond
 
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdfSpring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
 
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
 
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
 
tanzu_developer_connect.pptx
tanzu_developer_connect.pptxtanzu_developer_connect.pptx
tanzu_developer_connect.pptx
 
Tanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - FrenchTanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - French
 
Tanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishTanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - English
 
Virtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVirtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - English
 
Tanzu Developer Connect - French
Tanzu Developer Connect - FrenchTanzu Developer Connect - French
Tanzu Developer Connect - French
 
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
 
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring BootSpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
 
SpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerSpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software Engineer
 
SpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs PracticeSpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs Practice
 
SpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense SolutionsSpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
 

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 

Visualize and Analyze Apache Geode Real-time and Historical Metrics

  • 1. Visualize and Analyze Apache Geode Real-time and Historical Metrics Christian Tzolov Software Engineer, Spring Cloud ASF, Apache Committer, PMC member
  • 2. Disclaimer The following is intended to outline the general direction of Pivotal's offerings. It is intended for information purposes only and may not be incorporated into any contract. Any information regarding pre-release of Pivotal offerings, future updates or other planned modifications is subject to ongoing evaluation by Pivotal and is subject to change. This information is provided without warranty or any kind, express or implied, and is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions regarding Pivotal's offerings. These purchasing decisions should only be based on features currently available. The development, release, and timing of any features or functionality described for Pivotal's offerings in this presentation remain at the sole discretion of Pivotal. Pivotal has no obligation to update forward looking information in this presentation.
  • 3. Apache Geode / GemFire “… in-memory, distributed database with strong consistency built to support low latency transactional applications at extreme scale”
  • 4. Geode Metrics Geode Cluster Run-Time Statistics Historical Statistics Visualization (VSD) Monitoring, Visualization, Alerts (JMX)
  • 5. Geode Metrics Unified Geode Cluster Run-Time Statistics Historical Statistics Monitoring, Visualization, Alerts
  • 6. Monitor What? Cache Server Region A Region X ValKe y v1k1 v2k2 … Region - consistent, distributed Map (key-value) dataset CacheServer – process managing Regions Client Locator Client –read and modify Region content Locator – track membership information
  • 7. Cache Server 1 Region ARegion A’ Region B’ Region X’ Cache Server N Region ARegion A’’’’ Region B’’’ Region X’’’ Cache Server 2 Region ARegion A’’ Region B’’ Region X’’ Federated MBean Architecture Locator 1 Distributed System Distributed Region Member GemFire:type=Distributed, service=Region,name=<regionName> GemFire:type=Distributed,service=System GemFire:type=Member, member=<name-or-dist-member-id> Notifications gemfire.distributedsystem.cache.member.departed gemfire.distributedsystem.cache.member.joined gemfire.distributedsystem.cache.region.created gemfire.distributedsystem.cache.region.closed https://gemfire.docs.pivotal.io/geode/managing/management/mbean_architecture.html network JMX Manager - Single-agent view of the Distributed System JMX Manager MBeanServer MBeanServer MBeanServer
  • 9. Geode Pulse •  Cluster View •  Member View •  Region View •  Alerts Widget https://gemfire.docs.pivotal.io/geode/tools_modules/pulse/pulse-views.html
  • 10. Beyond Pulse •  Extensibility •  Customized Views and Alerts •  Compare metrics between Members or Regions •  Integrate with 3rd party monitoring tools
  • 11. TSDB and Grafana Architecture JMX to TSDB Loader Grafana TSDB Geode Cluster JMX Manager
  • 12. Grafana Open platform for Analytics and Monitoring •  Data Sources •  Panels •  Dashboards
  • 13. Time Series Database (TSDB) •  Real-time process/store of time-series data •  Data is larger than memory •  Storage per data point efficiency •  Sequential, ordered per series reads •  Write mostly (95%) •  Data is larger than memory •  Storage efficiency - few bytes of storage per data point •  OSS TSDB: InfluxDB, Open TSDB, Prometheus, … https://en.wikipedia.org/wiki/Time_series_database
  • 14. JMX to InfluxDB Mapping + name + timestamp Measurement + name + value Field + name + value Tag (Indexed) (not-Indexed) {region : Zips} …. + avgBucketSize + entrySize + memberCount … MemberMBean + avgBucketSize + entrySize + memberCount … DistributedSystemMBean {region : Zips} …. + avgBucketSize + entrySize + memberCount … DistributedRegionMBean GemFire:service=Region,name=/Zips,type=Distributed Influx Data Model Geode MBean Model
  • 15. JMX to Grafana Geode Cluster JMX to Grafana Grafana InfluxDBJMX Manager java -jar ./jmx-to-grafana-0.0.2-SNAPSHOT.jar --mbeanHostName=localhost --mbeanPort=1099 --influxUrl=http://localhost:8086 --influxDatabaseName=GeodeJmx --cronExpression="0 0/1 * * * ?" docker run -d --name grafana -p 3000:3000 grafana/grafana docker run -d --name influxdb -p 8086:8086 influxdb
  • 16. JMX to Grafana Tookit https://github.com/tzolov/geode-dashboard
  • 17. Dashboard Library Cluster View Members View Combined Members View Region View
  • 18. Apache Geode Metrics Geode Cluster Run-Time Statistics Historical Statistics Monitoring, Visualization, Alerts
  • 19. Geode Statistics Archive •  Statistics Collected per Member •  Local Archive Files •  Build-in Statistics •  Runtime (peer per node, clients, data entities,…) •  Resources (memory, cpu, descriptors, system load,…) •  Operations Throughput (Cache, Disk,…) •  … •  Application-Defined Statistics http://gemfire.docs.pivotal.io/gemfire/tools_modules/vsd/vsd_useful_statistics.html
  • 20. Viewing Archived Statistics •  The Visual Statistics Display (VSD) •  Guide to Useful Statistics: http://gemfire.docs.pivotal.io/gemfire/ tools_modules/vsd/vsd_useful_statistics.html
  • 21. Geode Cluster Locator 1 CacheServer 1 CacheServer N … Statistics to Grafana Architecture Grafana InfluxDB A A A Statistics To Grafana
  • 22. Statistic to InfluxDB Mapping + name + timestamp Measurement + name + value Field + name + value Tag (Indexed) (not-Indexed) InfluxDataModel GeodeStatisticArchive + name + type + sampleCount Resource Instance Statistics Archive Instances * + descriptor.name + timestampls:long[] + rawSnapshot:double[] StatValue values *
  • 23. Geode Cluster Locator 1 CacheServer 1 CacheServer N … Statistics to Grafana Architecture Grafana InfluxDB A A A Statistics To Grafana java -jar ./statistics-to-grafana-0.0.2-SNAPSHOT.jar --influxUrl=http://localhost:8086 --influxDatabaseName=GeodeArchive --geodeMemberName=server1 --archiveFile=server1ArchiveFile.gfs statistic-sampling-enabled=true statistic-archive-file=myArchive.gfs archive-file-size-limit=100 archive-disk-space-limit=1000
  • 25. Next? 25 •  Micrometer- http://micrometer.io/ •  Grafana Geode Source Plugin (Geode SQL adapter) •  Add real-time metrics for AsyncListener, DistributedLock, Gateway •  Additional pre-build Dashboards