From 0afba71b4446a8ea4cdc32daec774d6ea62a8615 Mon Sep 17 00:00:00 2001 From: itspngu Date: Fri, 19 Nov 2021 14:37:34 +0000 Subject: [PATCH 1/4] fix(mixin): adhere to RFC 1123 compatible component naming Signed-off-by: itspngu --- CHANGELOG.md | 1 + CONTRIBUTING.md | 2 +- .../{bucket_replicate.json => bucket-replicate.json} | 2 +- examples/dashboards/dashboards.md | 4 ++-- .../dashboards/{query_frontend.json => query-frontend.json} | 2 +- mixin/alerts/absent.libsonnet | 2 +- mixin/alerts/alerts.libsonnet | 2 +- ...{bucket_replicate.libsonnet => bucket-replicate.libsonnet} | 0 ...{bucket_replicate.libsonnet => bucket-replicate.libsonnet} | 2 +- mixin/dashboards/dashboards.libsonnet | 4 ++-- .../{query_frontend.libsonnet => query-frontend.libsonnet} | 2 +- mixin/lib/utils.libsonnet | 2 +- ...{bucket_replicate.libsonnet => bucket-replicate.libsonnet} | 0 mixin/rules/rules.libsonnet | 2 +- 14 files changed, 14 insertions(+), 13 deletions(-) rename examples/dashboards/{bucket_replicate.json => bucket-replicate.json} (99%) rename examples/dashboards/{query_frontend.json => query-frontend.json} (99%) rename mixin/alerts/{bucket_replicate.libsonnet => bucket-replicate.libsonnet} (100%) rename mixin/dashboards/{bucket_replicate.libsonnet => bucket-replicate.libsonnet} (97%) rename mixin/dashboards/{query_frontend.libsonnet => query-frontend.libsonnet} (98%) rename mixin/rules/{bucket_replicate.libsonnet => bucket-replicate.libsonnet} (100%) diff --git a/CHANGELOG.md b/CHANGELOG.md index cbc799f468..77a14a4979 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,7 @@ We use *breaking :warning:* to mark changes that are not backward compatible (re - [#4918](https://github.com/thanos-io/thanos/pull/4918) Tracing: Fixing force tracing with Jaeger. - [#4879](https://github.com/thanos-io/thanos/pull/4879) Bucket verify: Fixed bug causing wrong number of blocks to be checked. - [#4908](https://github.com/thanos-io/thanos/pull/4908) UI: Show 'minus' icon and add tooltip when store min / max time is not available. +- [#4883](https://github.com/thanos-io/thanos/pull/4883) Mixin: adhere to RFC 1123 compatible component naming. ## [v0.24.0](https://github.com/thanos-io/thanos/tree/release-0.24) - 2021.12.22 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0e46cf82de..3876e1c89f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -43,7 +43,7 @@ In the code and documentation prefer non-offensive terminology, for example: Thanos is a distributed system comprised of several services and CLI tools as listed [here](cmd/thanos). -When we refer to them in a technical capacity we use the verbal form: `store`, `compact`, `rule`, `query`, `query_frontend`. This includes: +When we refer to them in a technical capacity we use the verbal form: `store`, `compact`, `rule`, `query`, `query-frontend`. This includes: * Code * Metrics diff --git a/examples/dashboards/bucket_replicate.json b/examples/dashboards/bucket-replicate.json similarity index 99% rename from examples/dashboards/bucket_replicate.json rename to examples/dashboards/bucket-replicate.json index 43530aae39..67dad483cb 100644 --- a/examples/dashboards/bucket_replicate.json +++ b/examples/dashboards/bucket-replicate.json @@ -506,6 +506,6 @@ }, "timezone": "UTC", "title": "Thanos / BucketReplicate", - "uid": "49f644ecf8e31dd1a5084ae2a5f10e80", + "uid": "65ffb86cd2688b9e4db4d1ea231a5a9a", "version": 0 } diff --git a/examples/dashboards/dashboards.md b/examples/dashboards/dashboards.md index 766ffcf2df..2d8e9b9674 100644 --- a/examples/dashboards/dashboards.md +++ b/examples/dashboards/dashboards.md @@ -5,12 +5,12 @@ There exists Grafana dashboards for each component (not all of them complete) ta - [Thanos Overview](overview.json) - [Thanos Compact](compact.json) - [Thanos Querier](query.json) -- [Thanos Query Frontend](query_frontend.json) +- [Thanos Query Frontend](query-frontend.json) - [Thanos Store](store.json) - [Thanos Receiver](receive.json) - [Thanos Sidecar](sidecar.json) - [Thanos Ruler](rule.json) -- [Thanos Replicate](bucket_replicate.json) +- [Thanos Replicate](bucket-replicate.json) You can import them via `Import -> Paste JSON` in Grafana. These dashboards require Grafana 5 or above, importing them in older versions are known not to work. diff --git a/examples/dashboards/query_frontend.json b/examples/dashboards/query-frontend.json similarity index 99% rename from examples/dashboards/query_frontend.json rename to examples/dashboards/query-frontend.json index 644555b4f8..39f1f4cba7 100644 --- a/examples/dashboards/query_frontend.json +++ b/examples/dashboards/query-frontend.json @@ -1112,6 +1112,6 @@ }, "timezone": "UTC", "title": "Thanos / Query Frontend", - "uid": "303c4e660a475c4c8cf6aee97da3a24a", + "uid": "7c68ed2ef2355474f058dd27f0471f7a", "version": 0 } diff --git a/mixin/alerts/absent.libsonnet b/mixin/alerts/absent.libsonnet index 4f21213540..bb4d9654e0 100644 --- a/mixin/alerts/absent.libsonnet +++ b/mixin/alerts/absent.libsonnet @@ -1,7 +1,7 @@ local capitalize(str) = std.asciiUpper(std.substr(str, 0, 1)) + std.asciiLower(std.substr(str, 1, std.length(str))); local titlize(str) = std.join('', std.map(capitalize, std.split(str, '_'))); -local components = ['query', 'receive', 'rule', 'compact', 'store', 'bucket_replicate', 'sidecar']; +local components = ['query', 'receive', 'rule', 'compact', 'store', 'bucket-replicate', 'sidecar']; { local thanos = self, diff --git a/mixin/alerts/alerts.libsonnet b/mixin/alerts/alerts.libsonnet index 9b3e39b7da..3e5d1f54d4 100644 --- a/mixin/alerts/alerts.libsonnet +++ b/mixin/alerts/alerts.libsonnet @@ -4,6 +4,6 @@ (import 'sidecar.libsonnet') + (import 'store.libsonnet') + (import 'rule.libsonnet') + -(import 'bucket_replicate.libsonnet') + +(import 'bucket-replicate.libsonnet') + (import 'absent.libsonnet') + (import 'add_runbook_links.libsonnet') diff --git a/mixin/alerts/bucket_replicate.libsonnet b/mixin/alerts/bucket-replicate.libsonnet similarity index 100% rename from mixin/alerts/bucket_replicate.libsonnet rename to mixin/alerts/bucket-replicate.libsonnet diff --git a/mixin/dashboards/bucket_replicate.libsonnet b/mixin/dashboards/bucket-replicate.libsonnet similarity index 97% rename from mixin/dashboards/bucket_replicate.libsonnet rename to mixin/dashboards/bucket-replicate.libsonnet index e48a528cf4..55ccfd3605 100644 --- a/mixin/dashboards/bucket_replicate.libsonnet +++ b/mixin/dashboards/bucket-replicate.libsonnet @@ -11,7 +11,7 @@ local g = import '../lib/thanos-grafana-builder/builder.libsonnet'; }, }, grafanaDashboards+:: { - [if thanos.bucketReplicate != null then 'bucket_replicate.json']: + [if thanos.bucketReplicate != null then 'bucket-replicate.json']: g.dashboard(thanos.bucketReplicate.title) .addRow( g.row('Bucket Replicate Runs') diff --git a/mixin/dashboards/dashboards.libsonnet b/mixin/dashboards/dashboards.libsonnet index d35bbcd843..84374f4581 100644 --- a/mixin/dashboards/dashboards.libsonnet +++ b/mixin/dashboards/dashboards.libsonnet @@ -1,10 +1,10 @@ (import 'query.libsonnet') + -(import 'query_frontend.libsonnet') + +(import 'query-frontend.libsonnet') + (import 'store.libsonnet') + (import 'sidecar.libsonnet') + (import 'receive.libsonnet') + (import 'rule.libsonnet') + (import 'compact.libsonnet') + -(import 'bucket_replicate.libsonnet') + +(import 'bucket-replicate.libsonnet') + (import 'overview.libsonnet') + (import 'defaults.libsonnet') diff --git a/mixin/dashboards/query_frontend.libsonnet b/mixin/dashboards/query-frontend.libsonnet similarity index 98% rename from mixin/dashboards/query_frontend.libsonnet rename to mixin/dashboards/query-frontend.libsonnet index c5ba200ad5..96adea0606 100644 --- a/mixin/dashboards/query_frontend.libsonnet +++ b/mixin/dashboards/query-frontend.libsonnet @@ -12,7 +12,7 @@ local utils = import '../lib/utils.libsonnet'; }, }, grafanaDashboards+:: { - [if thanos.queryFrontend != null then 'query_frontend.json']: + [if thanos.queryFrontend != null then 'query-frontend.json']: local queryFrontendHandlerSelector = utils.joinLabels([thanos.queryFrontend.dashboard.selector, 'handler="query-frontend"']); local queryFrontendOpSelector = utils.joinLabels([thanos.queryFrontend.dashboard.selector, 'op="query_range"']); g.dashboard(thanos.queryFrontend.title) diff --git a/mixin/lib/utils.libsonnet b/mixin/lib/utils.libsonnet index 5b04bf6def..c791a4f9c2 100644 --- a/mixin/lib/utils.libsonnet +++ b/mixin/lib/utils.libsonnet @@ -26,7 +26,7 @@ toCamelCase(parts): std.join('', [parts[0], self.firstCharUppercase(parts)]), - componentParts(name): std.split(name, '_'), + componentParts(name): std.split(name, '-'), sanitizeComponentName(name): if std.length(self.componentParts(name)) > 1 then self.toCamelCase(self.componentParts(name)) else name, } diff --git a/mixin/rules/bucket_replicate.libsonnet b/mixin/rules/bucket-replicate.libsonnet similarity index 100% rename from mixin/rules/bucket_replicate.libsonnet rename to mixin/rules/bucket-replicate.libsonnet diff --git a/mixin/rules/rules.libsonnet b/mixin/rules/rules.libsonnet index a9b51ea839..c1723eeb28 100644 --- a/mixin/rules/rules.libsonnet +++ b/mixin/rules/rules.libsonnet @@ -1,4 +1,4 @@ (import 'query.libsonnet') + (import 'receive.libsonnet') + (import 'store.libsonnet') + -(import 'bucket_replicate.libsonnet') +(import 'bucket-replicate.libsonnet') From a4e1980763c6e008c111534e8f078c1c299c942a Mon Sep 17 00:00:00 2001 From: itspngu Date: Mon, 6 Dec 2021 12:17:13 +0000 Subject: [PATCH 2/4] style(mixin): rename add_runbook_links.libsonnet to add-runbook-links.libsonnet for consistency Signed-off-by: itspngu --- ...{add_runbook_links.libsonnet => add-runbook-links.libsonnet} | 0 mixin/alerts/alerts.libsonnet | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename mixin/alerts/{add_runbook_links.libsonnet => add-runbook-links.libsonnet} (100%) diff --git a/mixin/alerts/add_runbook_links.libsonnet b/mixin/alerts/add-runbook-links.libsonnet similarity index 100% rename from mixin/alerts/add_runbook_links.libsonnet rename to mixin/alerts/add-runbook-links.libsonnet diff --git a/mixin/alerts/alerts.libsonnet b/mixin/alerts/alerts.libsonnet index 3e5d1f54d4..730abd4604 100644 --- a/mixin/alerts/alerts.libsonnet +++ b/mixin/alerts/alerts.libsonnet @@ -6,4 +6,4 @@ (import 'rule.libsonnet') + (import 'bucket-replicate.libsonnet') + (import 'absent.libsonnet') + -(import 'add_runbook_links.libsonnet') +(import 'add-runbook-links.libsonnet') From ce0d7796e93729d9649a61df97bb25fecc65a20e Mon Sep 17 00:00:00 2001 From: itspngu Date: Mon, 6 Dec 2021 15:19:00 +0000 Subject: [PATCH 3/4] ci(mixin): add RFC1123 compliance check for filenames to 'make jsonnet-lint' Signed-off-by: itspngu --- Makefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Makefile b/Makefile index e0f783975d..375afd8aff 100644 --- a/Makefile +++ b/Makefile @@ -414,6 +414,9 @@ jsonnet-format: $(JSONNETFMT) jsonnet-lint: $(JSONNET_LINT) jsonnet-vendor find . -name 'vendor' -prune -o -name '*.libsonnet' -print -o -name '*.jsonnet' -print | \ xargs -n 1 -- $(JSONNET_LINT) -J ${JSONNET_VENDOR_DIR} + find ./mixin -name 'vendor' -prune -o -name '*.libsonnet' -print -o -name '*.jsonnet' -print | sed -E \ + -e 's/.*\///' \ + -e '/^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*\.(lib|j)sonnet$$/!{s/(.*)/Non-RFC1123 filename: \1/;q1};{d}' .PHONY: example-rules-lint example-rules-lint: $(PROMTOOL) examples/alerts/alerts.yaml examples/alerts/rules.yaml From 738234445348c41a7e0edbac9dd1753030cca451 Mon Sep 17 00:00:00 2001 From: itspngu Date: Mon, 6 Dec 2021 15:29:34 +0000 Subject: [PATCH 4/4] style(mixin): rename separated_alerts.jsonnet to separated-alerts.jsonnet for consistency Signed-off-by: itspngu --- Makefile | 2 +- mixin/{separated_alerts.jsonnet => separated-alerts.jsonnet} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename mixin/{separated_alerts.jsonnet => separated-alerts.jsonnet} (100%) diff --git a/Makefile b/Makefile index 375afd8aff..e290a713a2 100644 --- a/Makefile +++ b/Makefile @@ -381,7 +381,7 @@ examples: jsonnet-vendor jsonnet-format ${THANOS_MIXIN}/README.md examples/alert examples/tmp: -rm -rf examples/tmp/ -mkdir -p examples/tmp/ - $(JSONNET) -J ${JSONNET_VENDOR_DIR} -m examples/tmp/ ${THANOS_MIXIN}/separated_alerts.jsonnet | xargs -I{} sh -c 'cat {} | $(GOJSONTOYAML) > {}.yaml; rm -f {}' -- {} + $(JSONNET) -J ${JSONNET_VENDOR_DIR} -m examples/tmp/ ${THANOS_MIXIN}/separated-alerts.jsonnet | xargs -I{} sh -c 'cat {} | $(GOJSONTOYAML) > {}.yaml; rm -f {}' -- {} .PHONY: examples/dashboards # to keep examples/dashboards/dashboards.md. examples/dashboards: $(JSONNET) ${THANOS_MIXIN}/mixin.libsonnet ${THANOS_MIXIN}/config.libsonnet ${THANOS_MIXIN}/dashboards/* diff --git a/mixin/separated_alerts.jsonnet b/mixin/separated-alerts.jsonnet similarity index 100% rename from mixin/separated_alerts.jsonnet rename to mixin/separated-alerts.jsonnet