未验证 提交 a3ae7b4d 编写于 作者: A Ax1an 提交者: GitHub

Fix no data bug of oap self observability instance_metrics_second_aggregation metrics. (#5028)

上级 80a534b1
......@@ -766,7 +766,7 @@
"steppedLine": false,
"targets": [
{
"expr": "sum(rate(metrics_aggregation {dimensionality=\"min\"} [1m])) by (level)",
"expr": "sum(rate(metrics_aggregation {dimensionality=\"minute\"} [1m])) by (level)",
"format": "time_series",
"hide": false,
"intervalFactor": 1,
......
......@@ -216,7 +216,7 @@ metricsRules:
range: PT1M
labelFilter:
- key: dimensionality
options: ["min"]
options: ["minute"]
- key: level
options: ["1"]
relabel:
......@@ -233,7 +233,7 @@ metricsRules:
range: PT1M
labelFilter:
- key: dimensionality
options: ["min"]
options: ["minute"]
- key: level
options: ["2"]
relabel:
......
......@@ -207,7 +207,7 @@ metricsRules:
range: PT1M
labelFilter:
- key: dimensionality
options: ["min"]
options: ["minute"]
- key: level
options: ["1"]
relabel:
......@@ -224,7 +224,7 @@ metricsRules:
range: PT1M
labelFilter:
- key: dimensionality
options: ["min"]
options: ["minute"]
- key: level
options: ["2"]
relabel:
......
......@@ -69,7 +69,7 @@ public class MetricsAggregateWorker extends AbstractWorker<Metrics> {
.getService(MetricsCreator.class);
aggregationCounter = metricsCreator.createCounter(
"metrics_aggregation", "The number of rows in aggregation",
new MetricsTag.Keys("metricName", "level", "dimensionality"), new MetricsTag.Values(modelName, "1", "min")
new MetricsTag.Keys("metricName", "level", "dimensionality"), new MetricsTag.Values(modelName, "1", "minute")
);
}
......
......@@ -41,6 +41,10 @@ import org.apache.skywalking.oap.server.core.storage.model.Model;
import org.apache.skywalking.oap.server.core.worker.AbstractWorker;
import org.apache.skywalking.oap.server.library.client.request.PrepareRequest;
import org.apache.skywalking.oap.server.library.module.ModuleDefineHolder;
import org.apache.skywalking.oap.server.telemetry.TelemetryModule;
import org.apache.skywalking.oap.server.telemetry.api.CounterMetrics;
import org.apache.skywalking.oap.server.telemetry.api.MetricsCreator;
import org.apache.skywalking.oap.server.telemetry.api.MetricsTag;
/**
* MetricsPersistentWorker is an extension of {@link PersistenceWorker} and focuses on the Metrics data persistent.
......@@ -56,6 +60,7 @@ public class MetricsPersistentWorker extends PersistenceWorker<Metrics> {
private final Optional<MetricsTransWorker> transWorker;
private final boolean enableDatabaseSession;
private final boolean supportUpdate;
private CounterMetrics aggregationCounter;
MetricsPersistentWorker(ModuleDefineHolder moduleDefineHolder, Model model, IMetricsDAO metricsDAO,
AbstractWorker<Metrics> nextAlarmWorker, AbstractWorker<ExportEvent> nextExportWorker,
......@@ -84,6 +89,14 @@ public class MetricsPersistentWorker extends PersistenceWorker<Metrics> {
this.dataCarrier = new DataCarrier<>("MetricsPersistentWorker." + model.getName(), name, 1, 2000);
this.dataCarrier.consume(ConsumerPoolFactory.INSTANCE.get(name), new PersistentConsumer());
MetricsCreator metricsCreator = moduleDefineHolder.find(TelemetryModule.NAME)
.provider()
.getService(MetricsCreator.class);
aggregationCounter = metricsCreator.createCounter(
"metrics_aggregation", "The number of rows in aggregation",
new MetricsTag.Keys("metricName", "level", "dimensionality"), new MetricsTag.Values(model.getName(), "2", model.getDownsampling().getName())
);
}
/**
......@@ -102,6 +115,7 @@ public class MetricsPersistentWorker extends PersistenceWorker<Metrics> {
*/
@Override
public void in(Metrics metrics) {
aggregationCounter.inc();
dataCarrier.produce(metrics);
}
......
......@@ -146,7 +146,7 @@ public class MetricsStreamProcessor implements StreamProcessor<Metrics> {
}
transWorker = new MetricsTransWorker(
moduleDefineHolder, stream.getName(), hourPersistentWorker, dayPersistentWorker);
moduleDefineHolder, hourPersistentWorker, dayPersistentWorker);
}
Model model = modelSetter.add(
......
......@@ -22,10 +22,6 @@ import java.util.Objects;
import org.apache.skywalking.oap.server.core.analysis.metrics.Metrics;
import org.apache.skywalking.oap.server.core.worker.AbstractWorker;
import org.apache.skywalking.oap.server.library.module.ModuleDefineHolder;
import org.apache.skywalking.oap.server.telemetry.TelemetryModule;
import org.apache.skywalking.oap.server.telemetry.api.CounterMetrics;
import org.apache.skywalking.oap.server.telemetry.api.MetricsCreator;
import org.apache.skywalking.oap.server.telemetry.api.MetricsTag;
/**
* MetricsTransWorker is transferring the metrics for downsampling. All streaming process metrics are in the minute
......@@ -36,28 +32,12 @@ public class MetricsTransWorker extends AbstractWorker<Metrics> {
private final MetricsPersistentWorker hourPersistenceWorker;
private final MetricsPersistentWorker dayPersistenceWorker;
private final CounterMetrics aggregationHourCounter;
private final CounterMetrics aggregationDayCounter;
public MetricsTransWorker(ModuleDefineHolder moduleDefineHolder,
String modelName,
MetricsPersistentWorker hourPersistenceWorker,
MetricsPersistentWorker dayPersistenceWorker) {
super(moduleDefineHolder);
this.hourPersistenceWorker = hourPersistenceWorker;
this.dayPersistenceWorker = dayPersistenceWorker;
MetricsCreator metricsCreator = moduleDefineHolder.find(TelemetryModule.NAME)
.provider()
.getService(MetricsCreator.class);
aggregationHourCounter = metricsCreator.createCounter(
"metrics_aggregation", "The number of rows in aggregation", new MetricsTag.Keys("metricName", "level",
"dimensionality"
), new MetricsTag.Values(modelName, "2", "hour"));
aggregationDayCounter = metricsCreator.createCounter(
"metrics_aggregation", "The number of rows in aggregation", new MetricsTag.Keys("metricName", "level",
"dimensionality"
), new MetricsTag.Values(modelName, "2", "day"));
}
/**
......@@ -68,11 +48,9 @@ public class MetricsTransWorker extends AbstractWorker<Metrics> {
@Override
public void in(Metrics metrics) {
if (Objects.nonNull(hourPersistenceWorker)) {
aggregationHourCounter.inc();
hourPersistenceWorker.in(metrics.toHour());
}
if (Objects.nonNull(dayPersistenceWorker)) {
aggregationDayCounter.inc();
dayPersistenceWorker.in(metrics.toDay());
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册