Skip to content

Commit 1b353f2

Browse files
Keda integration Logs (#19460)
* log parsing * tests * add log to manifest * move file * lint * some linting * some linting * Update keda/assets/logs/keda.yaml Co-authored-by: Bruno Renier <[email protected]> * Update keda/assets/logs/keda.yaml Co-authored-by: Bruno Renier <[email protected]> * Update keda/assets/logs/keda.yaml Co-authored-by: Bruno Renier <[email protected]> * Update keda/assets/logs/keda.yaml Co-authored-by: Bruno Renier <[email protected]> * Update keda/assets/logs/keda.yaml Co-authored-by: Bruno Renier <[email protected]> * Update keda/assets/logs/keda.yaml Co-authored-by: Bruno Renier <[email protected]> * Update keda.yaml * Update keda.yaml * Update keda_tests.yaml * Update keda.yaml * Update keda.yaml * Update keda.yaml --------- Co-authored-by: Bruno Renier <[email protected]>
1 parent 64882cf commit 1b353f2

File tree

3 files changed

+141
-0
lines changed

3 files changed

+141
-0
lines changed

keda/assets/logs/keda.yaml

+61
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
id: keda
2+
metric_id: keda
3+
backend_only: false
4+
installation_sources:
5+
- keda
6+
- keda-admission-webhooks
7+
- keda-metrics-apiserver
8+
facets:
9+
pipeline:
10+
type: pipeline
11+
name: Keda
12+
enabled: true
13+
filter:
14+
query: source:(keda OR keda-admission-webhooks OR keda-metrics-apiserver)
15+
processors:
16+
- type: grok-parser
17+
name: Keda Parser
18+
enabled: true
19+
source: message
20+
samples:
21+
- 'I1216 14:53:06.261024 1 main.go:112] "msg"="Connecting Metrics Service gRPC client to the server" "address"="keda-operator.keda.svc.cluster.local:9666" "logger"="keda_metrics_adapter"'
22+
- 'I1216 14:53:06.680302 1 tlsconfig.go:243] "Starting DynamicServingCertificateController"'
23+
- '2024-12-23T14:21:51Z ERROR scale_handler error resolving auth params {"type": "ScaledJob", "namespace": "default", "name": "csv-processor", "triggerIndex": 0, "error": "connection to redis failed: dial tcp 10.244.0.6:6379: connect: no route to host"}'
24+
- '2024-12-23T14:21:38Z INFO KubeAPIWarningLogger unknown field "status.authenticationsTypes"'
25+
- '2024-12-16T14:53:12Z INFO controller-runtime.builder Registering a validating webhook {"GVK": "keda.sh/v1alpha1, Kind=ScaledObject", "path": "/validate-keda-sh-v1alpha1-scaledobject"}'
26+
grok:
27+
matchRules: |
28+
keda_metrics_adapter3 %{_level_adapter}%{_date_adapter}\s+%{_pid}\s+%{_logger_adapter}]\s+"msg"=%{doubleQuotedString:msg} %{data::keyvalue}
29+
keda_metrics_adapter2 %{_level_adapter}%{_date_adapter}\s+%{_pid}\s+%{_logger_adapter}]\s+%{doubleQuotedString:msg} %{data:component.name:keyvalue}
30+
keda_metrics_adapter1 %{_level_adapter}%{_date_adapter}\s+%{_pid}\s+%{_logger_adapter}]\s+%{_msg}
31+
keda_operator2 %{_date_operator}\s+%{_level_operator}\s+%{_logger_op}\s+%{_msg}\t%{data::json}
32+
keda_operator1 %{_date_operator}\s+%{_level_operator}\s+%{_logger_op}\s+%{_msg}
33+
supportRules: |
34+
_date_adapter %{date("MMDD HH:mm:ss.SSSSSS"):timestamp}
35+
_date_operator %{date("yyyy-MM-dd'T'HH:mm:ssZ"):timestamp}
36+
_level_adapter %{regex("[A-Z]"):level}
37+
_level_operator %{word:level}
38+
_logger_adapter %{regex("[^:]+"):logger.file}:%{number:logger.line}
39+
_pid %{integer:process.id}
40+
_logger_op %{notSpace:logger.name}
41+
_msg %{regex("[^\\t]*"):msg}
42+
- type: date-remapper
43+
name: Define `timestamp` as the official date of the log
44+
enabled: true
45+
sources:
46+
- timestamp
47+
- type: service-remapper
48+
name: Define `service` as the official service of the log
49+
enabled: true
50+
sources:
51+
- service
52+
- type: status-remapper
53+
name: Define `level` as the official status of the log
54+
enabled: true
55+
sources:
56+
- level
57+
- type: message-remapper
58+
name: Define `msg` as the official message of the log
59+
enabled: true
60+
sources:
61+
- msg

