Commit 1615a6b4 authored by Jérome Perrin's avatar Jérome Perrin

grafana

parent 7ef0e537
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
[instance-profile] [instance-profile]
filename = instance.cfg.in filename = instance.cfg.in
md5sum = 33e6510d84c83a46a2edf217b4f1beb5 md5sum = 6ff69aef5a7185f880359a78965e072e
[influxdb-config-file] [influxdb-config-file]
filename = influxdb-config-file.cfg.in filename = influxdb-config-file.cfg.in
......
This diff is collapsed.
...@@ -251,7 +251,7 @@ init = ...@@ -251,7 +251,7 @@ init =
inputs = collections.defaultdict(list) inputs = collections.defaultdict(list)
processors = collections.defaultdict(list) processors = collections.defaultdict(list)
slapparameter_dict = self.options["slapparameter-dict"] slapparameter_dict = self.options["slapparameter-dict"]
for application in slapparameter_dict.get('applications', []): for application in slapparameter_dict.get("applications", []):
partition_mapping = {} partition_mapping = {}
for partition in application.get("partitions", []): for partition in application.get("partitions", []):
partition.setdefault("type", "default") partition.setdefault("type", "default")
...@@ -351,50 +351,49 @@ init = ...@@ -351,50 +351,49 @@ init =
"tags": {"app": application["name"]}, "tags": {"app": application["name"]},
}) })
if application.get("type") == "SlapOS":
# TODO: don't run more than one per instance_root telegraf_slapos_input_config_file = os.path.join(
telegraf_slapos_input_config_file = os.path.join( self.options['location'],
self.options['location'], f"telegraf-input-slapos-{application['name']}.cfg")
f"telegraf-input-slapos-{application['name']}.cfg") self._config_files[telegraf_slapos_input_config_file] = toml.dumps({
self._config_files[telegraf_slapos_input_config_file] = toml.dumps({ "inputs": {
"inputs": { "slapos": [{
"slapos": [{ "instance_root": application["instance-root"]}]}})
"instance_root": application['instance-root']}]}})
# TODO: supervisor process finder for
# TODO: supervisor process finder for # https://github.com/influxdata/telegraf/tree/master/plugins/inputs/procstat ?
# https://github.com/influxdata/telegraf/tree/master/plugins/inputs/procstat ? telegraf_slapos_input_command = self.options['telegraf-input-slapos-bin']
telegraf_slapos_input_command = self.options['telegraf-input-slapos-bin'] inputs["execd"].append({
inputs["execd"].append({ "name_override": f"{application['name']}-processes",
"name_override": f"{application['name']}-processes", "command": [telegraf_slapos_input_command, '-config', telegraf_slapos_input_config_file],
"command": [telegraf_slapos_input_command, '-config', telegraf_slapos_input_config_file], "tags": {"app": application["name"]},
"tags": {"app": application["name"]}, })
}) # "cleanup" slapos process names, remove hash from wrappers and -on-watch suffix
# "cleanup" slapos process names, remove hash from wrappers and -on-watch suffix processors["regex"].append({
processors["regex"].append({ "namepass": [f"{application['name']}-processes"],
"namepass": [f"{application['name']}-processes"], "order": 1,
"order": 1, "tags": [{
"tags": [{ "key": "name",
"key": "name", "pattern": "^(.*)-.{32}",
"pattern": "^(.*)-.{32}", # XXX we concatenate strings so that we don't have to escape them for buildout
# XXX we concatenate strings so that we don't have to escape them for buildout "replacement": "$" + "{1}",
"replacement": "$" + "{1}", }]})
}]}) processors["regex"].append({
processors["regex"].append({ "namepass": [f"{application['name']}-processes"],
"namepass": [f"{application['name']}-processes"], "order": 2,
"order": 2, "tags": [{
"tags": [{ "key": "name",
"key": "name", "pattern": "^(.*)-on-watch$",
"pattern": "^(.*)-on-watch$", "replacement": "$" + "{1}",
"replacement": "$" + "{1}", }]})
}]}) processors["enum"].append({
processors["enum"].append({ "namepass": [ f"{application['name']}-processes"],
"namepass": [ f"{application['name']}-processes"], "mapping": [{
"mapping": [{ # "tag": "group", # TODO: rename this in input plugin # XXX I don't remember what this means
# "tag": "group", # TODO: rename this in input plugin "tag": "slappart",
"tag": "slappart", "dest": "partition",
"dest": "partition", "value_mappings": partition_mapping,
"value_mappings": partition_mapping, }]})
}]})
# TODOs: # TODOs:
# - [ ] slapos input # - [ ] slapos input
...@@ -404,6 +403,7 @@ init = ...@@ -404,6 +403,7 @@ init =
# - [ ] alert dashboard # - [ ] alert dashboard
# - [ ] inclu "jerome-dev" partout ??? # - [ ] inclu "jerome-dev" partout ???
# - [ ] apdex # - [ ] apdex
# - [ ] "job" is bad name in Explore
options["extra-config"] = toml.dumps({ options["extra-config"] = toml.dumps({
"inputs": inputs, "inputs": inputs,
...@@ -497,8 +497,6 @@ command-line = ...@@ -497,8 +497,6 @@ command-line =
wrapper-path = ${directory:service}/${:_buildout_section_name_} wrapper-path = ${directory:service}/${:_buildout_section_name_}
extra-command-line = extra-command-line =
# level=error ts=2022-09-24T14:40:13.636615531Z caller=scheduler_processor.go:182 org_id=fake msg="error notifying frontend about finished query" err="rpc error: code = ResourceExhausted desc = grpc: received message larger than max (4200411 vs. 4194304)" frontend=10.0.44.65:9099
[loki-listen-promise-macro] [loki-listen-promise-macro]
<= check-url-available-promise <= check-url-available-promise
...@@ -703,6 +701,7 @@ install = ...@@ -703,6 +701,7 @@ install =
}, },
{ {
"regex": { "regex": {
# TODO don't include the ----
"expression": "^------\\n(?P<timestamp>\\d{4}-\\d{2}-\\d{2}\\s\\d{1,2}\\:\\d{2}\\:\\d{2}\\,\\d{3}) (?P<level>\\S+) (?P<component>\\S+) (?P<message>.*)" "expression": "^------\\n(?P<timestamp>\\d{4}-\\d{2}-\\d{2}\\s\\d{1,2}\\:\\d{2}\\:\\d{2}\\,\\d{3}) (?P<level>\\S+) (?P<component>\\S+) (?P<message>.*)"
} }
}, },
...@@ -714,9 +713,7 @@ install = ...@@ -714,9 +713,7 @@ install =
}, },
{ {
"labels": { "labels": {
"level": None, "level": None
# XXX do we really want `component` ? it may cause lots of cardinality
# "component": None
} }
} }
] ]
...@@ -873,7 +870,6 @@ install = ...@@ -873,7 +870,6 @@ install =
{ {
"labels": { "labels": {
"level": None, "level": None,
"component": None
} }
} }
] ]
......
...@@ -22,12 +22,11 @@ parts = ...@@ -22,12 +22,11 @@ parts =
loki-config-file loki-config-file
loki-nginx-config-file loki-nginx-config-file
[nodejs] ; [nodejs]
<= nodejs-16.14.0 ; <= nodejs-16.19.0
[gowork] [gowork]
golang = ${golang1.19:location}
# XXX speed up development cycle by not rebuilding workspace on every software run # XXX speed up development cycle by not rebuilding workspace on every software run
# XXX does not work ? # XXX does not work ?
update-command = update-command =
...@@ -36,14 +35,13 @@ update-command = ...@@ -36,14 +35,13 @@ update-command =
<= go-git-package <= go-git-package
go.importpath = github.com/grafana/grafana go.importpath = github.com/grafana/grafana
repository = https://github.com/grafana/grafana repository = https://github.com/grafana/grafana
revision = v9.1.5-0-gdf015a9301 revision = v10.1.2-0-g8e428858dd
[go_github.com_grafana_loki] [go_github.com_grafana_loki]
<= go-git-package <= go-git-package
go.importpath = github.com/grafana/loki go.importpath = github.com/grafana/loki
repository = https://github.com/grafana/loki repository = https://github.com/grafana/loki
revision = v2.1.0-2075-gafd63c598 revision = v2.9.1-0-gd9d5ed4a1
# tag helm-loki-3.1.0 which supports golang 1.19
[go_github.com_influxdata_influxdb] [go_github.com_influxdata_influxdb]
<= go-git-package <= go-git-package
...@@ -55,7 +53,7 @@ revision = v1.8.4-0-gbc8ec4384e ...@@ -55,7 +53,7 @@ revision = v1.8.4-0-gbc8ec4384e
<= go-git-package <= go-git-package
go.importpath = github.com/influxdata/telegraf go.importpath = github.com/influxdata/telegraf
repository = https://github.com/influxdata/telegraf repository = https://github.com/influxdata/telegraf
revision = v1.24.0-0-g3c4a6516e revision = v1.28.1-0-g3ea9ffbe2
[go_github.com_perrinjerome_slapos_telegraf_input] [go_github.com_perrinjerome_slapos_telegraf_input]
<= go-git-package <= go-git-package
...@@ -63,6 +61,13 @@ go.importpath = github.com/perrinjerome/telegraf-input-slapos ...@@ -63,6 +61,13 @@ go.importpath = github.com/perrinjerome/telegraf-input-slapos
repository = https://github.com/perrinjerome/telegraf-input-slapos repository = https://github.com/perrinjerome/telegraf-input-slapos
revision = v0.0.1-0-gf8981f3 revision = v0.0.1-0-gf8981f3
[go_github.com_prometheus_prometheus]
<= go-git-package
go.importpath = github.com/prometheus/prometheus
repository = https://github.com/prometheus/prometheus
revision = v0.41.0-0-gc0d8a56c6
# [go_github.com_jaegertracking_jaeger] # [go_github.com_jaegertracking_jaeger]
# <= go-git-package # <= go-git-package
# go.importpath = github.com/jaegertracking/jaeger # go.importpath = github.com/jaegertracking/jaeger
...@@ -70,8 +75,6 @@ revision = v0.0.1-0-gf8981f3 ...@@ -70,8 +75,6 @@ revision = v0.0.1-0-gf8981f3
# revision = v1.20.0-623-gcac21f82 # revision = v1.20.0-623-gcac21f82
[gowork] [gowork]
# Fails with current default golang1.18
golang = ${golang1.17:location}
install = install =
${go_github.com_grafana_loki:location}:./cmd/loki ${go_github.com_grafana_loki:location}:./cmd/loki
${go_github.com_grafana_loki:location}:./clients/cmd/promtail ${go_github.com_grafana_loki:location}:./clients/cmd/promtail
...@@ -79,6 +82,7 @@ install = ...@@ -79,6 +82,7 @@ install =
${go_github.com_influxdata_telegraf:location}:./cmd/... ${go_github.com_influxdata_telegraf:location}:./cmd/...
${go_github.com_influxdata_influxdb:location}:./cmd/... ${go_github.com_influxdata_influxdb:location}:./cmd/...
${go_github.com_perrinjerome_slapos_telegraf_input:location}:./... ${go_github.com_perrinjerome_slapos_telegraf_input:location}:./...
${go_github.com_prometheus_prometheus:location}:./cmd/...
# disable cgo, to prevent loki/promtail from using go-systemd # disable cgo, to prevent loki/promtail from using go-systemd
environment = environment =
...@@ -101,7 +105,7 @@ command = bash -ce " ...@@ -101,7 +105,7 @@ command = bash -ce "
. ${gowork:env.sh} && \ . ${gowork:env.sh} && \
go install github.com/google/wire/cmd/wire@v0.5.0 && \ go install github.com/google/wire/cmd/wire@v0.5.0 && \
wire gen -tags oss ./pkg/server ./pkg/cmd/grafana-cli/runner && \ wire gen -tags oss ./pkg/server ./pkg/cmd/grafana-cli/runner && \
# Unlike the loki, grafana _needs_ CGO_ENABLED, so we override here # Unlike loki, grafana _needs_ CGO_ENABLED, so we override here
export CGO_ENABLED=1 && \ export CGO_ENABLED=1 && \
go run build.go setup && \ go run build.go setup && \
go run build.go build && \ go run build.go build && \
......
...@@ -82,7 +82,7 @@ class TestGrafana(GrafanaTestCase): ...@@ -82,7 +82,7 @@ class TestGrafana(GrafanaTestCase):
self.assertEqual(requests.codes.ok, resp.status_code) self.assertEqual(requests.codes.ok, resp.status_code)
self.assertEqual(1, resp.json()['id']) self.assertEqual(1, resp.json()['id'])
def test_grafana_datasource_povisinonned(self): def test_grafana_datasource_provisioned(self):
# data sources are provisionned # data sources are provisionned
connection_params = self.computer_partition.getConnectionParameterDict() connection_params = self.computer_partition.getConnectionParameterDict()
resp = requests.get( resp = requests.get(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment