fluent-plugin-ua-parser
fluent-plugin-ua-parser copied to clipboard
'failed to parse field [ua_browser_version] of type [date] in document with id 'mKndu3UBKG10h-E1s1WG'. Preview of field's value:
Hi There, Getting the following error.
2020-11-12 09:51:10 +0000 [warn]: #0 dump an error event: error_class=Fluent::Plugin::ElasticsearchErrorHandler::ElasticsearchError error="400 - Rejected by Elasticsearch [error type]: mapper_parsing_exception [reason]: 'failed to parse field [ua_browser_version] of type [date] in document with id 'mKndu3UBKG10h-E1s1WG'. Preview of field's value: '86.0.4240.183''" location=nil tag="kubernetes.nginxingresswebvar.log.containers.nginx-ingress-controller-web-59f4c48949-v97sg_ingress-nginx-web_nginx-ingress-controller-661c5d623f452bb5357d8fc05b4ba8bb81098ed1bc84eb76cdfb7b5ead80865a.log" time=2020-11-12 09:51:04.000000000 +0000 record={"host"=>"27.200.35.161", "domain"=>"-", "user"=>"-", "method"=>"GET", "path"=>"/xxxx-service/xxxx", "response_code"=>"200", "request_size"=>"3555", "referer"=>"http://localhost:3000/profile", "agent"=>"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36", "request_length"=>2354, "request_time"=>0.006, "proxy_upstream_name"=>"default-xxxx-api-443", "upstream_addr"=>"172.20.211.83:443", "upstream_response_length"=>3548, "upstream_response_time"=>0.004, "upstream_status"=>200, "city"=>nil, "lat"=>24.0, "lon"=>54.0, "country"=>"AE", "country_name"=>"United Arab Emirates", "ua_browser_family"=>"Chrome", "ua_browser_version"=>"86.0.4240.183", "ua_browser_major_version"=>86, "ua_os_family"=>"Mac OS X", "ua_os_version"=>"10.15.7", "ua_os_major_version"=>10, "ua_device"=>"Mac"}
I meet the same problem, any idea to fix that?
Unit test on this project doesn't work anymore. Ruby seems to cast version as a date because version encounter a new sublevel when parsing in most cases. 34: ua_object = records[0]['ua'] 35: assert_equal 'Chrome', ua_object['browser']['family'] 36: assert_equal 46, ua_object['browser']['major_version'] => 37: assert_equal '46.0.2490', ua_object['browser']['version'] 38: assert_equal 'Windows 7', ua_object['os']['family'] 39: assert_equal '', ua_object['os']['version'] 40: assert_equal 'Other', ua_object['device'] /test/plugin/test_filter_ua_parser.rb:37:in `test_filter' <"46.0.2490"> expected but was <"46.0.2490.71">