When I use OpenTelemetry.Metrics library for use metrics of “System.Net.Http” namespace or other systems metrics, then I get metric and labels in format.
How to set default context name for metric and labels like this (prefix – “application”)?
enter image description here
Try to set prefix of application into metric name:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddConnections();
builder.Services.AddEndpointsApiExplorer();
builder.Services.Configure<MetricsPrometheusOptions>(o =>
{
o.MetricNameFormatter = (a, b) => $"TestM_{a}_{b}";
o.LabelNameFormatter = (a) => $"TestM_{a}";
});
builder.Services.AddOpenTelemetry()
.ConfigureResource(resourceBuilder => resourceBuilder.AddService("test_metrics"))
.ConfigureResource(t => t.AddService(
serviceName: builder.Configuration.GetValue("AppName", defaultValue: "test-metrics")!,
serviceVersion: typeof(Program).Assembly.GetName().Version?.ToString() ?? "unknown",
serviceInstanceId: Environment.MachineName))
.WithMetrics(x =>
{
x.AddHealthChecksInstrumentation(a => a.IncludeHealthCheckMetadata = true);
x.AddPrometheusExporter();
x.SetMaxMetricPointsPerMetricStream(19000);
x.AddHttpClientInstrumentation();
x.AddAspNetCoreInstrumentation();
x.AddRuntimeInstrumentation();
x.AddBuiltInMeters();
});
enter image description here
New contributor
Ксения Юдина is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.