Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Write a Grafana Dashboard to display JMX metrics #966

Open
fjammes opened this issue Feb 17, 2025 · 0 comments
Open

Write a Grafana Dashboard to display JMX metrics #966

fjammes opened this issue Feb 17, 2025 · 0 comments
Assignees
Labels
k8s Kubernetes deployment monitoring

Comments

@fjammes
Copy link
Contributor

fjammes commented Feb 17, 2025

Description:

We need a Grafana dashboard to visualize JMX metrics collected from our application. The dashboard should provide insights into key performance indicators such as memory usage, garbage collection, thread activity, and other relevant JVM metrics.

Requirements:

Connect Grafana to a JMX data source (e.g., via Prometheus, Telegraf, or another suitable exporter).
Create a dashboard with:
JVM memory usage (heap/non-heap)
Garbage collection statistics
Active threads and thread pool details
CPU usage
Custom application-specific JMX metrics (if applicable)
Configure alerts for critical thresholds (e.g., high memory usage, excessive GC pauses).
Ensure the dashboard is user-friendly and easy to interpret.

Acceptance Criteria:

A Grafana dashboard is created and committed to the repository.
The dashboard is tested with sample JMX metrics.
Documentation is provided on how to set up and use the dashboard.

Additional Notes:

Metrics to display:

# 1 -- buffer pool
# HELP jvm_buffer_pool_capacity_bytes Bytes capacity of a given JVM buffer pool.
# HELP jvm_buffer_pool_used_buffers Used buffers of a given JVM buffer pool.
# HELP jvm_buffer_pool_used_bytes Used bytes of a given JVM buffer pool.

# 2 -- number of classes
# HELP jvm_classes_currently_loaded The number of classes that are currently loaded in the JVM
# HELP jvm_classes_loaded_total The total number of classes that have been loaded since the JVM has started execution

# 3 -- GC
# HELP jvm_gc_collection_seconds Time spent in a given JVM garbage collector in seconds.

# 4 -- memory
# HELP jvm_memory_committed_bytes Committed (bytes) of a given JVM memory area.
# HELP jvm_memory_max_bytes Max (bytes) of a given JVM memory area.
# HELP jvm_memory_pool_allocated_bytes_total Total bytes allocated in a given JVM memory pool. Only updated after GC, not continuously.
# HELP jvm_memory_pool_committed_bytes Committed bytes of a given JVM memory pool.
# HELP jvm_memory_pool_max_bytes Max bytes of a given JVM memory pool.
# HELP jvm_memory_pool_used_bytes Used bytes of a given JVM memory pool.
# HELP jvm_memory_used_bytes Used bytes of a given JVM memory area.

# 5 -- CPU
# HELP process_cpu_seconds_total Total user and system CPU time spent in seconds.

# 6 -- I/O
# HELP process_max_fds Maximum number of open file descriptors.
# HELP process_open_fds Number of open file descriptors.

# 7 -- memory again?
# HELP process_virtual_memory_bytes Virtual memory size in bytes.
@fjammes fjammes self-assigned this Feb 17, 2025
@fjammes fjammes added monitoring k8s Kubernetes deployment labels Feb 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
k8s Kubernetes deployment monitoring
Projects
None yet
Development

When branches are created from issues, their pull requests are automatically linked.

1 participant