Index: documentation/src/main/resources/pages/ditto/installation-operating.md IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/documentation/src/main/resources/pages/ditto/installation-operating.md b/documentation/src/main/resources/pages/ditto/installation-operating.md --- a/documentation/src/main/resources/pages/ditto/installation-operating.md (revision cde6c87a6ac7e2804d8c9efde8570e2c5114a3da) +++ b/documentation/src/main/resources/pages/ditto/installation-operating.md (revision 93a029d8e13658359180696bc466d9c5298613d0) @@ -612,10 +612,10 @@ custom-metrics { ... } - custom-aggregate-metrics { + custom-aggregation-metrics { online_status { enabled = true - scrape-interval = 1m # override scrape interval, run every 20 minute + scrape-interval = 20m # override scrape interval, run every 20 minutes namespaces = [ "org.eclipse.ditto" ] @@ -628,6 +628,7 @@ "health" = "{{ inline:health }}" "hardcoded-tag" = "hardcoded_value" "location" = "{{ group-by:location | fn:default('missing location') }}" + "isGateway" = "{{ group-by:isGateway }}" } filters { online_filter { @@ -654,19 +655,19 @@ To add custom metrics via System properties, the following example shows how the above metric can be configured: ``` --Dditto.search.operator-metrics.custom-search-metrics.online_status.enabled=true --Dditto.search.operator-metrics.custom-search-metrics.online_status.scrape-interval=20m --Dditto.search.operator-metrics.custom-search-metrics.online_status.namespaces.0=org.eclipse.ditto --Dditto.search.operator-metrics.custom-search-metrics.online_status.tags.online="{{online_placeholder}}" --Dditto.search.operator-metrics.custom-search-metrics.online_status.tags.location="{{attributes/Info/location}}" +-Dditto.search.operator-metrics.custom-aggregation-metrics.online_status.enabled=true +-Dditto.search.operator-metrics.custom-aggregation-metrics.online_status.scrape-interval=20m +-Dditto.search.operator-metrics.custom-aggregation-metrics.online_status.namespaces.0=org.eclipse.ditto +-Dditto.search.operator-metrics.custom-aggregation-metrics.online_status.tags.online="{{online_placeholder}}" +-Dditto.search.operator-metrics.custom-aggregation-metrics.online_status.tags.location="{{attributes/Info/location}}" --Dditto.search.operator-metrics.custom-search-metrics.online_status.filters.online-filter.filter=gt(features/ConnectionStatus/properties/status/readyUntil/,time:now) --Dditto.search.operator-metrics.custom-search-metrics.online_status.filters.online-filter.inline-placeholder-values.online_placeholder=true --Dditto.search.operator-metrics.custom-search-metrics.online_status.filters.online-filter.fields.0=attributes/Info/location +-Dditto.search.operator-metrics.custom-aggregation-metrics.online_status.filters.online-filter.filter=gt(features/ConnectionStatus/properties/status/readyUntil/,time:now) +-Dditto.search.operator-metrics.custom-aggregation-metrics.online_status.filters.online-filter.inline-placeholder-values.online_placeholder=true +-Dditto.search.operator-metrics.custom-aggregation-metrics.online_status.filters.online-filter.fields.0=attributes/Info/location --Dditto.search.operator-metrics.custom-search-metrics.online_status.filters.offline-filter.filter=lt(features/ConnectionStatus/properties/status/readyUntil/,time:now) --Dditto.search.operator-metrics.custom-search-metrics.online_status.filters.offline-filter.inline-placeholder-values.online_placeholder=false --Dditto.search.operator-metrics.custom-search-metrics.online_status.filters.offline-filter.fields.0=attributes/Info/location +-Dditto.search.operator-metrics.custom-aggregation-metrics.online_status.filters.offline-filter.filter=lt(features/ConnectionStatus/properties/status/readyUntil/,time:now) +-Dditto.search.operator-metrics.custom-aggregation-metrics.online_status.filters.offline-filter.inline-placeholder-values.online_placeholder=false +-Dditto.search.operator-metrics.custom-aggregation-metrics.online_status.filters.offline-filter.fields.0=attributes/Info/location ``` @@ -679,6 +680,7 @@ ``` online_status{location="Berlin",online="false"} 6.0 online_status{location="Immenstaad",online="true"} 8.0 +``` ## Tracing Index: thingsearch/service/src/main/java/org/eclipse/ditto/thingsearch/service/starter/actors/OperatorSearchMetricsProviderActor.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/thingsearch/service/src/main/java/org/eclipse/ditto/thingsearch/service/starter/actors/OperatorSearchMetricsProviderActor.java b/thingsearch/service/src/main/java/org/eclipse/ditto/thingsearch/service/starter/actors/OperatorSearchMetricsProviderActor.java --- a/thingsearch/service/src/main/java/org/eclipse/ditto/thingsearch/service/starter/actors/OperatorSearchMetricsProviderActor.java (revision cde6c87a6ac7e2804d8c9efde8570e2c5114a3da) +++ b/thingsearch/service/src/main/java/org/eclipse/ditto/thingsearch/service/starter/actors/OperatorSearchMetricsProviderActor.java (revision 93a029d8e13658359180696bc466d9c5298613d0) @@ -85,7 +85,7 @@ this.customSearchMetricConfigMap = searchConfig.getOperatorMetricsConfig().getCustomAggregationMetricConfigs(); this.metricsGauges = new HashMap<>(); this.inlinePlaceholderResolvers = new HashMap<>(); - this.customSearchMetricsGauge = KamonGauge.newGauge("custom-search-metrics-count-of-instruments"); + this.customSearchMetricsGauge = KamonGauge.newGauge("custom-aggregation-metrics-count-of-instruments"); this.customSearchMetricConfigMap.forEach((metricName, customSearchMetricConfig) -> { initializeCustomMetricTimer(metricName, customSearchMetricConfig, getMaxConfiguredScrapeInterval(searchConfig.getOperatorMetricsConfig())); Index: thingsearch/service/src/main/resources/search-dev.conf IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/thingsearch/service/src/main/resources/search-dev.conf b/thingsearch/service/src/main/resources/search-dev.conf --- a/thingsearch/service/src/main/resources/search-dev.conf (revision cde6c87a6ac7e2804d8c9efde8570e2c5114a3da) +++ b/thingsearch/service/src/main/resources/search-dev.conf (revision 93a029d8e13658359180696bc466d9c5298613d0) @@ -32,32 +32,25 @@ namespaces = [ "org.eclipse.ditto" ] - group-by:{ + group-by { "location" = "attributes/Info/location" "isGateway" = "attributes/Info/gateway" } - tags: { + tags { "online" = "{{ inline:online_placeholder }}" "health" = "{{ inline:health }}" "hardcoded-tag" = "value" "location" = "{{ group-by:location | fn:default('missing location') }}" "isGateway" = "{{ group-by:isGateway }}" } - filters = { - online_filter = { + filters { + online_filter { filter = "gt(features/ConnectionStatus/properties/status/readyUntil/,time:now)" - inline-placeholder-values = { + inline-placeholder-values { "online_placeholder" = true "health" = "good" } } - offline_filter = { - filter = "lt(features/ConnectionStatus/properties/status/readyUntil/,time:now)" - inline-placeholder-values = { - "online_placeholder" = false - "health" = "bad" - } - } } } } Index: thingsearch/service/src/test/java/org/eclipse/ditto/thingsearch/service/common/config/DefaultCustomAggregationMetricConfigTest.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/thingsearch/service/src/test/java/org/eclipse/ditto/thingsearch/service/common/config/DefaultCustomAggregationMetricConfigTest.java b/thingsearch/service/src/test/java/org/eclipse/ditto/thingsearch/service/common/config/DefaultCustomAggregationMetricConfigTest.java --- a/thingsearch/service/src/test/java/org/eclipse/ditto/thingsearch/service/common/config/DefaultCustomAggregationMetricConfigTest.java (revision cde6c87a6ac7e2804d8c9efde8570e2c5114a3da) +++ b/thingsearch/service/src/test/java/org/eclipse/ditto/thingsearch/service/common/config/DefaultCustomAggregationMetricConfigTest.java (revision 93a029d8e13658359180696bc466d9c5298613d0) @@ -39,7 +39,7 @@ @BeforeClass public static void initTestFixture() { config = ConfigFactory.load("custom-search-metric-test"); - customSearchMetricTestConfig = config.getConfig("ditto.search.operator-metrics.custom-search-metrics"); + customSearchMetricTestConfig = config.getConfig("ditto.search.operator-metrics.custom-aggregation-metrics"); } @Test Index: thingsearch/service/src/test/resources/custom-search-metric-test.conf IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/thingsearch/service/src/test/resources/custom-search-metric-test.conf b/thingsearch/service/src/test/resources/custom-search-metric-test.conf --- a/thingsearch/service/src/test/resources/custom-search-metric-test.conf (revision cde6c87a6ac7e2804d8c9efde8570e2c5114a3da) +++ b/thingsearch/service/src/test/resources/custom-search-metric-test.conf (revision 93a029d8e13658359180696bc466d9c5298613d0) @@ -36,7 +36,7 @@ scrape-interval = ${?THINGS_SEARCH_OPERATOR_METRICS_SCRAPE_INTERVAL} custom-metrics { } - custom-search-metrics { + custom-aggregation-metrics { online_status { enabled = true scrape-interval = 1m # override scrape interval, run every 20 minute @@ -53,7 +53,7 @@ "health" = "{{ inline:health }}" "hardcoded-tag" = "value" "location" = "{{ group-by:location | fn:default('missing location') }}" - "altitude" = "{{ group-by:isGateway }}" + "isGateway" = "{{ group-by:isGateway }}" } filters = { online_filter = {