--- title: "Petclinic Demo Application" generated_by: documentor-agent generated_at: "2026-05-28T08:57:53+00:00" human_edited: false source_entity: "Component/default/petclinic-demo-andrej4" source_repo: "https://gitea.kyndemo.live/validate/petclinic-demo-andrej4" --- ## 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. 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. ## Repository | Property | Value | |----------------|---------------------------------------------------------------------------------------------------------| | **Source Repo**| [Petclinic Demo Repository](https://gitea.kyndemo.live/validate/petclinic-demo-andrej4) | | **Branch** | `main` | | **ArgoCD App** | [petclinic-demo-andrej4](https://argocd.kyndemo.live/applications/petclinic-demo-andrej4) | | **Namespace** | `demo-apps` | ## Architecture The Petclinic Demo Application is built on the Spring Boot framework and deployed as a containerized service. Key architectural elements include: - **Source Code**: Derived from the Spring PetClinic repository, with additional overlays for observability and deployment. - **Deployment**: Managed by ArgoCD, which continuously syncs the application from the `main` branch to the `demo-apps` namespace. - **Observability**: OpenTelemetry instrumentation is integrated, exporting traces, metrics, and logs to a centralized OTel Collector. - **Load Testing**: K6 is enabled for performance testing, targeting the frontend service. - **Chaos Engineering**: Chaos Mesh is configured to simulate failure scenarios and validate system resilience. 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. ## Configuration | Configuration Item | Description | |-----------------------------|---------------------------------------------------------------------------------------------| | `spring.profiles.active` | Specifies the active Spring profile (`mysql`, `postgres`, or default `h2`). | | `k6/test-configmap` | ConfigMap for K6 load testing (`k6-test-petclinic-demo-andrej4`). | | `k6/test-namespace` | Namespace for K6 tests (`demo-apps`). | | `chaos-mesh/enabled` | Enables Chaos Mesh for chaos engineering (`true`). | | `grafana/dashboard-selector` | Selector for Grafana dashboards (`uid == 'otel-app-observability-v2'`). | ## Operations ### Deployment 1. Clone the repository: ```bash git clone https://gitea.kyndemo.live/validate/petclinic-demo-andrej4.git cd petclinic-demo-andrej4 ``` 2. Push changes to the `main` branch: ```bash git add . && git commit -m "your change" && git push origin main ``` 3. ArgoCD will automatically sync changes to the `demo-apps` namespace. ### Rollback 1. Open the [ArgoCD UI](https://argocd.kyndemo.live/applications/petclinic-demo-andrej4). 2. Click **History and Rollback**. 3. Select the desired revision and click **Rollback**. Alternatively, revert the commit in Git and push — ArgoCD will auto-sync the rollback. ## Observability 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) - **Alerting**: Alerts are configured in Grafana and can be filtered by `app=petclinic-demo-andrej4`. _Additional observability details can be found in the platform observability documentation._ ## Dependencies - `component:default/argocd-service` - `resource:default/k6-operator` - `resource:default/otel-collector` ## Links - [Live Application](https://petclinic-demo-andrej4.kyndemo.live) - [Repository](https://gitea.kyndemo.live/validate/petclinic-demo-andrej4) - [ArgoCD App](https://argocd.kyndemo.live/applications/petclinic-demo-andrej4) - [Grafana Dashboard](https://grafana.kyndemo.live/d/otel-app-observability-v2/opentelemetry-application-observability?orgId=1&var-app=petclinic-demo-andrej4)