import type { VendorConfig } from '../types'; import { SHARED_SEARCH_KEYWORDS, SHARED_SQL_AGGREGATES, SHARED_SQL_KEYWORDS, SHARED_SQL_SCALARS } from './shared'; const slsConfig: VendorConfig = { id: 'sls', label: '阿里云 SLS', searchKeywords: SHARED_SEARCH_KEYWORDS, searchBuiltinFields: [ { name: '__topic__', detail: '日志主题', doc: 'SLS 内置字段:日志主题' }, { name: '__source__', detail: '日志来源', doc: 'SLS 内置字段:日志来源 IP/host' }, { name: '__tag__', detail: '日志标签前缀', doc: 'SLS 内置字段:标签前缀,例如 __tag__:hostname' }, ], fieldAssignOperators: [':'], sqlKeywords: Array.from(new Set([...SHARED_SQL_KEYWORDS, 'EXISTS', 'OVER', 'PARTITION', 'WINDOW', 'ARRAY', 'MAP', 'UNNEST'])), sqlFunctions: [ ...SHARED_SQL_AGGREGATES, ...SHARED_SQL_SCALARS, { name: 'APPROX_DISTINCT', signature: 'APPROX_DISTINCT(field)', doc: 'SLS:近似去重计数' }, { name: 'APPROX_PERCENTILE', signature: 'APPROX_PERCENTILE(field, percent)', doc: 'SLS:近似分位数' }, { name: 'HISTOGRAM', signature: 'HISTOGRAM(field)', doc: 'SLS:值分布直方图' }, { name: 'NUMERIC_HISTOGRAM', signature: 'NUMERIC_HISTOGRAM(buckets, field)', doc: 'SLS:数值直方图' }, { name: 'date_trunc', signature: "date_trunc(unit, time)", doc: 'SLS:时间截断,unit 为 second/minute/hour/day' }, { name: 'from_unixtime', signature: 'from_unixtime(unixtime)', doc: 'SLS:unix 时间转日期' }, { name: 'to_unixtime', signature: 'to_unixtime(time)', doc: 'SLS:日期转 unix 时间' }, { name: 'regexp_extract', signature: 'regexp_extract(str, pattern[, group])', doc: 'SLS:正则提取' }, { name: 'regexp_like', signature: 'regexp_like(str, pattern)', doc: 'SLS:正则匹配判断' }, { name: 'split_part', signature: 'split_part(str, delimiter, idx)', doc: 'SLS:字符串切分取第 idx 段' }, { name: 'json_extract', signature: 'json_extract(json, path)', doc: 'SLS:JSON 路径取值' }, { name: 'json_extract_scalar', signature: 'json_extract_scalar(json, path)', doc: 'SLS:JSON 路径取标量值' }, ], }; export default slsConfig;