gooddata 1.3.6-java → 2.0.0-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.travis.yml +54 -36
- data/CHANGELOG.md +37 -1
- data/CONTRIBUTING.md +4 -0
- data/Gemfile +9 -0
- data/Jenkinsfile-chart +14 -0
- data/RELEASING.md +5 -8
- data/Rakefile +1 -1
- data/SDK_VERSION +1 -1
- data/bin/run_brick.rb +1 -1
- data/bin/test_projects_cleanup.rb +20 -8
- data/ci.rake +2 -2
- data/k8s/charts/lcm-bricks/Chart.yaml +4 -0
- data/k8s/charts/lcm-bricks/templates/prometheus/alertingRules.yaml +96 -0
- data/lcm.rake +1 -1
- data/lib/gooddata/bricks/middleware/context_logger_decorator.rb +31 -0
- data/lib/gooddata/bricks/middleware/context_manager.rb +68 -0
- data/lib/gooddata/bricks/middleware/gooddata_middleware.rb +15 -9
- data/lib/gooddata/bricks/middleware/logger_middleware.rb +20 -0
- data/lib/gooddata/bricks/middleware/mask_logger_decorator.rb +35 -5
- data/lib/gooddata/client.rb +2 -3
- data/lib/gooddata/core/gd_logger.rb +92 -0
- data/lib/gooddata/core/logging.rb +24 -7
- data/lib/gooddata/core/nil_logger.rb +1 -2
- data/lib/gooddata/core/splunk_logger.rb +23 -0
- data/lib/gooddata/lcm/actions/synchronize_users.rb +2 -1
- data/lib/gooddata/lcm/helpers/check_helper.rb +3 -15
- data/lib/gooddata/lcm/helpers/safe_failure_helper.rb +19 -0
- data/lib/gooddata/lcm/lcm2.rb +21 -10
- data/lib/gooddata/mixins/property_accessor.rb +30 -0
- data/lib/gooddata/models/execution.rb +5 -0
- data/lib/gooddata/models/project.rb +6 -4
- data/lib/gooddata/rest/client.rb +17 -6
- data/lib/gooddata/rest/connection.rb +20 -6
- data/lib/gooddata/rest/rest_aggregator.rb +46 -0
- metadata +12 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cd55acee57a6b34e84f26e00ef644f3d4315b1440d97c25bf98d9d85b172afee
|
4
|
+
data.tar.gz: bce2fb11bada9f728c0ebde2416270ab83ecb7622ab1b34ad08c42d2f564864c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a1efa783034e1d21cabfa3c9e04de178083e8b7ccc21fd1e77eab4d93bb8d2d84c52dc5fe7512e6e0c1d17b109768b41fcb6ffb01e733793d100445358e6f23c
|
7
|
+
data.tar.gz: 92df93195c2328f1a58653b0f81d98424a8769bed933a462785a509ad87c335d7e550ca6513d0f234adcaf05fc83de17d4d0659a7112c4598bf1de7a1e17e20a
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
@@ -7,6 +7,8 @@ stages:
|
|
7
7
|
if: type IN (api, cron)
|
8
8
|
- name: platform-cleanup
|
9
9
|
if: type IN (cron)
|
10
|
+
- name: gem-release
|
11
|
+
if: branch = master AND type = push
|
10
12
|
|
11
13
|
git:
|
12
14
|
depth: false # this is needed for pronto
|
@@ -21,38 +23,38 @@ jobs:
|
|
21
23
|
git fetch upstream master
|
22
24
|
bundle exec pronto run -c upstream/master --exit-code
|
23
25
|
|
24
|
-
- name: unit tests
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
- name: sdk integration (vcr) tests - base
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
- name: sdk integration (vcr) tests - project
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
- name: lcm integration (vcr) tests - e2e
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
26
|
+
# - name: unit tests
|
27
|
+
# stage: before-merge
|
28
|
+
# script: bundle exec rake test:unit
|
29
|
+
# rvm:
|
30
|
+
# - 2.2
|
31
|
+
# - 2.3
|
32
|
+
# - 2.4
|
33
|
+
# - 2.5
|
34
|
+
# - jruby-1.7.19
|
35
|
+
# - jruby-9.1.5
|
36
|
+
# - jruby-9.1.7
|
37
|
+
# - jruby-9.1.14
|
38
|
+
#
|
39
|
+
# - name: sdk integration (vcr) tests - base
|
40
|
+
# stage: before-merge
|
41
|
+
# script: bundle exec rake test:sdk
|
42
|
+
# env: VCR_RECORD_MODE=none
|
43
|
+
# rvm: 2.3
|
44
|
+
#
|
45
|
+
# - name: sdk integration (vcr) tests - project
|
46
|
+
# stage: before-merge
|
47
|
+
# script: bundle exec rake test:project
|
48
|
+
# env: VCR_RECORD_MODE=none
|
49
|
+
# rvm: 2.3
|
50
|
+
#
|
51
|
+
# - name: lcm integration (vcr) tests - e2e
|
52
|
+
# stage: before-merge
|
53
|
+
# script: bundle exec rspec spec/lcm/integration/lcm_end_to_end_spec.rb
|
54
|
+
# env:
|
55
|
+
# - VCR_RECORD_MODE=none
|
56
|
+
# - GD_ENV=development
|
57
|
+
# rvm: 2.3
|
56
58
|
|
57
59
|
# AFTER MERGE
|
58
60
|
# staging 1
|
@@ -71,10 +73,11 @@ jobs:
|
|
71
73
|
- &lcm-slow-tests
|
72
74
|
name: staging1 - lcm slow tests
|
73
75
|
stage: after-merge
|
74
|
-
script:
|
75
|
-
|
76
|
-
|
77
|
-
|
76
|
+
script:
|
77
|
+
- sudo keytool -importcert -alias gooddata-2008 -file "./data/2008.crt" -keystore $JAVA_HOME/jre/lib/security/cacerts -trustcacerts -storepass 'changeit' -noprompt
|
78
|
+
- sudo keytool -importcert -alias gooddata-int -file "./data/new_ca.cer" -keystore $JAVA_HOME/jre/lib/security/cacerts -trustcacerts -storepass 'changeit' -noprompt
|
79
|
+
- sudo keytool -importcert -alias gooddata-prod -file "data/new_prodgdc_ca.crt" -keystore $JAVA_HOME/jre/lib/security/cacerts -trustcacerts -storepass 'changeit' -noprompt
|
80
|
+
- bundle exec rake -f lcm.rake test:slow
|
78
81
|
env:
|
79
82
|
- VCR_ON=false
|
80
83
|
- GD_ENV=staging
|
@@ -187,6 +190,21 @@ jobs:
|
|
187
190
|
name: staging3 - test environment clean-up
|
188
191
|
env: GD_ENV=development
|
189
192
|
|
193
|
+
- stage: gem-release
|
194
|
+
name: deploy MRI gem
|
195
|
+
rvm: 2.3
|
196
|
+
deploy:
|
197
|
+
provider: rubygems
|
198
|
+
gem: gooddata
|
199
|
+
api_key: $RUBYGEMS_API_KEY
|
200
|
+
- stage: gem-release
|
201
|
+
name: deploy JRuby gem
|
202
|
+
rvm: jruby-9.1.14
|
203
|
+
script:
|
204
|
+
- 'echo -e "---\n:rubygems_api_key: $RUBYGEMS_API_KEY" > ~/.gem/credentials'
|
205
|
+
- chmod 0600 ~/.gem/credentials
|
206
|
+
- bundle exec rake gem:release
|
207
|
+
|
190
208
|
notifications:
|
191
209
|
email:
|
192
210
|
recipients:
|
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,40 @@
|
|
1
1
|
# GoodData Ruby SDK Changelog
|
2
|
+
## 2.0.0
|
3
|
+
|
4
|
+
This is a major version release because the method `.release_info` has been hard-deprecated.
|
5
|
+
|
6
|
+
- Release gem using travis
|
7
|
+
- TMA-1054: Rename monitoring rules definition
|
8
|
+
- TMA-1054: alertingRules for prometheus
|
9
|
+
- TMA-1295: Fix passing file_name to after block
|
10
|
+
- TMA-1295: Don't run slow tests in docker
|
11
|
+
- Fix logging connection stats
|
12
|
+
- Fix spec file pattern
|
13
|
+
- Fix splunk logger test
|
14
|
+
- TMA-1284: Fix passing s3 info to config
|
15
|
+
- Fail when deprecated release_info called
|
16
|
+
- Fix perf cluster appstore name
|
17
|
+
- FEATURE: GDP-539 remove of releaseInfo resource
|
18
|
+
- Recover schedule helper file
|
19
|
+
- Fix load tests
|
20
|
+
- Record vcr cassettes
|
21
|
+
- Run load tests on the server
|
22
|
+
- switched user groups cache from instance variable to param
|
23
|
+
- TMA-1060: correct the smoke test to allow testing both dev and stable versions
|
24
|
+
- TMA-483 lowering the abusement of user groups resource
|
25
|
+
- TMA-807: up to code standards
|
26
|
+
- TMA-807: log profiling data to splunk
|
27
|
+
- Use latest version of Pronto
|
28
|
+
- TMA-1255: subscription spec utilizes project cache
|
29
|
+
- BUGFIX: TMA-1230 Log brick execution errors
|
30
|
+
- BUGFIX: TMA-1230 Log error message when client disconnecting fails
|
31
|
+
- BUGFIX: TMA-1230 Return inner logger class in MaskLoggerDecorator
|
32
|
+
- Fix path to version file in docs
|
33
|
+
- Fix path to version file in version:bump
|
34
|
+
- Mention rake task version:changelog in docs
|
35
|
+
- fix: remove containers after run
|
36
|
+
- SETI-2444: add missing curl-dev package to docker image
|
37
|
+
|
2
38
|
## 1.3.6
|
3
39
|
- Make path to version file relative
|
4
40
|
|
@@ -270,7 +306,7 @@
|
|
270
306
|
|
271
307
|
## 1.1.0
|
272
308
|
- TMA-860: use new roles API (#1169)
|
273
|
-
- test passed locally
|
309
|
+
- test passed locally
|
274
310
|
- Avoid polling idle time in VCR tests
|
275
311
|
- Enable vcr for metric specs
|
276
312
|
- TMA-832: support for pluggable component process type
|
data/CONTRIBUTING.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
# Contributing
|
2
2
|
|
3
|
+
## Pull requests
|
4
|
+
|
5
|
+
Make pull requests to the `develop` branch. Once all tests are passing on `develop`, we will merge to `master` and release the gem.
|
6
|
+
|
3
7
|
## Tests
|
4
8
|
### CI setup
|
5
9
|
gooddata-ruby has a robust CI setup in place to ensure easy contributing by both GD employees and outsiders. The CI is based on travis-ci and all of the environment specifics is versioned in .travis.yml
|
data/Gemfile
CHANGED
@@ -1,4 +1,13 @@
|
|
1
1
|
source 'https://rubygems.org'
|
2
2
|
|
3
|
+
group 'development' do
|
4
|
+
unless RUBY_PLATFORM == 'java'
|
5
|
+
# git because https://github.com/prontolabs/pronto/issues/312
|
6
|
+
gem 'pronto',
|
7
|
+
git: 'https://github.com/prontolabs/pronto',
|
8
|
+
ref: '266805b'
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
3
12
|
# Specify your gem's dependencies in gooddata.gemspec
|
4
13
|
gemspec
|
data/Jenkinsfile-chart
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
/*
|
2
|
+
* Copyright (C) 2007-2019, GoodData(R) Corporation. All rights reserved.
|
3
|
+
*/
|
4
|
+
|
5
|
+
@Library('pipelines-shared-libs')
|
6
|
+
import com.gooddata.pipeline.Pipeline
|
7
|
+
|
8
|
+
def config = [
|
9
|
+
'charts': [
|
10
|
+
'lcm-bricks'
|
11
|
+
]
|
12
|
+
]
|
13
|
+
|
14
|
+
Pipeline.get(this, config).run()
|
data/RELEASING.md
CHANGED
@@ -3,13 +3,10 @@
|
|
3
3
|
1. `git clone https://github.com/gooddata/gooddata-ruby.git gooddata-ruby`
|
4
4
|
1. `cd gooddata-ruby`
|
5
5
|
1. `git checkout master`
|
6
|
-
1. `
|
7
|
-
1.
|
8
|
-
1. bump version in [lib/gooddata/version.rb](lib/gooddata/version.rb)
|
6
|
+
1. optionally check what's changed since last release: `bundle exec rake version:changelog`
|
7
|
+
1. bump version in [SDK_VERSION](SDK_VERSION)
|
9
8
|
1. `bundle exec rake version:bump`
|
10
|
-
1. create PR to upstream and have it merged
|
9
|
+
1. create PR to `upstream/develop` and have it merged
|
11
10
|
1. `git push origin tags/{version}`
|
12
|
-
1. `
|
13
|
-
1.
|
14
|
-
1. `rake gem:release`
|
15
|
-
1. release [cookbook](https://github.com/gooddata/gooddata-ruby-examples)
|
11
|
+
1. once all tests are passing, merge `develop` to `master` and the gem will be released automatically
|
12
|
+
1. release [cookbook](https://github.com/gooddata/gooddata-ruby-doc)
|
data/Rakefile
CHANGED
@@ -179,7 +179,7 @@ namespace :version do
|
|
179
179
|
require_relative 'lib/gooddata/version'
|
180
180
|
new_version = GoodData::VERSION
|
181
181
|
update_changelog(new_version)
|
182
|
-
`git add CHANGELOG.md
|
182
|
+
`git add CHANGELOG.md SDK_VERSION`
|
183
183
|
`git commit -m "Bump version to #{new_version}"`
|
184
184
|
`git tag #{new_version}`
|
185
185
|
end
|
data/SDK_VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
2.0.0
|
data/bin/run_brick.rb
CHANGED
@@ -36,7 +36,7 @@ begin
|
|
36
36
|
rescue NoMethodError => e
|
37
37
|
log.info "action=#{brick_type}_execution status=error Invalid brick type '#{brick_type}', #{e.message}"
|
38
38
|
raise e
|
39
|
-
rescue => e
|
39
|
+
rescue StandardError => e
|
40
40
|
log.info "action=#{brick_type}_execution status=error #{e.message}"
|
41
41
|
raise e
|
42
42
|
end
|
@@ -1,10 +1,21 @@
|
|
1
|
-
|
1
|
+
require 'optparse'
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
3
|
+
example = 'Usage example: GD_ENV=testing GD_SPEC_PASSWORD=secret bundle exec ruby bin/test_projects_cleanup.rb'
|
4
|
+
|
5
|
+
options = {}
|
6
|
+
OptionParser.new do |opts|
|
7
|
+
opts.banner = example
|
8
|
+
opts.on('-f', '--force', 'Mercilessly deletes matching projects.') do |v|
|
9
|
+
options[:force] = v
|
10
|
+
end
|
11
|
+
opts.on('-d N', '--days N', Integer, 'Number of days to keep projects for.') do |v|
|
12
|
+
options[:days] = v
|
13
|
+
end
|
14
|
+
opts.on_tail("-h", "--help", "Show this message.") do
|
15
|
+
puts opts
|
16
|
+
exit 0
|
17
|
+
end
|
18
|
+
end.parse!
|
8
19
|
|
9
20
|
require 'gooddata'
|
10
21
|
require_relative '../spec/environment/environment'
|
@@ -72,6 +83,7 @@ def clean_up!(client, force, days)
|
|
72
83
|
delete_project_by_title(/userprov-e2e-testing/, projects, days, force)
|
73
84
|
delete_ads_by_title(/Development ADS/, client, days, force)
|
74
85
|
delete_ads_by_title(/Production ADS/, client, days, force)
|
86
|
+
delete_ads_by_title(/^users brick load test/, client, days, force)
|
75
87
|
end
|
76
88
|
|
77
89
|
def init_client(username, password, server)
|
@@ -89,8 +101,8 @@ password = secrets[:password]
|
|
89
101
|
dev_client = init_client(username, password, "https://#{config[:dev_server]}")
|
90
102
|
prod_client = init_client(username, password, "https://#{config[:prod_server]}")
|
91
103
|
|
92
|
-
force =
|
93
|
-
days = 14
|
104
|
+
force = options[:force]
|
105
|
+
days = options[:days] || 14
|
94
106
|
clean_up!(dev_client, force, days)
|
95
107
|
clean_up!(prod_client, force, days)
|
96
108
|
|
data/ci.rake
CHANGED
@@ -7,11 +7,11 @@ namespace :docker do
|
|
7
7
|
desc 'Bundles gems using cache'
|
8
8
|
namespace :bundle do
|
9
9
|
task :ruby do
|
10
|
-
system('docker-compose run gooddata-ruby bundle')
|
10
|
+
system('docker-compose run --rm gooddata-ruby bundle')
|
11
11
|
end
|
12
12
|
|
13
13
|
task :jruby do
|
14
|
-
system('docker-compose run gooddata-jruby bundle')
|
14
|
+
system('docker-compose run --rm gooddata-jruby bundle')
|
15
15
|
end
|
16
16
|
end
|
17
17
|
end
|
@@ -0,0 +1,96 @@
|
|
1
|
+
apiVersion: v1
|
2
|
+
kind: ConfigMap
|
3
|
+
metadata:
|
4
|
+
name: lcm-bricks-monitoring-rules
|
5
|
+
namespace: monitoring
|
6
|
+
labels:
|
7
|
+
app: lcm-bricks
|
8
|
+
component: lcm
|
9
|
+
team: lcm
|
10
|
+
chart: lcm-bricks
|
11
|
+
release: {{ .Release.Name }}
|
12
|
+
data:
|
13
|
+
lcm-bricks-monitoring-rules.yaml: |+
|
14
|
+
groups:
|
15
|
+
- name: lcm-bricks-monitoring-rules
|
16
|
+
rules:
|
17
|
+
- record: "container_pod:lcm_pod_container_status_restarts:increase10m"
|
18
|
+
expr: increase(kube_pod_container_status_restarts_total{namespace='{{ .Release.Namespace }}'}[10m])
|
19
|
+
- alert: "[LCM] Pod has too many restarts on cluster={{ .Values.clusterId }}"
|
20
|
+
expr: container_pod:lcm_pod_container_status_restarts:increase10m >= 1
|
21
|
+
labels:
|
22
|
+
severity: warning
|
23
|
+
team: lcm # switch to msf in production
|
24
|
+
cluster_id: {{ .Values.clusterId }}
|
25
|
+
annotations:
|
26
|
+
description: "There is more than 0 restarts of {{`{{ $labels.pod }}`}} pod in the last 10 minutes"
|
27
|
+
summary: "{{`{{ $labels.pod }}`}} pod has too many restarts"
|
28
|
+
- alert: "[LCM] Pod has too many restarts on cluster={{ .Values.clusterId }}"
|
29
|
+
expr: container_pod:lcm_pod_container_status_restarts:increase10m >= 2
|
30
|
+
labels:
|
31
|
+
severity: critical
|
32
|
+
team: lcm # switch to msf in production
|
33
|
+
cluster_id: {{ .Values.clusterId }}
|
34
|
+
annotations:
|
35
|
+
description: "There is more than 1 restart of {{`{{ $labels.pod }}`}} pod in the last 10 minutes"
|
36
|
+
summary: "{{`{{ $labels.pod }}`}} pod has too many restarts"
|
37
|
+
- record: "container_pod:lcm_pod_container_status_oomkilled:increase10m"
|
38
|
+
expr: increase(kube_pod_container_status_terminated_reason{namespace='{{ .Release.Namespace }}', reason='OOMKilled'}[10m])
|
39
|
+
- alert: "[LCM] OOMKill occured on cluster={{ .Values.clusterId }}"
|
40
|
+
expr: container_pod:lcm_pod_container_status_oomkilled:increase10m >= 1
|
41
|
+
labels:
|
42
|
+
severity: warning
|
43
|
+
team: lcm # switch to msf in production
|
44
|
+
cluster_id: {{ .Values.clusterId }}
|
45
|
+
annotations:
|
46
|
+
description: "{{`{{ $labels.pod }}`}} was OOMKilled in the last 30 minutes. Investigate and/or increase memoryRequest or memoryLimit."
|
47
|
+
summary: "{{`{{ $labels.pod }}`}} OOMKill occured"
|
48
|
+
- alert: "[LCM] OOMKill occured on cluster={{ .Values.clusterId }}"
|
49
|
+
expr: container_pod:lcm_pod_container_status_oomkilled:increase10m >= 2
|
50
|
+
labels:
|
51
|
+
severity: critical
|
52
|
+
team: lcm # switch to msf in production
|
53
|
+
cluster_id: {{ .Values.clusterId }}
|
54
|
+
annotations:
|
55
|
+
description: "{{`{{ $labels.pod }}`}} was OOMKilled in the last 10 minutes. Investigate and/or increase memoryRequest or memoryLimit."
|
56
|
+
summary: "{{`{{ $labels.pod }}`}} OOMKill occured"
|
57
|
+
- record: "container_pod:lcm_pod_container_status_error:increase10m"
|
58
|
+
expr: increase(kube_pod_container_status_terminated_reason{namespace='{{ .Release.Namespace }}', reason!~"Completed|OOMKilled"}[10m])
|
59
|
+
- alert: "[LCM] Container exited with error on cluster={{ .Values.clusterId }}"
|
60
|
+
expr: container_pod:lcm_pod_container_status_error:increase10m >= 1
|
61
|
+
labels:
|
62
|
+
severity: warning
|
63
|
+
team: lcm # switch to msf in production
|
64
|
+
cluster_id: {{ .Values.clusterId }}
|
65
|
+
annotations:
|
66
|
+
description: "{{`{{ $labels.pod }}`}} container exited with non-zero exit code in the last 10 minutes. Investigate and fix."
|
67
|
+
summary: "{{`{{ $labels.pod }}`}} Container exited with error"
|
68
|
+
- alert: "[LCM] Container exited with error on cluster={{ .Values.clusterId }}"
|
69
|
+
expr: container_pod:lcm_pod_container_status_error:increase10m >= 2
|
70
|
+
labels:
|
71
|
+
severity: critical
|
72
|
+
team: lcm # switch to msf in production
|
73
|
+
cluster_id: {{ .Values.clusterId }}
|
74
|
+
annotations:
|
75
|
+
description: "{{`{{ $labels.pod }}`}} container exited with non-zero exit code in the last 10 minutes. Investigate and fix."
|
76
|
+
summary: "{{`{{ $labels.pod }}`}} Container exited with error"
|
77
|
+
- alert: "[LCM] Container is being throttled on cluster={{ .Values.clusterId }}"
|
78
|
+
expr: rate(container_cpu_cfs_throttled_seconds_total{namespace='{{ .Release.Namespace }}'}[1m]) > 1
|
79
|
+
for: 5m
|
80
|
+
labels:
|
81
|
+
severity: critical
|
82
|
+
team: lcm # switch to msf in production
|
83
|
+
cluster_id: {{ .Values.clusterId }}
|
84
|
+
annotations:
|
85
|
+
description: "{{`{{ $labels.pod_name }}`}} container is beeing throttled and probably hit CPU limit. Investigate root cause and increase limit and/or number of replicas if necessary."
|
86
|
+
summary: "{{`{{ $labels.pod_name }}`}} Container is being throttled"
|
87
|
+
- alert: "[LCM] is doing too much pause GC on cluster={{ .Values.clusterId }}"
|
88
|
+
expr: rate(jvm_gc_pause_seconds_sum{kubernetes_namespace='{{ .Release.Namespace }}'}[1m]) > 1
|
89
|
+
for: 5m
|
90
|
+
labels:
|
91
|
+
severity: critical
|
92
|
+
team: lcm # switch to msf in production
|
93
|
+
cluster_id: {{ .Values.clusterId }}
|
94
|
+
annotations:
|
95
|
+
description: "{{`{{ $labels.kubernetes_pod_name }}`}} container is spending too much time in pause garbage collector. Investigate root cause and increase heap size and/or number of replicas if necessary."
|
96
|
+
summary: "{{`{{ $labels.kubernetes_pod_name }}`}} is doing too much pause GC"
|
data/lcm.rake
CHANGED
@@ -0,0 +1,31 @@
|
|
1
|
+
# Copyright (c) 2010-2018 GoodData Corporation. All rights reserved.
|
2
|
+
# This source code is licensed under the BSD-style license found in the
|
3
|
+
# LICENSE file in the root directory of this source tree.
|
4
|
+
|
5
|
+
module GoodData
|
6
|
+
# Logger decorator with ability to enrich the message with brick context
|
7
|
+
module ContextLoggerDecorator
|
8
|
+
attr_accessor :context_source
|
9
|
+
|
10
|
+
# log methods to be decorated
|
11
|
+
def add(severity, message = nil, progname = nil)
|
12
|
+
super(severity, enrich(message, context_source.context), progname)
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
# Enrich given message.
|
18
|
+
# @param message [String] or [Hash] message to enrich
|
19
|
+
# @param context [Hash] context by which the message should be enriched
|
20
|
+
# @return masked_message [String] or [Hash] enriched message
|
21
|
+
def enrich(message, context)
|
22
|
+
if !message
|
23
|
+
context
|
24
|
+
elsif message.is_a?(Hash)
|
25
|
+
context.merge(message)
|
26
|
+
else
|
27
|
+
context.merge(message: message)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|