Skip to content

feat: add flower-docker extension for Celery monitoring - #178

Closed
emberb170d wants to merge 8 commits into
Create-Python-App:mainfrom
emberb170d:main
Closed

feat: add flower-docker extension for Celery monitoring#178
emberb170d wants to merge 8 commits into
Create-Python-App:mainfrom
emberb170d:main

Conversation

@emberb170d

Copy link
Copy Markdown
Contributor

Flower Monitoring Extension for Celery

Adds Flower monitoring dashboard for Celery workers.

Problem

users often want Flower for local/dev monitoring.

Solution

Extension compatible with celery worker type: docker-compose service or dependency + docs. Keeps secrets in env examples only. L2 against .

What's included

  • Flower monitoring dashboard via Docker Compose
  • Environment variables loaded from files only (no hardcoded secrets)
  • Comprehensive documentation and security guidelines
  • Compatible with the celery-worker template (L2)

Files added

    • Extension overview
    • Docker Compose with flower service
    • Worker Dockerfile
    • Environment variable template
    • Usage guide
    • Extension index
    • Docs index bullet

Usage

uvx create-awesome-python-app my-worker \
  --template celery-worker \
  --addons celery-docker flower-docker \
  --yes

Then access the dashboard at http://localhost:5555.

Fixes #128

…p#117

- Link docs/AUTHORING.es.md from README.md Documentation table
- Link Spanish doc from CONTRIBUTING.md with canonical English note
- Add CI L0-L3 brief mention to docs/AUTHORING.es.md intro

Addresses acceptance criteria for issue Create-Python-App#117:
- [x] Spanish doc exists and is linked
- [x] English remains canonical
- [x] Mentions CI L0-L3 briefly
…ate-Python-App#112)

