Merge pull request 'docs: documentation for validate/petclinic-demo-andrej4' (#24) from documentor-validate-petclinic-demo-andrej4-f899299f into main
This commit was merged in pull request #24.
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
title: "Petclinic Demo Application"
|
title: "Petclinic Demo Application"
|
||||||
generated_by: documentor-agent
|
generated_by: documentor-agent
|
||||||
generated_at: "2026-05-28T08:57:53+00:00"
|
generated_at: "2026-05-28T09:07:15+00:00"
|
||||||
human_edited: false
|
human_edited: false
|
||||||
source_entity: "Component/default/petclinic-demo-andrej4"
|
source_entity: "Component/default/petclinic-demo-andrej4"
|
||||||
source_repo: "https://gitea.kyndemo.live/validate/petclinic-demo-andrej4"
|
source_repo: "https://gitea.kyndemo.live/validate/petclinic-demo-andrej4"
|
||||||
@@ -9,9 +9,9 @@ source_repo: "https://gitea.kyndemo.live/validate/petclinic-demo-andrej4"
|
|||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
The **Petclinic Demo Application** is a deployment of the Spring PetClinic sample application, tailored for demonstration purposes. It showcases a modern microservice architecture with observability, load testing, and chaos engineering capabilities integrated. The application is deployed via ArgoCD into the `demo-apps` namespace and includes OpenTelemetry instrumentation for comprehensive monitoring.
|
The **Petclinic Demo Application** is a deployment of the Spring PetClinic sample application, tailored for demonstration purposes. It showcases a modern Java-based microservice architecture, leveraging Spring Boot for rapid development and deployment. The application is deployed via ArgoCD into the `demo-apps` namespace and includes integrations for observability, load testing, and chaos engineering.
|
||||||
|
|
||||||
This service is part of the broader **petclinic-demo-andrej4** system, which includes additional components such as a database service and supporting infrastructure. It serves as a reference implementation for Java-based applications using Spring Boot, demonstrating best practices in CI/CD, containerization, and runtime observability.
|
This service plays a critical role in demonstrating best practices for application lifecycle management, including CI/CD workflows, OpenTelemetry instrumentation, and Kubernetes-based deployments. It serves as a reference implementation for teams adopting similar technologies and workflows.
|
||||||
|
|
||||||
## Repository
|
## Repository
|
||||||
|
|
||||||
@@ -24,25 +24,25 @@ This service is part of the broader **petclinic-demo-andrej4** system, which inc
|
|||||||
|
|
||||||
## Architecture
|
## Architecture
|
||||||
|
|
||||||
The Petclinic Demo Application is built on the Spring Boot framework and deployed as a containerized service. Key architectural elements include:
|
The Petclinic Demo Application is built on the Spring Boot framework and deployed as a containerized service in Kubernetes. Key architectural components include:
|
||||||
|
|
||||||
- **Source Code**: Derived from the Spring PetClinic repository, with additional overlays for observability and deployment.
|
- **Spring Boot Application**: The core service, providing RESTful APIs and a web interface.
|
||||||
- **Deployment**: Managed by ArgoCD, which continuously syncs the application from the `main` branch to the `demo-apps` namespace.
|
- **Database**: Configurable to use H2 (in-memory), MySQL, or PostgreSQL, depending on the active profile.
|
||||||
- **Observability**: OpenTelemetry instrumentation is integrated, exporting traces, metrics, and logs to a centralized OTel Collector.
|
- **OpenTelemetry Integration**: Auto-instrumentation for tracing, metrics, and logs, exported to an OTel Collector.
|
||||||
- **Load Testing**: K6 is enabled for performance testing, targeting the frontend service.
|
- **ArgoCD**: Continuous deployment and synchronization from the `main` branch.
|
||||||
- **Chaos Engineering**: Chaos Mesh is configured to simulate failure scenarios and validate system resilience.
|
- **K6 Load Testing**: Configured for performance testing.
|
||||||
|
- **Chaos Mesh**: Enabled for chaos engineering experiments.
|
||||||
|
|
||||||
Data flows through the application, starting from user interactions with the frontend, which communicates with backend services and the database. Observability data is collected and visualized in Grafana.
|
Data flows through the application from user interactions to backend services, with observability tools providing insights into performance and reliability.
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
| Configuration Item | Description |
|
| Configuration Item | Description |
|
||||||
|-----------------------------|---------------------------------------------------------------------------------------------|
|
|--------------------------|----------------------------------------------------------------------------------------------|
|
||||||
| `spring.profiles.active` | Specifies the active Spring profile (`mysql`, `postgres`, or default `h2`). |
|
| `spring.profiles.active` | Sets the active profile (`default`, `mysql`, `postgres`). |
|
||||||
| `k6/test-configmap` | ConfigMap for K6 load testing (`k6-test-petclinic-demo-andrej4`). |
|
| `OTel Collector URL` | `http://otel-collector.monitoring.svc.cluster.local:4318` |
|
||||||
| `k6/test-namespace` | Namespace for K6 tests (`demo-apps`). |
|
| `Database URL` | Configurable for H2, MySQL, or PostgreSQL. |
|
||||||
| `chaos-mesh/enabled` | Enables Chaos Mesh for chaos engineering (`true`). |
|
| `K6 ConfigMap` | `k6-test-petclinic-demo-andrej4` |
|
||||||
| `grafana/dashboard-selector` | Selector for Grafana dashboards (`uid == 'otel-app-observability-v2'`). |
|
|
||||||
|
|
||||||
## Operations
|
## Operations
|
||||||
|
|
||||||
@@ -72,9 +72,9 @@ Alternatively, revert the commit in Git and push — ArgoCD will auto-sync the r
|
|||||||
This service is fully instrumented with OpenTelemetry. Observability data is visualized in Grafana.
|
This service is fully instrumented with OpenTelemetry. Observability data is visualized in Grafana.
|
||||||
|
|
||||||
- **Grafana Dashboard**: [View Dashboard](https://grafana.kyndemo.live/d/otel-app-observability-v2/opentelemetry-application-observability?orgId=1&var-app=petclinic-demo-andrej4)
|
- **Grafana Dashboard**: [View Dashboard](https://grafana.kyndemo.live/d/otel-app-observability-v2/opentelemetry-application-observability?orgId=1&var-app=petclinic-demo-andrej4)
|
||||||
- **Alerting**: Alerts are configured in Grafana and can be filtered by `app=petclinic-demo-andrej4`.
|
- **Alerting**: Configured via Grafana with label selector `app.kubernetes.io/instance=petclinic-demo-andrej4`.
|
||||||
|
|
||||||
_Additional observability details can be found in the platform observability documentation._
|
_Not configured — see platform observability docs for additional details._
|
||||||
|
|
||||||
## Dependencies
|
## Dependencies
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"sourceShas": {
|
"sourceShas": {
|
||||||
"catalog-info.yaml": "121ae078a40242c8867766c77dbba85df41644e2",
|
"catalog-info.yaml": "7f8e08e4d71a45033f49d9190e35fd08ebbb7645",
|
||||||
"README.md": "ef9b745ac26efecf8340b75eea18b8151ba7a86e",
|
"README.md": "ef9b745ac26efecf8340b75eea18b8151ba7a86e",
|
||||||
"docs/adr/index.md": "b9a0b93743cf579be35101bbc63b29356be2849f",
|
"docs/adr/index.md": "b9a0b93743cf579be35101bbc63b29356be2849f",
|
||||||
"docs/index.md": "f7bef9b17f650992e3a89fbecf37eb0ea948b8e0",
|
"docs/index.md": "f7bef9b17f650992e3a89fbecf37eb0ea948b8e0",
|
||||||
"docs/runbooks/index.md": "f9796c4d1a113b786df89cd74dee0f50d98d6025"
|
"docs/runbooks/index.md": "f9796c4d1a113b786df89cd74dee0f50d98d6025"
|
||||||
},
|
},
|
||||||
"promptVersion": "1.0",
|
"promptVersion": "1.0",
|
||||||
"generatedAt": "2026-05-28T08:58:10+00:00",
|
"generatedAt": "2026-05-28T09:07:25+00:00",
|
||||||
"contentHash": "e6697a59127330572c94105b9a24a23737abdaabe06b2b6b6b5cd811d6176023"
|
"contentHash": "625799bc84a8ff7004d26604e1d76286e95b9a3617abf6c014146a04202ff719"
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user