-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Closed
Labels
Description
Locally we have seen flame-graphs implicating the regex parsing in tag-extraction taking significant amount of time, even though the heaviest regex has now been converted to RE2. Combined, all the other ones are still a CPU bottleneck.
If you simply convert the addRegex calls in source/common/config/well_known_names.cc to addRe2 the following RE2 compilation errors are reported when running unit tests:
RUN ] UtilityTest.createTagProducer
external/com_googlesource_code_re2/re2/re2.cc:205: Error parsing '^http(?=\.).*?\.dynamodb\.table(?=\.).*?\.capacity(?=\.).*?(\.__partition_id=(\w{7}))$': invalid perl operator: (?=
external/com_googlesource_code_re2/re2/re2.cc:205: Error parsing '^http(?=\.).*?\.dynamodb.(?:operation|table(?=\.).*?\.capacity)(\.(.*?))(?:\.|$)': invalid perl operator: (?=
external/com_googlesource_code_re2/re2/re2.cc:205: Error parsing '^mongo(?=\.).*?\.collection(?=\.).*?\.callsite\.((.*?)\.).*?query.\w+?$': invalid perl operator: (?=
external/com_googlesource_code_re2/re2/re2.cc:205: Error parsing '^http(?=\.).*?\.dynamodb.(?:table|error)\.((.*?)\.)': invalid perl operator: (?=
external/com_googlesource_code_re2/re2/re2.cc:205: Error parsing '^mongo(?=\.).*?\.collection\.((.*?)\.).*?query.\w+?$': invalid perl operator: (?=
external/com_googlesource_code_re2/re2/re2.cc:205: Error parsing '^mongo(?=\.).*?\.cmd\.((.*?)\.)\w+?$': invalid perl operator: (?=
external/com_googlesource_code_re2/re2/re2.cc:205: Error parsing '^cluster(?=\.).*?\.grpc(?=\.).*\.((.*?)\.)\w+?$': invalid perl operator: (?=
external/com_googlesource_code_re2/re2/re2.cc:205: Error parsing '^http(?=\.).*?\.user_agent\.((.*?)\.)\w+?$': invalid perl operator: (?=
external/com_googlesource_code_re2/re2/re2.cc:205: Error parsing '^vhost(?=\.).*?\.vcluster\.((.*?)\.)\w+?$': invalid perl operator: (?=
external/com_googlesource_code_re2/re2/re2.cc:205: Error parsing '^http(?=\.).*?\.fault\.((.*?)\.)\w+?$': invalid perl operator: (?=
external/com_googlesource_code_re2/re2/re2.cc:205: Error parsing '^listener(?=\.).*?\.ssl\.cipher(\.(.*?))$': invalid perl operator: (?=
external/com_googlesource_code_re2/re2/re2.cc:205: Error parsing '^cluster(?=\.).*?\.ssl\.ciphers(\.(.*?))$': invalid perl operator: (?=
external/com_googlesource_code_re2/re2/re2.cc:205: Error parsing '^cluster(?=\.).*?\.grpc\.((.*?)\.)': invalid perl operator: (?=
external/com_googlesource_code_re2/re2/re2.cc:205: Error parsing '^listener(?=\.).*?\.http\.((.*?)\.)': invalid perl operator: (?=
external/com_googlesource_code_re2/re2/re2.cc:205: Error parsing '^http(?=\.).*?\.rds\.((.*?)\.)\w+?$': invalid perl operator: (?=
test/common/config/utility_test.cc:107: Failure
Expected equality of these values:
extracted_name
Which is: "http.config_test.rq_total"
"http.rq_total"
Stack trace:
0x18859b4: Envoy::Config::(anonymous namespace)::UtilityTest_createTagProducer_Test::TestBody()
0x3dda514: testing::internal::HandleSehExceptionsInMethodIfSupported<>()
0x3dc8fdb: testing::internal::HandleExceptionsInMethodIfSupported<>()
0x3db4a73: testing::Test::Run()
0x3db5447: testing::TestInfo::Run()
... Google Test internal frames ...
[ FAILED ] UtilityTest.createTagProducer (97 ms)
Reactions are currently unavailable