遥测数据
Meilisearch 会收集用户的匿名数据以改进产品。本页面详细列出了收集的数据类型,并提供了禁用遥测功能的操作指南。
Meilisearch 会收集用户的匿名数据以改进我们的产品。您可以随时停用此功能,并且可以申请删除已收集的所有数据。
我们使用哪些工具来收集和可视化数据?
我们使用数据收集管理平台 Segment 来收集使用数据。然后将这些数据导入可视化工具 Amplitude,以便根据需求构建数据图表。
我们收集哪些类型的数据?
我们的数据收集主要集中在以下类别:
- 系统指标:如运行 Meilisearch 的设备技术规格、软件版本和操作系统
- 性能指标:如搜索请求的成功率和平均延迟
- 使用情况指标:用于评估最新功能的效果,这些指标会随每个新版本而变化
查看下方当前收集的所有指标完整列表。
我们绝不会:
- 识别或追踪用户
- 收集如 IP 地址、电子邮件地址或网站 URL 等个人信息
- 存储添加到 Meilisearch 实例中的文档数据
为什么要收集遥测数据?
我们收集遥测数据仅出于两个原因:改进产品,以及维持项目的全职开发。
为了打造更好的产品,我们需要可靠的定量信息。收集的数据帮助我们修复错误、评估功能效果,并更好地理解用户需求。
同时,我们需要证明 Meilisearch 的实际使用情况。使用指标帮助我们向投资者证明项目的价值,从而维持项目的持续发展。
为什么您可以信任我们?
不要轻信我们——请监督我们。 我们理解并认为,在涉及您的隐私数据时对科技公司保持警惕是明智之举。正因如此,我们致力于保持数据收集的完全透明,提供退出选项,并允许用户随时请求删除所有收集的数据。在全球数据保护法规尚不完善的背景下,我们相信这是处理数据收集唯一符合道德的方式。
没有公司是完美的。如果您发现我们在透明度方面有任何不足,或收集了侵犯您个人隐私的数据,请通过专属邮箱联系我们:privacy@meilisearch.com。同样,如果您发现任何值得我们关注的数据权利倡议或数据保护工具,也请随时分享。我们对此议题充满热忱并极为重视。
如何禁用数据收集
您可以通过设置命令行参数或环境变量来随时禁用数据收集,之后重启 Meilisearch 实例即可生效。
有关配置 Meilisearch 的更多信息,请阅读我们的配置参考文档。
如何删除所有收集的数据
我们 Meilisearch 团队提供了一个电子邮件地址,以便用户可以请求从我们所有工具中完全删除其数据。
为此,请发送邮件至 privacy@meilisearch.com,邮件中需包含为您的 Meilisearch 安装生成的唯一标识符(启动 Meilisearch 时的 Instance UID
)。任何关于我们收集数据管理的问题也可以发送至此邮箱地址。
完整收集数据列表
当触发收集数据的事件时,Meilisearch 不会立即发送这些数据。相反,它会将数据与其他数据打包成最大 500kb
的批次。批次会在每小时或达到 500kb
时发送——以先发生的为准。这样做是为了提高性能并减少网络流量。
此列表可能随每个新版本的 Meilisearch 而变化。这不是因为我们试图隐瞒什么!而是因为当我们添加新功能时,需要收集额外的数据点来观察它们的表现。
指标名称 | 描述 | 示例 |
---|---|---|
context.app.version | Meilisearch 版本号 | 1.3.0 |
infos.env | --env /MEILI_ENV 的值 | production |
infos.db_path | 如果指定了 --db-path /MEILI_DB_PATH 则为 true | true |
infos.import_dump | 如果指定了 --import-dump 则为 true | true |
infos.dump_dir | 如果指定了 --dump-dir /MEILI_DUMP_DIR 则为 true | true |
infos.ignore_missing_dump | 如果启用了 --ignore-missing-dump 则为 true | true |
infos.ignore_dump_if_db_exists | 如果启用了 --ignore-dump-if-db-exists 则为 true | true |
infos.import_snapshot | 如果指定了 --import-snapshot 则为 true | true |
infos.schedule_snapshot | 如果设置了 --schedule_snapshot /MEILI_SCHEDULE_SNAPSHOT 的值,否则为 None | 86400 |
infos.snapshot_dir | 如果指定了 --snapshot-dir /MEILI_SNAPSHOT_DIR 则为 true | true |
infos.ignore_missing_snapshot | 如果启用了 --ignore-missing-snapshot 则为 true | true |
infos.ignore_snapshot_if_db_exists | 如果启用了 --ignore-snapshot-if-db-exists 则为 true | true |
infos.http_addr | 如果指定了 --http-addr /MEILI_HTTP_ADDR 则为 true | true |
infos.http_payload_size_limit | --http-payload-size-limit /MEILI_HTTP_PAYLOAD_SIZE_LIMIT 的值(字节) | 336042103 |
infos.log_level | --log-level /MEILI_LOG_LEVEL 的值 | debug |
infos.max_indexing_memory | --max-indexing-memory /MEILI_MAX_INDEXING_MEMORY 的值(字节) | 336042103 |
infos.max_indexing_threads | --max-indexing-threads /MEILI_MAX_INDEXING_THREADS 的值(整数) | 4 |
infos.log_level | --log-level /MEILI_LOG_LEVEL 的值 | debug |
infos.ssl_auth_path | 如果指定了 --ssl-auth-path /MEILI_SSL_AUTH_PATH 则为 true | false |
infos.ssl_cert_path | 如果指定了 --ssl-cert-path /MEILI_SSL_CERT_PATH 则为 true | false |
infos.ssl_key_path | 如果指定了 --ssl-key-path /MEILI_SSL_KEY_PATH 则为 true | false |
infos.ssl_ocsp_path | 如果指定了 --ssl-ocsp-path /MEILI_SSL_OCSP_PATH 则为 true | false |
infos.ssl_require_auth | --ssl-require-auth /MEILI_SSL_REQUIRE_AUTH 的布尔值 | false |
infos.ssl_resumption | 如果指定了 --ssl-resumption /MEILI_SSL_RESUMPTION 则为 true | false |
infos.ssl_tickets | 如果指定了 --ssl-tickets /MEILI_SSL_TICKETS 则为 true | false |
system.distribution | 运行 Meilisearch 的发行版 | Arch Linux |
system.kernel_version | 运行 Meilisearch 的内核版本 | 5.14.10 |
system.cores | CPU 核心数 | 24 |
system.ram_size | 总内存容量(以 KB 为单位) | 16777216 |
system.disk_size | 最大磁盘的总容量(以 Bytes 为单位) | 1048576000 |
system.server_provider | MEILI_SERVER_PROVIDER 环境变量的值 | AWS |
stats.database_size | 数据库大小(以 Bytes 为单位) | 2621440 |
stats.indexes_number | 索引数量 | 2 |
start_since_days | 实例启动以来的天数 | 365 |
user_agent | API 调用中遇到的 User-agent 头 | [“Meilisearch Ruby (2.1)”, “Ruby (3.0)“] |
requests.99th_response_time | 成功搜索请求中最快的 99% 的最高延迟 | 57ms |
requests.total_succeeded | 成功请求总数 | 3456 |
requests.total_failed | 失败请求总数 | 24 |
requests.total_received | 接收到的搜索请求总数 | 3480 |
requests.total_degraded | 达到搜索时间截止后被取消的搜索总数 | 100 |
requests.total_used_negative_operator | 使用负词或负短语运算符的搜索计数 | 173 |
sort.with_geoPoint | 如果指定了排序规则 _geoPoint 则为 true | true |
sort.avg_criteria_number | 包含 sort 参数的所有搜索请求中排序条件的平均数量 | 2 |
filter.with_geoBoundingBox | 如果指定了过滤规则 _geoBoundingBox 则为 true | false |
filter.with_geoRadius | 如果指定了过滤规则 _geoRadius 则为 true | false |
filter.most_used_syntax | 包含 filter 参数的所有搜索请求中最常用的过滤语法 | string |
q.max_terms_number | q 参数提供的最大词数 | 5 |
pagination.max_limit | limit 参数提供的最大值 | 60 |
pagination.max_offset | offset 参数提供的最大值 | 1000 |
formatting.max_attributes_to_retrieve | 最大返回属性数 | 100 |
formatting.max_attributes_to_highlight | 最大高亮属性数 | 100 |
formatting.highlight_pre_tag | 如果指定了 highlightPreTag 则为 true | false |
formatting.highlight_post_tag | 如果指定了 highlightPostTag 则为 true | false |
formatting.max_attributes_to_crop | 最大裁剪属性数 | 100 |
formatting.crop_length | 如果指定了 cropLength 则为 true | false |
formatting.crop_marker | 如果指定了 cropMarker 则为 true | false |
formatting.show_matches_position | 如果在此批次中使用了 showMatchesPosition 则为 true | false |
facets.avg_facets_number | 平均分面数量 | 10 |
primary_key | 显式设置时的主键名称,否则为 null | id |
payload_type | Content-Type 头中遇到的所有值,包括无效值 | [“application/json”, “text/plain”, “application/x-ndjson”] |
index_creation | 如果文档添加或更新请求触发了索引创建则为 true | true |
ranking_rules.words_position | 如果存在 words 排序规则的位置,否则为 null | 1 |
ranking_rules.typo_position | 如果存在 typo 排序规则的位置,否则为 null | 2 |
ranking_rules.proximity_position | 如果存在 proximity 排序规则的位置,否则为 null | 3 |
ranking_rules.attribute_position | 如果存在 attribute 排序规则的位置,否则为 null | 4 |
ranking_rules.sort_position | sort 排序规则的位置 | 5 |
ranking_rules.exactness_position | 如果存在 exactness 排序规则的位置,否则为 null | 6 |
ranking_rules.values | 表示排序规则的字符串(不包含自定义的 asc-desc 规则) | “words, typo, attribute, sort, exactness” |
sortable_attributes.total | 可排序属性数量 | 3 |
sortable_attributes.has_geo | 如果 _geo 被设为可排序属性则为 true | true |
filterable_attributes.total | 可过滤属性数量 | 3 |
filterable_attributes.has_geo | 如果 _geo 被设为可过滤属性则为 false | false |
filterable_attributes.has_patterns | 如果 filterableAttributes 使用了 attributePatterns 则为 true | true |
searchable_attributes.total | 可搜索属性数量 | 4 |
searchable_attributes.with_wildcard | 如果 * 被指定为可搜索属性则为 false | false |
per_task_uid | 如果使用 uids 获取特定任务资源则为 true | true |
filtered_by_uid | 如果任务通过 uids 查询参数过滤则为 false | false |
filtered_by_index_uid | 如果任务通过 indexUids 查询参数过滤则为 false | false |
filtered_by_type | 如果任务通过 types 查询参数过滤则为 false | false |
filtered_by_status | 如果任务通过 statuses 查询参数过滤则为 false | false |
filtered_by_canceled_by | 如果任务通过 canceledBy 查询参数过滤则为 false | false |
filtered_by_before_enqueued_at | 如果任务通过 beforeEnqueuedAt 查询参数过滤则为 false | false |
filtered_by_after_enqueued_at | 如果任务通过 afterEnqueuedAt 查询参数过滤则为 false | false |
filtered_by_before_started_at | 如果任务通过 beforeStartedAt 查询参数过滤则为 false | false |
filtered_by_after_started_at | 如果任务通过 afterStartedAt 查询参数过滤则为 false | false |
filtered_by_before_finished_at | 如果任务通过 beforeFinishedAt 查询参数过滤则为 false | false |
filtered_by_after_finished_at | 如果任务通过 afterFinishedAt 查询参数过滤则为 false | false |
typo_tolerance.enabled | 如果启用了拼写容错则为 true | true |
typo_tolerance.disable_on_attributes | 如果为 disableOnAttributes 定义了至少一个值则为 false | false |
typo_tolerance.disable_on_words | 如果为 disableOnWords 定义了至少一个值则为 false | false |
typo_tolerance.min_word_size_for_typos.one_typo | minWordSizeForTypos.oneTypo 参数的设定值 | 5 |
typo_tolerance.min_word_size_for_typos.two_typos | minWordSizeForTypos.twoTypos 参数的设定值 | 9 |
pagination.max_total_hits | pagination.maxTotalHits 属性的设定值 | 1000 |
faceting.max_values_per_facet | faceting.maxValuesPerFacet 属性的设定值 | 100 |
distinct_attribute.set | 如果指定了字段名则为 false | false |
distinct | 如果在请求聚合列表中指定了 distinct 则为 true | true |
proximity_precision.set | 如果手动设置了该参数则为 false | false |
proximity_precision.value | byWord 或 byAttribute | byWord |
facet_search.set | 用户已更改 facetSearch | true |
facet_search.value | 用户设置的 facetSearch 值 | true |
prefix_search.set | 用户已更改 prefixSearch | true |
prefix_search.value | 用户设置的 prefixSearch 值 | indexingTime |
displayed_attributes.total | 显示属性数量 | 3 |
displayed_attributes.with_wildcard | 如果 * 被指定为显示属性则为 false | false |
stop_words.total | 停用词数量 | 3 |
separator_tokens.total | 分隔符数量 | 3 |
non_separator_tokens.total | 非分隔符数量 | 3 |
dictionary.total | 词典中的单词数量 | 3 |
synonyms.total | 同义词数量 | 3 |
per_index_uid | 如果使用 uid 获取索引统计资源则为 false | false |
searches.avg_search_count | 聚合事件中每次调用接收的平均搜索查询数 | 4.2 |
searches.total_search_count | 聚合事件中接收的搜索查询总数 | 16023 |
indexes.avg_distinct_index_count | 聚合事件中每次调用查询的索引平均数量 | 1.2 |
indexes.total_distinct_index_count | 聚合事件中查询的不同索引总数 | 6023 |
indexes.total_single_index | 仅查询一个索引时的调用总数 | 2007 |
matching_strategy.most_used_strategy | 最常用的词语匹配策略 | last |
infos.with_configuration_file | 如果实例使用配置文件启动则为 false | false |
infos.experimental_composite_embedders | 如果此实例的 compositeEmbedders 功能设为 true 则为 false | false |
infos.experimental_contains_filter | 如果启用了 containsFilter 实验性功能则为 false | false |
infos.experimental_edit_documents_by_function | 如果启用了 editDocumentsByFunction 实验性功能则为 false | false |
infos.experimental_enable_metrics | 如果启动时指定了 --experimental-enable-metrics 则为 false | false |
infos.experimental_embedding_cache_entries | 配置的嵌入缓存大小 | 100 |
infos.experimental_replication_parameters | 如果启动时指定了 --experimental-replication-parameters 则为 false | false |
infos.experimental_reduce_indexing_memory_usage | 如果启动时指定了 --experimental-reduce-indexing-memory-usage 则为 false | false |
infos.experimental_logs_mode | 根据指定值显示 human 或 json | human |
infos.experimental_enable_logs_route | 如果启动时指定了 --experimental-enable-logs-route 则为 false | false |
infos.gpu_enabled | 如果 Meilisearch 编译时支持 CUDA 则为 false | false |
swap_operation_number | 交换操作次数 | 2 |
pagination.most_used_navigation | 最常用的搜索结果导航方式 | estimated |
per_document_id | 如果使用了 DELETE /indexes/:indexUid/documents/:documentUid 端点则为 false | false |
per_filter | 如果使用了 |