src/DotNetWorker.OpenTelemetry/ConfigureFunctionsOpenTelemetry.cs (24 lines of code) (raw):
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
using System;
using Microsoft.Extensions.DependencyInjection;
using OpenTelemetry;
namespace Microsoft.Azure.Functions.Worker.OpenTelemetry
{
public static class ConfigureFunctionsOpenTelemetry
{
public static IOpenTelemetryBuilder UseFunctionsWorkerDefaults(this IOpenTelemetryBuilder builder)
{
if (builder is null)
{
throw new ArgumentNullException(nameof(builder));
}
builder.Services
// Tells the host to no longer emit telemetry on behalf of the worker.
.Configure<WorkerOptions>(workerOptions => workerOptions.Capabilities["WorkerOpenTelemetryEnabled"] = bool.TrueString);
builder.ConfigureResource((resourceBuilder) =>
{
resourceBuilder.AddDetector(new FunctionsResourceDetector());
});
return builder;
}
}
}