keda/assets/logs/keda_tests.yaml

+79
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
id: "keda"
2+
tests:
3+
-
4+
sample: "I1216 14:53:06.261024 1 main.go:112] \"msg\"=\"Connecting Metrics Service gRPC client to the server\" \"address\"=\"keda-operator.keda.svc.cluster.local:9666\" \"logger\"=\"keda_metrics_adapter\""
5+
result:
6+
custom:
7+
address: "keda-operator.keda.svc.cluster.local:9666"
8+
level: "I"
9+
logger: "keda_metrics_adapter"
10+
process:
11+
id: 1
12+
timestamp: 31503186261
13+
message: "\"Connecting Metrics Service gRPC client to the server\""
14+
status: "info"
15+
tags:
16+
- "source:LOGS_SOURCE"
17+
timestamp: 31503186261
18+
-
19+
sample: "I1216 14:53:06.680302 1 tlsconfig.go:243] \"Starting DynamicServingCertificateController\""
20+
result:
21+
custom:
22+
level: "I"
23+
logger:
24+
file: "tlsconfig.go"
25+
line: 243.0
26+
process:
27+
id: 1.0
28+
timestamp: 31503186680
29+
message: "\"Starting DynamicServingCertificateController\""
30+
status: "info"
31+
tags:
32+
- "source:LOGS_SOURCE"
33+
timestamp: 31503186680
34+
-
35+
sample: "2024-12-23T14:21:51Z\tERROR\tscale_handler\terror resolving auth params\t{\"type\": \"ScaledJob\", \"namespace\": \"default\", \"name\": \"csv-processor\", \"triggerIndex\": 0, \"error\": \"connection to redis failed: dial tcp 10.244.0.6:6379: connect: no route to host\"}"
36+
result:
37+
custom:
38+
error: "connection to redis failed: dial tcp 10.244.0.6:6379: connect: no route to host"
39+
level: "ERROR"
40+
logger:
41+
name: "scale_handler"
42+
name: "csv-processor"
43+
namespace: "default"
44+
timestamp: 1734963711000
45+
triggerIndex: 0
46+
type: "ScaledJob"
47+
message: "error resolving auth params"
48+
status: "error"
49+
tags:
50+
- "source:LOGS_SOURCE"
51+
timestamp: 1734963711000
52+
-
53+
sample: "2024-12-23T14:21:38Z\tINFO\tKubeAPIWarningLogger\tunknown field \"status.authenticationsTypes\""
54+
result:
55+
custom:
56+
level: "INFO"
57+
logger:
58+
name: "KubeAPIWarningLogger"
59+
timestamp: 1734963698000
60+
message: "unknown field \"status.authenticationsTypes\""
61+
status: "info"
62+
tags:
63+
- "source:LOGS_SOURCE"
64+
timestamp: 1734963698000
65+
-
66+
sample: "2024-12-16T14:53:12Z\tINFO\tcontroller-runtime.builder\tRegistering a validating webhook\t{\"GVK\": \"keda.sh/v1alpha1, Kind=ScaledObject\", \"path\": \"/validate-keda-sh-v1alpha1-scaledobject\"}"
67+
result:
68+
custom:
69+
GVK: "keda.sh/v1alpha1, Kind=ScaledObject"
70+
level: "INFO"
71+
logger:
72+
name: "controller-runtime.builder"
73+
path: "/validate-keda-sh-v1alpha1-scaledobject"
74+
timestamp: 1734360792000
75+
message: "Registering a validating webhook"
76+
status: "info"
77+
tags:
78+
- "source:LOGS_SOURCE"
79+
timestamp: 1734360792000

keda/manifest.json

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
"Supported OS::Linux",
1616
"Supported OS::Windows",
1717
"Supported OS::macOS",
18+
"Category::Log Collection",
1819
"Category::Metrics",
1920
"Category::Kubernetes",
2021
"Category::Security",

0 commit comments

Comments
 (0)