Skip to content

Commit

Permalink
Merge pull request #23496: Fix validation of measurement name in Infl…
Browse files Browse the repository at this point in the history
…uxDBPublisher
  • Loading branch information
aromanenko-dev committed Oct 5, 2022
2 parents b9aa159 + d536401 commit 412fbdc
Showing 1 changed file with 14 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import static org.apache.beam.vendor.guava.v26_0_jre.com.google.common.base.Preconditions.checkState;
import static org.apache.commons.lang3.StringUtils.isBlank;
import static org.apache.commons.lang3.StringUtils.isNoneBlank;
import static org.apache.commons.lang3.StringUtils.isNotBlank;

import com.google.auto.value.AutoValue;
import com.google.gson.Gson;
Expand All @@ -40,6 +41,7 @@
import javax.annotation.Nullable;
import org.apache.beam.sdk.testutils.NamedTestResult;
import org.apache.beam.vendor.guava.v26_0_jre.com.google.common.annotations.VisibleForTesting;
import org.apache.beam.vendor.guava.v26_0_jre.com.google.common.base.Preconditions;
import org.apache.beam.vendor.guava.v26_0_jre.com.google.common.collect.Collections2;
import org.apache.beam.vendor.guava.v26_0_jre.com.google.common.collect.ImmutableSet;
import org.apache.beam.vendor.guava.v26_0_jre.com.google.common.collect.Maps;
Expand Down Expand Up @@ -102,6 +104,7 @@ public static DataPoint dataPoint(
Map<String, String> tags,
Map<String, Number> fields,
@Nullable Long timestampSecs) {
Preconditions.checkArgument(isNotBlank(measurement), "Measurement cannot be blank");
return new AutoValue_InfluxDBPublisher_DataPoint(
measurement, tags, fields, timestampSecs, TimeUnit.SECONDS);
}
Expand All @@ -113,6 +116,7 @@ public static DataPoint dataPoint(
Map<String, Number> fields,
@Nullable Long timestamp,
TimeUnit timestampUnit) {
Preconditions.checkArgument(isNotBlank(measurement), "Measurement cannot be blank");
return new AutoValue_InfluxDBPublisher_DataPoint(
measurement, tags, fields, timestamp, timestampUnit);
}
Expand All @@ -128,10 +132,14 @@ public static void publishNexmarkResults(

public static void publishWithSettings(
final Collection<NamedTestResult> results, final InfluxDBSettings settings) {
@SuppressWarnings("nullness")
Collection<DataPoint> dataPoints =
Collections2.transform(results, res -> res.toInfluxDBDataPoint(settings.measurement));
publish(settings, dataPoints);
if (isNotBlank(settings.measurement)) {
@SuppressWarnings("nullness")
Collection<DataPoint> dataPoints =
Collections2.transform(results, res -> res.toInfluxDBDataPoint(settings.measurement));
publish(settings, dataPoints);
} else {
LOG.warn("Missing setting InfluxDB measurement. Metrics won't be published.");
}
}

public static void publish(
Expand All @@ -143,7 +151,7 @@ public static void publish(

private static void publishWithCheck(final InfluxDBSettings settings, final String data) {
requireNonNull(settings, "InfluxDB settings must not be null");
if (isNoneBlank(settings.measurement, settings.database)) {
if (isNotBlank(settings.database)) {
try {
final HttpClientBuilder builder = provideHttpBuilder(settings);
final HttpPost postRequest = providePOSTRequest(settings);
Expand All @@ -153,7 +161,7 @@ private static void publishWithCheck(final InfluxDBSettings settings, final Stri
LOG.warn("Unable to publish metrics due to error: {}", exception.getMessage());
}
} else {
LOG.warn("Missing property -- measurement/database. Metrics won't be published.");
LOG.warn("Missing setting InfluxDB database. Metrics won't be published.");
}
}

Expand Down

0 comments on commit 412fbdc

Please sign in to comment.