blob: bc206c13610b5db2ee778ab27c9fcbacee6c59f4 [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Example config file of path: config/lal/config.yaml
rules:
- name: example
dsl: |
filter {
if (log.service == "TestService") {
abort {}
}
text {
if (!regexp($/(?s)(?<timestamp>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}.\d{3}) \[TID:(?<tid>.+?)] \[(?<thread>.+?)] (?<level>\w{4,}) (?<logger>.{1,36}) (?<msg>.+)/$)) {
abort {}
}
}
extractor {
metrics {
timestamp log.timestamp
labels level: parsed.level, service: log.service, instance: log.serviceInstance
name "log_count"
value 1
}
}
sink {
sampler {
if (log.service == "ImportantApp") {
rateLimit("ImportantAppSampler") {
rpm 18000
}
} else {
rateLimit("OtherSampler") {
rpm 1800
}
}
}
}
}