如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
注意:该镜像已弃用。自托管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。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务