danihodovic / celery-exporter

A Prometheus exporter for Celery metrics
MIT License
431 stars 94 forks source link

Edit Docker Compose File, Add "accept-content" To Dockerfile's Entrypoint #300

Open rojinebrahimi opened 7 months ago

rojinebrahimi commented 7 months ago

Hello! Hope everything is alright with you.

I had this problem with new version of Celery which forced me to use accept-content for de-serialization, Currently, I am using the Helm chart and I have added the command section to make it up & running:

 command:
    - python
    - /app/cli.py
    - >-
      --accept-content=json,pickle,application/json,application/x-python-serialize

I thought it would be great to add this to the main Dockerfile so the image would be ready to use.

Moreover, I have made some changes in the main docker-compose.yml so that the image could be tested locally. Hope it helps others, too.

Your consideration is appreciated.

danihodovic commented 5 months ago

You can use the environment variable CE_ACCEPT_CONTENT I think. Can you give that a try?

https://github.com/danihodovic/celery-exporter/blob/master/src/cli.py#L43

FedericoSinisi commented 1 week ago

Hey I test this and it work OK!

env:
  - name: CE_BROKER_URL
    value: "amqp://XXXX:YYYY@rabbitmq.rabbitmq.svc.cluster.local/"
  - name: CE_ACCEPT_CONTENT
    value: "json,pickle,application/json,application/json,application/x-python-serialize"

And the pod startup show exactly the same

➜  ~ k logs -f pod/celery-exporter-5c89594f74-c5rhx -n backend
2024-11-21 15:33:30.961 | INFO     | src.exporter:run:335 - Setting celery accept_content ['json', 'pickle', 'application/json', 'application/json', 'application/x-python-serialize'] 
2024-11-21 15:33:30.988 | INFO     | src.http_server:start_http_server:66 - Started celery-exporter at host='0.0.0.0' on port='9808'

Thanks!