注意:该镜像已弃用。自托管Sentry镜像已从DockerHub迁移至GitHub容器 registry,新镜像地址:https://github.com/getsentry/snuba/pkgs/container/snuba%E3%80%82
Snuba是Sentry的存储服务,提供对事件的快速搜索、过滤和任意字段聚合能力,依赖ClickHouse作为存储后端和Redis进行缓存。
适用于Sentry自托管环境,用于存储、查询和分析事件数据,尤其适合需要高效处理大量事件并进行复杂聚合分析的场景。主要供Sentry开发和运维人员使用。
修改Sentry配置文件
在~/.sentry/sentry.conf.py中添加/修改以下配置:
pythonSENTRY_SEARCH = 'sentry.search.snuba.EventsDatasetSnubaSearchBackend' SENTRY_TSDB = 'sentry.tsdb.redissnuba.RedisSnubaTSDB' SENTRY_EVENTSTREAM = 'sentry.eventstream.snuba.SnubaEventStream'
启动服务
bashsentry devservices up
访问ClickHouse客户端
类似psql的ClickHouse命令行客户端:
bashdocker exec -it sentry_clickhouse clickhouse-client
验证数据写入
数据存储在sentry_local表中,可通过以下命令检查数据量:
sqlselect count() from sentry_local;
Snuba开发需依赖以下服务:
CLICKHOUSE_HOST(默认localhost)访问REDIS_HOST(默认localhost)的6379端口访问快速启动依赖服务(需先配置Sentry):
bashsentry devservices up --exclude=snuba
bash# 创建并激活虚拟环境 mkvirtualenv snuba --python=python3.7 workon snuba # 安装依赖 make install-python-dependencies make install-librdkafka make setup-git # 启动API服务器 snuba api
Snuba默认在1218端口提供HTTP API,主要端点包括:
/:首页/dashboard:查询仪表板/query:ClickHouse查询端点/config:运行时配置控制台配置项位于settings.py,主要包括:
CLICKHOUSE_HOST:ClickHouse服务主机名(默认localhost)REDIS_HOST:Redis服务主机名(默认localhost)DATASET_MODE:数据集模式,"local"表示使用本地表而非分布式表bashpip install -e . make test
bashworkon snuba git checkout your-snuba-branch snuba api
bashworkon sentry git checkout master git pull sentry devservices up --exclude=snuba
bashUSE_SNUBA=1 make test-acceptance USE_SNUBA=1 make test-snuba make test-python # 注意:当前带USE_SNUBA标志时Python测试可能无法通过
通过/query端点提交JSON格式查询,示例:
json{ "project": [1, 2], "selected_columns": ["tags[environment]"], "aggregations": [ ["max", "received", "last_seen"] ], "conditions": [ ["tags[environment]", "=", "prod"] ], "from_date": "2011-07-01T19:54:15", "to_date": "2018-07-06T19:54:15", "granularity": 3600, "groupby": ["group_id", "time"], "having": [], "issues": [], "sample": 0.5 }
主要字段说明
groupby字段不可同时使用(可能导致查询无效)[function, column, alias],如["max", "received", "last_seen"]。特殊函数如count()表示为["count()", null, "item_count"],topK类函数如["top5", "environment", "top_five_envs"]会生成topK(5)(environment) AS top_five_envs[column_name, operation, literal],支持操作符:>, <, >=, <=, =, !=, IN, NOT IN, IS NULL, IS NOT NULL, LIKE, NOT LIKE。条件间默认逻辑为AND,嵌套数组表示ORtime虚拟列分组(如3600表示按小时分组)group_id(按问题分组)和time(按时间分桶分组)问题分组(Groups/Issues)
使用group_id虚拟列按问题分组。由于事件可能合并到不同问题,需通过issues参数传入问题ID与事件primary_hash的映射关系,Snuba会自动展开映射进行过滤/分组。
标签查询
支持两种标签查询方式:
已知标签名查询:使用tags[name]格式,如tags[environment],自动解析为对应标签值
json"conditions": [ ["tags[environment]", "=", "prod"], ["tags[custom_user_tag]", "IS NOT NULL"] ]
动态标签键/值查询:使用tags_key(标签名)或tags_value(标签值)虚拟列,会展开所有标签(包括非预设标签),每行对应一个标签
json// 查询值为"bar"的所有标签 "conditions": [ ["tags_value", "=", "bar"] ]
注意:使用
tags_key或tags_value时,计数对象是标签而非事件。例如10个事件各有10个标签,count()会返回100。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务