forked from open-telemetry/opentelemetry-java-contrib
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathAwsMetricAttributesSpanExporterBuilder.java
More file actions
51 lines (40 loc) · 1.58 KB
/
AwsMetricAttributesSpanExporterBuilder.java
File metadata and controls
51 lines (40 loc) · 1.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
/*
* Copyright The OpenTelemetry Authors
* SPDX-License-Identifier: Apache-2.0
*/
package io.opentelemetry.contrib.awsxray;
import static java.util.Objects.requireNonNull;
import com.google.errorprone.annotations.CanIgnoreReturnValue;
import io.opentelemetry.sdk.resources.Resource;
import io.opentelemetry.sdk.trace.export.SpanExporter;
public final class AwsMetricAttributesSpanExporterBuilder {
// Defaults
private static final MetricAttributeGenerator DEFAULT_GENERATOR =
new AwsMetricAttributeGenerator();
// Required builder elements
private final SpanExporter delegate;
private final Resource resource;
// Optional builder elements
private MetricAttributeGenerator generator = DEFAULT_GENERATOR;
public static AwsMetricAttributesSpanExporterBuilder create(
SpanExporter delegate, Resource resource) {
return new AwsMetricAttributesSpanExporterBuilder(delegate, resource);
}
private AwsMetricAttributesSpanExporterBuilder(SpanExporter delegate, Resource resource) {
this.delegate = delegate;
this.resource = resource;
}
/**
* Sets the generator used to generate attributes used spancs exported by the exporter. If unset,
* defaults to {@link #DEFAULT_GENERATOR}. Must not be null.
*/
@CanIgnoreReturnValue
public AwsMetricAttributesSpanExporterBuilder setGenerator(MetricAttributeGenerator generator) {
requireNonNull(generator, "generator");
this.generator = generator;
return this;
}
public AwsMetricAttributesSpanExporter build() {
return AwsMetricAttributesSpanExporter.create(delegate, generator, resource);
}
}