Skip to content

Commit 73c6ed0

Browse files
committed
feat: control log level verbosity
1 parent f1b451b commit 73c6ed0

File tree

8 files changed

+54
-2
lines changed

8 files changed

+54
-2
lines changed

README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,14 @@ no_proxy: *.example.local,*.other.global,192.168.0.0/16
140140
no_proxy: long.domain.name.local,example.local
141141
```
142142

143+
## Changing log level ##
144+
145+
To lower `snyk-monitor`'s logging verbosity `log_level` value could be set to one of these options:
146+
* `'WARN'`
147+
* `'ERROR'`
148+
149+
By default, `log_level` is `'INFO'`.
150+
143151
## Terms and conditions ##
144152

145153
*The Snyk Container Kubernetes integration uses Red Hat UBI (Universal Base Image).*

snyk-monitor-deployment.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,8 @@ spec:
8080
name: snyk-monitor
8181
key: no_proxy
8282
optional: true
83+
- name: LOG_LEVEL
84+
value: 'INFO'
8385
resources:
8486
requests:
8587
cpu: '250m'

snyk-monitor/README.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,22 @@ helm upgrade --install ... \
126126
--set no_proxy=long.domain.name.local,example.local
127127
```
128128

129+
## Changing log level ##
130+
131+
To lower `snyk-monitor`'s logging verbosity `log_level` value could be set to one of these options:
132+
* `'WARN'`
133+
* `'ERROR'`
134+
135+
By default, `log_level` is `'INFO'`.
136+
137+
For example
138+
```bash
139+
helm upgrade --install snyk-monitor snyk-charts/snyk-monitor \
140+
--namespace snyk-monitor \
141+
--set clusterName="Production cluster" \
142+
--set log_level="WARN"
143+
```
144+
129145
## PodSecurityPolicies
130146
**This should not be used when installing on OpenShift.**
131147

snyk-monitor/templates/deployment.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,8 @@ spec:
5858
value: {{ .Values.https_proxy }}
5959
- name: NO_PROXY
6060
value: {{ .Values.no_proxy }}
61+
- name: LOG_LEVEL
62+
value: {{ .Values.log_level }}
6163
resources:
6264
requests:
6365
cpu: {{ .Values.requests.cpu }}

snyk-monitor/values.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,9 @@ http_proxy:
4444
https_proxy:
4545
no_proxy:
4646

47+
# Override default (INFO) log level if less verbosity needed
48+
log_level:
49+
4750
nodeSelector: {}
4851

4952
psp:

src/common/logger.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
import * as bunyan from 'bunyan';
22
import config = require('./config');
33

4+
try {
5+
// Validate if LOG_LEVEL has valid bunyan logging level
6+
config.LOGGING.level = bunyan.resolveLevel(process.env.LOG_LEVEL || config.LOGGING.level);
7+
} catch(e) {
8+
console.error(`Log level "${process.env.LOG_LEVEL}" is not valid logging level. Falling back to "INFO"`);
9+
}
10+
411
const logger: bunyan = bunyan.createLogger({
512
name: config.LOGGING.name,
613
level: config.LOGGING.level,

test/integration/kubernetes.test.ts

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,7 @@ tap.test('snyk-monitor sends deleted workload to kubernetes-upstream', async (t)
340340
t.ok(deleteTestResult, 'snyk-monitor sent deleted workload data to kubernetes-upstream in the expected timeframe');
341341
});
342342

343-
tap.test(`snyk-monitor has resource limits`, async (t) => {
343+
tap.test('snyk-monitor has resource limits', async (t) => {
344344
t.plan(5);
345345
const snykMonitorDeployment = await kubectl.getDeploymentJson('snyk-monitor', namespace);
346346
const monitorResources = snykMonitorDeployment.spec.template.spec.containers[0].resources;
@@ -352,6 +352,19 @@ tap.test(`snyk-monitor has resource limits`, async (t) => {
352352
t.ok(monitorResources.requests.memory !== undefined, 'snyk-monitor has memory resource request');
353353
});
354354

355+
tap.test('snyk-monitor has log level', async(t) => {
356+
if (['Helm', 'YAML'].includes(process.env.DEPLOYMENT_TYPE || '')) {
357+
t.pass('Not testing LOG_LEVEL existence because we\'re not installing with Helm');
358+
return;
359+
}
360+
361+
const snykMonitorDeployment = await kubectl.getDeploymentJson('snyk-monitor', namespace);
362+
const { LOG_LEVEL } = snykMonitorDeployment.spec.template.spec.containers[0].env;
363+
364+
t.ok(LOG_LEVEL, 'snyk-monitor has log level');
365+
t.ok(LOG_LEVEL === 'INFO', 'snyk-monitor has correct log level');
366+
});
367+
355368
tap.test('snyk-monitor has nodeSelector', async (t) => {
356369
t.plan(1);
357370

test/setup/deployers/helm.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ async function deployKubernetesMonitor(
3131
`--set image.pullPolicy=${imagePullPolicy} ` +
3232
'--set integrationApi=https://kubernetes-upstream.dev.snyk.io ' +
3333
'--set nodeSelector."kubernetes\\.io/os"=linux ' +
34-
'--set psp.enabled=true'
34+
'--set psp.enabled=true ' +
35+
'--set log_level="INFO"'
3536
);
3637
console.log(`Deployed ${imageOptions.nameAndTag} with pull policy ${imageOptions.pullPolicy}`);
3738
}

0 commit comments

Comments
 (0)