You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在.NET C#应用中使用OpenTelemetry File Exporter导出指标

.NET C# OpenTelemetry 1.7.0 指标导出到JSON/文本文件实现示例

1. 安装对应NuGet包

要使用File Exporter,首先安装版本匹配的OpenTelemetry.Exporter.File包:

# Package Manager
Install-Package OpenTelemetry.Exporter.File -Version 1.7.0

# .NET CLI
dotnet add package OpenTelemetry.Exporter.File --version 1.7.0

2. 修改TelemetryBuilder配置

在原有的OpenTelemetry指标配置中添加File Exporter,支持文本格式或JSON格式,以下是修改后的完整代码:

using OpenTelemetry;
using OpenTelemetry.Exporter;
using OpenTelemetry.Metrics;
using OpenTelemetry.Resources;
using OpenTelemetry.Trace;
using OpenTelemetry.Logs;
using OpenTelemetry.Exporter.File; // 新增命名空间

namespace OpenTelemetrySample.OpenTelemetryBuilder;

public static class OpenTelemetryBuilder
{
    public static void OpenTelemetryInstrumenter(IServiceCollection services, string ApplicationName)
    {
        services.AddOpenTelemetry()
              .ConfigureResource(resource => resource.AddService(ApplicationName))
              .WithTracing(tracing => tracing
                  .AddAspNetCoreInstrumentation()
                  .AddConsoleExporter()
                  .AddOtlpExporter(options =>
                        {
                            options.Endpoint = new Uri("https://newrelicendpoint");
                            options.Headers = "api-key=somekey";
                        })
                  )
              .WithMetrics(metrics => metrics
                  .AddAspNetCoreInstrumentation()
                  .AddConsoleExporter()
                  .AddOtlpExporter(options =>
                    {
                        options.Endpoint = new Uri("https://newrelicendpoint");
                        options.Headers = "api-key=somekey";
                    })
                  // 新增File Exporter配置
                  .AddFileExporter(options =>
                  {
                      // 输出文件的基础路径(自动生成带时间戳的文件名)
                      options.Path = "./app-metrics";
                      // 选择导出格式:Json 或 Text
                      options.MetricsExportFormat = MetricsExportFormat.Json;
                      // 可选:配置滚动文件策略,避免单个文件过大
                      options.RotationOptions = new FileRotationOptions
                      {
                          MaxFileSize = 1024 * 1024, // 单个文件最大1MB
                          MaxNumberOfFiles = 5, // 最多保留5个历史文件
                          RotationInterval = TimeSpan.FromHours(1) // 每小时生成新文件
                      };
                  })
              );
    }
}

3. 关键配置说明

  • Path:输出文件的前缀,程序会自动在末尾添加时间戳和扩展名(如app-metrics-202405201430.json)
  • MetricsExportFormat:指定导出格式,MetricsExportFormat.Text生成人类可读的文本,MetricsExportFormat.Json生成结构化JSON数据
  • RotationOptions:可选配置,用于设置文件滚动规则,防止单个文件体积过大,支持按文件大小、时间间隔或文件数量限制

4. 运行验证

启动应用并访问接口后,会在应用根目录下生成对应的指标文件,打开即可查看导出的指标数据。

Program.cs无需修改,保持原有调用逻辑即可。

内容的提问来源于stack exchange,提问作者Confounder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 23:00:27