iluwatar / iluwatar/java-design-patterns

Microservice pattern: Application metrics

Open
#2,691 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

epic: pattern info: help wanted status: stale type: feature
Dominant language
Java
Stars
94.7k
Forks
27.4k
Avg merge
3d 4h
Merged PRs (30d)
10

Description

Description:

Implement the Application Metrics design pattern for a microservices architecture. This pattern involves collecting, aggregating, and analyzing metrics from various microservices to monitor their performance and health. Key elements of this pattern include:

  1. Metric Collection: Gather data points from each microservice, such as response times, error rates, and request counts.
  2. Aggregation and Storage: Consolidate metrics in a centralized repository for easy access and analysis.
  3. Monitoring and Visualization: Use tools to monitor real-time metrics and visualize historical data to identify trends and issues.
  4. Alerting and Notifications: Set up alerts to notify relevant stakeholders when metrics indicate potential problems.
  5. Automated Response: Implement automated actions to remediate issues based on specific metric thresholds.

References:

Acceptance Criteria:

  1. Implement metric collection for key performance indicators (KPIs) such as response times, error rates, and request counts in each microservice.
  2. Develop a centralized aggregation and storage mechanism for collected metrics, utilizing tools such as Prometheus or the ELK stack.
  3. Create a monitoring dashboard that visualizes the real-time and historical performance of the microservices.
  4. Set up alerting mechanisms to notify stakeholders of potential issues based on predefined metric thresholds.
  5. Implement automated responses to specific metric thresholds to ensure high availability and reliability of the microservices.

Please follow the project's contribution guidelines as outlined in the Java Design Patterns Wiki when submitting your implementation.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No repository files, tests, or entry points are named. Start by reviewing the existing Java design-pattern structure and contribution guidelines, then determine how the five acceptance criteria map to the project; completion requires collection, storage, visualization, alerting, and automated responses.

Written by the indexing model from the issue text.

Assessment

Tech stack
elasticsearch, java, prometheus, spring-boot
Domain
backend, distributed-systems, observability
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.