Defines the standard span kinds and attribute schema AI extensions must use
when emitting LLM/tool/retrieval/guardrail spans via the primitives from
fastapi-mlflow-tracing (Create-Python-App#81).

- Documents 4 span kinds: llm_inference, tool_call, retrieval, guardrail_check
- Specifies required attributes for each kind
- Defines span shape rules (linear span tree for guardrail rejections)
- Documents privacy policy (LLM_TRACE_PAYLOAD opt-in, off in CI)
- Links all related issues (Create-Python-App#81, Create-Python-App#77, Create-Python-App#78, Create-Python-App#79, Create-Python-App#80, Create-Python-App#82, Create-Python-App#91)
- Includes illustrative Python example using maybe_start_span
@coderabbitai

coderabbitai Bot commented Aug 20, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 986762a1-8f5b-4394-87d3-cf108431e766


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@ulises-jeremias

Copy link
Copy Markdown
Member

Flower monitoring is a welcome addition, and the extension layout itself looks right. But the branch mixes in unrelated changes: Spanish authoring-doc edits (overlapping #162), .editorconfig / .python-version files that already exist on main, and ARCHITECTURE.md edits. It's also cut from your fork's main, which makes follow-up updates awkward.

Please open a fresh feature branch off current upstream main containing only extensions/flower-docker/** (plus the registry entry) — then it should be a quick merge.

ulises-jeremias added a commit that referenced this pull request Aug 23, 2026
…patibleWith (#185)

- extensions/fastapi-auth-jwt: add tests/test_auth.py (16 tests) covering
  password hashing (salted Argon2), JWT create/decode round-trip, extra
  claims, algorithm, secret rotation, expiry, Pydantic schemas, and
  router wire-up via TestClient ($auth endpoints).
- extensions/fastapi-sqlalchemy: add tests/test_sqlalchemy.py (9 tests)
  covering DeclarativeBase registration, engine/session factory smoke,
  get_db generator contract, isolated in-memory round-trip, Alembic
  env wiring via static content check, DATABASE_URL override, and
  sqlite connect_args style guard.
- docs/AUTHORING.md: document upcoming celery-docker vs flower-docker
  incompatibleWith prep for PR #178 (symmetric validation via
  scripts/ci/validate-registry.py / templates.schema.json).
- extensions/all-postgres: fix .env.example.append style consistency
  (remove duplicate header and leading blank line).

Co-authored-by: cpa-templates W3 task

Co-authored-by: ulises-jeremias <ulises.jeremias@example.com>
@ulises-jeremias

Copy link
Copy Markdown
Member

Thanks @emberb170d for the Flower extension! A couple of items need work before this can be merged:

1. Missing incompatibleWith + registry entry (required per W3-5 / docs/AUTHORING.md):

  • extensions/flower-docker and extensions/celery-docker both ship compose.yml + Dockerfile for the same celery-worker type and would overwrite each other.
  • Please add a templates.json entry for flower-docker (slug flower-docker, type: ["celery-worker"]) with "incompatibleWith": ["celery-docker"], and add "incompatibleWith": ["flower-docker"] to the existing celery-docker entry. Validation is symmetric (scripts/ci/validate-registry.py enforces both sides list each other by slug).
  • Document the colliding paths (compose.yml, Dockerfile, compose service collision on worker) in the PR description.

Current diff has no templates.json change and no incompatibleWith, so CI would fail registry validation once the extension is registered (expected behavior).

2. Branch hygiene — head is fork's main:

  • This PR’s head is emberb170d/cpa-templates:main, which is your fork’s default branch. Please open future PRs from a feature branch (e.g. feat/flower-docker) so the fork’s main stays syncable with upstream and the PR can be updated without force-pushing main.
  • For this PR, you can keep it open and push to the same branch, or create a new PR from a feature branch and we can close this one. No need to recreate immediately, but please use a feature branch next time.

3. Housekeeping:

  • extensions/flower-docker/.dockerignore currently contains Markdown documentation rather than ignore patterns — please move that content to README.md and keep .dockerignore as actual ignore rules, or remove it if inherited from the template.
  • template/compose.yml duplicates the redis+worker services from celery-docker and adds flower. If the extension depends on celery-docker being present, document the intended composition (--addons celery-docker flower-docker vs standalone). If they are mutually exclusive (incompatibleWith), the compose file should be standalone and the README should explain the choice.

Once templates.json + symmetric incompatibleWith are added, we can re-run CI (all L0/L1/L2 jobs are currently green on the unregistered state, but will need validation after registration). Adding needs-work for tracking.

@ulises-jeremias ulises-jeremias added the needs-work Needs contributor changes before merge label Aug 23, 2026
ulises-jeremias added a commit that referenced this pull request Aug 24, 2026
Adds Flower dashboard for Celery workers (port 5555) as a Docker
Compose overlay. Mutual incompatibility with celery-docker declared
symmetrically (both ship Dockerfile/compose.yml for celery-worker and
would overwrite the same paths).

- extensions/flower-docker: compose.yml (+ healthchecks, flower service),
  compose.prod.yml, Dockerfile, .dockerignore (valid patterns), pyproject.toml
  (flower>=2.0.1), .env.example (FLOWER_BASIC_AUTH, FLOWER_PORT),
  docs/FLOWER_GUIDE.md, docs/README.md.append
- templates.json: add flower-docker (observability, type celery-worker,
  labels Flower/Celery/Monitoring) with incompatibleWith celery-docker;
  add symmetric incompatibleWith to celery-docker
- scripts/ci/validate-registry.py: allow flower-docker for celery-worker
  (canonical tool name, otherwise would require celery- prefix)

Closes #128
Refs #178 (replaces flawed PR: fork main, stale .editorconfig, markdown .dockerignore)

Co-authored-by: ulises-jeremias <ulises.jeremias@example.com>
@ulises-jeremias

Copy link
Copy Markdown
Member

Superseded by #188 which adds flower-docker with proper incompatibleWith symmetric to celery-docker, valid .dockerignore, and full CI green. Thanks @emberb170d for the initial contribution! Closing #128 as well via #188.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-work Needs contributor changes before merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: add celery-flower monitoring extension

2 participants