[Why] The rules to follow when writing the stats script.
Signed-off-by: Wang Chenglong 18509160991@163.com --- doc/stats-rule.md | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 doc/stats-rule.md
diff --git a/doc/stats-rule.md b/doc/stats-rule.md new file mode 100644 index 0000000..eaa2586 --- /dev/null +++ b/doc/stats-rule.md @@ -0,0 +1,47 @@ +${LKP_SERVER}/stats/${script} stat������������ +========================================== + +## ������������������������������������������������������������������es������������ + +1.������error_id������������������������������������ + - original: {"changed": false, "failures": ["No package yum-plugin-priorities available."], "msg": "Failed to + install some of the specified packages", "rc": 1, "results": []} + + - error_id: error.No-package-yum-plugin-priorities-available: 1 + +2.��������������������������������������������������������������������� + - ������������������������������������������������error_id��� + # ��������������������������������������� + # {"changed": false, "cmd": "csf -v", "msg": "[Errno 2] No such file or directory: b'csf': b'csf'", "rc": 2} + when /(No such file or directory: b'.+')/ + output_error $1 + end + + - ������������jobs������������������������������������'������'���������es���������error_id.���������������stats/${script}������ + +3.������������������������������������������error message��� + # original error message + # {"changed": false, "msg": "Failed to download packages: Cannot download 7.10.2/filebeat-7.10.2-aarch64.rpm: + # All mirrors were tried", "results": []} + when /(Failed to download packages: Cannot download .+):/ + output_error $1 + end + +4.������������error_id��������������������������������������� + - ���������������������������������������������������������������'-'��� + - ���������������'#'. + - ���������������'-',���������������. + + def common_error_id(line) + line = line.chomp + line.gsub!(/ /, '-') + line.gsub!(/-+/, '-') # ���������������������'-', ��������������� + line.gsub!(/\b-[a-z][0-9].[0-9].[0-9]+/, "#") # dgraph-linux-amd64-v0.8.2.tar.gz + line.gsub!(/:/, '') # error.:-'__mysql_packages'-is-undefined: 1 + line.gsub!(/,/, '') + line.gsub!(/'/, '') # Failed-to-download-metadata-for-repo-'dockerrepo: 1 + line.gsub!(/!/, '') # Distribution-openEuler-is-not-supported-by-this-role!: 1 + line.gsub!(/{%/, ' ') + line.gsub!(/%}/, ' ') + line + end
+4.对输出的error_id中含有的特殊字符进行处理。
- 定义白名单,除白名单以外的所有字符都替换为'-',
- 数字替换为'#'.
- 多个连续的'-',替换为单个.
上面的描述与下面的代码不匹配啊!
建议先仔细学习下 lkp-tests/lib/dmesg.rb 定义的 common_error_id()
- def common_error_id(line)
- line = line.chomp
- line.gsub!(/ /, '-')
- line.gsub!(/-+/, '-') # 对于多个连续的'-', 替换为单个
- line.gsub!(/\b-[a-z][0-9].[0-9].[0-9]+/, "#") # dgraph-linux-amd64-v0.8.2.tar.gz
- line.gsub!(/:/, '') # error.:-'__mysql_packages'-is-undefined: 1
- line.gsub!(/,/, '')
- line.gsub!(/'/, '') # Failed-to-download-metadata-for-repo-'dockerrepo: 1
- line.gsub!(/!/, '') # Distribution-openEuler-is-not-supported-by-this-role!: 1
- line.gsub!(/{%/, ' ')
- line.gsub!(/%}/, ' ')
- line
- end
-- 2.23.0