Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ This component adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.h
- Automatically set the `service.instance.id` resource attribute if not provided.
- Support for [CoreWCF.Primitives](https://www.nuget.org/packages/CoreWCF.Primitives/)
traces instrumentation for versions `1.8.0`+.
- Support for `temporality_preference` in file-based configuration
for Console Metric Exporter.

### Changed

Expand Down
4 changes: 4 additions & 0 deletions docs/file-based-configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -264,6 +264,10 @@ meter_provider:
exporter:
# Configure exporter to be console.
console:
# Configure temporality preference.
# Values include: cumulative, delta.
# If omitted or null, cumulative is used.
temporality_preference: cumulative

# Pull reader for Prometheus
- pull:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ private static MeterProviderBuilder SetExporter(this MeterProviderBuilder builde
}
else if (exporter.Console != null)
{
builder = Wrappers.AddConsoleExporter(builder, pluginManager);
builder = Wrappers.AddConsoleExporter(builder, pluginManager, exporter.Console);
}
}

Expand Down Expand Up @@ -249,6 +249,17 @@ public static MeterProviderBuilder AddConsoleExporter(MeterProviderBuilder build
});
}

[MethodImpl(MethodImplOptions.NoInlining)]
public static MeterProviderBuilder AddConsoleExporter(MeterProviderBuilder builder, PluginManager pluginManager, ConsoleExporterConfig consoleExporterConfig)
{
return builder.AddConsoleExporter((consoleExporterOptions, metricReaderOptions) =>
{
metricReaderOptions.TemporalityPreference = consoleExporterConfig.GetTemporalityPreference();
pluginManager.ConfigureMetricsOptions(consoleExporterOptions);
pluginManager.ConfigureMetricsOptions(metricReaderOptions);
});
}

[MethodImpl(MethodImplOptions.NoInlining)]
public static MeterProviderBuilder AddPrometheusHttpListener(MeterProviderBuilder builder, PluginManager pluginManager)
{
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0

using OpenTelemetry.AutoInstrumentation.Configurations.FileBasedConfiguration.Parser;
using OpenTelemetry.Metrics;
using Vendors.YamlDotNet.Serialization;

namespace OpenTelemetry.AutoInstrumentation.Configurations.FileBasedConfiguration;

[EmptyObjectOnEmptyYaml]
internal class ConsoleExporterConfig
{
/// <summary>
/// Gets or sets the temporality preference for the exporter.
/// Values include: cumulative, delta.
/// If omitted or null, cumulative is used.
/// </summary>
[YamlMember(Alias = "temporality_preference")]
public string? TemporalityPreference { get; set; }

public MetricReaderTemporalityPreference GetTemporalityPreference()
{
return TemporalityPreference switch
{
"cumulative" => MetricReaderTemporalityPreference.Cumulative,
"delta" => MetricReaderTemporalityPreference.Delta,
_ => MetricReaderTemporalityPreference.Cumulative
};
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0

using OpenTelemetry.AutoInstrumentation.Configurations.FileBasedConfiguration.Parser;
using OpenTelemetry.Metrics;
using Vendors.YamlDotNet.Serialization;

namespace OpenTelemetry.AutoInstrumentation.Configurations.FileBasedConfiguration;
Expand All @@ -23,5 +25,5 @@ internal class MetricPeriodicExporterConfig
/// Gets or sets the console exporter configuration.
/// </summary>
[YamlMember(Alias = "console")]
public object? Console { get; set; }
public ConsoleExporterConfig? Console { get; set; }
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ meter_provider:
- periodic:
exporter:
console:
temporality_preference: delta
- pull:
exporter:
prometheus:
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ public void Parse_FullConfigYaml_ShouldPopulateModelCorrectly()
Assert.NotNull(consoleReader);
Assert.NotNull(consoleReader.Exporter);
Assert.NotNull(consoleReader.Exporter!.Console);
Assert.Equal("delta", consoleReader.Exporter.Console.TemporalityPreference);

var prometheusReader = config.MeterProvider.Readers[3].Pull;
Assert.NotNull(prometheusReader);
Expand Down
Loading