{"id":27933,"library":"luigi-monitor","title":"Luigi Monitor","description":"Luigi Monitor sends summary messages of your Luigi pipeline runs to Slack (via webhook). It provides a lightweight wrapper to augment Luigi's scheduling events and report success/failure in real-time. Current version 1.1.4, with no recent releases; the project is in maintenance mode.","status":"active","version":"1.1.4","language":"python","source_language":"en","source_url":"https://github.com/hudl/luigi-monitor","tags":["luigi","monitoring","slack","notification"],"install":[{"cmd":"pip install luigi-monitor","lang":"bash","label":"PyPI"}],"dependencies":[{"reason":"Runtime dependency; monitors Luigi pipelines","package":"luigi","optional":false},{"reason":"Used to send HTTP POST to Slack webhook","package":"requests","optional":false}],"imports":[{"note":"Module name has hyphen, not underscore in import path","wrong":"from luigimonitor import LuigiMonitor","symbol":"LuigiMonitor","correct":"from luigi_monitor import LuigiMonitor"}],"quickstart":{"code":"from luigi_monitor import LuigiMonitor\nimport os\n\nmonitor = LuigiMonitor(\n    slack_url=os.environ.get('SLACK_WEBHOOK_URL', ''),\n    channel='#pipeline-alerts',\n    username='luigi-bot',\n    icon_emoji=':robot_face:'\n)\n\n@monitor.notify\nclass MyTask(luigi.Task):\n    def run(self):\n        pass\n\nif __name__ == '__main__':\n    luigi.run()","lang":"python","description":"Wrap Luigi tasks with @monitor.notify to send Slack messages on completion/failure."},"warnings":[{"fix":"Use 'from luigi_monitor import LuigiMonitor'","message":"The import path uses an underscore (luigi_monitor) despite the PyPI package name having a hyphen. Attempting to import luigi-monitor directly will fail.","severity":"gotcha","affected_versions":"all"},{"fix":"Ensure SLACK_WEBHOOK_URL environment variable is set, or pass slack_url explicitly.","message":"Slack webhook URL must be provided either via constructor or SLACK_URL env var. If missing, monitor silently falls back to no-op without warning.","severity":"gotcha","affected_versions":"all"},{"fix":"Test with your Luigi version; consider forking or switching to alternative monitoring.","message":"The project has had no updates since 2019; may not work with Luigi 3.x due to internal event API changes. No official compatibility statement.","severity":"deprecated","affected_versions":"<=1.1.4"}],"env_vars":null,"last_verified":"2026-05-09T00:00:00.000Z","next_check":"2026-08-07T00:00:00.000Z","problems":[{"fix":"Install with pip install luigi-monitor, then import as 'from luigi_monitor import LuigiMonitor'","cause":"Incorrect import path; often using hyphen instead of underscore.","error":"ImportError: cannot import name 'LuigiMonitor'"},{"fix":"Upgrade to latest: pip install --upgrade luigi-monitor","cause":"Old version of the library (pre-1.0) used a different API; likely installed wrong package or outdated version.","error":"AttributeError: module 'luigi_monitor' has no attribute 'LuigiMonitor'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}