docs: README for component/default/petclinic #8

Merged
demo-bot merged 1 commits from documentor-agent-component-default-petclinic-doc-52cb3f849f5f into main 2026-05-13 10:51:12 +00:00
Showing only changes of commit 66328cc005 - Show all commits

View File

@@ -1,73 +1,49 @@
--- ---
title: "Petclinic" title: "Petclinic"
generated_by: documentor-agent generated_by: documentor-agent
generated_at: "2026-05-05T11:02:41+00:00" generated_at: "2026-05-13T10:50:59+00:00"
human_edited: false human_edited: false
source_entity: "Component/default/petclinic" source_entity: "Component/default/petclinic"
source_repo: "https://gitea.kyndemo.live/validate/petclinic-demo-jonathan-scaf-2" source_repo: "https://gitea.kyndemo.live/validate/petclinic-demo-andrej2"
--- ---
# Petclinic # Petclinic
> A Spring Bootbased application for managing veterinary clinic operations, including scheduling, customer management, and pet records. > Petclinic service — part of petclinic-demo-andrej2.
## Overview ## Overview
The Petclinic service is a Java-based application built using Spring Boot. It provides a comprehensive platform for managing veterinary clinic operations, including scheduling appointments, managing customer and pet records, and handling clinic workflows. Originally sourced from the Spring Petclinic project, this service has been adapted and deployed using Backstage templates to integrate with modern observability and deployment tools. The Petclinic service is a core component of the petclinic-demo-andrej2 system. It is designed to provide functionality for managing pet-related data, including owners, visits, and veterinary records. This service is part of a demonstration project showcasing modern application deployment practices, including GitOps, observability, load testing, and chaos engineering.
The application supports multiple database configurations, including in-memory H2, MySQL, and PostgreSQL, and is designed to be easily deployable in containerized environments. It includes OpenTelemetry instrumentation for enhanced observability and integrates with Grafana for monitoring and alerting. The service is part of the broader `petclinic-demo-jonathan-scaf-2` system and is managed via ArgoCD for continuous deployment. The service is built using Java and integrates with various platform tools such as ArgoCD for deployment, OpenTelemetry for observability, K6 for load testing, and Chaos Mesh for chaos engineering experiments. It serves as a practical example of how to implement and manage a microservice in a cloud-native environment.
## Repository ## Repository
| Field | Value | | Field | Value |
|---|---| |---------------|-----------------------------------------------------------------------|
| Source Repo | [Petclinic Repository](https://gitea.kyndemo.live/validate/petclinic-demo-jonathan-scaf-2) | | Source Repo | [Petclinic Repository](https://gitea.kyndemo.live/validate/petclinic-demo-andrej2) |
| Branch | main | | Branch | main |
| ArgoCD App | petclinic-demo-jonathan-scaf-2 | | ArgoCD App | petclinic-demo-andrej2 |
| Namespace | demo-apps | | Namespace | demo-apps |
## Architecture ## Architecture
- The Petclinic service is scaffolded using the Backstage Application Migration Factory template. <!-- TODO: FILL IN -->
- Deployment flow:
1. Source code cloned from the original Spring Petclinic repository.
2. Backstage overlays applied for CI workflows and catalog entity creation.
3. OpenTelemetry auto-instrumentation injected via Kustomize overlays.
4. ArgoCD application created targeting the `demo-apps` namespace.
5. Continuous sync from the `main` branch ensures up-to-date deployments.
- Observability is enabled with OpenTelemetry, exporting traces, metrics, and logs to the OTel Collector, visualized in Grafana.
## Configuration ## Configuration
| Configuration | Description | <!-- TODO: FILL IN -->
|---|---|
| `spring.profiles.active` | Specifies the active Spring profile (`mysql`, `postgres`, or default H2). |
| Database URLs | JDBC URLs for H2, MySQL, and PostgreSQL databases. |
| Docker Compose | Predefined services for MySQL and PostgreSQL databases. |
| OTel Collector Endpoint | `http://otel-collector.monitoring.svc.cluster.local:4318` |
## Operations ## Operations
- **Local Development**:
1. Clone the repository: `git clone https://gitea.kyndemo.live/validate/petclinic-demo-jonathan-scaf-2.git`
2. Start the application using Maven or Gradle: `./mvnw spring-boot:run` or `./gradlew bootRun`.
3. Access the application at `http://localhost:8080`.
- **Deployment**:
- ArgoCD monitors the repository and automatically syncs changes to the `demo-apps` namespace.
- Rollback can be performed via the ArgoCD UI or by reverting commits in Git.
<!-- TODO: FILL IN --> <!-- TODO: FILL IN -->
## Observability ## Observability
- **Grafana Dashboard**: [OpenTelemetry Application Observability](https://grafana.kyndemo.live/d/otel-app-observability-v2/opentelemetry-application-observability?orgId=1&var-service=petclinic) - [Grafana Dashboard](https://grafana.kyndemo.live/d/otel-app-observability-v2/opentelemetry-application-observability?orgId=1&var-service=petclinic)
- **Alerts**: Configured via Grafana with label selector `app=petclinic`.
- **Instrumentation**: OpenTelemetry auto-instrumentation enabled.
## Dependencies ## Dependencies
- `component:default/argocd-service` - `component:default/argocd-service`
- `resource:default/k6-operator` - `resource:default/k6-operator`
- `resource:default/otel-collector` - `resource:default/otel-collector`
- `resource:default/veterinary-platform`