Skip to content

Commit

Permalink
Adapt query supported metrics names in Baseline (#13007)
Browse files Browse the repository at this point in the history
  • Loading branch information
mrproliu authored Jan 23, 2025
1 parent 5aaf832 commit f5b9463
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,12 @@
import java.util.List;

public interface BaselineQueryService extends Service {
/**
* query supported query baseline metrics names
* @return
*/
List<String> querySupportedMetrics();

/**
* query predict metrics
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,11 @@

package org.apache.skywalking.oap.server.baseline.service;

import com.google.protobuf.Empty;
import io.grpc.ManagedChannel;
import lombok.extern.slf4j.Slf4j;
import org.apache.skywalking.apm.baseline.v3.AlarmBaselineMetricPrediction;
import org.apache.skywalking.apm.baseline.v3.AlarmBaselineMetricsNames;
import org.apache.skywalking.apm.baseline.v3.AlarmBaselineRequest;
import org.apache.skywalking.apm.baseline.v3.AlarmBaselineResponse;
import org.apache.skywalking.apm.baseline.v3.AlarmBaselineServiceGrpc;
Expand All @@ -30,8 +32,10 @@
import org.apache.skywalking.oap.server.library.client.grpc.GRPCClient;
import org.apache.skywalking.oap.server.library.util.StringUtil;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;

@Slf4j
Expand All @@ -48,6 +52,18 @@ public BaselineQueryServiceImpl(String addr, int port) {
stub = AlarmBaselineServiceGrpc.newBlockingStub(channel);
}

@Override
public List<String> querySupportedMetrics() {
if (stub == null) {
return Collections.emptyList();
}

final AlarmBaselineMetricsNames names = stub.querySupportedMetricsNames(Empty.newBuilder().build());
return Optional.ofNullable(names)
.map(AlarmBaselineMetricsNames::getMetricNamesList)
.map(ArrayList::new).orElse(new ArrayList<>(0));
}

public List<PredictServiceMetrics> queryPredictMetrics(List<ServiceMetrics> serviceMetrics, long startTimeBucket, long endTimeBucket) {
if (stub == null) {
return Collections.emptyList();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,11 @@

package org.apache.skywalking.oap.server.baseline;

import com.google.protobuf.Empty;
import io.grpc.stub.StreamObserver;
import lombok.Builder;
import lombok.Data;
import org.apache.skywalking.apm.baseline.v3.AlarmBaselineMetricsNames;
import org.apache.skywalking.oap.server.core.analysis.DownSampling;
import org.apache.skywalking.oap.server.core.analysis.TimeBucket;
import org.apache.skywalking.apm.baseline.v3.AlarmBaselineServiceGrpc;
Expand Down Expand Up @@ -87,6 +89,14 @@ public class BaselineQueryServer extends AlarmBaselineServiceGrpc.AlarmBaselineS
.build());
}

@Override
public void querySupportedMetricsNames(Empty request, StreamObserver<AlarmBaselineMetricsNames> responseObserver) {
responseObserver.onNext(AlarmBaselineMetricsNames.newBuilder()
.addAllMetricNames(VALUE_GENERATOR.keySet())
.build());
responseObserver.onCompleted();
}

@Override
public void queryPredictedMetrics(org.apache.skywalking.apm.baseline.v3.AlarmBaselineRequest request, StreamObserver<org.apache.skywalking.apm.baseline.v3.AlarmBaselineResponse> responseObserver) {
final List<org.apache.skywalking.apm.baseline.v3.AlarmBaselineServiceMetric> metrics = new ArrayList<>();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,4 +98,10 @@ public void queryServices() throws Exception {
assertNotNull(metrics);
}

@Test
public void queryMetricsNames() {
final List<String> metrics = queryService.querySupportedMetrics();
assertNotNull(metrics);
}

}

0 comments on commit f5b9463

Please sign in to comment.