superset警报与报告

参考官网进行配置

Alerts and Reports | superset docsuperset警报与报告https://superset.apache.org/docs/installation/alerts-reports

邮箱配置

        *邮箱以163举例

  • 首先开启163邮箱SMTP

superset警报与报告

superset警报与报告

  • 拿到授权码

 superset警报与报告

  • 编写SMTP配置

 superset警报与报告

 SMTP_PASSWORD 授权码

SMTP_USER        你的163邮箱

SMTP_MAIL_FROM  你的163邮箱

端口号

superset警报与报告

 非SSL 

SMTP_STARTTLS = True
SMTP_SSL = False

配置完成。

 贴上我的配置,仅供参考

/home/superset下

superset_config.py

from superset.typing import CacheConfig
from celery.schedules import crontab

FEATURE_FLAGS = {
    "THUMBNAILS": True,
    "THUMBNAILS_SQLA_LISTENERS": True,
    "DASHBOARD_NATIVE_FILTERS": True,
    "DASHBOARD_CACHE": True,
    "ALERT_REPORTS": True,
}

CACHE_CONFIG = {
    'CACHE_TYPE': 'redis',
    'CACHE_DEFAULT_TIMEOUT': 60 * 60 * 3,
    'CACHE_KEY_PREFIX': 'superset_',
    'CACHE_REDIS_HOST': 'localhost',
    'CACHE_REDIS_PORT': 6379,
    'CACHE_REDIS_DB': 0,
    'CACHE_REDIS_URL': 'redis://localhost:6379/0'
}

DATA_CACHE_CONFIG = {
    'CACHE_TYPE': 'redis',
    'CACHE_DEFAULT_TIMEOUT': 60 * 60 * 3, # 1 day default (in secs)
    'CACHE_KEY_PREFIX': 'superset_results',
    'CACHE_REDIS_URL': 'redis://localhost:6379/0',
}

# Async selenium thumbnail task will use the following user
THUMBNAIL_SELENIUM_USER = "admin"
THUMBNAIL_CACHE_CONFIG: CacheConfig = {
    'CACHE_TYPE': 'redis',
    'CACHE_DEFAULT_TIMEOUT': 3*60*60,
    'CACHE_KEY_PREFIX': 'thumbnail_',
    'CACHE_NO_NULL_WARNING': True,
    'CACHE_REDIS_URL': 'redis://localhost:6379/0'
}

class CeleryConfig(object):
    BROKER_URL = "redis://localhost:6379/0"
    CELERY_IMPORTS = ("superset.sql_lab", "superset.tasks", "superset.tasks.thumbnails",)
    CELERY_RESULT_BACKEND = "redis://localhost:6379/0"
    CELERYD_PREFETCH_MULTIPLIER = 10
    CELERY_ACKS_LATE = True
    CELERY_ANNOTATIONS = {
        'sql_lab.get_sql_results': {
            'rate_limit': '100/s',
        },
        'email_reports.send': {
            'rate_limit': '1/s',
            'time_limit': 600,
            'soft_time_limit': 600,
            'ignore_result': True,
        },
    }
    CELERYBEAT_SCHEDULE = {
        "cache-warmup-hourly": {
            "task": "cache-warmup",
            "schedule": crontab(minute=0, hour="*"),  # hourly
            "kwargs": {
                "strategy_name": "top_n_dashboards",
                "top_n": 5,
                "since": "7 days ago",
            },
        },
        'reports.scheduler': {
            'task': 'reports.scheduler',
            'schedule': crontab(minute='*', hour='*'),
        },
        'reports.prune_log': {
            'task': 'reports.prune_log',
            'schedule': crontab(minute=0, hour=0),
        },
    }
CELERY_CONFIG = CeleryConfig

SCREENSHOT_LOCATE_WAIT = 100
SCREENSHOT_LOAD_WAIT = 600

# Email configuration
SMTP_HOST = "smtp.163.com" #change to your host
SMTP_STARTTLS = True
SMTP_SSL = False
SMTP_USER = "lz********@163.com"
SMTP_PORT = 25 # your port eg. 587
SMTP_PASSWORD = "***************"
SMTP_MAIL_FROM = "lz******@163.com"

# The webdriver to use for generating reports. Use one of the following
# firefox
#   Requires: geckodriver and firefox installations
#   Limitations: can be buggy at times
# chrome:
#   Requires: headless chrome
#   Limitations: unable to generate screenshots of elements
WEBDRIVER_TYPE = "chrome"

# Additional args to be passed as arguments to the config object
# Note: these options are Chrome-specific. For FF, these should
# only include the "--headless" arg
WEBDRIVER_OPTION_ARGS = [
    "--force-device-scale-factor=2.0",
    "--high-dpi-support=2.0",
    "--headless",
    "--disable-gpu",
    "--disable-dev-shm-usage",
    "--no-sandbox",
    "--disable-setuid-sandbox",
    "--disable-extensions",
]

# The base URL to query for accessing the user interface
WEBDRIVER_BASEURL = "http://localhost:8088/"

# On Redis
from cachelib.redis import RedisCache
RESULTS_BACKEND = RedisCache(
    host='localhost', port=6379, key_prefix='superset_results')

启动superset

我的运行方式与官方不同,是单容器运行的。Superset安装与汉化https://blog.csdn.net/LeeZed/article/details/121223218superset警报与报告https://blog.csdn.net/LeeZed/article/details/121223218

重启superset容器,进入容器后

启动redis

nohup redis-server > ./redis.log &

启动celery beat

nohup celery --app=superset.tasks.celery_app:app beat > ./celery_beat.log &

启动celery worker 

nohup celery --app=superset.tasks.celery_app:app worker --pool=prefork  --max-tasks-per-child=128 -O fair -c 4 > ./celery.log &

celery相关可自行搜索相关知识,相关连接参考superset缩略图https://blog.csdn.net/LeeZed/article/details/121223296superset警报与报告https://blog.csdn.net/LeeZed/article/details/121223296

警告与报告

  • 配置完成后,进入superset,点击警报与报告

superset警报与报告

  •  根据需求添加警报与报告

superset警报与报告

superset警报与报告

  • 查看运行日志

superset警报与报告

 superset警报与报告

错误(535, b'Error: authentication failed') 是SMTP配置问题,如果出现,检查相关配置。 

测试通过

superset警报与报告

上一篇:python测试开发django-158.celery 学习与使用


下一篇:python测试开发django-160.Celery 定时任务 (beat)