5.2 KiB
title, generated_by, generated_at, human_edited, source_entity, source_repo
| title | generated_by | generated_at | human_edited | source_entity | source_repo |
|---|---|---|---|---|---|
| Petclinic Demo Application | documentor-agent | 2026-05-28T08:57:53+00:00 | false | Component/default/petclinic-demo-andrej4 | 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 |
| Branch | main |
| ArgoCD App | 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
mainbranch to thedemo-appsnamespace. - 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
- Clone the repository:
git clone https://gitea.kyndemo.live/validate/petclinic-demo-andrej4.git cd petclinic-demo-andrej4 - Push changes to the
mainbranch:git add . && git commit -m "your change" && git push origin main - ArgoCD will automatically sync changes to the
demo-appsnamespace.
Rollback
- Open the ArgoCD UI.
- Click History and Rollback.
- 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
- 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-serviceresource:default/k6-operatorresource:default/otel-collector