Skip to content

Commit

Permalink
chore(spectator): Add timer for prometheus calls. (#145)
Browse files Browse the repository at this point in the history
  • Loading branch information
Matt Duftler committed Dec 6, 2017
1 parent a880bac commit 963d715
Showing 1 changed file with 22 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@
import com.netflix.kayenta.prometheus.security.PrometheusNamedAccountCredentials;
import com.netflix.kayenta.prometheus.service.PrometheusRemoteService;
import com.netflix.kayenta.security.AccountCredentialsRepository;
import com.netflix.spectator.api.Id;
import com.netflix.spectator.api.Registry;
import lombok.Builder;
import lombok.Getter;
import lombok.Singular;
Expand Down Expand Up @@ -52,7 +54,10 @@ public class PrometheusMetricsService implements MetricsService {
private List<String> accountNames;

@Autowired
AccountCredentialsRepository accountCredentialsRepository;
private final AccountCredentialsRepository accountCredentialsRepository;

@Autowired
private final Registry registry;

@Override
public String getType() {
Expand Down Expand Up @@ -128,10 +133,22 @@ public List<MetricSet> queryMetrics(String accountName,
queryBuilder = addRateQuery(queryBuilder, queryConfig);
queryBuilder = addSumQuery(queryBuilder, queryConfig);

List<PrometheusResults> prometheusResultsList = prometheusRemoteService.fetch(queryBuilder.toString(),
canaryScope.getStart().toString(),
canaryScope.getEnd().toString(),
canaryScope.getStep());
long startTime = registry.clock().monotonicTime();
List<PrometheusResults> prometheusResultsList;

try {
prometheusResultsList = prometheusRemoteService.fetch(queryBuilder.toString(),
canaryScope.getStart().toString(),
canaryScope.getEnd().toString(),
canaryScope.getStep());
} finally {
long endTime = registry.clock().monotonicTime();
// TODO(ewiseblatt/duftler): Add appropriate tags.
Id prometheusFetchTimerId = registry.createId("prometheus.fetchTime");

registry.timer(prometheusFetchTimerId).record(endTime - startTime, TimeUnit.NANOSECONDS);
}

List<MetricSet> metricSetList = new ArrayList<>();

for (PrometheusResults prometheusResults : prometheusResultsList) {
Expand Down

0 comments on commit 963d715

Please sign in to comment.