iluwatar / iluwatar/java-design-patterns
Microservice pattern: Application metrics
Nobody has claimed this yet.
- 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:
- Metric Collection: Gather data points from each microservice, such as response times, error rates, and request counts.
- Aggregation and Storage: Consolidate metrics in a centralized repository for easy access and analysis.
- Monitoring and Visualization: Use tools to monitor real-time metrics and visualize historical data to identify trends and issues.
- Alerting and Notifications: Set up alerts to notify relevant stakeholders when metrics indicate potential problems.
- Automated Response: Implement automated actions to remediate issues based on specific metric thresholds.
References:
- Java Design Patterns Wiki
- Microservices Architecture Patterns
- Application Metrics with Prometheus
- Spring Boot Actuator
- ELK Stack for Metrics
- Application Metrics pattern
Acceptance Criteria:
- Implement metric collection for key performance indicators (KPIs) such as response times, error rates, and request counts in each microservice.
- Develop a centralized aggregation and storage mechanism for collected metrics, utilizing tools such as Prometheus or the ELK stack.
- Create a monitoring dashboard that visualizes the real-time and historical performance of the microservices.
- Set up alerting mechanisms to notify stakeholders of potential issues based on predefined metric thresholds.
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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