# Jira Webhook LLM ## Langfuse Integration ### Overview The application integrates with Langfuse for observability and analytics of LLM usage and webhook events. This integration provides detailed tracking of: - Webhook events - LLM model usage - Error tracking - Performance metrics ### Configuration Langfuse configuration is managed through both `application.yml` and environment variables. #### application.yml ```yaml langfuse: enabled: true public_key: "pk-lf-..." secret_key: "sk-lf-..." host: "https://cloud.langfuse.com" ``` #### Environment Variables ```bash LANGFUSE_ENABLED=true LANGFUSE_PUBLIC_KEY="pk-lf-..." LANGFUSE_SECRET_KEY="sk-lf-..." LANGFUSE_HOST="https://cloud.langfuse.com" ``` ### Enable/Disable To disable Langfuse integration: 1. Set `langfuse.enabled: false` in `application.yml` 2. Or set `LANGFUSE_ENABLED=false` in your environment ### Tracking Details The following events are tracked: 1. Webhook events - Input payload - Timestamps - Issue metadata 2. LLM processing - Model used - Input/output - Processing time 3. Errors - Webhook processing errors - LLM processing errors - Validation errors ### Viewing Data Visit your Langfuse dashboard to view the collected metrics and traces. ## Deployment Guide ### Redis Configuration The application requires Redis for caching and queue management. Configure Redis in `application.yml`: ```yaml redis: host: "localhost" port: 6379 password: "" db: 0 ``` Environment variables can also be used: ```bash REDIS_HOST="localhost" REDIS_PORT=6379 REDIS_PASSWORD="" REDIS_DB=0 ``` ### Worker Process Management The application uses Celery for background task processing. Configure workers in `application.yml`: ```yaml celery: workers: 4 concurrency: 2 max_tasks_per_child: 100 ``` Start workers with: ```bash celery -A jira-webhook-llm worker --loglevel=info ``` ### Monitoring Setup The application provides Prometheus metrics endpoint at `/metrics`. Configure monitoring: 1. Add Prometheus scrape config: ```yaml scrape_configs: - job_name: 'jira-webhook-llm' static_configs: - targets: ['localhost:8000'] ``` 2. Set up Grafana dashboard using the provided template ### Rate Limiting Rate limiting is configured in `application.yml`: ```yaml rate_limiting: enabled: true requests_per_minute: 60 burst_limit: 100 ``` ### Health Check Endpoint The application provides a health check endpoint at `/health` that returns: ```json { "status": "OK", "timestamp": "2025-07-14T01:59:42Z", "components": { "database": "OK", "redis": "OK", "celery": "OK" } } ``` ### System Requirements Minimum system requirements: - Python 3.9+ - Redis 6.0+ - 2 CPU cores - 4GB RAM - 10GB disk space Required Python packages are listed in `requirements.txt`