diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0e7f33ab5..d7f86e007 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -18,7 +18,7 @@ jobs: - name: Setup Go uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2 with: - go-version: 1.18 + go-version: 1.23 - name: Install CI dependencies run: make install-ci-deps - name: Lint and Format @@ -33,7 +33,7 @@ jobs: - name: Setup Go uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2 with: - go-version: 1.18 + go-version: 1.23 - name: Install CI dependencies run: make install-ci-deps - name: Run Tests diff --git a/.github/workflows/lint-mixins.yml b/.github/workflows/lint-mixins.yml index ae6ad24f7..f5393de47 100644 --- a/.github/workflows/lint-mixins.yml +++ b/.github/workflows/lint-mixins.yml @@ -25,7 +25,7 @@ jobs: - name: Setup Go uses: actions/setup-go@v5 with: - go-version: 1.18 + go-version: 1.23 - name: Install CI dependencies run: make install-ci-deps @@ -68,7 +68,7 @@ jobs: - name: Setup Go uses: actions/setup-go@v5 with: - go-version: 1.18 + go-version: 1.23 - name: Install CI dependencies run: make install-ci-deps diff --git a/Makefile b/Makefile index fe2b99331..22eb86874 100644 --- a/Makefile +++ b/Makefile @@ -5,7 +5,7 @@ install-ci-deps: go install github.com/google/go-jsonnet/cmd/jsonnet@v0.20.0 go install github.com/google/go-jsonnet/cmd/jsonnetfmt@v0.20.0 go install github.com/google/go-jsonnet/cmd/jsonnet-lint@v0.20.0 - go install github.com/monitoring-mixins/mixtool/cmd/mixtool@a9e78b0942a4186162bf170efde7b4b3167d31a4 + go install github.com/monitoring-mixins/mixtool/cmd/mixtool@a8984473edc33da685bd5f2138eab9cf6a0ff2b7 go install github.com/jsonnet-bundler/jsonnet-bundler/cmd/jb@v0.5.1 fmt: diff --git a/common-lib/common/signal/utils.libsonnet b/common-lib/common/signal/utils.libsonnet index cc169e494..e9a300eef 100644 --- a/common-lib/common/signal/utils.libsonnet +++ b/common-lib/common/signal/utils.libsonnet @@ -53,7 +53,6 @@ if unit == 'seconds' || unit == 's' then 'percent' else if unit == 'requests' then 'rps' else if unit == 'packets' then 'pps' - else if unit == 'short' then '/s' else unit ) else unit, diff --git a/jvm-observ-lib/.lint b/jvm-observ-lib/.lint index 91f57653f..eabfdd70e 100644 --- a/jvm-observ-lib/.lint +++ b/jvm-observ-lib/.lint @@ -1,13 +1,8 @@ exclusions: - panel-title-description-rule: - reason: "mixtool upgrade made this rule stricter. TODO: Fix errors and remove the warning exclusion" + panel-datasource-rule: + entries: + - panel: GC duration + - panel: Allocated/promoted panel-units-rule: - reason: "mixtool upgrade made this rule stricter. TODO: Fix errors and remove the warning exclusion" - template-datasource-rule: - reason: "mixtool upgrade made this rule stricter. TODO: Fix errors and remove the warning exclusion" - template-instance-rule: - reason: "mixtool upgrade made this rule stricter. TODO: Fix errors and remove the warning exclusion" - template-job-rule: - reason: "mixtool upgrade made this rule stricter. TODO: Fix errors and remove the warning exclusion" - template-on-time-change-reload-rule: - reason: "mixtool upgrade made this rule stricter. TODO: Fix errors and remove the warning exclusion" + entries: + - panel: Process files open diff --git a/jvm-observ-lib/panels.libsonnet b/jvm-observ-lib/panels.libsonnet index cbeaf55b3..7ff29543c 100644 --- a/jvm-observ-lib/panels.libsonnet +++ b/jvm-observ-lib/panels.libsonnet @@ -71,6 +71,7 @@ local commonlib = import 'common-lib/common/main.libsonnet'; gcDuration: g.panel.timeSeries.new('GC duration') + + g.panel.timeSeries.panelOptions.withDescription('Major and minor garbage collections') + commonlib.panels.generic.timeSeries.base.stylize() + g.panel.timeSeries.fieldConfig.defaults.custom.withFillOpacity(0) + signals.gc.collectionsTimeAvg.asPanelMixin() @@ -79,6 +80,12 @@ local commonlib = import 'common-lib/common/main.libsonnet'; promotedAllocated: g.panel.timeSeries.new('Allocated/promoted') + + g.panel.timeSeries.panelOptions.withDescription( + ||| + 'Allocated' is the size increase of the young generation memory pool after one GC and before the next. It reflects minor GC. + 'Promoted' is the size increase of the old generation memory pool after GC. It reflects full GC. + ||| + ) + commonlib.panels.memory.timeSeries.usageBytes.stylize() + signals.gc.memAllocatedBytes.asPanelMixin() + signals.gc.memAllocated.asPanelMixin() diff --git a/jvm-observ-lib/signals/gc.libsonnet b/jvm-observ-lib/signals/gc.libsonnet index dde4d70ad..23ba5a0a1 100644 --- a/jvm-observ-lib/signals/gc.libsonnet +++ b/jvm-observ-lib/signals/gc.libsonnet @@ -22,7 +22,7 @@ function(this) //gc collections: { name: 'Garbage collections', - description: 'Major and minor garbage collection', + description: 'Major and minor garbage collections', type: 'counter', unit: 'ops', optional: true, diff --git a/kafka-observ-lib/.lint b/kafka-observ-lib/.lint new file mode 100644 index 000000000..9f448de90 --- /dev/null +++ b/kafka-observ-lib/.lint @@ -0,0 +1,70 @@ +exclusions: + panel-units-rule: + entries: + - panel: Process files open + + target-instance-rule: + reason: Instance selector is intentionally dropped in these panels as they represent whole cluster. + entries: + - dashboard: ZooKeeper overview + panel: Current zookeeper role + - dashboard: Kafka overview + panel: Current role + - dashboard: Kafka overview + panel: Active kafka controllers + - dashboard: Kafka overview + panel: Brokers count + - dashboard: Kafka overview + panel: Brokers count + - dashboard: Kafka overview + panel: Cluster network throughput + - dashboard: Kafka overview + panel: Cluster messages throughput + - dashboard: Kafka topic overview + panel-datasource-rule: + entries: + - panel: GC duration + - panel: Allocated/promoted + - panel: Cluster network throughput + - panel: Cluster messages throughpu + - panel: Broker network throughput + - panel: Broker messages throughput + - panel: Producer ($instance) + - panel: Fetch-follower ($instance) + - panel: Fetch-consumer ($instance) + - panel: Cluster network throughput + dashboard: Kafka overview + - panel: Cluster messages throughput + dashboard: Kafka overview + - panel: Broker network throughput + dashboard: Kafka overview + - panel: Broker messages throughput + dashboard: Kafka overview + - panel: Consumer group overview + dashboard: Kafka topic overview + - panel: Topic overview + dashboard: Kafka topic overview + + panel-title-description-rule: + entries: + - panel: Cluster network throughput + dashboard: Kafka overview + - panel: Cluster messages throughput + dashboard: Kafka overview + - panel: Broker network throughput + dashboard: Kafka overview + - panel: Broker messages throughput + dashboard: Kafka overview + - panel: Consumer group overview + dashboard: Kafka topic overview + template-instance-rule: + reason: kafka_cluster is used intead + entries: + - dashboard: Kafka topic overview + + target-job-rule: + reason: kafka_cluster is used intead + template-job-rule: + reason: kafka_cluster is used intead + + diff --git a/kafka-observ-lib/panels/topic.libsonnet b/kafka-observ-lib/panels/topic.libsonnet index d0d685ae6..6218be07b 100644 --- a/kafka-observ-lib/panels/topic.libsonnet +++ b/kafka-observ-lib/panels/topic.libsonnet @@ -15,6 +15,7 @@ local commonlib = import 'common-lib/common/main.libsonnet'; // Requirements for this table's data topicTable: signals.topic.topicLogStartOffset.asTable(name='Topic overview', format='time_series') + + g.panel.table.panelOptions.withDescription('Kafka active topics overview. ') + signals.topic.topicLogEndOffset.asTableColumn(format='time_series') + signals.topic.topicMessagesPerSecByPartition.asTableColumn(format='time_series') + signals.topic.topicLogSize.asTableColumn(format='time_series') diff --git a/memcached-mixin/dashboards.libsonnet b/memcached-mixin/dashboards.libsonnet index 23389fe1e..5356f408c 100644 --- a/memcached-mixin/dashboards.libsonnet +++ b/memcached-mixin/dashboards.libsonnet @@ -118,6 +118,7 @@ local g = (import 'grafana-builder/grafana.libsonnet'); 'Value #B': { alias: 'Uptime', type: 'number', unit: 'dtdurations' }, }) ) - ), + ) + { editable: false }, }, } diff --git a/process-observ-lib/.lint b/process-observ-lib/.lint index e69de29bb..d45eb99ad 100644 --- a/process-observ-lib/.lint +++ b/process-observ-lib/.lint @@ -0,0 +1,4 @@ +exclusions: + panel-units-rule: + entries: + - panel: Process files open diff --git a/windows-mixin/.lint b/windows-mixin/.lint index 46b67229d..6f948fdcb 100644 --- a/windows-mixin/.lint +++ b/windows-mixin/.lint @@ -1,17 +1,11 @@ exclusions: panel-units-rule: - reason: "mixtool upgrade made this rule stricter. TODO: Fix errors and remove the warning exclusion" - template-datasource-rule: - reason: "Based on new convention we are using variable names prometheus_datasource and loki_datasource where as linter expects 'datasource'" + entries: + - panel: Disk average queue + - panel: CPU count template-instance-rule: - reason: "mixtool upgrade made this rule stricter. TODO: Fix errors and remove the warning exclusion" - template-on-time-change-reload-rule: - reason: "mixtool upgrade made this rule stricter. TODO: Fix errors and remove the warning exclusion" - target-instance-rule: - reason: "Failing with new dashboard linter. TODO: Investigate and remove the warning exclusion" - target-job-rule: - reason: "mixtool upgrade made this rule stricter. TODO: Fix errors and remove the warning exclusion" - target-promql-rule: - reason: "Linter does not support all LogQL queries and gives ivalid PromQL query error" + reason: "These dashboards are designed to be single instance" entries: - - dashboard: "Windows logs" + - dashboard: Windows overview + - dashboard: Windows CPU and system + - dashboard: Windows disks and filesystems diff --git a/windows-observ-lib/.lint b/windows-observ-lib/.lint new file mode 100644 index 000000000..6f948fdcb --- /dev/null +++ b/windows-observ-lib/.lint @@ -0,0 +1,11 @@ +exclusions: + panel-units-rule: + entries: + - panel: Disk average queue + - panel: CPU count + template-instance-rule: + reason: "These dashboards are designed to be single instance" + entries: + - dashboard: Windows overview + - dashboard: Windows CPU and system + - dashboard: Windows disks and filesystems diff --git a/zookeeper-observ-lib/.lint b/zookeeper-observ-lib/.lint new file mode 100644 index 000000000..67c799f25 --- /dev/null +++ b/zookeeper-observ-lib/.lint @@ -0,0 +1,13 @@ +exclusions: + panel-units-rule: + entries: + - panel: Process files open + panel-datasource-rule: + entries: + - panel: GC duration + - panel: Allocated/promoted + target-instance-rule: + reason: Instance selector is intentionally dropped in these panels as they represent whole cluster. + entries: + - dashboard: ZooKeeper overview + panel: Current zookeeper role diff --git a/zookeeper-observ-lib/config.libsonnet b/zookeeper-observ-lib/config.libsonnet index 0e0ca81ee..0e65a2ca1 100644 --- a/zookeeper-observ-lib/config.libsonnet +++ b/zookeeper-observ-lib/config.libsonnet @@ -1,7 +1,7 @@ { local this = self, filteringSelector: 'job!=""', - groupLabels: ['cluster'], + groupLabels: ['job'], instanceLabels: ['instance'], uid: 'zookeeper', dashboardNamePrefix: '',