Skip to content

Commit

Permalink
feat(metrics): change ot cardinality limit from 2000 -> 5000 (#767)
Browse files Browse the repository at this point in the history
* feat(metrics): change ot cardinality limit from 2000 -> 10000

Signed-off-by: Shichao Nie <[email protected]>

* style(metrics): remove unused imports

Signed-off-by: Shichao Nie <[email protected]>

---------

Signed-off-by: Shichao Nie <[email protected]>
  • Loading branch information
SCNieh authored Feb 4, 2024
1 parent da57036 commit d756947
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
import io.opentelemetry.api.common.AttributeKey;

public class TelemetryConstants {
// The maximum number of combinations of attributes for a single metric
public static final int CARDINALITY_LIMIT = 10000;
public static final String COMMON_JMX_YAML_CONFIG_PATH = "/jmx/rules/common.yaml";
public static final String BROKER_JMX_YAML_CONFIG_PATH = "/jmx/rules/broker.yaml";
public static final String CONTROLLER_JMX_YAML_CONFIG_PATH = "/jmx/rules/controller.yaml";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
import io.opentelemetry.sdk.metrics.export.MetricReader;
import io.opentelemetry.sdk.metrics.export.PeriodicMetricReader;
import io.opentelemetry.sdk.metrics.export.PeriodicMetricReaderBuilder;
import io.opentelemetry.sdk.metrics.internal.SdkMeterProviderUtil;
import io.opentelemetry.sdk.resources.Resource;
import io.opentelemetry.sdk.trace.SdkTracerProvider;
import io.opentelemetry.sdk.trace.SpanProcessor;
Expand Down Expand Up @@ -289,7 +290,8 @@ private void initOTLPExporter(SdkMeterProviderBuilder sdkMeterProviderBuilder, K

MetricReader periodicReader = builder.setInterval(Duration.ofMillis(kafkaConfig.s3ExporterReportIntervalMs())).build();
metricReaderList.add(periodicReader);
sdkMeterProviderBuilder.registerMetricReader(periodicReader);
SdkMeterProviderUtil.registerMetricReaderWithCardinalitySelector(sdkMeterProviderBuilder, periodicReader,
instrumentType -> TelemetryConstants.CARDINALITY_LIMIT);
LOGGER.info("OTLP exporter registered, endpoint: {}, protocol: {}", otlpExporterHost, protocol);
}

Expand All @@ -302,7 +304,8 @@ private void initLogExporter(SdkMeterProviderBuilder sdkMeterProviderBuilder, Ka
metricReaderList.add(periodicReader);
metricsLogger = java.util.logging.Logger.getLogger(LoggingMetricExporter.class.getName());
metricsLogger.setLevel(Level.FINEST);
sdkMeterProviderBuilder.registerMetricReader(periodicReader);
SdkMeterProviderUtil.registerMetricReaderWithCardinalitySelector(sdkMeterProviderBuilder, periodicReader,
instrumentType -> TelemetryConstants.CARDINALITY_LIMIT);
LOGGER.info("Log exporter registered");
}

Expand All @@ -317,7 +320,8 @@ private void initPrometheusExporter(SdkMeterProviderBuilder sdkMeterProviderBuil
.setHost(promExporterHost)
.setPort(promExporterPort)
.build();
sdkMeterProviderBuilder.registerMetricReader(prometheusHttpServer);
SdkMeterProviderUtil.registerMetricReaderWithCardinalitySelector(sdkMeterProviderBuilder, prometheusHttpServer,
instrumentType -> TelemetryConstants.CARDINALITY_LIMIT);
LOGGER.info("Prometheus exporter registered, host: {}, port: {}", promExporterHost, promExporterPort);
}

Expand Down

0 comments on commit d756947

Please sign in to comment.