in grpc-gcp/src/main/java/com/google/cloud/grpc/GcpMultiEndpointChannel.java [321:344]
private void setUpMetricsForMultiEndpoint(GcpMultiEndpointOptions options, MultiEndpoint me) {
String name = options.getName();
List<String> endpoints = options.getEndpoints();
endpointSwitchMetric.createTimeSeries(
appendCommonValues(LabelValue.create(name), LabelValue.create(TYPE_FALLBACK)),
me,
MultiEndpoint::getFallbackCnt);
endpointSwitchMetric.createTimeSeries(
appendCommonValues(LabelValue.create(name), LabelValue.create(TYPE_RECOVER)),
me,
MultiEndpoint::getRecoverCnt);
endpointSwitchMetric.createTimeSeries(
appendCommonValues(LabelValue.create(name), LabelValue.create(TYPE_REPLACE)),
me,
MultiEndpoint::getReplaceCnt);
for (String e : endpoints) {
CurrentEndpointWatcher watcher = new CurrentEndpointWatcher(me, e);
currentEndpointWatchers.put(name + ":" + e, watcher);
currentEndpointMetric.createTimeSeries(
appendCommonValues(LabelValue.create(name), LabelValue.create(e)),
watcher,
CurrentEndpointWatcher::getMetricValue);
}
}